API

Un appel, une réponse

Une petite API REST. Envoyez un VIN ou une plaque, récupérez un check en JSON plat : marque, modèle, kilométrage, accidents, titre. Une clé, un en-tête, des réponses rapides.

https://api.scan-vin.com/v1
Obtenir une clé

Démarrez en 3 étapes

1
Récupérez une clé

Inscrivez-vous et copiez votre clé API depuis le tableau de bord. Une seule clé pour les tests et la prod. Pas de config, pas de file d'attente.

2
Faites l'appel

Ajoutez votre clé dans l'en-tête X-Api-Key et envoyez un VIN ou une plaque en POST sur /v1/check. Voilà toute l'intégration.

3
Lisez le JSON

Vous recevez un seul objet JSON plat : marque, modèle, kilométrage, accidents, titre. Pas de niveaux imbriqués, pas de polling. Vous lisez les champs, c'est tout.

Authentification

Mettez votre clé dans un seul en-tête : X-Api-Key: VOTRE_CLE. C'est tout. Pas de token Bearer, pas d'OAuth. Gardez la clé secrète et changez-la depuis le tableau de bord quand vous voulez.

curl https://api.scan-vin.com/v1/vin/WBA3A5G59DNP26082 \
  -H "X-Api-Key: YOUR_API_KEY"

L'appel

Trois endpoints, pas plus. POST un VIN ou une plaque pour lancer un check, GET pour le récupérer par id, ou décodez un VIN tout seul. Tout est en JSON plat.

POST/v1/check
Lancer un check

Celui que vous utiliserez. POST un VIN ou une plaque et récupérez tout le check dans une seule réponse plate, en général en quelques secondes.

Paramètres

NomTypeRequisDescription
vinstringoptionnelVIN de 17 caractères. Envoyez ceci, ou bien `plate`.
platestringoptionnelPlaque d'immatriculation. Envoyez ceci, ou bien `vin`.
countrystringoptionnelCode pays à deux lettres (ex. `FR`, `DE`). Nécessaire quand vous envoyez une `plate`.

Exemple

curl -X POST https://api.scan-vin.com/v1/check \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vin": "WBA3A5G59DNP26082"}'
GET/v1/check/{check_id}
Récupérer un check

Récupérez un check déjà lancé par son id. Même objet plat que la réponse du POST.

Paramètres

NomTypeRequisDescription
check_idstringrequisParamètre de chemin. L'identifiant de check qu'on vous a donné (`chk_...`).

Exemple

curl https://api.scan-vin.com/v1/check/chk_5a1b \
  -H "X-Api-Key: YOUR_API_KEY"
GET/v1/vin/{vin}
Décoder un VIN

Juste les bases ? Cet appel lit un VIN et renvoie marque, modèle et année. Instantané, sans tirer l'historique.

Paramètres

NomTypeRequisDescription
vinstringrequisParamètre de chemin. Le VIN de 17 caractères à décoder.

Exemple

curl https://api.scan-vin.com/v1/vin/WBA3A5G59DNP26082 \
  -H "X-Api-Key: YOUR_API_KEY"

La réponse

Toujours la même forme plate : un flag `ok`, le `check_id`, et les infos de la voiture en champs de premier niveau. Rien d'imbriqué pour rien, vous lisez ce qu'il vous faut.

{
  "check_id": "chk_5a1b",
  "vin": "WBA3A5G59DNP26082",
  "ok": true,
  "make": "BMW",
  "model": "320d",
  "year": 2019,
  "mileage_km": 142350,
  "accidents": 0,
  "stolen": false,
  "title": "clean",
  "checked_at": "2026-03-12T10:04:00Z"
}

En cas d'échec

Des codes HTTP simples. En cas d'erreur, vous recevez un objet plat avec `ok: false`, un `code` et un `message` qui dit quoi corriger. Pas de devinette.

CodeMessageDescription
400Bad RequestIl manque ou il y a une erreur dans votre requête, par exemple ni VIN ni plaque.
401UnauthorizedVotre clé manque ou est fausse. Vérifiez l'en-tête X-Api-Key.
403ForbiddenVotre clé ne peut pas utiliser cet appel. Vérifiez votre plan.
404Not FoundOn n'a pas trouvé cette voiture ou ce check.
429Too Many RequestsVous allez trop vite. Ralentissez et réessayez après que le compteur X-RateLimit-Remaining se réinitialise.
500Server ErrorUn souci de notre côté. Réessayez, et écrivez-nous si ça persiste.
{
  "ok": false,
  "code": 401,
  "error": "Unauthorized",
  "message": "The X-Api-Key header is missing or invalid."
}

Branchez nos données auto

Obtenez une clé et faites votre premier appel en quelques minutes. La même clé marche en prod, sans changer de code.