An application programming interface (API) is a source code interface that an operating system or library provides to support requests for services to be made of it by computer programs.
Advanced Programming Interface (API) is a near synonym with wider application that predates the current common usage.
In the original term the concept is meant to represent any well defined interface between two separate programs.
The main difference is that this older term does not inculcate a parent-child relationship and can therefore be applied to peer-to-peer situations more logically, e.g. internal kernel services which can present themselves as separate programs.
An API is similar to an application binary interface (ABI) in that both specify details of how two independent computer programs can interact. However, an API is typically defined at a higher level (i.e., in terms of a programming language that can be compiled when an application is built, rather than an explicit low level description of how data is laid out in memory).
For example, the Linux Standard Base is an ABI, while POSIX is an API
For the rest of the Wikipedia entry on the above term, go here.