I love Instapaper. Blah blah blah — you all know that by now. But today developer Marco Arment has released something significant that could alter the way the service is used: a full API. And perhaps even more interesting is how he’s released it.
In his blog post on the matter, Arment dives into his tough decision making process when it comes to the API. The main problem is that unlike a lot of startups, Instapaper has taken no funding so they have to be profitable each month or they’ll go out of business. That makes an API hard because the core idea behind it is usually to allow people to use your service (including your servers) without actually visiting your ad-driven site and/or paying for your app. So Arment had to come up with a solution.
The obvious choice would have been to either limit the API or charge for it. But neither of those are very appealing options to Arment. Limiting the API leads to half-baked, “fragile” apps, as he calls them. Charging developers for API access or taking a cut of their app sales is tricky from a financial perspective, he notes.
Instead, Arment came up with a smart third way of doing things. Thanks to the subscription test feature Instapaper launched in October of last year, Arment has a way to get paid for API usage — sort of. You see, the only way users of any service can get access to the Instapaper API is if they’re paying the $1-a-month subscription fee. In other words, Arment has just ensured that he gets directly paid for people hitting his API. And he has just given plenty of users a reason to subscribe. Smart.
Arment also uses his post to introduce the first app using the full Instapaper API: Stacks for Instapaper. It’s a Windows Phone Instapaper client created by a third-party developer. Again, this shows why this idea is so brilliant. This will allow for all the different mobile platforms to now have their own Instapaper apps (officialy, it’s still iOS-only) — but all those users will have to be Instapaper subscribers in order to use them.
You can find Instapaper’s API documentation here.