Every now and then a sharp developer uncovers a clue that leads to discovery of an undocumented, but quite real, web API. A case in point is the folks over at SEO services company Indexed Content, who noted in their blog yesterday that the popular social news web site Reddit has an API. But don’t go looking for any documentation, because it doesn’t look like there is any, at least not yet (for reference we’ve created a Reddit API summary in our directory and will update it if/when this becomes an officially supported API).
How did they find it?
Over the past few weeks I have been working on creating a tool to gather some social media metrics to track social media optimization campaigns. Friendfeed is your friend if you’re embarking on the same project. While looking for a native reddit API however I stumbled across a post on code.reddit.com that mentioned an API endpoint.
In many applications, such as Socialite, it is valuable to look up information about a link on reddit. Currently, there are two good ways to do this using the JSON API:
The API “info” call is an ideal way to look up reddit stories by URL. However, in some cases, looking up stories by URL alone presents problems:
1. URLs are not mapped to stories on a one-to-one basis. Since the same URL can be posted to many subreddits, when looking up stories by a URL, it becomes necessary to constrain the search by subreddit, e.g.: http://www.reddit.com/r/subreddit/api/info.json?count=1&url=STORYURL
This summary sufficies in many ways given how simple the REST-based API itself appears to be. It returns data in JSON and requires no authentication. Clicking on this link will get you the JSON-formatted version of Reddit’s page to A list of average IQ’s per occupation.
Are there other endpoints? A couple of quick tests to api.reddit.com, a url not documented anywhere, does indeed return a JSON-formatted representation of the current home page HTML contents. There may be more here from Reddit coming soon? In the meantime, guessing the wrong parameters gives the message below.