An application programming interface (API) is a set of protocols, routines, functions and/or commands that programmers use to facilitate interaction between distinct software services.
APIs allow one software service to access data from another software service without the developer's needing to know how the other service works. For example, the U.S. Postal Service’s Open APIs allow e-commerce developers to add package tracking to their websites so customers know when to expect delivery.
An API can be seen as composed of two fundamental elements: a technical specification that establishes how information can be exchanged between programs (which itself is made up of request for processing and data delivery protocols) and a software interface that somehow publishes that specification. Although APIs can work with any common programming language, the most popular approach to delivering web APIs is REST (REpresentational State Transfer). A RESTful API architecture uses HTTP coding for much of its functionality.