Import API
vérification…
Documentation développeurs

API d'import

Gardez votre inventaire Driv.one synchronisé avec votre DMS ou votre système de stock. Créez et mettez à jour des véhicules, envoyez des inventaires complets, gérez les photos — via une API REST versionnée limitée à votre garage.

REST + JSONEndpoints prévisibles, JSON en entrée et en sortie, codes d'erreur stables.
Limitée au garageChaque clé appartient à un garage et ne voit que les voitures de ce garage.
Le même vocabulaire que le siteLes valeurs acceptées sont exactement celles du formulaire Ajouter un véhicule, libellées en cinq langues.
Synchronisation sûreValidation tout ou rien, protection contre les mises à jour obsolètes, et retrait de la vente sans jamais supprimer lors des synchronisations complètes.

L'API s'adresse aux vendeurs professionnels, groupes de concessionnaires, éditeurs de DMS et partenaires d'intégration. Les fiches que vous créez apparaissent sur driv.one sous votre garage, exactement comme les voitures ajoutées à la main.

Portée. Les fiches de l'API sont limitées au garage authentifié. Une clé ne peut jamais lire ni modifier l'inventaire d'un autre garage ; un propriétaire de plusieurs garages a besoin d'une clé par garage.

Démarrage rapide

1. Créez une clé API

Connectez-vous à {link}, choisissez le garage, nommez la clé et copiez-la. La clé n'est affichée qu'une fois ; si vous la perdez, révoquez-la et créez-en une autre.

2. Testez l'authentification

curl https://api.driv.one/v1/me \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

3. Créez un véhicule

curl -X POST https://api.driv.one/v1/vehicles \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "external_id": "STOCK-4821",
  "external_updated_at": "2026-09-05T08:30:00Z",
  "make": "Volkswagen",
  "model": "Golf",
  "year": 2022,
  "vin": "WVWZZZAUZNW123456",
  "license_plate": "1-ABC-123",
  "mileage": 41200,
  "first_registration": "2022-03-15",
  "fuel_type": "petrol",
  "gearbox_type": "dct",
  "body_type": "hatchback",
  "power_hp": 150,
  "num_doors": 5,
  "num_seats": 5,
  "color": "gray",
  "interior_material": "fabric",
  "vehicle_condition": "used",
  "asking_price": 24950,
  "is_tax_vehicle": true,
  "short_description": "Golf 1.5 TSI Life, first owner, full history",
  "seller_description": "Serviced at the dealership, two keys, winter tyres included.",
  "features": [
    "appleCarplay",
    "androidAuto",
    "adaptiveCruiseControl",
    "ledHeadlights",
    "alloyWheels"
  ],
  "parking_assist": [
    "sens_front",
    "sens_rear",
    "cam_rear"
  ],
  "image_urls": [
    "https://cdn.example-dealer.be/stock/4821/front.jpg",
    "https://cdn.example-dealer.be/stock/4821/interior.jpg"
  ]
}'

La réponse est le véhicule enregistré avec son uuid, public_url, currency et ses photos, plus un tableau warnings lorsqu'un incident non bloquant s'est produit (une photo introuvable, un modèle créé).

URL de base et versions

https://api.driv.one/v1

