Popular iPhone photo-sharing app Instagram is a prime candidate for an API, which is probably why it already has one. Though documentation refers to it as an "unofficial" Instagram API, the fact that it uses the company's own servers makes it seem pretty official. Instagram has not launched the API, nor is an API linked from its home page. Yet, it has a mobile app and right column Twitter integration, both of which likely consume the API.
To create Twin, a Ruby library that wraps your app in a Twitter API, I had to monitor my iPhone's HTTP traffic to figure out which resources does the Twitter app consume. While doing this, it occurred to me that I can figure out the unpublished Instagram API in the same go.
An Instagram API has been high on developer lists since the service's rise to popularity. Two months ago Instagram co-founder Kevin Systrom said in a Get Satisfaction thread that the company doesn't yet have an API. "We're planning on having one sometime in the not so distant future," Systrom said.
When Twitter became a giant mashup we wondered whether the right column will become developer territory. Since then, Twitter has expanded its selection of companies with embeddable content, probably based on the URLs being shared. Instagram is now included in the right column and it also recently was added to TweetDeck Android.
Any iPhone app that exchanges data needs some set of APIs. Whether a company chooses to expose that API is a completely separate issue. As Marohnić showed, outside parties can document an API, but that does not mean any developer could use any iPhone API. For example, Instagram does not currently go to any effort to lock down its API. For example, it could tie a user to a specific device ID or use shared secret keys.
Since the methods were harvested from the iPhone app, the current Instagram API has all the functionality of the app. It provides access to authentication, user details, the social network, image metadata, embed info and more. You can even use the API to upload new media.
There are always trade-offs to consider when using any API. Will the company still be around in a year? How committed is that company to this API? When dealing with unofficial APIs, even from big companies (see Google's Secret Weather API), it's even touchier. If you like living on the edge, we list five unofficial APIs. For now, that includes Instagram.