common API for content fetching across different sources