Une interface de programmation (Application Programming Interface ou API) est une interface fournie par un programme informatique. Elle permet l'interaction des programmes les uns avec les autres de manière analogue à une interface homme-machine rend possible l'interaction entre un homme et une machine.
Du point de vue technique une API est un ensemble de fonctions, procédures ou classes mises à disposition par une bibliothèque logicielle, un système d'exploitation ou un service. 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 (ou implémentation). 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.
Les interfaces de programmation peuvent véhiculer des métadonnées.
Les interfaces de programmation peuvent avoir plusieurs fonctions. Par exemple, dans J2EE, on trouve les fonctions suivantes :
Des API peuvent servir à simplifier l'accès à d'autres API