Import API
comprobando…
Documentación para desarrolladores

API de importación

Mantén tu inventario de Driv.one sincronizado con tu DMS o sistema de stock. Crea y actualiza vehículos, envía inventarios completos, gestiona fotos, a través de una API REST versionada y limitada a tu taller.

REST + JSONEndpoints predecibles, JSON de entrada y salida, códigos de error estables.
Limitada al tallerCada clave pertenece a un taller y solo ve los autos de ese taller.
El mismo vocabulario que el sitioLos valores aceptados son exactamente los del formulario Añadir vehículo, etiquetados en cinco idiomas.
Sincronización seguraValidación todo o nada, protección contra actualizaciones obsoletas, y en las sincronizaciones completas se retira de la venta pero nunca se borra.

La API está pensada para vendedores profesionales, grupos de concesionarios, proveedores de DMS y socios de integración. Los registros que crees aparecen en driv.one bajo tu taller, igual que los autos añadidos a mano.

Alcance. Los registros de la API están limitados al taller autenticado. Una clave nunca puede leer ni modificar el inventario de otro taller; un propietario con varios talleres necesita una clave por taller.

Primeros pasos

1. Crea una clave de API

Inicia sesión en {link}, elige el taller, ponle un nombre a la clave y cópiala. La clave se muestra una sola vez; si la pierdes, revócala y crea otra.

2. Prueba la autenticación

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

3. Crea un vehículo

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 respuesta es el vehículo guardado con su uuid, public_url, currency y fotos, más un arreglo warnings cuando ocurrió algo no fatal (una foto que no se pudo descargar, un modelo que se creó).

URL base y versiones

https://api.driv.one/v1

La versión mayor forma parte de la ruta. Los cambios incompatibles reciben una nueva versión mayor; /v1 conserva su comportamiento. Los cambios aditivos (campos opcionales nuevos, valores nuevos en enumeraciones) pueden aparecer dentro de v1: lee GET /v1/options en lugar de fijar listas en el código.

Las rutas se muestran sin barra final; también se acepta con ella.

Autenticación

Autenticación con token Bearer y una clave de API del taller. Las claves empiezan por wsk_.

Authorization: Bearer wsk_…

Se acepta X-API-Key: wsk_… como cabecera alternativa. Una clave es de lectura y escritura o de solo lectura; una clave de solo lectura recibe 403 read_only_key en cualquier escritura.

Seguridad de las credenciales. Nunca pongas una clave de API en JavaScript del navegador, en un repositorio público, en una captura de pantalla ni en un ticket de soporte. Revoca la clave en cuanto sospeches una filtración; la revocación es inmediata.

Cabeceras de la petición

CabeceraValorPropósito
AuthorizationBearer wsk_…Autentica el taller.
Content-Typeapplication/jsonPara cuerpos JSON. La subida de archivos de foto usa multipart/form-data.
Acceptapplication/jsonLas respuestas siempre son JSON.

Modelo de datos del vehículo

Campos aceptados en POST, PUT y PATCH. Las respuestas devuelven los mismos nombres, más los campos de solo lectura uuid, status (published / unlisted), public_url, currency, images, for_sale_since y created_at.