La version majeure fait partie du chemin. Les changements incompatibles reçoivent une nouvelle version majeure ; /v1 conserve son comportement. Les ajouts (nouveaux champs optionnels, nouvelles valeurs d'énumération) peuvent apparaître dans v1 — lisez GET /v1/options plutôt que de figer des listes.

Les chemins sont indiqués sans barre finale ; elle est acceptée.

Authentification

Authentification par jeton Bearer avec une clé API du garage. Les clés commencent par wsk_.

Authorization: Bearer wsk_…

X-API-Key: wsk_… est accepté comme en-tête alternatif. Une clé est en lecture-écriture ou en lecture seule ; une clé en lecture seule reçoit 403 read_only_key à toute écriture.

Sécurité des clés. Ne mettez jamais une clé API dans du JavaScript côté navigateur, un dépôt public, une capture d'écran ou un ticket de support. Révoquez une clé dès que vous soupçonnez une fuite — la révocation est immédiate.

En-têtes de requête

En-têteValeurRôle
AuthorizationBearer wsk_…Authentifie le garage.
Content-Typeapplication/jsonPour les corps JSON. Les envois de fichiers photo utilisent multipart/form-data.
Acceptapplication/jsonLes réponses sont toujours en JSON.

Modèle de données du véhicule

Champs acceptés en POST, PUT et PATCH. Les réponses renvoient les mêmes noms, plus les champs en lecture seule uuid, status (published / unlisted), public_url, currency, images, for_sale_since et created_at.

Voici l'ensemble complet : 45 champs — les mêmes que le formulaire Ajouter un véhicule — avec 12 énumérations, 106 valeurs d'équipement et 6 aides au stationnement. Chaque valeur acceptée figure sur cette page et dans GET /v1/options ; rien d'autre n'est accepté.
ChampTypeÀ la créationDescription
Identité
external_idstring ≤120recommandéVotre propre id stable du véhicule (numéro de stock, id DMS). Permet d'adresser la voiture par cet id et active l'upsert et la synchronisation.
external_updated_atdatetimenonDernière modification du véhicule dans votre système. Un horodatage plus ancien que celui enregistré est refusé avec 409 stale_update.
license_platestring ≤20nonDoit être unique sur toute la plateforme.
vinstring (17)nonNuméro de châssis, unique sur toute la plateforme. Enregistré en majuscules.
Marque, modèle & immatriculation
make / make_idstring / integerouiMarque, par nom (insensible à la casse) ou id. GET /v1/makes.
model / model_idstring / integerouiModèle au sein de la marque. Les noms inconnus sont refusés sauf si create_missing_model vaut true.
create_missing_modelbooleannonAjoute un nom de modèle inconnu sous la marque au lieu d'échouer. Par défaut false.
vehicle_type / vehicle_type_idstring / integernonCar, Motorcycle, SUV, Truck, Van. Par défaut Car.
yearintegerouiAnnée-modèle, 1990–2027.
first_registrationdatenonAAAA-MM-JJ.
colorstring ≤50nonUtilisez une valeur de l'énumération des couleurs pour obtenir la traduction ; les autres mots sont affichés tels quels.
whiteblacksilvergrayblueredgreenyelloworangebrownbeigegoldpurplepinkotherlibellés ↓
mileageintegernonKilométrage, en mileage_unit.
mileage_unitenumnonkm (par défaut) ou mi. Utilisez mi pour les véhicules américains/britanniques vendus à l'étranger ; le site affiche l'unité telle qu'envoyée.
Moteur & transmission
motor_typestring ≤100nonDésignation du moteur, p. ex. "2.0 TDI 150hp".
fuel_typeenumnonVoir énumérations.
petroldieselelectrichybrid_petrolhybrid_dieselphev_petrolphev_diesellpgcnghydrogenmild_hybridotherlibellés ↓
power_hp / power_kwintegernonEnvoyez l'un des deux ; l'autre est déduit.
cylinder_capacityinteger ccnonCylindrée en cm³, p. ex. 1998.
gearbox_typeenumnonManuelle, automatique, semi-automatique, CVT ou rapport unique (électrique).
manualautomaticcvtdctsemi_autolibellés ↓
drivetrainenumnonfront, rear ou 4wd.
4wdfrontrearlibellés ↓
emission_standardenumnonNorme Euro.
euro0euro1euro2euro3euro4euro5euro6euro6beuro6ceuro6deuro6d_tempotherlibellés ↓
co2_gkmintegernonCO₂ en g/km.
battery_capacity_kwhdecimal kWhnonVéhicules électriques : capacité utile de la batterie, p. ex. 77.4. Affichée à la place de la norme Euro lorsque fuel_type est electric.
battery_soh_pctinteger 0–100nonÉtat de santé de la batterie (SOH) en %.
battery_certificate_urlurlnonLien vers le certificat de batterie ; affiché comme lien cliquable sur l'annonce.
Carrosserie, dimensions & roues
body_typeenumnonType de carrosserie, comme dans les filtres du site.
sedanhatchbackestatecoupeconvertiblesuvcrossovermpvpickupvanotherlibellés ↓
num_doors / num_seatsintegernonPortes 1–9, sièges 1–99.
weightinteger kgnonPoids à vide.
steering_positionenumnonlhd ou rhd.
tyre_size / bolt_pattern / et_offsetstringnonp. ex. "225/45R17", "5x112", "+35".
Intérieur & confort
interior_colorstring ≤50nonTexte libre, p. ex. « noir ».
interior_materialenumnonGarniture.
alcantarafabricartificial_leatherpartial_leatherfull_leathervelourlibellés ↓
air_conditioningenumnonAucune, manuelle ou climatisation automatique (1–4 zones).
acNoneacManualac2Zoneac3Zoneac4Zonelibellés ↓
airbagsenumnonNombre d'airbags.
airbagDriverairbagFrontairbagFrontSideairbagFulllibellés ↓
Équipements
featuresarray[string]nonSlugs d'équipement du catalogue ci-dessous. Les slugs inconnus sont refusés. Envoyer [] vide la liste.
parking_assistarray[string]nonSlugs d'aide au stationnement du catalogue ci-dessous.
Vente & état
is_for_salebooleannonPar défaut true à la création. false retire la voiture de la place de marché mais la conserve.
asking_pricedecimalnonDans la devise du garage (renvoyée comme `currency`). Nombre simple, pas des centimes.
is_margin_vehicle / is_tax_vehiclebooleannonTraitement TVA : régime de la marge ou TVA déductible.
vehicle_conditionenumnonNeuf, démo, occasion, accidenté…
factory_newnew_conditionnew_with_damageusedused_with_damagepartslibellés ↓
num_ownersintegernonPropriétaires précédents, 0–99.
maintenance_historyenumnonÉtat du carnet d'entretien.
nonedealershipplatformbothlibellés ↓
carpass_urlurlnonLien vers le document Car-Pass (Belgique).
short_descriptionstring ≤120nonUne ligne sur les fiches de liste.
seller_descriptiontextnonDescription complète.
Photos
image_urlsarray[url] ≤30nonPhotos à télécharger depuis vos serveurs, dans l'ordre d'affichage. Si présent, remplace tout le jeu de photos ; omettez-le pour ne pas toucher aux photos.
Identifiant. Utilisez un id permanent de votre DMS comme external_id — jamais une position de stock ni un ordre d'affichage. C'est ce qui fait fonctionner l'upsert, GET /v1/vehicles/{ref} par votre id et la synchronisation de l'inventaire.

Endpoints

Compte

GET/v1/meQui suis-jeLe garage derrière la clé, l'usage des emplacements de vente, le nombre de véhicules.
GET/healthÉtatSans authentification.

Référence (sans clé)

GET/v1/optionsToutes les valeurs acceptéesChaque énumération, slug d'équipement, valeur de stationnement et type de véhicule, libellés en en/nl/fr/es/pt.
GET/v1/featuresCatalogue d'équipementsSeulement les slugs d'équipement avec leurs groupes.
GET/v1/makes?search=Marques`search` et `vehicle_type_id` optionnels.
GET/v1/makes/{make_id}/modelsModèles d'une marque

Véhicules

GET/v1/vehiclesLister`status=published|unlisted|all`, `external_id=`, `limit` (≤200), `offset`.
POST/v1/vehiclesCréer ou upsert201 à la création. Si `external_id` existe déjà pour votre garage, le véhicule est mis à jour et 200 est renvoyé.
GET/v1/vehicles/{ref}Obtenir un véhicule`ref` est notre uuid ou votre external_id.
PATCH/v1/vehicles/{ref}Mettre à jour certains champsLes champs omis gardent leur valeur.
PUT/v1/vehicles/{ref}RemplacerLes champs optionnels omis sont vidés.
DELETE/v1/vehicles/{ref}SupprimerDéfinitif, photos comprises. Préférez PATCH {"is_for_sale": false} pour retirer de la vente.
POST/v1/vehicles/syncSynchroniser un inventaire entierJusqu'à 200 véhicules par appel, validation tout ou rien, mode `complete` optionnel.

Photos

GET/v1/vehicles/{ref}/imagesLister les photosL'ordre 0 est la photo principale.
POST/v1/vehicles/{ref}/imagesAjouter une photoJSON `{"url": …}` ou fichier `image` multipart ; `order` optionnel.
PUT/v1/vehicles/{ref}/images/orderRéordonner`{"ids": […]}` — chaque id de photo exactement une fois.
DELETE/v1/vehicles/{ref}/images/{id}Supprimer une photoLes photos restantes sont renumérotées.

Schémas complets des requêtes et réponses, avec toutes les énumérations : Swagger UI · ReDoc · openapi.json.

Réponse de liste

{
  "count": 37, "limit": 50, "offset": 0, "next_offset": null,
  "results": [ { "uuid": "…", "external_id": "STOCK-4821", "status": "published", … } ]
}

Upsert et mises à jour obsolètes

POST /v1/vehicles avec un external_id que votre garage utilise déjà met à jour ce véhicule (HTTP 200) au lieu d'en créer un second (HTTP 201). Une intégration naïve « tout envoyer chaque nuit » devient ainsi idempotente.

Si vous envoyez aussi external_updated_at, une mise à jour dont l'horodatage est plus ancien que celui enregistré est refusée avec 409 stale_update : un événement en retard ne peut jamais écraser un plus récent. Dans une synchronisation, ce véhicule est signalé skipped_stale et le reste continue.

PATCH ne change que les champs envoyés. PUT est un remplacement complet : les champs optionnels omis sont vidés. Les deux acceptent le même corps que la création.

Synchronisation de l'inventaire

POST /v1/vehicles/sync fait l'upsert d'un inventaire entier en un appel (≤200 véhicules ; répétez pour davantage). Chaque véhicule a besoin d'un external_id.

{
  "complete": true,
  "vehicles": [
    {
      "external_id": "STOCK-4821",
      "make": "Volkswagen",
      "model": "Golf",
      "year": 2022,
      "asking_price": 24950,
      "fuel_type": "petrol",
      "mileage": 41200
    },
    {
      "external_id": "STOCK-4835",
      "make": "Audi",
      "model": "A4",
      "year": 2021,
      "asking_price": 28900,
      "fuel_type": "diesel",
      "body_type": "estate"
    }
  ]
}
  • Validation tout ou rien. L'ensemble est validé d'abord. Un véhicule invalide rejette l'appel avec 422 et une carte vehicles par véhicule ; rien n'est écrit.
  • complete: true déclare que l'envoi est votre stock entier. Les véhicules gérés par l'API (portant un de vos ids externes) qui en sont absents sont retirés de la vente, jamais supprimés — ils restent dans votre tableau de bord et reviennent si vous les renvoyez.
  • Protection contre le vide. Une synchronisation complète sans véhicule nécessite allow_empty: true, sinon 409 empty_snapshot.
  • dry_run: true renvoie would_create, would_update, would_unlist et n'écrit rien.
  • Emplacements. Les véhicules au-delà de vos emplacements de vente sont enregistrés non publiés avec un avertissement sale_limit_reached au lieu de faire échouer la synchronisation.

Les véhicules ajoutés à la main sur le site ne sont jamais touchés par une synchronisation.

Emplacements de vente

Chaque compte garage dispose d'un nombre de véhicules pouvant être en vente en même temps (niveau gratuit, abonnements, ou un nombre attribué par Driv.one). GET /v1/me renvoie slots.used, slots.limit et slots.available.

Une création ou mise à jour qui dépasserait ce nombre échoue avec 403 sale_limit_reached. Pour libérer un emplacement, faites PATCH {"is_for_sale": false} sur un véhicule — il reste enregistré et peut être remis en vente. Des emplacements supplémentaires s'achètent sur {link}.

Photos

Les photos sont ordonnées ; l'ordre 0 est la photo principale affichée sur les fiches. Les grandes images sont réduites à 2560 px sur le grand côté et réencodées ; tout ce qui dépasse 15 Mo ensuite est refusé.

Avec le véhicule

Envoyez image_urls à la création ou à la mise à jour. Les photos sont téléchargées depuis vos serveurs dans l'ordre donné et remplacent tout le jeu de photos. Omettez le champ pour ne pas toucher aux photos. Si aucune URL n'est accessible, les photos existantes sont conservées et un avertissement est renvoyé.

Une par une

curl -X POST https://api.driv.one/v1/vehicles/STOCK-4821/images \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://cdn.example-dealer.be/stock/4821/rear.jpg", "order": 1}'
curl -X POST https://api.driv.one/v1/vehicles/STOCK-4821/images \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "image=@rear.jpg" -F "order=1"

Réordonner

curl -X PUT https://api.driv.one/v1/vehicles/STOCK-4821/images/order \
  -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"ids": [912, 910, 911]}'
