What Does Application Programming Interface (API) Mean?
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.
Techopedia Explains Application Programming Interface (API)
The basic concept behind the API has existed in some form for the entire history of digital technology, as the interaction between unique programs and digital systems has been a primary objective for much of that technology's existence. But with the rise of the world wide web, and the subsequent turn-of-the-millennium dot-com boom, the incentive for this technology reached an unprecedented level.
The API became especially prominent in the burgeoning commercial sector of the world wide web in early 2000, when Salesforce.com incorporated the technology into its platform in order to help customers share and transmit data over their diverse business applications. Soon after that, eBay began rolling out similar technology, and with the rise of social media a few years later, companies like Flickr, Facebook, Twitter and Instagram began doing the same.
APIs are available for both desktop and mobile use, and are useful for programming GUI (graphic user interface) components, as well as allowing one software program to request and accommodate services from another program.