Een application programming interface, afgekort tot API, is een verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma of onderdeel, meestal in de vorm van bibliotheken. API's zijn vaak de scheiding tussen verschillende lagen van abstractie, zodat applicaties op een hoog niveau van abstractie kunnen werken en het minder abstracte werk uitbesteden aan andere programma's. Hierdoor hoeft bijvoorbeeld een tekenprogramma niet te weten hoe het de printer moet aansturen, maar roept het daarvoor een gespecialiseerd stuk software aan in een bibliotheek, via een afdruk-API.
Het verschil met een stuurprogramma is dat deze niet bedoeld is om direct gebruikt te worden door applicaties, maar enkel door de kernel van een besturingssysteem. Een besturingssysteem biedt de functionaliteit van soortgelijke stuurprogramma's aan als API.
Algemeen
Een API definieert de toegang tot de functionaliteit die erachter schuil gaat. De buitenwereld kent geen details van de functionaliteit of implementatie, maar kan dankzij de API die functionaliteit wel gebruiken. Een voordeel hiervan is dat met een API verschillende implementaties kunnen worden gebruikt, zolang deze maar voldoen aan de API. Een voorbeeld is de Windows API. De onderliggende implementatie kan per machine verschillen, zonder dat de applicatie dit eigenlijk merkt: zowel Windows 98 als XP werkten met de Win32-API.
Een API kan in een interface description language worden geschreven. Dit wordt vooral gebruikt als meer programmeertalen van dezelfde API gebruik moeten maken of als er wordt gewerkt met een componentensysteem, zoals COM of XPCOM.
Bibliotheek wordt soms als synoniem voor API gebruikt, maar dit is niet helemaal juist: een API vormt de toegang tot de bibliotheek. De API is daarbij de definitie van functies en andere objecten die in de bibliotheek beschikbaar zijn voor de applicatie.
API's voor websites
Het is steeds gebruikelijker dat ook websites over een publieke open API beschikken. Deze kunnen dan met methodes als REST, SOAP, GraphQL, RSS of XML/RPC worden aangesproken. Het formaat dat wordt teruggestuurd is dan bijvoorbeeld XML of JSON. Door een dergelijke API beschikbaar te stellen is het mogelijk om een mashup te maken, zoals een combinatie van de kaarten van Google Maps met de foto's van Panoramio. Dergelijke toepassingen zijn typisch voor Web 2.0 en open data worden doorgaans via een API ter beschikking gesteld.
Wanneer een website geen API aanbiedt, kan men nog proberen de gegevens door scrapen te verzamelen.