Les URL distantes doivent être des adresses http(s) publiques. Les destinations locales, privées et réservées sont refusées à chaque redirection. Le contenu est vérifié comme une vraie image, quel que soit le Content-Type annoncé.

Équipements (106 valeurs)

Envoyez les équipements sous forme de slugs dans features et les aides au stationnement dans parking_assist. Seules les valeurs ci-dessous sont acceptées ; les slugs inconnus renvoient 422 en les nommant. Omettre le champ en PATCH conserve les équipements ; envoyer [] les efface. Libellés dans chaque langue : GET /v1/options.

Aides au stationnement parking_assist

6
cam_360Caméra 360° · 360° Camera
cam_frontCaméra avant · Front camera
cam_rearCaméra arrière · Rear camera
self_steeringSystèmes à direction automatique · Self-steering systems
sens_frontCapteurs avant · Front parking sensors
sens_rearCapteurs arrière · Rear parking sensors

Extérieur features 78

Électronique

10
absABS · ABS
espESP · ESP
immobiliserAntidémarrage électronique · Electronic immobiliser
centralLockingVerrouillage centralisé · Central locking
keylessVerrouillage centralisé sans clé · Keyless central locking
rainSensorCapteur de pluie · Rain sensor
lightSensorCapteur de lumière · Light sensor
tyrePressureMonitorContrôle pression des pneus · Tyre pressure monitoring
startStopSystème Start/Stop · Start/stop system
electricTailgateHayon électrique · Electric tailgate

