Application programming interface/Definition

A set of conventions, specific to a programming language, by which a user application program written for a specific purpose communicates with software infrastructure such as the operating system or web services