Este es el conjunto completo: 45 campos — los mismos que ofrece el formulario Añadir vehículo — con 12 enumeraciones, 106 valores de equipamiento y 6 ayudas de estacionamiento. Todos los valores aceptados están en esta página y en GET /v1/options; no se acepta nada más.
CampoTipoAl crearDescripción
Identidad
external_idstring ≤120recomendadoTu propio id estable del vehículo (número de stock, id del DMS). Permite referirse al auto por él y habilita el upsert y la sincronización.
external_updated_atdatetimenoCuándo cambió tu sistema el vehículo por última vez. Una marca de tiempo más antigua que la guardada se rechaza con 409 stale_update.
license_platestring ≤20noDebe ser única en toda la plataforma.
vinstring (17)noNúmero de chasis, único en toda la plataforma. Se guarda en mayúsculas.
Marca, modelo y matrícula
make / make_idstring / integerMarca, por nombre (sin distinguir mayúsculas) o id. GET /v1/makes.
model / model_idstring / integerModelo dentro de la marca. Los nombres desconocidos se rechazan salvo que create_missing_model sea true.
create_missing_modelbooleannoAñade un nombre de modelo desconocido bajo la marca en lugar de fallar. Por defecto false.
vehicle_type / vehicle_type_idstring / integernoCar, Motorcycle, SUV, Truck, Van. Por defecto Car.
yearintegerAño del modelo, 1990–2027.
first_registrationdatenoAAAA-MM-DD.
colorstring ≤50noUsa un valor de la enumeración de colores para que se traduzca; otras palabras se muestran tal cual.
whiteblacksilvergrayblueredgreenyelloworangebrownbeigegoldpurplepinkotheretiquetas ↓
mileageintegernoLectura del odómetro, en mileage_unit.
mileage_unitenumnokm (por defecto) o mi. Usa mi para autos de EE. UU./Reino Unido vendidos en el extranjero; el sitio muestra la unidad tal como se envía.
Motor y transmisión
motor_typestring ≤100noDenominación del motor, p. ej. "2.0 TDI 150hp".
fuel_typeenumnoVer enumeraciones.
petroldieselelectrichybrid_petrolhybrid_dieselphev_petrolphev_diesellpgcnghydrogenmild_hybridotheretiquetas ↓
power_hp / power_kwintegernoEnvía uno de los dos; el otro se deriva.
cylinder_capacityinteger ccnoCilindrada en cm³, p. ej. 1998.
gearbox_typeenumnoManual, automática, semiautomática, CVT o una sola marcha (eléctrico).
manualautomaticcvtdctsemi_autoetiquetas ↓
drivetrainenumnofront, rear o 4wd.
4wdfrontrearetiquetas ↓
emission_standardenumnoNorma Euro.
euro0euro1euro2euro3euro4euro5euro6euro6beuro6ceuro6deuro6d_tempotheretiquetas ↓
co2_gkmintegernoCO₂ en g/km.
battery_capacity_kwhdecimal kWhnoVehículos eléctricos: capacidad útil de la batería, p. ej. 77.4. Se muestra en lugar de la norma Euro cuando fuel_type es electric.
battery_soh_pctinteger 0–100noEstado de salud de la batería en %.
battery_certificate_urlurlnoEnlace al certificado de salud de la batería; se muestra como enlace en el anuncio.
Carrocería, dimensiones y ruedas
body_typeenumnoTipo de carrocería, como en los filtros del sitio.
sedanhatchbackestatecoupeconvertiblesuvcrossovermpvpickupvanotheretiquetas ↓
num_doors / num_seatsintegernoPuertas 1–9, asientos 1–99.
weightinteger kgnoPeso en vacío.
steering_positionenumnolhd o rhd.
tyre_size / bolt_pattern / et_offsetstringnop. ej. "225/45R17", "5x112", "+35".
Interior y confort
interior_colorstring ≤50noTexto libre, p. ej. "negro".
interior_materialenumnoTapicería.
alcantarafabricartificial_leatherpartial_leatherfull_leathervelouretiquetas ↓
air_conditioningenumnoSin, manual o climatizador automático (1–4 zonas).
acNoneacManualac2Zoneac3Zoneac4Zoneetiquetas ↓
airbagsenumnoCuántos airbags tiene.
airbagDriverairbagFrontairbagFrontSideairbagFulletiquetas ↓
Equipamiento
featuresarray[string]noSlugs de equipamiento del catálogo de abajo. Los slugs desconocidos se rechazan. Enviar [] vacía la lista.
parking_assistarray[string]noSlugs de ayudas de aparcamiento del catálogo de abajo.
Venta y estado
is_for_salebooleannoPor defecto true al crear. false retira el auto del marketplace pero lo conserva.
asking_pricedecimalnoEn la moneda del taller (devuelta como `currency`). Número simple, no centavos.
is_margin_vehicle / is_tax_vehiclebooleannoTratamiento del IVA: régimen de margen o IVA deducible.
vehicle_conditionenumnoNuevo, demo, usado, dañado…
factory_newnew_conditionnew_with_damageusedused_with_damagepartsetiquetas ↓
num_ownersintegernoPropietarios anteriores, 0–99.
maintenance_historyenumnoEstado del libro de mantenimiento.
nonedealershipplatformbothetiquetas ↓
carpass_urlurlnoEnlace al documento Car-Pass (Bélgica).
short_descriptionstring ≤120noUna línea en las tarjetas del listado.
seller_descriptiontextnoDescripción completa.
Fotos
image_urlsarray[url] ≤30noFotos a descargar de tus servidores, en orden de visualización. Si está presente reemplaza todo el conjunto de fotos; omítelo para no tocarlas.
Identificador. Usa un id permanente de tu DMS como external_id, nunca una posición de stock ni un orden de visualización. Es lo que hace funcionar el upsert, GET /v1/vehicles/{ref} por tu id y la sincronización del inventario.

