Application Programming Interface

(1) An application programming interface or API is an interface that an executable program of any sort offers to other software. This is primarily intended to offer software developers the capabilities of a certain program, or a subset thereof, for use in their own software. But this can also be the other way around, with an API designed in such as way that it is only useable to create extensions of the capabilities of a certain product (plugins etc). Note that not all applications will have a programming interface, while all operating systems do.

These can be almost endless depending on the needs of the users, the functionality of the executable: Is it an operating system, a driver, a utility program or application software, and so on. But a few common examples are shown here
 * Types of an application programming interface
 * The simple operating system
 * This sort of a system offers programmers some standard API functions, primarily to do with I/O such as disk and port interfaces and it means that a programmer can write I/O functions without having to worry about the low level functionality of the hardware but all other functions must be explicitly address hardware directly. These sort of OS's are rare these days but exist as embedded systems.

(2) A functional interface supplied by the operating system, or by a separately-orderable licensed program, that allows an application program written in a high-level language to use specific data or functions of the operating system or the licensed program.