It was sometime in 2009 when I first discovered APIs. Not that nobody else had ever used them or made the discovery before me, but I had never had the chance to use them or even understand how they worked. Back then I was a Junior PHP developer working at a job where I had very little to do but fix bugs or add very tiny bits of code here and there. I had begun diving into WordPress a bit and building some small plugins here and there for my own personal use. It was around this time that I wanted to know how twitter worked and how I could intergrate with a small plugin I was building. At this point in my career I knew almost nothing about JavaScript and ended up stumbling upon Remy Sharp‘s blog. He had built a JavaScript twitter library that I could use…if I knew JavaScript. Over the following days I began picking up bits and pieces, read a book (I think Jeremy Keith’s DOM Scripting book) and started hacking away. What I discovered was a world of open data and information all ready to be manipulated in any way that I saw fit. Mind = Blown.
The Twitter API was then, and continues to be, a fun place to start learning about APIs, but there are so many out there, and once you start mashing them together you can begin to create some exciting applications. There are hundreds of apps out there that started by simply hooking into the open API of twitter (Tweetdeck was one that was eventually bought by Twitter) and it seem that there is no real limitation to what you can do with all the information that is now freely available.
Personally, I love APIs that I can hit up with one query and it can send back data to me in the JSON format (I’m something of a JSON Junkie / Fanboy). This way I can pump it straight through to my UI, possibly using some sort of templating. It’s quick, and sometimes dirty, but when building things for a bit of fun, it’s the way to go.
If using jQuery, I generally do something like this to start off, see what I instantly have access to and then star the playing.
1 2 3 | $.getJSON(/*API URL GOES HERE*/, function(data) { // Do stuff with the data }); |
Below are some of my favourite APIs that I have been using lately whenever I have been creatively blocked. It doesn’t happen often, but when it does I find that the best cure is to hack together something.
Echonest
Echonest is an intelligent music application platform and I was introduced to it very recently and have loved playing with it since, just waiting for that spark of enlightenment to hit me. There are 200+ music applications built using the Echonest platform and I think as soon as Spotify applications become more and more popular – this number will rise.
YQL
Query the internet. YQL allows you to run various SQL like statements but against various APIs, RSS feeds and other such goodies. You could, if you wanted to, build some cool apps just off YQL alone. I’ve not used it a lot, but anytime I have it has never failed to impress me. Yahoo Pipes is like an extension of YQL and has some cool features, but I’ve not played with it much.
TMDB (The Movie Database)
I honestly think that IMDB totally missed a beat by still not having an open and freely available API for developers to create other applications off the back of. There have been a few unofficial ones, but anytime IMDB changed something, the APIs died and rendered them useless for a while, if not indefinitly. TMDB is built for this purpose, a totally open DB for movies and is already used by some popular movie based applications. Netflix have a very good and well supported movie API too and well worth signing up for and checking out.
Punchfork Recipes
Whilst toying around with a recipe application one weekend, I went on the search for an API that might be already aggregating recipes from other sites. Thankfully I found Punchfork, which does have a pricing plan, but there is a Free plan that does give you 250 API calls per day. The prices might be a little steep for a developer who is just beginning, but if you have an idea for an application – it might be worth paying the price. The only real alternative I found to Punchfork was Big Oven
Bing Maps API
Sure, Google has their own API and it’s alright, but if you are into mashing up Maps with other data, I really think that Bing deserves your attention. The documentation is pretty solid, there are some great resources and videos to get you started and best of all they have a REST service, great for getting data back in my favourite format (JSON).
Reddit API
Reddit is my homepage. Fact. What more do you need to know. For me it’s the best news aggregator in the world and at the same time the best place to see celebrities come and die (See Woody Harrelson and the Rampart AMA), it’s also a cool place to see pictures of cats. The Reddit API is dead simple to use too, just add .json onto the end of a URL and you’ll get raw JSON data in return.
Most social sites have these APIs ready to be used today and if you wanted to keep track of any social news surrounding your brand, business or general network, rather than having several applications tracking talk, you could build one application that mashes all of these together and give you up to the second/minute information you need.
So, these are some of my favourite APIs that I like to play with. What are your favourites? What are your favourite mash-ups? What services would you like to see an open API for in the future?

Nice post Shaun. I've been eyeing up JSON a lot recently and can't wait to start interacting with some services to see what happens. Have you got any good resources for picking up some essential skills?
- spam
- offensive
- disagree
- off topic
Like