Endpoints

Cuenta

GET/v1/meQuién soyEl taller de la clave, uso de cupos de venta, conteo de vehículos.
GET/healthEstadoSin autenticación.

Referencia (sin clave)

GET/v1/optionsTodos los valores aceptadosCada enumeración, slug de equipamiento, valor de aparcamiento y tipo de vehículo, etiquetados en en/nl/fr/es/pt.
GET/v1/featuresCatálogo de equipamientoSolo los slugs de equipamiento con sus grupos.
GET/v1/makes?search=Marcas`search` y `vehicle_type_id` opcionales.
GET/v1/makes/{make_id}/modelsModelos de una marca

Vehículos

GET/v1/vehiclesListar`status=published|unlisted|all`, `external_id=`, `limit` (≤200), `offset`.
POST/v1/vehiclesCrear o upsert201 al crear. Si `external_id` ya existe en tu taller, el vehículo se actualiza y se devuelve 200.
GET/v1/vehicles/{ref}Obtener uno`ref` es nuestro uuid o tu external_id.
PATCH/v1/vehicles/{ref}Actualizar algunos camposLos campos omitidos conservan su valor.
PUT/v1/vehicles/{ref}ReemplazarLos campos opcionales omitidos se vacían.
DELETE/v1/vehicles/{ref}EliminarPermanente, fotos incluidas. Prefiere PATCH {"is_for_sale": false} para retirar de la venta.
POST/v1/vehicles/syncSincronizar todo un inventarioHasta 200 vehículos por llamada, validación todo o nada, modo `complete` opcional.

Fotos

GET/v1/vehicles/{ref}/imagesListar fotosEl orden 0 es la foto principal.
POST/v1/vehicles/{ref}/imagesAñadir una fotoJSON `{"url": …}` o archivo `image` multipart; `order` opcional.
PUT/v1/vehicles/{ref}/images/orderReordenar`{"ids": […]}`: cada id de foto exactamente una vez.
DELETE/v1/vehicles/{ref}/images/{id}Eliminar una fotoLas fotos restantes se renumeran.

Esquemas completos de petición y respuesta, con todas las enumeraciones: Swagger UI · ReDoc · openapi.json.

Respuesta de listado

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

Upsert y actualizaciones obsoletas

POST /v1/vehicles con un external_id que tu taller ya usa actualiza ese vehículo (HTTP 200) en lugar de crear otro (HTTP 201). Así una integración simple de "enviar todo cada noche" es idempotente.