Éclairage

6
fogLightsPhares antibrouillard · Fog lights
ledDrlFeux de jour LED · LED daytime running lights
drlFeux de jour · Daytime running lights
corneringLightFeux de virage · Cornering light
headlightWasherLave-phares · Headlight washer
dynamicIndicatorsClignotants dynamiques / séquentiels / glissants · Dynamic / sweeping / sliding indicators

Phares

7
biXenonHeadlightsPhares bi-xénon · Bi-xenon headlights
xenonHeadlightsPhares au xénon · Xenon headlights
ledHeadlightsPhares LED · LED headlights
laserLightFeux laser · Laser light
highBeamAssistAssistant feux de route · High beam assist
nightVisionAssistant vision nocturne · Night vision assistant
matrixLightsPhares intelligents / matriciels · Intelligent / matrix lights

Assistants de conduite

12
distanceWarnerAvertisseur de distance · Distance warning
hillStartAssistAide au démarrage en côte · Hill start assist
speedLimiterLimiteur de vitesse · Speed limiter
emergencyBrakeAssistAide au freinage d'urgence · Emergency brake assist
laneAssistAide au maintien de voie · Lane assist
blindSpotMonitorAide aux angles morts · Blind spot monitor
tractionControlContrôle de traction · Traction control
trafficSignRecognitionReconnaissance des panneaux · Traffic sign recognition
adaptiveCorneringFeux de virage adaptatifs · Adaptive cornering light
cruiseControlRégulateur de vitesse · Cruise control
adaptiveCruiseControlRégulateur de vitesse adaptatif · Adaptive cruise control
fatigueWarnerAssistant de fatigue · Fatigue warning system

