Often referred to as application programming interface or simple API, an application program interface is a collection of programming instructions and standards that enable computer programs to directly communicate with one another. Many software companies release their APIs to the public and allow developers to create applications powered by their service. A perfect example would be Microsoft’s DirectX, a set of APIs that enable developers to create games, multimedia features, and applications for the Windows operating system.
An application program interface is not a user interface, but a software-to-software interface. In fact, it allows programs to communicate with each other without any user knowledge or intervention. For example, when you buy concert tickets online with a credit card, the website uses an API to send your card data to a remote application that checks its validity. Once the payment has been confirmed, the application responds to the website giving it the okay to issue the tickets.
Application program interfaces designed to provide the fastest execution usually contain sets of procedures, functions, variables, and data structures. A complete API is often defined as one that provides an abstraction layer that prevents the developer from having to know how its function relates to the lower abstraction levels. This allows the programmer to enhance or redesign the functions within the API without breaking the code that needs it.
An application program interface is quite similar to Software-as-a-Service (SaaS). This is mainly because programmers do not have to start from scratch every time they write an application. Rather than scripting one core program designed to handle everything, the same program can outsource certain responsibilities to other applications capable of doing the job much better. This makes the API very useful for integrating with a website and various web applications.
The application program interface has become an integral part of Web 2.0 and the social networking phenomenon. Several popular communities use it to share content under an open architecture. Users can share comments, photos, videos, and all sorts of information with outside applications, utilizing an open API to deliver new functionality to their community. Two classic examples of APIs that enable this sharing are the Facebook Application Platform and Open Social platform.
Application program interfaces are provided by several big names, including Amazon®, eBay®, and Google™. When developed precisely and used correctly, these can benefit both the company providing the service and its users. Perhaps the biggest downside to APIs is that they are dependent on the providing service. For example, if Google Maps™ was discontinued, its application program interface would essentially be useless.