Si además envías external_updated_at, una actualización con una marca de tiempo más antigua que la guardada se rechaza con 409 stale_update, de modo que un evento retrasado nunca sobrescribe uno más nuevo. Dentro de una sincronización ese vehículo se reporta como skipped_stale y el resto continúa.

PATCH cambia solo los campos que envías. PUT es un reemplazo completo: los campos opcionales que omitas se vacían. Ambos aceptan el mismo cuerpo que la creación.

Sincronización del inventario

POST /v1/vehicles/sync hace upsert de todo un inventario en una llamada (≤200 vehículos; repítela para más). Cada vehículo necesita 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"
    }
  ]
}
  • Validación todo o nada. Primero se valida todo el contenido. Un vehículo inválido rechaza la llamada con 422 y un mapa vehicles por vehículo; no se escribe nada.
  • complete: true declara que el contenido es todo tu stock. Los vehículos gestionados por la API (los que llevan uno de tus ids externos) que falten se retiran de la venta, nunca se borran: siguen en tu panel y vuelven si los envías de nuevo.
  • Protección contra vacío. Una sincronización completa sin vehículos necesita allow_empty: true; si no, 409 empty_snapshot.
  • dry_run: true devuelve would_create, would_update, would_unlist y no escribe nada.
  • Cupos. Los vehículos que superen tus cupos de venta se guardan sin publicar con un aviso sale_limit_reached en lugar de hacer fallar la sincronización.

Los vehículos añadidos a mano en el sitio web nunca se tocan en una sincronización.

Cupos de venta

Cada cuenta de taller tiene un número de vehículos que pueden estar en venta al mismo tiempo (nivel gratuito, niveles de suscripción o una cantidad asignada por Driv.one). GET /v1/me devuelve slots.used, slots.limit y slots.available.

Una creación o actualización que supere el cupo falla con 403 sale_limit_reached. Para liberar un cupo, haz PATCH {"is_for_sale": false} a un vehículo: se conserva y puede volver a publicarse. Puedes comprar más cupos en {link}.

Fotos

Las fotos están ordenadas; el orden 0 es la foto principal que aparece en las tarjetas. Las imágenes grandes se redimensionan a 2560 px en el lado largo y se recodifican; lo que supere 15 MB después de eso se rechaza.

Con el vehículo

Envía image_urls al crear o actualizar. Las fotos se descargan de tus servidores en el orden indicado y reemplazan todo el conjunto de fotos. Omite el campo para dejar las fotos como están. Si no se puede descargar ninguna URL, se conservan las fotos existentes y se devuelve un aviso.

De una en una

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"

Reordenar

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]}'
Las URL remotas deben ser direcciones http(s) públicas. Los destinos locales, privados y reservados se rechazan en cada redirección. Se comprueba que el contenido sea una imagen real sin importar el Content-Type declarado.

Equipamiento (106 valores)

Envía el equipamiento como slugs en features y las ayudas de aparcamiento en parking_assist. Solo se aceptan los valores siguientes; los slugs desconocidos devuelven 422 indicándolos. Omitir el campo en PATCH conserva el equipamiento; enviar [] lo vacía. Etiquetas en todos los idiomas: GET /v1/options.

Ayudas de aparcamiento parking_assist

6
cam_360Cámara 360° · 360° Camera
cam_frontCámara frontal · Front camera
cam_rearCámara trasera · Rear camera
self_steeringSistemas de autoguiado · Self-steering systems
sens_frontSensores delanteros · Front parking sensors
sens_rearSensores traseros · Rear parking sensors

Exterior features 78

Electrónica

10
absABS · ABS
espESP · ESP
immobiliserInmovilizador electrónico · Electronic immobiliser
centralLockingCierre centralizado · Central locking
keylessCierre centralizado sin llave · Keyless central locking
rainSensorSensor de lluvia · Rain sensor
lightSensorSensor de luz · Light sensor
tyrePressureMonitorControl de presión de neumáticos · Tyre pressure monitoring
startStopSistema Start/Stop · Start/stop system
electricTailgatePortón eléctrico · Electric tailgate