Confort & autres

43
tintedWindowsVitres teintées · Tinted windows
adaptiveSuspensionSuspension adaptative · Adaptive suspension
allWeatherTyresPneus toutes saisons · All-weather tyres
heatedWindscreenPare-brise chauffant · Heated windscreen
disabledAccessAccès handicapés · Disabled access
roofRailsRails de toit · Roof rails
airSuspensionSuspension pneumatique · Air suspension
spareWheelRoue de secours · Spare wheel
tyreSealantKit anti-crevaison · Tyre sealant kit
fullSizeSpareRoue de secours complète · Full-size spare wheel
powerSteeringDirection assistée · Power steering
summerTyresPneus d'été · Summer tyres
sportSuspensionSuspension sport · Sport suspension
sportPackagePack sport · Sport package
steelWheelsJantes en acier · Steel wheels
alloyWheelsJantes en alliage · Alloy wheels
winterPackagePack hiver · Winter package
winterTyresPneus d'hiver · Winter tyres
panoramicRoofToit panoramique · Panoramic roof
slidingRoofToit ouvrant · Sliding roof
foldingRoofToit pliant · Folding roof
towHitchAttelage · Tow hitch
alarmSystemSystème d'alarme · Alarm system
ambientLightingÉclairage d'ambiance · Ambient lighting
electricWindowsVitres électriques · Electric windows
handsFreeKit mains libres · Hands-free system
cargoPartitionSéparation de coffre · Cargo area partition
isofixIsofix · Isofix
isofixPassengerIsofix siège passager · Isofix passenger seat
emergencyCallSystemSystème d'appel d'urgence · Emergency call system
smokersPackagePack fumeur · Smoker's package
rightHandDriveConduite à droite · Right-hand drive
skiStorageSac à skis · Ski storage
auxiliaryHeatingChauffage auxiliaire · Auxiliary heating
usbUSB · USB
heatedSteeringWheelVolant chauffant · Heated steering wheel
leatherSteeringWheelVolant en cuir · Leather steering wheel
multifunctionSteeringWheelVolant multifonction · Multifunction steering wheel
paddleShiftersPalettes au volant · Paddle shifters
electricMirrorsRétroviseurs électriques · Electric mirrors
electricFoldingMirrorsRétroviseurs électriques rabattables · Electric folding mirrors
autoGlareFreeMirrorRétroviseur intérieur antiéblouissement · Auto-dimming interior mirror
virtualMirrorsRétroviseurs latéraux virtuels · Virtual side mirrors

