Une interface de programmation (Application Programming Interface ou API) permet de définir la manière dont un composant informatique peut communiquer avec un autre. C'est donc une interface de code source fournie par un système informatique ou une bibliothèque logicielle, en vue de répondre à des requêtes pour des services qu'un programme informatique pourrait lui faire. La connaissance des API est indispensable à l'interopérabilité entre les composants logiciels.
Dans le cas typique d'une bibliothèque, il s'agit généralement de fonctions considérées comme utiles pour d'autres composants.
Une interface en tant que telle est quelque chose d'abstrait ; les composants réalisant celle-ci étant des mises en œuvre. Idéalement il peut y avoir plusieurs mises en œuvre pour une même interface. Par exemple, sous UNIX, la libc définit des fonctions de base utilisées par pratiquement tous les programmes et est fournie par des mises en œuvre propriétaires ou libres, sous différents systèmes d'exploitation.
Une interface communément utilisée peut parfois devenir une norme. La libc est par exemple une norme POSIX.
Il existe des API pour :
Les interfaces de programmation peuvent avoir plusieurs fonctions. Par exemple, dans J2EE, on trouve les fonctions suivantes :
Les interfaces de programmation peuvent véhiculer des métadonnées.