In computer programming, an Application Programming Interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables or remote calls. POSIX, Microsoft Windows API, the C++ Standard Template Library and Java APIs are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage.
As an example we can mention that when you install the Java Runtime or Development Kit, you get access to a lot of predefined classes, necessary to write and run Java programs. This collection of classes are often called the Java API.
It is common to use also third-party-APIs (third-party meaning "written by someone else than yourself or the supplier of Java).