Intérieur features 28

Infodivertissement

17
androidAutoAndroid Auto · Android Auto
appleCarplayApple CarPlay · Apple CarPlay
bluetoothBluetooth · Bluetooth
boardComputerOrdinateur de bord · On-board computer
cdPlayerLecteur CD · CD player
headUpDisplayAffichage tête haute · Head-up display
inductiveChargingChargement inductif pour smartphones · Inductive charging for smartphones
musicStreamingStreaming musical intégré · Integrated music streaming
navigationSystème de navigation · Navigation system
radioDabRadio DAB · DAB radio
soundSystemSystème audio · Sound system
touchscreenÉcran tactile · Touchscreen
tunerRadioAutoradio · Tuner/Radio
tvTV · TV
voiceControlCommande vocale · Voice control
wifiHotspotPoint d'accès Wi-Fi · Wi-Fi hotspot
digitalInstrumentClusterTableau de bord entièrement numérique · Fully digital instrument cluster

Sièges

11
armrestAccoudoir · Armrest
electricSeatAdjustRéglage électrique des sièges · Electric seat adjustment
electricSeatAdjustMemoryRéglage électrique avec mémoire · Electric seat adjustment with memory
electricSeatAdjustRearRéglage électrique sièges arrière · Electric rear seat adjustment
lumbarSupportSoutien lombaire · Lumbar support
massageSeatsSièges massants · Massage seats
seatVentilationVentilation des sièges · Seat ventilation
seatHeatingSièges chauffants · Seat heating
seatHeatingRearSièges arrière chauffants · Rear seat heating
sportSeatsSièges sport · Sport seats
foldablePassengerSeatSiège passager rabattable · Foldable passenger seat

Énumérations

Libellés dans la langue choisie ; toutes les langues sont dans GET /v1/options. Les valeurs inconnues sont refusées, jamais devinées.

vehicle_type

Carid 1Motorcycleid 2Truckid 3Vanid 4SUVid 5

year

19902027

fuel_type

12
ValeurLibelléEnglish
petrolEssencePetrol / Gasoline
dieselDieselDiesel
electricÉlectriqueElectric
hybrid_petrolHybride (Essence)Hybrid (Petrol)
hybrid_dieselHybride (Diesel)Hybrid (Diesel)
phev_petrolPHEV (Essence)PHEV (Petrol)
phev_dieselPHEV (Diesel)PHEV (Diesel)
lpgGPLLPG
cngGNVCNG
hydrogenHydrogèneHydrogen
mild_hybridHybride légerMild Hybrid
otherAutreOther

gearbox_type

5
ValeurLibelléEnglish
manualManuelleManual
automaticAutomatiqueAutomatic
cvtCVTCVT
dctDouble embrayage (DCT)Dual-Clutch (DCT)
semi_autoSemi-automatiqueSemi-automatic

body_type

11
ValeurLibelléEnglish
sedanBerlineSedan
hatchbackHatchbackHatchback
estateBreakEstate / Break
coupeCoupéCoupé
convertibleCabrioletCabriolet / Convertible
suvSUVSUV
crossoverCrossoverCrossover
mpvMPV / MonospaceMPV / Minivan
pickupPick-upPickup
vanUtilitaireVan
otherAutreOther

drivetrain

3
ValeurLibelléEnglish
4wdTransmission intégrale4 wheel drive
frontTraction avantFront drive
rearPropulsion arrièreRear drive

steering_position

2
ValeurLibelléEnglish
lhdConduite à gaucheLeft-hand drive
rhdConduite à droiteRight-hand drive