Iluminación

6
fogLightsFaros antiniebla · Fog lights
ledDrlLuces diurnas LED · LED daytime running lights
drlLuces diurnas · Daytime running lights
corneringLightLuz de curva · Cornering light
headlightWasherLimpiafaros · Headlight washer
dynamicIndicatorsIndicadores dinámicos / secuenciales / deslizantes · Dynamic / sweeping / sliding indicators

Faros

7
biXenonHeadlightsFaros bi-xenón · Bi-xenon headlights
xenonHeadlightsFaros de xenón · Xenon headlights
ledHeadlightsFaros LED · LED headlights
laserLightLuz láser · Laser light
highBeamAssistAsistente de luz larga · High beam assist
nightVisionAsistente de visión nocturna · Night vision assistant
matrixLightsLuces inteligentes / matriciales · Intelligent / matrix lights

Asistentes de conducción

12
distanceWarnerAvisador de distancia · Distance warning
hillStartAssistAsistente de arranque en pendiente · Hill start assist
speedLimiterLimitador de velocidad · Speed limiter
emergencyBrakeAssistAsistente de frenada de emergencia · Emergency brake assist
laneAssistAsistente de carril · Lane assist
blindSpotMonitorAsistente de ángulo muerto · Blind spot monitor
tractionControlControl de tracción · Traction control
trafficSignRecognitionReconocimiento de señales · Traffic sign recognition
adaptiveCorneringLuz de curva adaptativa · Adaptive cornering light
cruiseControlControl de crucero · Cruise control
adaptiveCruiseControlControl de crucero adaptativo · Adaptive cruise control
fatigueWarnerAsistente de fatiga · Fatigue warning system

Confort y otros

43
tintedWindowsVentanas tintadas · Tinted windows
adaptiveSuspensionSuspensión adaptativa · Adaptive suspension
allWeatherTyresNeumáticos para todo tiempo · All-weather tyres
heatedWindscreenParabrisas calefactable · Heated windscreen
disabledAccessAcceso adaptado · Disabled access
roofRailsBarras de techo · Roof rails
airSuspensionSuspensión neumática · Air suspension
spareWheelRueda de repuesto · Spare wheel
tyreSealantKit antipinchazos · Tyre sealant kit
fullSizeSpareRueda de repuesto completa · Full-size spare wheel
powerSteeringDirección asistida · Power steering
summerTyresNeumáticos de verano · Summer tyres
sportSuspensionSuspensión deportiva · Sport suspension
sportPackagePaquete deportivo · Sport package
steelWheelsLlantas de acero · Steel wheels
alloyWheelsLlantas de aleación · Alloy wheels
winterPackagePaquete de invierno · Winter package
winterTyresNeumáticos de invierno · Winter tyres
panoramicRoofTecho panorámico · Panoramic roof
slidingRoofTecho deslizante · Sliding roof
foldingRoofTecho plegable · Folding roof
towHitchBola de remolque · Tow hitch
alarmSystemSistema de alarma · Alarm system
ambientLightingIluminación ambiental · Ambient lighting
electricWindowsElevalunas eléctrico · Electric windows
handsFreeSistema manos libres · Hands-free system
cargoPartitionSeparador del maletero · Cargo area partition
isofixIsofix · Isofix
isofixPassengerIsofix asiento del copiloto · Isofix passenger seat
emergencyCallSystemSistema de llamada de emergencia · Emergency call system
smokersPackagePaquete fumador · Smoker's package
rightHandDriveConducción por la derecha · Right-hand drive
skiStorageBolsa portaesquís · Ski storage
auxiliaryHeatingCalefacción auxiliar · Auxiliary heating
usbUSB · USB
heatedSteeringWheelVolante calefactado · Heated steering wheel
leatherSteeringWheelVolante de cuero · Leather steering wheel
multifunctionSteeringWheelVolante multifunción · Multifunction steering wheel
paddleShiftersLevas de cambio · Paddle shifters
electricMirrorsEspejos eléctricos · Electric mirrors
electricFoldingMirrorsEspejos eléctricos plegables · Electric folding mirrors
autoGlareFreeMirrorEspejo interior antideslumbrante · Auto-dimming interior mirror
virtualMirrorsEspejos laterales virtuales · Virtual side mirrors

