Technique

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 identifie
  • 400 โ€” requete invalide (VIN mal formate, plaque incorrecte)
  • 401 โ€” cle API invalide ou manquante
  • 404 โ€” vehicule non trouve dans la base
  • 429 โ€” 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.

Articles connexes