[[File:Database management system diagram from 1978 workshop.png|thumb|alt=Application programmingProgramming interfaceInterface|Application programmingProgramming interfaceInterface]]
In un [[programma (informatica)|programma informatico]], con '''applicationApplication programmingProgramming interfaceInterface'''<ref>In [[Lingua italiana|italiano]] "interfaccia di programmazione di applicazione".</ref> ('''API''') si indica un insieme di [[funzione (informatica)|procedure]] (in genere raggruppate per strumenti specifici) atte all'espletamento di un dato compito; spesso tale termine designa le [[Libreria (software)|librerie software]] di un [[linguaggio di programmazione]]<ref>{{cita web|https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/com-interop/walkthrough-calling-windows-apis|titolo=Walkthrough: Calling Windows API (Visual Basic)|sito=Docs.Microsoft.com|lingua=en|data=20 luglio 2015|accesso=13 febbraio 2019}}</ref>.
== Caratteristiche ==
Esistono vari [[design model]] per le API. Le interfacce intese per la massima velocità di esecuzione spesso consistono in una serie di [[Subroutine|funzioni]], [[Funzione (informatica)|procedure]], [[variabile (informatica)|variabili]] e [[struttura dati|strutture dati]]. Esistono anche altri modelli come gli [[interprete (software)|interpreti]] usati per valutare le espressioni come con [[ECMAScript]]/[[JavaScript]]. Una buona API fornisce una "scatola nera", cioè un livello di astrazione che permette al programmatore di evitare di conoscere il funzionamento delle API ad un livello più basso. Questo permette di riprogettare o migliorare le funzioni all'interno dell'API senza cambiare il codice che si affida ad essa.
Esistono due linee di condotta per quanto riguarda la pubblicazione delle API: