An application programming interface (API) is a protocol intended to be used as an Interface (computing)|interface by software components to communicate with each other. An API may include specifications for subroutine|routines, data structures, Class (computer programming)|object classes, and variables.
An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the Library (computing)|libraries of a programming language, e.g. Standard Template Library in C++ or Java API. Gartner predicts that by 2014 75% of Fortune 500 enterprises will open an API.
An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is a binary interface. For instance POSIX is an API, while the Linux Standard Base is an ABI.