What is an API?

API stands for application programming interface. It is software that allows different computer programs to communicate and interact together. It can be helpful because it might help shorten project development time, open up features to third-party developers, and much more.

Most API's have a library of functions. These functions can be called from a program in order to perform some routine tasks. Each function may need to pass some variables, object classes, and more. Some of these are very simple to use, but some are almost as difficult to learn to use as learning to write in a new programming language. In either case, it is essential to provide good documentation to reduce the learning curve and, of course, emails and calls to the help desk.

The API does not always even need to be written in the same language as the calling program. Some API developers even supply a simple command language that simplifies using different functions.

To understand this better, it might be helpful to consider a popular example. Amazon is a large eCommerce website that encourages other site owners to use some of their information as content on their own site. In fact, other site owners can even join the Amazon affiliate program for a chance to make money by using Amazon's data in a way that might encourage visitors to purchase something.

Amazon provides some very simple commands, and complete documentation, so other website owners can pull data in different formats without having to know any of the complexities of the code that runs the Amazon website. If a site owner runs a site that showcases popular books in one specific genre, for example, there are simple commands that can pull up recent best sellers. The API allows the site owner to display descriptions, prices, and even graphics. This is a very handy way to make use of the data without knowing how to actually write software.

It is important to understand that the interface, or API, is not the code that actually performs the desired functions. It simply serves as an interface between the functions and other code.

In fact, even casual Internet users might make use of these interfaces every day without even realizing it. Have you ever found a photo on a website that you want to share on Facebook or another social network? If so, you might be able to share the picture by simply clicking a "Share" button. However, this actually works because there is an interface in place between the site with the original picture and the social network.

The share button starts a script that passes information to the social network's own API. This is what allows dynamically generated content to populated content to be transferred from one site to another.

Many sites make these APIs available to third-party users. It helps them increase their own content and site interaction. While the actual code that runs a huge social networking website like Facebook is very complex, the interface is usually fairly simple to understand. This is because these social networks want to encourage development and exposure through their API libraries.

Of course, you can find API systems that are much more complex, and these are meant for highly trained software engineers to use. But hopefully these simple examples gave you a better idea of what application development interfaces (API) are, and how you might make use of them. This is true if you have your own software, and you want to encourage others to use it. It is also true if you want to use somebody else's code.