Eine Application Programming Interface (API) ist eine Verbindung zwischen Computern oder zwischen Computerprogrammen. Sie ist eine Art Softwareschnittstelle, die einen Dienst für andere Software anbietet. Ein Dokument oder ein Standard, in dem beschrieben wird, wie eine solche Verbindung oder Schnittstelle aufgebaut oder verwendet werden kann, wird als API-Spezifikation bezeichnet. Ein Computersystem, das diese Norm erfüllt, implementiert oder stellt eine API zur Verfügung. Der Begriff API kann sich entweder auf die Spezifikation oder auf die Implementierung beziehen.
Im Gegensatz zu einer Benutzerschnittstelle, die einen Computer mit einer Person verbindet, verbindet eine Anwendungsprogrammierschnittstelle (API) Computer oder Softwareteile miteinander. Sie ist nicht dafür gedacht, direkt von einer Person (dem Endbenutzer) verwendet zu werden, sondern nur von einem Computerprogrammierer, der sie in einem Softwarekonzept verwendet. Eine API besteht oft aus verschiedenen Teilen, die dem Programmierer als Werkzeuge oder Dienste zur Verfügung stehen. Ein Programm oder ein Programmierer, der einen dieser Teile verwendet, ruft diesen Teil der API auf (auch API-Aufrufe oder API-Calls genannt). Die Aufrufe, aus denen die API besteht, werden auch als Unterprogramme, Methoden, Anfragen oder Endpunkte bezeichnet. Eine API-Spezifikation definiert diese Aufrufe, d. h. sie erklärt, wie sie zu verwenden oder zu implementieren sind.
Ein Zweck von APIs ist es, die internen Details der Funktionsweise eines Systems zu verbergen, indem nur die Teile offengelegt werden, die für den Programmierer nützlich sind, und diese konsistent zu halten, auch wenn sich die internen Details später ändern. Eine API kann für ein bestimmtes Systempaar maßgeschneidert sein, oder sie kann ein gemeinsamer Standard sein, der die Interoperabilität zwischen vielen Systemen ermöglicht.
Der Begriff API wird häufig im Zusammenhang mit Web-APIs verwendet, die die Kommunikation zwischen Computern ermöglichen, die über das Internet miteinander verbunden sind. Es gibt auch APIs für Programmiersprachen, Softwarebibliotheken, Computerbetriebssysteme und Computerhardware.