API c'est quoi : la définition en clair
Une API décrit ce qu'un programme accepte de faire pour un autre programme, et comment le lui demander. Le mot important est « interface » : la frontiÚre entre deux logiciels. D'un cÎté, celui qui appelle (le client) ; de l'autre, celui qui répond (un serveur, une bibliothÚque ou le systÚme d'exploitation).
L'analogie de la prise électrique. Pour brancher une lampe, vous n'avez pas besoin de savoir comment fonctionne la centrale : il suffit que la prise respecte une forme et une tension connues. Une API joue ce rÎle. Elle fixe la forme de l'échange et cache tout le reste.
Ce qu'une API apporte, concrÚtement :
- Réutiliser au lieu de refaire. Un site de location n'écrit pas son propre service de cartes, il appelle celui d'un spécialiste.
- Séparer les équipes. L'application mobile et le serveur évoluent chacun de leur cÎté tant que le contrat ne change pas.
- ContrÎler l'accÚs. L'éditeur expose seulement ce qu'il veut, à qui il veut, au rythme qu'il fixe.
Une API n'est pas un logiciel que l'on installe : c'est une description, servie par un programme qui la respecte.
RequĂȘte et rĂ©ponse : comment fonctionne une API web
Une API web s'utilise par des messages HTTP, le protocole de votre navigateur. Le client envoie une requĂȘte, le serveur renvoie une rĂ©ponse. Le sens de ces messages est fixĂ© par la RFC 9110 de l'IETF, « HTTP Semantics », publiĂ©e en 2022.
Une requĂȘte contient quatre Ă©lĂ©ments :
-
La méthode, qui dit l'intention :
GETpour lire,POSTpour créer,PUTouPATCHpour modifier,DELETEpour supprimer. -
L'adresse (URL). La partie qui désigne une ressource précise s'appelle un endpoint, par exemple
/users/octocat. Les paramĂštres aprĂšs le?affinent la requĂȘte. - Les en-tĂȘtes (headers) : format acceptĂ©, clĂ© d'authentification, version de l'API.
- Le corps (body), facultatif, qui transporte les données envoyées, le plus souvent en JSON, un format texte normalisé par la RFC 8259.
La rĂ©ponse a la mĂȘme structure, avec en tĂȘte un code de statut Ă trois chiffres. Le premier chiffre suffit pour savoir ce qui s'est passé :
| Famille | Sens | Exemples courants |
|---|---|---|
| 2xx | SuccĂšs | 200 OK, 201 Created, 204 No Content |
| 3xx | Redirection | 301 Moved Permanently, 304 Not Modified |
| 4xx | Erreur du client | 400 Bad Request, 401 Unauthorized, 404 Not Found, 429 Too Many Requests |
| 5xx | Erreur du serveur | 500 Internal Server Error, 503 Service Unavailable |
Ces codes viennent de la RFC 9110, sauf 429, dĂ©fini par la RFC 6585. La rĂ©fĂ©rence de MDN les dĂ©taille en français. RĂšgle pratique : un 4xx signifie que la requĂȘte est Ă corriger, un 5xx que le problĂšme est chez le fournisseur.
Essayez maintenant : trois API publiques sans compte
Les trois API ci-dessous répondent sans inscription ni clé. Il suffit d'un terminal avec curl, présent sur macOS, sur la plupart des distributions Linux et, selon Microsoft, inclus avec Windows. Les sorties sont celles obtenues le 5 novembre 2026 sous Git Bash.
Sous Windows, tapez curl.exe au lieu de curl dans PowerShell : dans Windows PowerShell 5.1, curl est un alias d'Invoke-WebRequest, une autre commande aux paramÚtres différents. Vous pouvez aussi utiliser l'Invite de commandes. Les commandes qui contiennent des apostrophes plus bas (-d '...', node -e '...') sont écrites pour un terminal macOS, Linux ou Git Bash ; sous Windows, enregistrez le code JavaScript dans un fichier appel.js et lancez node appel.js.
1. L'API GitHub : lire un profil public
curl -i https://api.github.com/users/octocat
Réponse reçue le 5 novembre 2026 (extrait) :
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
"login": "octocat",
"name": "The Octocat",
"public_repos": 8,
"followers": 24941,
"created_at": "2011-01-25T18:44:36Z"
}
L'option -i affiche les en-tĂȘtes : code 200, format JSON, et une limite de 60 appels dont 59 restants. Le nombre d'abonnĂ©s Ă©volue chaque jour.
Demandez ensuite un utilisateur qui n'existe pas, puis une action qui exige d'ĂȘtre connecté :
$ curl -i https://api.github.com/users/cet-utilisateur-nexiste-pas-404xyz
HTTP/1.1 404 Not Found
{
"message": "Not Found",
"documentation_url": "https://docs.github.com/rest",
"status": "404"
}
$ curl -i -X POST https://api.github.com/user/repos -d '{"name":"test"}'
HTTP/1.1 401 Unauthorized
{
"message": "Requires authentication",
"documentation_url": "https://docs.github.com/rest",
"status": "401"
}
Les en-tĂȘtes de ces deux rĂ©ponses sont omis.
Deux erreurs 4xx, chacune avec un message lisible : le comportement d'une API bien conçue.
2. Le géocodage de la Géoplateforme : d'une adresse à des coordonnées
L'Ătat publie une API qui transforme une adresse en coordonnĂ©es Ă partir de la Base Adresse Nationale. Sa fiche sur data.gouv.fr la prĂ©sente comme ouverte, produite par l'IGN, et limitĂ©e Ă 50 appels par seconde par adresse IP (consultĂ©e le 5 novembre 2026).
curl "https://data.geopf.fr/geocodage/search/?q=8+bd+du+port+amiens&limit=1"
Réponse reçue le 5 novembre 2026 (extrait) :
{
"type": "FeatureCollection",
"features": [{
"geometry": { "type": "Point", "coordinates": [2.290084, 49.897442] },
"properties": {
"label": "8 Boulevard du Port 80000 Amiens",
"score": 0.5965941258741259,
"postcode": "80000",
"citycode": "80021",
"context": "80, Somme, Hauts-de-France"
}
}],
"query": "8 bd du port amiens"
}
Une saisie approximative (« bd ») donne une adresse normalisée, ses coordonnées (longitude puis latitude) et un score de confiance. L'endpoint /reverse/?lon=2.3488&lat=48.8534 fait l'inverse : nous avons obtenu le libellé « Parvis Notre-Dame Place Jean-Paul II 75004 Paris,Paris 4e Arrondissement ». Avec un paramÚtre q vide (/search/?q=), l'API répond par une erreur 400 :
$ curl -i "https://data.geopf.fr/geocodage/search/?q="
HTTP/1.1 400 Bad Request
{"code":400,"message":"Failed parsing query","detail":["q: required param"]}
3. L'API Découpage administratif : une commune et sa population
curl "https://geo.api.gouv.fr/communes?nom=Amiens&fields=nom,code,codesPostaux,population&limit=1"
Réponse reçue le 5 novembre 2026 :
[{"nom":"Amiens","code":"80021","codesPostaux":["80000","80080","80090"],"population":136449,"_score":1}]
Le paramĂštre fields choisit les champs renvoyĂ©s. Le code INSEE de la commune, 80021, est le mĂȘme que dans la rĂ©ponse de gĂ©ocodage : deux API diffĂ©rentes partagent un identifiant officiel, ce qui permet de croiser leurs donnĂ©es.
Le mĂȘme appel depuis un programme
Dans un projet, l'appel part d'un programme. Voici la troisiĂšme requĂȘte en Python, avec la seule bibliothĂšque standard :
import json
import urllib.request
url = "https://geo.api.gouv.fr/communes?nom=Amiens&fields=nom,population&limit=1"
with urllib.request.urlopen(url, timeout=10) as reponse:
print(reponse.status)
communes = json.load(reponse)
print(communes[0]["nom"], communes[0]["population"])
ExĂ©cutĂ© le 5 novembre 2026 avec Python 3.11, ce script a affichĂ© 200 puis Amiens 136449. En JavaScript, fetch fait le mĂȘme travail ; il renvoie une promesse qu'on enchaĂźne avec then. Voici l'appel Ă l'API GitHub que nous avons lancĂ© sous Node.js 22 :
node -e 'fetch("https://api.github.com/users/octocat").then(r=>{console.log(r.status);return r.json()}).then(u=>console.log(u.name, u.public_repos))'
Il a affiché 200 puis The Octocat 8. Pour débuter dans ces langages, voyez nos guides pour apprendre Python et apprendre JavaScript.
Les différents types d'API
Le mot API couvre bien plus que les services web. Les API web, appelées à travers le réseau, suivent plusieurs styles :
| Style | Principe | Format courant | Cas d'usage typique |
|---|---|---|---|
| REST | Des ressources désignées par des URL, manipulées avec les méthodes HTTP | JSON | API publiques, applications web et mobiles |
| GraphQL | Un seul point d'entrĂ©e ; le client dĂ©crit exactement les champs voulus | JSON | Ăcrans qui assemblent beaucoup de donnĂ©es |
| gRPC | Appel de fonctions distantes, contrat décrit dans un fichier .proto
|
Protocol Buffers (binaire) | Ăchanges entre microservices |
| Webhooks | Le serveur vous appelle quand un événement survient | JSON | Paiement validé, commit poussé |
| SOAP | Messages XML et contrat WSDL | XML | SystĂšmes historiques |
Les descriptions de GraphQL et gRPC suivent leurs sites officiels (GraphQL, gRPC). Ces styles se combinent : une entreprise expose souvent une API REST au public et utilise gRPC en interne.
Pour mesurer leur poids, la seule enquĂȘte rĂ©cente trouvĂ©e est celle de Postman, un Ă©diteur d'outils pour API : c'est une enquĂȘte de fournisseur, auprĂšs de son public. Son rapport 2025 interroge plus de 5 700 dĂ©veloppeurs, architectes et dirigeants dans le monde. REST y est utilisĂ© par 93 % des rĂ©pondants, les webhooks par 50 %, les WebSockets par 35 % et GraphQL par 33 % (Postman, State of the API 2025, consultĂ© le 5 novembre 2026).
Hors du réseau, trois autres familles existent :
-
Les API de bibliothÚques : les fonctions qu'un module offre à votre code.
json.load()en Python utilise l'API du modulejson. - Les API du systĂšme d'exploitation : ouvrir un fichier, lancer un processus, afficher une fenĂȘtre, sans parler au matĂ©riel.
-
Les API du navigateur :
fetch, la géolocalisation, le stockage local ou le presse-papiers, offerts au JavaScript des pages. MDN en tient la liste.
REST expliqué simplement
REST organise une API web autour de ressources. Chaque chose manipulée (un utilisateur, une commande) a son adresse, et la méthode HTTP dit quoi en faire. Le terme vient de la thÚse de Roy Fielding, publiée en 2000.
Les conventions qui rendent une API REST lisible :
-
Des noms dans l'URL, pas des verbes.
GET /articles/42plutĂŽt que/getArticle?id=42. -
La méthode porte l'action.
POST /articlescrĂ©e,DELETE /articles/42supprime. - Des requĂȘtes sans Ă©tat. Chaque requĂȘte contient tout ce qu'il faut, authentification comprise.
- Des codes de statut justes. 201 aprÚs une création, 404 pour une ressource absente, comme l'API GitHub plus haut.
En pratique, « API REST » dĂ©signe toute API HTTP organisĂ©e en ressources et en JSON, mĂȘme quand elle ne respecte pas toutes les contraintes de Fielding. Pour construire votre propre API REST, notre tutoriel crĂ©er une API REST avec Node.js et Express avance pas Ă pas, routes, validation et tests compris.
Authentification : clés, jetons et OAuth 2.0
DÚs qu'une API touche à des données privées ou coûte de l'argent, elle doit savoir qui appelle : c'est le sens du 401 reçu plus haut. Trois mécanismes dominent :
| MĂ©canisme | Principe | OĂč on le rencontre |
|---|---|---|
| ClĂ© d'API | Une chaĂźne secrĂšte envoyĂ©e dans un en-tĂȘte Ă chaque appel | Cartes, mĂ©tĂ©o, modĂšles d'IA |
| Jeton (token) | Une preuve d'identité temporaire, souvent en Authorization: Bearer ...
|
Applications aprĂšs connexion |
| OAuth 2.0 | L'utilisateur autorise une application à agir pour lui, sans donner son mot de passe | « Autoriser l'accÚs à votre Google Drive » |
OAuth 2.0 est défini par la RFC 6749, publiée en octobre 2012. C'est lui qui affiche l'écran « Cette application souhaite accéder à ... ». Le bouton « Se connecter avec Google » relÚve d'une couche voisine, OpenID Connect, qui ajoute l'identification de l'utilisateur au-dessus d'OAuth 2.0 (spécification OpenID Connect Core).
Les rÚgles de base :
-
Jamais de clé dans le code. Rangez-la dans une variable d'environnement, par exemple dans un fichier
.envchargé au démarrage par votre programme, et ajoutez ce fichier au.gitignore. - Jamais de clé secrÚte dans le navigateur. Le JavaScript d'une page est lisible par le visiteur : passez par votre serveur.
- Le minimum de droits, par exemple un jeton en lecture seule, et toujours HTTPS.
- Protégez le compte qui délivre les clés avec la double authentification.
CÎté éditeur, l'OWASP publie les dix risques les plus fréquents pour les API, édition 2023. Le premier, « Broken Object Level Authorization », désigne une API qui renvoie l'objet demandé sans vérifier qu'il appartient à l'appelant (OWASP API Security Top 10 2023).
Limites de débit, versions et documentation
Une API publique est un service partagé : elle limite les appels, change de version avec précaution et se décrit dans une documentation.
Les limites de dĂ©bit. GitHub autorise 60 requĂȘtes par heure et par adresse IP sans authentification et 5 000 avec un jeton personnel ; au-delĂ , l'API rĂ©pond 403 ou 429 et il faut attendre l'heure de l'en-tĂȘte x-ratelimit-reset (documentation GitHub, consultĂ©e le 5 novembre 2026). Un programme correct lit ces en-tĂȘtes et ralentit avant d'ĂȘtre bloquĂ©.
Les versions. Modifier une API casse les programmes qui l'utilisent. GitHub choisit la version par l'en-tĂȘte X-GitHub-Api-Version : sans lui, c'est 2022-11-28 qui rĂ©pond, alors qu'une version 2026-03-10 existe. Une version reste prise en charge au moins 24 mois aprĂšs la sortie de la suivante, et la documentation fixe au 10 mars 2028 la fin de 2022-11-28 (documentation GitHub).
Notre essai a rĂ©vĂ©lĂ© un cas d'Ă©cole. L'ancienne adresse de l'API Adresse rĂ©pond toujours, mais ses en-tĂȘtes annoncent sa fin :
$ curl -i "https://api-adresse.data.gouv.fr/search/?q=8+bd+du+port+amiens&limit=1"
HTTP/1.1 200 OK
deprecation: Sat, 31 Jan 2026 22:59:59 GMT
sunset: Sat, 31 Jan 2026 22:59:59 GMT
x-api-new-host: https://data.geopf.fr/geocodage/
x-api-notice: L'URL api-adresse.data.gouv.fr va etre decommissionnee. Merci d'utiliser l'URL de la Geoplateforme https://data.geopf.fr/geocodage/
Les en-tĂȘtes Deprecation et Sunset sont normalisĂ©s par les RFC 9745 et 8594. Nuance : la RFC 9745, publiĂ©e en mars 2025, Ă©crit la date de Deprecation sous forme de nombre de secondes (@1688169599), alors que la GĂ©oplateforme envoie encore une date HTTP classique. Le 5 novembre 2026, la date de fin annoncĂ©e Ă©tait dĂ©passĂ©e de plus de neuf mois et le service rĂ©pondait encore, sans garantie pour demain. Si votre code utilise cette adresse, passez Ă data.geopf.fr/geocodage.
La documentation. Le format standard pour décrire une API HTTP est OpenAPI, dont la version 3.2.1 date du 10 septembre 2026 (spécification OpenAPI). Un fichier OpenAPI liste les endpoints, les paramÚtres, les réponses et l'authentification ; des outils en tirent une documentation interactive et du code client. La Géoplateforme publie le sien sur data.geopf.fr/geocodage/openapi.
Les API et l'intelligence artificielle
Les modĂšles de langage s'utilisent eux aussi par API. Une application qui intĂšgre ChatGPT, Claude ou Gemini envoie une requĂȘte POST avec une clĂ© d'API dans les en-tĂȘtes et la question dans un corps JSON, puis reçoit la rĂ©ponse en JSON. Codes de statut, limites de dĂ©bit et clĂ© Ă protĂ©ger s'appliquent comme ailleurs. MĂȘme un modĂšle local, avec Ollama, se pilote par une API.
L'IA appelle aussi des API à votre place. Un agent IA choisit un outil, et c'est un appel d'API qui l'exécute. Le Model Context Protocol (MCP) normalise ce branchement : selon sa spécification, version du 28 juillet 2026, il fait dialoguer en JSON-RPC 2.0 une application d'IA et des serveurs qui exposent des outils, des ressources et des prompts. Notre article sur le serveur MCP montre comment en écrire un.
L'enquĂȘte de Postman, avec la mĂȘme rĂ©serve que plus haut, donne la tendance : en 2025, 89 % des rĂ©pondants utilisaient l'IA mais 24 % seulement concevaient leurs API pour les agents ; 70 % connaissaient MCP et 10 % l'utilisaient rĂ©guliĂšrement (Postman, State of the API 2025).
Glossaire des API
| Terme | Définition courte |
|---|---|
| Endpoint | Une adresse précise de l'API, liée à une ressource |
| MĂ©thode | Le verbe de la requĂȘte : GET, POST, PUT, PATCH, DELETE |
| Corps (payload) | Les données transportées, souvent en JSON |
| Code de statut | Le nombre qui résume le résultat : 200, 404, 500 |
| Clé d'API | Un secret qui identifie l'application appelante |
| OAuth 2.0 | Protocole qui autorise une application Ă agir pour un utilisateur |
| Rate limit | Le nombre maximal d'appels sur une période |
| Webhook | Un appel que le serveur vous envoie lors d'un événement |
| OpenAPI | Le format standard de description d'une API HTTP |
Ce que nous n'avons pas pu vérifier
-
La date d'arrĂȘt rĂ©elle de
api-adresse.data.gouv.fr. Ses en-tĂȘtes annoncent le 31 janvier 2026, mais l'adresse rĂ©pondait le 5 novembre 2026. Ni la fiche data.gouv.fr ni le guide de la GĂ©oplateforme ne donnent de nouvelle date. - Le rapport 2026 de Postman. Une page existe, sans rĂ©sultat lisible ; les chiffres citĂ©s sont ceux de 2025.
- La portĂ©e de l'enquĂȘte Postman. Elle interroge le public d'un Ă©diteur d'outils pour API, pas l'ensemble des dĂ©veloppeurs, et gRPC n'y figure pas.
-
fetchdans un navigateur. Nous l'avons exécuté sous Node.js 22, pas dans une console de navigateur. - Les valeurs qui bougent : abonnés d'octocat, compteurs de limite de débit et scores de géocodage changent d'un appel à l'autre.
Questions fréquentes
API c'est quoi en français ?
API est le sigle anglais d'Application Programming Interface, traduit par « interface de programmation d'application ». C'est l'ensemble des rÚgles qui permettent à un logiciel de demander un service ou des données à un autre, sans connaßtre son fonctionnement interne.
Quel est un exemple simple d'API ?
La commande curl "https://geo.api.gouv.fr/communes?nom=Amiens&fields=nom,population&limit=1" (curl.exe sous Windows PowerShell) interroge une API publique de l'Ătat et renvoie la population de la commune en JSON : 136 449 habitants pour Amiens le 5 novembre 2026, sans compte ni clĂ©.
Quelle différence entre une API et une API REST ?
API est le terme général, qui couvre aussi les bibliothÚques et le systÚme d'exploitation. Une API REST est une API web organisée en ressources désignées par des URL et manipulées avec les méthodes HTTP, en général en JSON.
Une API est-elle gratuite ?
Cela dépend de l'éditeur. L'API de la Géoplateforme et l'accÚs public à l'API GitHub sont gratuits, avec des limites de débit. Les API de paiement ou de modÚles d'IA sont souvent facturées à l'usage et demandent une clé liée à un compte.
Ă propos de l'auteur
Abdelilah Ourti est ingénieur IA et architecte logiciel. Il conçoit et déploie des applications web et des systÚmes d'IA, et publie sur NeurauTech des guides et des comparatifs destinés aux développeurs francophones. Ses autres articles sont réunis sur sa page auteur.
MĂ©thode. SynthĂšse fondĂ©e sur des sources publiques : normes de l'IETF, documentation de GitHub, de la GĂ©oplateforme, d'OpenAPI, de MCP et de MDN, liste de l'OWASP et enquĂȘte de Postman, signalĂ©e comme enquĂȘte d'Ă©diteur. Les requĂȘtes curl, le script Python et l'appel fetch sous Node.js montrĂ©s ici ont Ă©tĂ© exĂ©cutĂ©s le 5 novembre 2026, et leurs sorties sont reproduites Ă l'identique, raccourcies et parfois remises en forme. Aucun autre test n'a Ă©tĂ© menĂ©, aucun lien n'est affiliĂ© et aucune relation commerciale ne lie l'auteur aux Ă©diteurs mentionnĂ©s.
Une erreur ou une API qui a changé ? Ăcrivez Ă contact@neurautech.com : l'article sera corrigĂ© et la date de mise Ă jour modifiĂ©e.
DerniÚre mise à jour : 5 novembre 2026.
Image : Remi Godet (Unsplash License).


Top comments (0)