DEV Community

Cover image for API c'est quoi ? DĂ©finition, requĂȘtes, REST et exemples Ă  tester (2026)
Neurau Tech
Neurau Tech

Posted on Originally published at neurautech.com

API c'est quoi ? DĂ©finition, requĂȘtes, REST et exemples Ă  tester (2026)

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.

API c'est quoi : schĂ©ma d'une requĂȘte et d'une rĂ©ponse, le client envoie une mĂ©thode, une adresse, des en-tĂȘtes et un corps, le serveur renvoie un code de statut, des en-tĂȘtes et un corps JSON

Une requĂȘte contient quatre Ă©lĂ©ments :

  • La mĂ©thode, qui dit l'intention : GET pour lire, POST pour crĂ©er, PUT ou PATCH pour modifier, DELETE pour 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
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

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"]}
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

Réponse reçue le 5 novembre 2026 :

[{"nom":"Amiens","code":"80021","codesPostaux":["80000","80080","80090"],"population":136449,"_score":1}]
Enter fullscreen mode Exit fullscreen mode

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"])
Enter fullscreen mode Exit fullscreen mode

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))'
Enter fullscreen mode Exit fullscreen mode

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.

Graphique en barres : styles d'API utilisĂ©s selon l'enquĂȘte State of the API 2025 de Postman, REST 93 %, webhooks 50 %, WebSockets 35 %, GraphQL 33 %

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 module json.
  • 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/42 plutĂŽt que /getArticle?id=42.
  • La mĂ©thode porte l'action. POST /articles crĂ©e, DELETE /articles/42 supprime.
  • 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 .env chargĂ© 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/
Enter fullscreen mode Exit fullscreen mode

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.
  • fetch dans 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)