Integrer une API automobile en Python, JavaScript et cURL
Publie le 19 mars 2026 ยท 8 min de lecture
Integrer une API de donnees automobile dans votre application ne prend que quelques minutes. Dans cet article, nous vous montrons comment appeler l'API AutomotivAPI en Python, JavaScript (Node.js) et cURL, avec des exemples concrets couvrant l'authentification, les appels et la gestion d'erreurs.
Prerequis
Avant de commencer, vous aurez besoin de :
- Un compte AutomotivAPI actif โ inscrivez-vous ici
- Votre cle API (disponible dans votre espace client apres activation)
- Un environnement de developpement avec Python 3.x, Node.js 16+ ou un terminal pour cURL
Authentification
Toutes les requetes a l'API AutomotivAPI sont authentifiees via un header Authorization de type Bearer. Votre cle API doit etre transmise dans chaque requete :
Authorization: Bearer VOTRE_CLE_API
Ne partagez jamais votre cle API dans du code source public (GitHub, GitLab). Utilisez des variables d'environnement pour stocker la cle de facon securisee.
Exemple 1 : Decodage VIN avec cURL
cURL est l'outil le plus simple pour tester l'API depuis un terminal :
curl -X POST https://api.automotivapi.com/v1/vin/decode \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{"vin": "VF1RFA00867123456"}'
La reponse est un objet JSON contenant l'identification complete du vehicule : marque, modele, finition, motorisation, equipements et donnees techniques.
Exemple 2 : Recherche par plaque en Python
Avec Python et la bibliotheque requests :
import os
import requests
API_KEY = os.environ.get("AUTOMOTIVAPI_KEY")
BASE_URL = "https://api.automotivapi.com/v1"
def lookup_plate(plate: str) -> dict:
"""Recherche un vehicule par sa plaque d'immatriculation."""
response = requests.post(
f"{BASE_URL}/plate/lookup",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={"plate": plate},
timeout=10,
)
response.raise_for_status()
return response.json()
# Exemple d'utilisation
try:
vehicle = lookup_plate("AB-123-CD")
print(f"Marque : {vehicle['brand']}")
print(f"Modele : {vehicle['model']}")
print(f"VIN : {vehicle['vin']}")
except requests.exceptions.HTTPError as e:
print(f"Erreur API : {e.response.status_code}")
except requests.exceptions.Timeout:
print("La requete a expire")
Exemple 3 : Decodage VIN en JavaScript (Node.js)
Avec Node.js et l'API native fetch (disponible depuis Node 18) :
const API_KEY = process.env.AUTOMOTIVAPI_KEY;
const BASE_URL = 'https://api.automotivapi.com/v1';
async function decodeVin(vin) {
const response = await fetch(`${BASE_URL}/vin/decode`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ vin }),
});
if (!response.ok) {
throw new Error(`Erreur API: ${response.status}`);
}
return response.json();
}
// Exemple d'utilisation
try {
const vehicle = await decodeVin('VF1RFA00867123456');
console.log(`Marque: ${vehicle.brand}`);
console.log(`Modele: ${vehicle.model}`);
console.log(`Finition: ${vehicle.trim}`);
} catch (error) {
console.error(error.message);
}
Gestion des erreurs
L'API retourne des codes HTTP standards. Voici les plus courants :
200โ succes, le vehicule a ete identifie400โ requete invalide (VIN mal formate, plaque incorrecte)401โ cle API invalide ou manquante404โ vehicule non trouve dans la base429โ limite de debit depassee (rate limiting)500โ erreur serveur interne
En cas d'erreur, le corps de la reponse contient un objet JSON avec un champ error decrivant le probleme :
{
"error": {
"code": "INVALID_VIN",
"message": "Le VIN fourni ne respecte pas le format attendu (17 caracteres alphanumeriques)."
}
}
Bonnes pratiques
Utiliser des variables d'environnement
Stockez votre cle API dans une variable d'environnement (AUTOMOTIVAPI_KEY) plutot que dans le code source. Cela evite les fuites accidentelles lors d'un commit.
Implementer un mecanisme de retry
En cas d'erreur 429 (rate limiting) ou 500 (erreur serveur), implementez un retry avec backoff exponentiel. Attendez 1 seconde avant le premier retry, 2 secondes avant le deuxieme, 4 secondes avant le troisieme, puis abandonnez.
Mettre en cache les resultats
Les donnees d'un vehicule ne changent pas frequemment. Si vous decodez le meme VIN plusieurs fois, mettez le resultat en cache (Redis, memoire, base de donnees locale) pour economiser des credits et ameliorer les performances.
Valider les entrees
Validez le format du VIN (17 caracteres alphanumeriques, sans I, O, Q) ou de la plaque cote client avant d'envoyer la requete. Cela evite de consommer des credits pour des requetes qui echoueront systematiquement.
Pour aller plus loin, consultez notre documentation technique complete et notre article sur l'architecture d'une API REST automobile.