Interior features 28

Infoentretenimiento

17
androidAutoAndroid Auto · Android Auto
appleCarplayApple CarPlay · Apple CarPlay
bluetoothBluetooth · Bluetooth
boardComputerOrdenador de abordo · On-board computer
cdPlayerReproductor de CD · CD player
headUpDisplayHead-up display · Head-up display
inductiveChargingCarga inductiva para smartphones · Inductive charging for smartphones
musicStreamingMúsica en streaming integrada · Integrated music streaming
navigationSistema de navegación · Navigation system
radioDabRadio DAB · DAB radio
soundSystemSistema de sonido · Sound system
touchscreenPantalla táctil · Touchscreen
tunerRadioSintonizador/Radio · Tuner/Radio
tvTV · TV
voiceControlControl por voz · Voice control
wifiHotspotPunto de acceso Wi-Fi · Wi-Fi hotspot
digitalInstrumentClusterCuadro de instrumentos digital · Fully digital instrument cluster

Asientos

11
armrestApoyabrazos · Armrest
electricSeatAdjustAjuste eléctrico de asientos · Electric seat adjustment
electricSeatAdjustMemoryAjuste eléctrico con memoria · Electric seat adjustment with memory
electricSeatAdjustRearAjuste eléctrico trasero · Electric rear seat adjustment
lumbarSupportApoyo lumbar · Lumbar support
massageSeatsAsientos con masaje · Massage seats
seatVentilationVentilación de asientos · Seat ventilation
seatHeatingCalefacción de asientos · Seat heating
seatHeatingRearCalefacción de asientos traseros · Rear seat heating
sportSeatsAsientos deportivos · Sport seats
foldablePassengerSeatAsiento del copiloto abatible · Foldable passenger seat

Enumeraciones

Etiquetas en el idioma seleccionado; todos los idiomas están en GET /v1/options. Los valores desconocidos se rechazan, no se adivinan.

vehicle_type

Carid 1Motorcycleid 2Truckid 3Vanid 4SUVid 5

year

19902027

fuel_type

12
ValorEtiquetaEnglish
petrolGasolinaPetrol / Gasoline
dieselDiéselDiesel
electricEléctricoElectric
hybrid_petrolHíbrido (Gasolina)Hybrid (Petrol)
hybrid_dieselHíbrido (Diésel)Hybrid (Diesel)
phev_petrolPHEV (Gasolina)PHEV (Petrol)
phev_dieselPHEV (Diésel)PHEV (Diesel)
lpgGLPLPG
cngGNCCNG
hydrogenHidrógenoHydrogen
mild_hybridHíbrido suaveMild Hybrid
otherOtroOther

gearbox_type

5
ValorEtiquetaEnglish
manualManualManual
automaticAutomáticoAutomatic
cvtCVTCVT
dctDoble embrague (DCT)Dual-Clutch (DCT)
semi_autoSemiautomáticoSemi-automatic

body_type

11
ValorEtiquetaEnglish
sedanSedánSedan
hatchbackHatchbackHatchback
estateFamiliar / BreakEstate / Break
coupeCoupéCoupé
convertibleCabrio / ConvertibleCabriolet / Convertible
suvSUVSUV
crossoverCrossoverCrossover
mpvMPV / MonovolumenMPV / Minivan
pickupPickupPickup
vanFurgonetaVan
otherOtroOther

drivetrain

