Everyone knows that saying “you get what you pay for”. So when we start using any one of the hundreds of web based APIs for free what sort of assumptions can we make about it? For instance:

  • How long will it be around?
  • If it changes how will I be notified so I can change and test the code in my application?
  • What if my application receives so many hits that it overwhelms the server I am mashing up to?
  • Can I realistically use this API (which will solve all my problems and cost me nothing) in my application?

While I have played with a few of the available APIs I find it very difficult to consider using them in any of my applications. And this includes applications I am architecting for my employer as well as some of my smaller, non-profit community applications I am building in my spare time.

My concern is that someone offering web services, data and an API at no cost has no real obligation to me as the consumer of that information. While it is in the best interest of some of the larger players to maintain their API (think Amazon, eBay, etc) the smaller organizations could decide to take down their provision at any time if they feel they are not getting anything back from it or perhaps their limited bandwidth is being exceeded. At the minimum this could result in a severe disruption in service for my users. For that matter, how can I make any statement of service or availability to my users if I am depending upon external services themselves not providing this statement.

Perhaps we need to see an emergence of a standard SLA that gets published much the same way a privacy statement is. If the provider of the API communicates their intended service level then consumers of that API can make a more informed decision. Unfortunately, I think the type of information that would need to be disclosed would often be considered confidential and proprietary.