An API is a way for website or service to talk to another website or service. APIs let you mix information and media from other services into your own site or application.
API stands for ‘application programming interface’ but it is best explained by looking at an example:
The folks at Yelp let their users review and rate a city’s services, restaurants, massage therapists, doctors… just about anything. They’ve taken all these reviews and mapped them to a map of that city. In the example above, San Francisco.
Now, Yelp could have created their own set of maps and optimized a server to serve those maps quickly and easily. But they realized that the eggheads at Google had already done that with the Google Maps service. Since Google Maps has an API, the folks at Yelp are able to take their data and layer it on top of a Google Map.
The Google Maps API allows Yelp to grab the maps and serve them up and mix in the information without Google having to worry about the security of their servers or systems. The APIs limit what can be done, what can be requested and who can see what.
Let’s take another example:
Twitter had massive success early on because they launched the service with a detailed and open API. This meant anybody could build applications or sites that allowed them to send messages into the Twitter ecosystem. They kept their site and service super-simple and super-slim: a white box and a submit button. Then a small army of developers started building dozens of applications that sit on top of the Twitter API to do things like send photos, make videos, manage groups and just about anything else you could think of. So when you TweetDeck or Twitterific or TwitPic, these apps are connecting to Twitter through its API.
The big benefit of APIs is that anybody can create applications built on top of these sites and services. They can mix, match and mash-up these different services into new applications that are beyond the original intent of the service providers. Often, APIs are ‘language independent’ so no matter what programming language a developer is using, they can still connect through the API. I wish I was skilled enough to take a look at this massive list of APIs and mix them into applications like these.
The drawbacks to APIs are that you are dependent on the API service provider. If Twitter disappeared, all those applications wouldn’t be able to connect through the API and would cease to be useful. Also, if you’re Twitter, you’ve got a city of developers who might be money on your service – and you can charge for access to the API (Google and Amazon do) but you might lose your developer community. Also if you’re the provider of the API you have to have the staff and data centers to handle your normal customers along with those coming in via the API (along with staff spending time documenting and creating APIs for customers that may not be your core audience).