3
ValorEtiquetaEnglish
4wdTracción a las 4 ruedas4 wheel drive
frontTracción delanteraFront drive
rearTracción traseraRear drive

steering_position

2
ValorEtiquetaEnglish
lhdVolante a la izquierdaLeft-hand drive
rhdVolante a la derechaRight-hand drive

emission_standard

12
ValorEtiquetaEnglish
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
otherOtroOther

color

15

color es texto libre; estos valores son los que el sitio traduce.

ValorEtiquetaEnglish
whiteBlancoWhite
blackNegroBlack
silverPlateadoSilver
grayGrisGray
blueAzulBlue
redRojoRed
greenVerdeGreen
yellowAmarilloYellow
orangeNaranjaOrange
brownMarrónBrown
beigeBeigeBeige
goldDoradoGold
purpleMoradoPurple
pinkRosaPink
otherOtroOther

interior_material

6
ValorEtiquetaEnglish
alcantaraAlcántaraAlcantara
fabricTelaFabric
artificial_leatherCuero sintéticoArtificial leather
partial_leatherCuero parcialPartial leather
full_leatherCuero completoFull leather
velourVelurVelour

vehicle_condition

6
ValorEtiquetaEnglish
factory_newNuevo de fábricaFactory New
new_conditionEn estado nuevoNew Condition
new_with_damageEstado nuevo con dañosNew Condition with Damage
usedUsadoUsed
used_with_damageUsado con dañosUsed with Damage
partsPara piezasUsed for Parts

maintenance_history

4
ValorEtiquetaEnglish
noneNoNo
dealershipSí, con concesionarioYes, with dealership
platformSí, con the platformYes, with the platform
bothSí, con concesionario y the platformYes, with dealership and the platform

airbags

4
ValorEtiquetaEnglish
airbagDriverAirbag del conductorDriver airbag
airbagFrontAirbags frontalesFront airbags
airbagFrontSideAirbags frontales y lateralesFront & side airbags
airbagFullAirbags frontales, laterales y traserosFront, side & rear airbags

air_conditioning

5
ValorEtiquetaEnglish
acNoneSin climatizaciónNone
acManualManualManual
ac2ZoneAutomático 2 zonas2-zone automatic
ac3ZoneAutomático 3 zonas3-zone automatic
ac4ZoneAutomático 4 zonas4-zone automatic

Errores

Los errores son JSON con un código error estable y un message legible; algunos incluyen claves adicionales.

{
  "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."
    ]
  }
}
HTTPerrorSignificado
401invalid_api_keyClave ausente, desconocida o revocada.
403read_only_keyLa clave solo puede leer.
403workshop_blocked / workshop_inactiveEl taller no puede publicar por el momento.
403sale_limit_reachedTodos los cupos de venta están en uso. El cuerpo incluye used, limit, available.
404vehicle_not_found / image_not_found / make_not_foundNo encontrado dentro de este taller.
409duplicate_vin / duplicate_license_plateOtro vehículo ya tiene ese identificador.
409stale_updateEl external_updated_at guardado es más reciente que el enviado.
409empty_snapshotUna sincronización completa sin vehículos necesita allow_empty: true.
422validation_errorErrores por campo en `fields` (o `vehicles` en una sincronización). No se escribió nada.
422image_url_* / image_too_large / image_unreadableNo se pudo obtener una foto. Al crear o actualizar son avisos, no fallos.
429Límite de uso. Reintenta tras la cabecera `Retry-After`.

Respuestas correctas: 200 lectura o actualización, 201 creado, 204 eliminado.

Límites de uso

Cada clave puede hacer 3 000 peticiones por hora. Por encima, la API responde 429 con una cabecera Retry-After. Una sincronización nocturna completa de unos cientos de autos usa pocas llamadas; si necesitas más, contacta con Driv.one.

Las descargas de fotos cuentan en el mismo presupuesto a través de las llamadas que las provocan, no por imagen.