emission_standard

12
ValeurLibelléEnglish
euro0Euro 0Euro 0
euro1Euro 1Euro 1
euro2Euro 2Euro 2
euro3Euro 3Euro 3
euro4Euro 4Euro 4
euro5Euro 5Euro 5
euro6Euro 6Euro 6
euro6bEuro 6bEuro 6b
euro6cEuro 6cEuro 6c
euro6dEuro 6dEuro 6d
euro6d_tempEuro 6d-tempEuro 6d-temp
otherAutreOther

color

15

color est un texte libre ; ces valeurs sont celles que le site traduit.

ValeurLibelléEnglish
whiteBlancWhite
blackNoirBlack
silverArgentéSilver
grayGrisGray
blueBleuBlue
redRougeRed
greenVertGreen
yellowJauneYellow
orangeOrangeOrange
brownMarronBrown
beigeBeigeBeige
goldOrGold
purpleVioletPurple
pinkRosePink
otherAutreOther

interior_material

6
ValeurLibelléEnglish
alcantaraAlcantaraAlcantara
fabricTissuFabric
artificial_leatherSimilicuirArtificial leather
partial_leatherSemi-cuirPartial leather
full_leatherCuir intégralFull leather
velourVeloursVelour

vehicle_condition

6
ValeurLibelléEnglish
factory_newNeuf d'usineFactory New
new_conditionComme neufNew Condition
new_with_damageComme neuf avec dommagesNew Condition with Damage
usedOccasionUsed
used_with_damageOccasion avec dommagesUsed with Damage
partsPour piècesUsed for Parts

maintenance_history

4
ValeurLibelléEnglish
noneNonNo
dealershipOui, chez le concessionnaireYes, with dealership
platformOui, via the platformYes, with the platform
bothOui, chez le concessionnaire et via the platformYes, with dealership and the platform

airbags

4
ValeurLibelléEnglish
airbagDriverAirbag conducteurDriver airbag
airbagFrontAirbags frontauxFront airbags
airbagFrontSideAirbags frontaux et latérauxFront & side airbags
airbagFullAirbags frontaux, latéraux et arrièreFront, side & rear airbags

air_conditioning

5
ValeurLibelléEnglish
acNoneSans climatisationNone
acManualManuelleManual
ac2ZoneAutomatique 2 zones2-zone automatic
ac3ZoneAutomatique 3 zones3-zone automatic
ac4ZoneAutomatique 4 zones4-zone automatic

Erreurs

Les erreurs sont en JSON avec un code error stable et un message lisible ; certaines portent des clés supplémentaires.

{
  "error": "validation_error",
  "message": "One or more fields are invalid.",
  "fields": {
    "fuel_type": [
      "\"gasoline\" is not a valid choice."
    ],
    "features": [
      "Unknown features: sunroof. GET /v1/options lists the accepted values."
    ]
  }
}
HTTPerrorSignification
401invalid_api_keyClé absente, inconnue ou révoquée.
403read_only_keyLa clé ne peut que lire.
403workshop_blocked / workshop_inactiveLe garage ne peut pas publier pour le moment.
403sale_limit_reachedTous les emplacements de vente sont utilisés. Le corps contient used, limit, available.
404vehicle_not_found / image_not_found / make_not_foundIntrouvable dans ce garage.
409duplicate_vin / duplicate_license_plateUn autre véhicule porte déjà cet identifiant.
409stale_updateLe external_updated_at enregistré est plus récent que celui envoyé.
409empty_snapshotUne synchronisation complète sans véhicule nécessite allow_empty: true.
422validation_errorErreurs par champ sous `fields` (ou `vehicles` pour une synchronisation). Rien n'a été écrit.
422image_url_* / image_too_large / image_unreadableUne photo n'a pas pu être récupérée. À la création ou à la mise à jour, ce sont des avertissements, pas des échecs.
429Limite d'utilisation. Réessayez après l'en-tête `Retry-After`.

Réponses réussies : 200 lecture ou mise à jour, 201 créé, 204 supprimé.

Limites d'utilisation

Chaque clé peut faire 3 000 requêtes par heure. Au-delà, l'API répond 429 avec un en-tête Retry-After. Une synchronisation nocturne complète de quelques centaines de voitures utilise une poignée d'appels ; s'il vous en faut plus, contactez Driv.one.

Les téléchargements de photos comptent dans le même budget via les appels qui les déclenchent, pas par image.