What is an API?

An API -- Application Programming Interface -- at its most basic level, allows your product or service to talk to other products or services. In this way, an API allows you to open up data and functionality to other developers and to other businesses. It is increasingly the way in which companies exchange data and services, both internally and externally.

What are APIs used for?

APIs are launched primarily to give partners that are outside the company "firewall" access to data and resources. But recently, APIs are also being used by more and more of the general public, including non-developers. As APIs' ease-of-use and popularity increases -- and as APIs demonstrate their value and deliver efficiencies -- many companies have begun to consume their own APIs to build internal systems, websites, and mobile apps using the same APIs that they make available to third-party developers and to the public.

Why do you need an API?

An API is the cornerstone of what's known as BizDev 2.0. In other words, having a well-developed API is poised to be the way in which business development happens.  A decade ago, businesses were still working to understand the importance of having a website. Today, businesses need to understand the importance of the API.

History of modern web APIs

APIs have been around since the 1980s, when they were used in hardware and software development.  However, the history of the modern Web API is fairly short -- just a little over ten years.  There are several pioneers of Web APIs, and while they didn't necessarily invent any of the technologies at play here, they did popularize their usage and establish some of the common practices.

Many of these pioneers have shaped the way in which we develop, deploy, consume, and support APIs, sparking a lot of innovation within the API space in the last decade.  

What technology goes into an API?

APIs are driven by a set of specific technologies, making them easily understood by developers.  This type of standardization means that APIs can work with common programming languages.  There are two major approaches to delivering APIs:  

Since REST takes advantage of the same Internet mechanisms that are used to view regular web pages it has an advantage over SOAP, resulting in faster implementations and easier for developers to understand.  REST APIs allow you to take data and functionality available on your website and make these resources available through a Web API.  Then, instead of returning HTML to represent these resources, the API returns data in one of two possible formats:

Developers can then take this data and use in web and mobile applications.  However XML and JSON are easily consumed by spreadsheets and other tools non-developers can use as well, making APIs accessible by anyone.  

Easy access to all this data and resources is great, but sometimes we need to control acess to APIs, there are two primary ways to provide authentication to an API:

REST with JSON has become the favorite of developers and API owners, because it is easier to both deploy and consume then other implementations. Even though REST + JSON is not a standard, it is seeing wide acceptance across the industry.

Essential building blocks for a successful API

After reviewing 100+ of the most popular APIs you start to notice common set of building blocks that are essential to API adoption.  Here is a list of the most common building blocks for API areas:

  • Overview
  • Getting Started
  • API Reference / Documentation
  • Code Samples
  • Blog
  • Forum
  • FAQ
  • Pricing
  • Terms and Conditions
  • Self-Service Registration

API pioneers like Ebay, Salesforce, Flickr, and Google have established a common set of essential API building blocks through trial and error over the last decade.

Tools to Launch and Manage Your API

As the number of APIs grow, so do the number of approaches in delivering an API.  There are a number of open-source tools specifically designed for APIs:

  • REST API Frameworks
  • REST API Client Libraries
  • Testing and Documentation Tools

There are also a number of open-source tools designed for a wider purpose, but can easily be adapted for specific API building blocks:

  • Forums
  • Blogging
  • Metrics and Analytics

Service Providers to Help You Manage Your API

These are the handful of API service providers I am tracking on with API Evangelist.  Service providers offer software, technical, marketing, legal and other types of services to API owners and developers.

There are some dedicated to API management:

With some newer players:

Also service providers who focus on specific building blocks for your API:

  • Forums
  • App Showcase
  • Blogging

Overall there are gaps in services being offered for API owners. 

Developing an API Ecosystem

An API starts with the desire to share data or resources that a company offers.  It's built with technologies like REST, XML, and JSON, and supported through documentation, along with a handful of code samples to show how to use it.

An API and its supporting developer area are created.  And then, what's next?  How does a simple API area build community?  How does it evolve into a thriving ecosystem like Facebook’s of Foursquare's?

It all starts with developers.  Giving developers a self-service, resource-rich environment where they have the spotlight and a voice will encourage them in turn to contribute to the API community.

An API owner has to support its API's community, be proactive about reaching out to its community and know what it needs.  API support needs to be available in basic forms like a forum, but also there needs to be ways for partners and developers to pay for support and receive premium attention as well.

Resources for developers need to be abundant and well organized.  Common resources like blogs, forum, and FAQs are necessary.   Tutorials, case studies and "How To’s" can take things even further.  

Support and resources can create a positive feedback loop among developers and encourage activity that will ideally spread to other users.

Developers can’t be expected to visit an API area regularly, so an API community needs to extend its reach to existing social network and developer communities including Twitter, LinkedIn, Github, and Stack Exchange.

Even more than just a presence on these social networks, an API needs to have an offline presence too -- something that can be accomplished by attending conferences, meet-ups, and hackathons, for example.   These activities will only serve to strengthen the API community.