Import API
verificando…
Documentação para desenvolvedores

API de importação

Mantenha seu inventário Driv.one alinhado com seu DMS ou sistema de estoque. Crie e atualize veículos, envie inventários completos, gerencie fotos — por meio de uma API REST versionada e limitada à sua oficina.

REST + JSONEndpoints previsíveis, JSON de entrada e saída, códigos de erro estáveis.
Limitada à oficinaCada chave pertence a uma oficina e só vê os carros dessa oficina.
O mesmo vocabulário do siteOs valores aceitos são exatamente os do formulário Adicionar veículo, etiquetados em cinco idiomas.
Sincronização seguraValidação tudo ou nada, proteção contra atualizações obsoletas, e nas sincronizações completas o veículo é retirado da venda, mas nunca excluído.

A API é destinada a vendedores profissionais, grupos de concessionárias, fornecedores de DMS e parceiros de integração. Os registros que você criar aparecem em driv.one na sua oficina, assim como os carros adicionados manualmente.

Escopo. Os registros da API estão limitados à oficina autenticada. Uma chave nunca pode ler nem alterar o inventário de outra oficina; um proprietário com várias oficinas precisa de uma chave por oficina.

Início rápido

1. Crie uma chave de API

Faça login em driv.one/garage-owner/api-keys, escolha a oficina, dê um nome à chave e copie-a. A chave é mostrada uma única vez; se você a perder, revogue-a e crie outra.

2. Teste a autenticação

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

3. Crie um veí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"
  ]
}'

A resposta é o veículo salvo com seu uuid, public_url, currency e fotos, mais uma lista warnings quando algo não fatal aconteceu (uma foto que não pôde ser obtida, um modelo que foi criado).

URL base e versões

https://api.driv.one/v1

A versão principal faz parte do caminho. Alterações incompatíveis recebem uma nova versão principal; /v1 mantém seu comportamento. Acréscimos (novos campos opcionais, novos valores de enumeração) podem surgir dentro da v1 — leia GET /v1/options em vez de fixar listas no código.

Os caminhos são mostrados sem barra final; com barra também são aceitos.

Autenticação

Autenticação por token Bearer com uma chave de API da oficina. As chaves começam com wsk_.

Authorization: Bearer wsk_…

X-API-Key: wsk_… é aceito como cabeçalho alternativo. Uma chave é de leitura e escrita ou somente leitura; uma chave somente leitura recebe 403 read_only_key em qualquer escrita.

Segurança das credenciais. Nunca coloque uma chave de API em JavaScript do navegador, em um repositório público, em uma captura de tela ou em um chamado de suporte. Revogue a chave assim que suspeitar de um vazamento — a revogação é imediata.

Cabeçalhos da requisição

CabeçalhoValorFinalidade
AuthorizationBearer wsk_…Autentica a oficina.
Content-Typeapplication/jsonPara corpos JSON. O envio de arquivos de foto usa multipart/form-data.
Acceptapplication/jsonAs respostas são sempre JSON.

Modelo de dados do veículo

Campos aceitos em POST, PUT e PATCH. As respostas retornam os mesmos nomes, mais os campos somente leitura uuid, status (published / unlisted), public_url, currency, images, for_sale_since e created_at.

Este é o conjunto completo: 48 campos — os mesmos que o formulário Adicionar veículo oferece — com 12 enumerações, 106 valores de equipamento e 6 ajudas de estacionamento. Todos os valores aceitos estão nesta página e em GET /v1/options; nada mais é aceito.
CampoTipoAo criarDescrição
Identidade
external_idstring ≤120recomendadoSeu próprio id estável do veículo (número de estoque, id do DMS). Permite referenciar o carro por ele e habilita o upsert e a sincronização.
external_updated_atdatetimenãoQuando seu sistema alterou o veículo pela última vez. Uma data mais antiga do que a salva é recusada com 409 stale_update.
license_platestring ≤20nãoDeve ser única em toda a plataforma.
vinstring (17)nãoNúmero do chassi, único em toda a plataforma. Salvo em maiúsculas.
Marca, modelo e emplacamento
make / make_idstring / integersimMarca, por nome (sem distinguir maiúsculas) ou id. GET /v1/makes.
model / model_idstring / integersimModelo dentro da marca. Nomes desconhecidos são recusados, salvo se create_missing_model for true.
create_missing_modelbooleannãoAdiciona um nome de modelo desconhecido sob a marca em vez de falhar. Padrão: false.
vehicle_type / vehicle_type_idstring / integernãoCar, Motorcycle, SUV, Truck, Van. Padrão: Car.
yearintegersimAno do modelo, 1990–2027.
first_registrationdatenãoAAAA-MM-DD.
colorstring ≤50nãoUse um valor da enumeração de cores para que seja traduzido; outras palavras são mostradas como enviadas.
whiteblacksilvergrayblueredgreenyelloworangebrownbeigegoldpurplepinkotheretiquetas ↓
mileageintegernãoQuilometragem, em mileage_unit.
mileage_unitenumnãokm (padrão) ou mi. Use mi para veículos dos EUA/Reino Unido vendidos no exterior; o site mostra a unidade como enviada.
Motor e transmissão
motor_typestring ≤100nãoDesignação do motor, p. ex. "2.0 TDI 150hp".
fuel_typeenumnãoVer enumerações.
petroldieselelectrichybrid_petrolhybrid_dieselphev_petrolphev_diesellpgcnghydrogenmild_hybridotheretiquetas ↓
power_hp / power_kwintegernãoEnvie um dos dois; o outro é derivado.
cylinder_capacityinteger ccnãoCilindrada em cm³, p. ex. 1998.
gearbox_typeenumnãoManual, automático, semiautomático, CVT ou marcha única (elétrico).
manualautomaticcvtdctsemi_autoetiquetas ↓
drivetrainenumnãofront, rear ou 4wd.
4wdfrontrearetiquetas ↓
emission_standardenumnãoNorma Euro.
euro0euro1euro2euro3euro4euro5euro6euro6beuro6ceuro6deuro6d_tempotheretiquetas ↓
co2_gkmintegernãoCO₂ em g/km.
battery_capacity_kwhdecimal kWhnãoVeículos elétricos: capacidade útil da bateria, p. ex. 77.4. Mostrada em vez da norma Euro quando fuel_type é electric.
battery_soh_pctinteger 0–100nãoEstado de saúde da bateria (SOH) em %.
battery_certificate_urlurlnãoLink para o certificado da bateria; mostrado como link clicável no anúncio.
Carroceria, dimensões e rodas
body_typeenumnãoTipo de carroceria, como nos filtros do site.
sedanhatchbackestatecoupeconvertiblesuvcrossovermpvpickupvanotheretiquetas ↓
num_doors / num_seatsintegernãoPortas 1–9, assentos 1–99.
weightinteger kgnãoPeso vazio.
steering_positionenumnãolhd ou rhd.
tyre_size / bolt_pattern / et_offsetstringnãop. ex. "225/45R17", "5x112", "+35".
Interior e conforto
interior_colorstring ≤50nãoTexto livre, p. ex. "preto".
interior_materialenumnãoEstofamento.
alcantarafabricartificial_leatherpartial_leatherfull_leathervelouretiquetas ↓
air_conditioningenumnãoSem, manual ou ar-condicionado automático (1–4 zonas).
acNoneacManualac2Zoneac3Zoneac4Zoneetiquetas ↓
airbagsenumnãoQuantos airbags tem.
airbagDriverairbagFrontairbagFrontSideairbagFulletiquetas ↓
Equipamento
featuresarray[string]nãoSlugs de equipamento do catálogo abaixo. Slugs desconhecidos são recusados. Enviar [] limpa a lista.
parking_assistarray[string]nãoSlugs de ajudas de estacionamento do catálogo abaixo.
Venda e estado
is_for_salebooleannãoPadrão: true ao criar. false retira o carro do marketplace, mas o mantém.
asking_pricedecimalnãoNa moeda da oficina (retornada como `currency`). Número simples, não centavos.
is_margin_vehicle / is_tax_vehiclebooleannãoTratamento do IVA: regime da margem ou IVA dedutível.
vehicle_conditionenumnãoNovo, demonstração, usado, danificado…
factory_newnew_conditionnew_with_damageusedused_with_damagepartsetiquetas ↓
num_ownersintegernãoProprietários anteriores, 0–99.
maintenance_historyenumnãoSituação do histórico de manutenção.
nonedealershipplatformbothetiquetas ↓
carpass_urlurlnãoLink para o documento Car-Pass (Bélgica).
short_descriptionstring ≤120nãoUma linha nos cartões da listagem.
seller_descriptiontextnãoDescrição completa.
soldbooleannãotrue = o carro foi vendido: sai da venda e aparece com status "sold" e sold_at.
sold_viaenumnãoplatform ou elsewhere (padrão: elsewhere). Só com sold: true.
platformelsewhereetiquetas ↓
queue_if_fullbooleannãoPadrão: true. Com todas as vagas ocupadas, um carro a ser colocado à venda espera na fila (status "queued") em vez de falhar com 403.
Fotos
image_urlsarray[url] ≤30nãoFotos a baixar dos seus servidores, na ordem de exibição. Se presente, substitui todo o conjunto de fotos; omita para não mexer nas fotos.
Identificador. Use um id permanente do seu DMS como external_id — nunca uma posição de estoque nem uma ordem de exibição. É o que faz funcionar o upsert, GET /v1/vehicles/{ref} pelo seu id e a sincronização do inventário.

Endpoints

Conta

GET/v1/meQuem souA oficina por trás da chave, uso das vagas de venda, contagem de veículos.
GET/healthStatusSem autenticação.

Referência (sem chave)

GET/v1/optionsTodos os valores aceitosCada enumeração, slug de equipamento, valor de estacionamento e tipo de veículo, etiquetados em en/nl/fr/es/pt.
GET/v1/featuresCatálogo de equipamentoApenas os slugs de equipamento com seus grupos.
GET/v1/makes?search=Marcas`search` e `vehicle_type_id` opcionais.
GET/v1/makes/{make_id}/modelsModelos de uma marca

Veículos

GET/v1/vehiclesListar`status=published|queued|unlisted|sold|all`, `external_id=`, `updated_since=` (feed de alterações), `limit` (≤200), `offset`.
POST/v1/vehiclesCriar ou upsert201 ao criar. Se `external_id` já existir na sua oficina, o veículo é atualizado e o retorno é 200.
GET/v1/vehicles/{ref}Obter um`ref` é o nosso uuid ou o seu external_id.
PATCH/v1/vehicles/{ref}Atualizar alguns camposOs campos omitidos mantêm o valor.
PUT/v1/vehicles/{ref}SubstituirOs campos opcionais omitidos são limpos.
DELETE/v1/vehicles/{ref}ExcluirPermanente, fotos incluídas. Prefira PATCH {"is_for_sale": false} para retirar da venda.
POST/v1/vehicles/syncSincronizar um inventário inteiroAté 200 veículos por chamada, validação tudo ou nada, modo `complete` opcional.
GET/v1/vehicles/deleted?since=Veículos excluídosSeus veículos excluídos depois de `since`, com uuid e external_id.

Vagas

GET/v1/slotsVagas e filalimit, used, available, queued, slots_needed, os carros à venda e a fila em ordem.
POST/v1/vehicles/publishColocar veículos à venda`{"vehicles": [uuid ou external_id, …]}` na sua ordem: as vagas livres são preenchidas, o resto espera na fila.
POST/v1/vehicles/unpublishRetirar veículos da vendaTambém os tira da fila; as vagas liberadas passam para os próximos carros.

Webhooks

GET/v1/webhooksListar webhooksSuas URLs registradas, eventos e status das entregas.
POST/v1/webhooksRegistrar um webhook`{"url": "https://…", "events": […]}` - a resposta traz o `secret` de assinatura, uma única vez.
PATCH/v1/webhooks/{id}Alterar um webhook`url`, `events`, `include_own_changes`, `is_active`; `rotate_secret: true` retorna um novo secret.
DELETE/v1/webhooks/{id}Excluir um webhook
POST/v1/webhooks/{id}/testEnviar um ping de testeEnvia um evento `ping` assinado para a URL.
GET/v1/webhooks/{id}/deliveriesRegistro de entregasAs últimas 50 entregas com status, tentativas e último erro.

Fotos

GET/v1/vehicles/{ref}/imagesListar fotosA ordem 0 é a foto principal.
POST/v1/vehicles/{ref}/imagesAdicionar uma fotoJSON `{"url": …}` ou arquivo `image` multipart; `order` opcional.
PUT/v1/vehicles/{ref}/images/orderReordenar`{"ids": […]}` — cada id de foto exatamente uma vez.
DELETE/v1/vehicles/{ref}/images/{id}Excluir uma fotoAs fotos restantes são renumeradas.

Esquemas completos de requisição e resposta, com todas as enumerações: Swagger UI · ReDoc · openapi.json.

Resposta de listagem

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

Upsert e atualizações obsoletas

POST /v1/vehicles com um external_id que sua oficina já usa atualiza esse veículo (HTTP 200) em vez de criar outro (HTTP 201). Assim, uma integração simples de "enviar tudo todas as noites" é idempotente.

Se você também enviar external_updated_at, uma atualização com uma data mais antiga do que a salva é recusada com 409 stale_update, para que um evento atrasado nunca substitua um mais recente. Em uma sincronização, esse veículo é reportado como skipped_stale e o resto prossegue.

PATCH altera apenas os campos que você enviar. PUT é uma substituição completa: os campos opcionais omitidos são limpos. Ambos aceitam o mesmo corpo da criação.

Sincronização do inventário

POST /v1/vehicles/sync faz upsert de um inventário inteiro em uma só chamada (≤200 veículos; repita para mais). Cada veículo precisa de um 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"
    }
  ]
}
  • Validação tudo ou nada. Todo o conteúdo é validado primeiro. Um veículo inválido rejeita a chamada com 422 e um mapa vehicles por veículo; nada é gravado.
  • complete: true declara que o conteúdo é todo o seu estoque. Os veículos gerenciados pela API (com um dos seus ids externos) que faltarem são retirados da venda, nunca excluídos — ficam no seu painel e voltam se você os enviar de novo.
  • Proteção contra vazio. Uma sincronização completa sem veículos precisa de allow_empty: true; caso contrário, 409 empty_snapshot.
  • dry_run: true retorna would_create, would_update, would_unlist e não grava nada.
  • Vagas. Os veículos além das suas vagas de venda são salvos não publicados com um aviso sale_limit_reached, em vez de fazer a sincronização falhar.

Os veículos adicionados manualmente no site nunca são alterados por uma sincronização.

Vagas de venda

Cada conta de oficina tem um número de veículos que podem estar à venda ao mesmo tempo (nível gratuito, assinaturas, ou um número atribuído por Driv.one). GET /v1/me retorna slots.used, slots.limit e slots.available.

Quando todas as vagas estão ocupadas, um carro colocado à venda não é recusado: ele espera em uma fila (status queued, aviso queued_for_slot) e fica à venda sozinho, o mais antigo primeiro, assim que uma vaga é liberada - um carro retirado, vendido ou excluído, ou mais vagas compradas em driv.one/garage-owner/slots/purchase. Envie queue_if_full: false para obter o antigo 403 sale_limit_reached.

Colocar muitos veículos à venda

POST /v1/vehicles/publish recebe uma lista dos seus veículos na ordem em que você quer publicá-los. As vagas livres são preenchidas primeiro; o resto fica na fila nessa ordem. A resposta indica quais carros ficaram à venda, quais esperam (com seu lugar na fila) e quantas vagas faltam. GET /v1/slots mostra o mesmo a qualquer momento: os carros à venda, a fila e slots_needed.

curl -X POST https://api.driv.one/v1/vehicles/publish \
  -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"vehicles": ["STOCK-4821", "STOCK-4822", "STOCK-4823"]}'
{
  "published": [{"uuid": "…", "external_id": "STOCK-4821"}],
  "queued": [{"uuid": "…", "external_id": "STOCK-4822", "position": 1},
             {"uuid": "…", "external_id": "STOCK-4823", "position": 2}],
  "already_published": [], "not_found": [],
  "slots": {"limit": 10, "used": 10, "available": 0, "queued": 2, "slots_needed": 2},
  "notice": {"code": "slots_needed", "slots_needed": 2, "buy_url": "https://driv.one/garage-owner/slots/purchase", "message": "…"}
}

Enquanto houver carros esperando, o titular da conta é informado de quantas vagas extras são necessárias - na plataforma, por e-mail e com o webhook slots.needed - de novo apenas quando esse número aumenta. POST /v1/vehicles/unpublish retira carros da venda ou da fila; as vagas liberadas passam imediatamente para os próximos carros em espera (promoted_from_queue).

Sincronização bidirecional

A API também informa o que acontece com seus veículos na plataforma: vendas, carros adicionados ou alterados no site ou nos apps, e exclusões. Obtenha as alterações com o feed de alterações, receba-as por webhooks, ou ambos.

Feed de alterações

GET /v1/vehicles?updated_since= retorna todos os seus veículos alterados depois desse momento, da alteração mais antiga para a mais recente, incluindo vendidos e retirados. Salve o server_time da resposta e envie-o como updated_since da próxima vez. As exclusões estão em GET /v1/vehicles/deleted?since=.

curl "https://api.driv.one/v1/vehicles?updated_since=2026-09-28T08:00:00Z" \
  -H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.driv.one/v1/vehicles/deleted?since=2026-09-28T08:00:00Z" \
  -H "Authorization: Bearer YOUR_API_KEY"

Status vendido

Um carro vendido pela plataforma aparece com status: "sold", sold_via: "platform" e sold_at - também quando o vendedor o marcou no site. Informe uma venda do seu lado com {"sold": true}; colocar o carro à venda de novo limpa a venda. status=sold lista esses carros.

curl -X PATCH https://api.driv.one/v1/vehicles/STOCK-4821 \
  -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"sold": true, "sold_via": "elsewhere"}'

Webhooks

Registre uma URL https e enviaremos a ela (POST) um evento JSON a cada alteração nos seus veículos. A resposta ao registro traz o secret que assina cada chamada - ele só é mostrado uma vez. As alterações feitas com sua própria chave de API não são reenviadas, a menos que você defina include_own_changes: true. events limita os eventos recebidos.

curl -X POST https://api.driv.one/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"url": "https://dms.example.com/hooks/marketplace"}'
EventoSignificado
vehicle.createdUm veículo foi adicionado ao seu estoque na plataforma (site, app ou outra chave).
vehicle.updatedDados ou fotos alterados.
vehicle.listedO veículo foi colocado à venda - pode ser a primeira vez que você o vê.
vehicle.unlistedRetirado da venda sem venda.
vehicle.soldVendido - sold_via indica platform ou elsewhere.
vehicle.deletedExcluído; data traz apenas uuid e external_id.
vehicle.queuedSem vaga livre: o veículo espera na fila.
slots.neededHá veículos esperando; data traz queued, slots_needed e buy_url.

Conteúdo

{
  "id": "4127",
  "event": "vehicle.sold",
  "occurred_at": "2026-09-28T09:14:03.512Z",
  "source": "platform",
  "workshop": {
    "id": 90,
    "name": "Example Motors"
  },
  "data": {
    "vehicle": {
      "uuid": "…",
      "external_id": "STOCK-4821",
      "status": "sold",
      "sold_via": "platform",
      "sold_at": "2026-09-28T09:14:03Z",
      "make": "Volkswagen",
      "model": "Golf",
      "…": "…"
    }
  }
}

Verificar a assinatura

Cada chamada traz X-Webhook-Event, X-Webhook-Id e X-Webhook-Signature: t=<hora unix>,v1=<hex>, em que v1 é o HMAC-SHA256 de t + "." + corpo bruto com o seu secret. Recuse chamadas cujo t tenha mais de 5 minutos.

import hashlib, hmac

def verify(secret, header, raw_body):
    parts = dict(p.split("=", 1) for p in header.split(","))
    mac = hmac.new(secret.encode(), (parts["t"] + ".").encode() + raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(mac, parts["v1"])

Responda com um 2xx em menos de 10 segundos. Caso contrário, há nova tentativa após 1 min, 5 min, 30 min, 2 h, 6 h e 12 h; após 50 falhas seguidas o webhook é desativado (PATCH {"is_active": true} o reativa). As entregas podem chegar repetidas ou fora de ordem: use id para ignorar duplicados e o updated_at do veículo para manter o mais recente. Os eventos vehicle.updated são agrupados durante 20 segundos.

Fotos

As fotos são ordenadas; a ordem 0 é a foto principal mostrada nos cartões. As imagens grandes são redimensionadas para 2560 px no lado maior e recodificadas; o que exceder 15 MB depois disso é recusado.

Com o veículo

Envie image_urls ao criar ou atualizar. As fotos são baixadas dos seus servidores na ordem indicada e substituem todo o conjunto de fotos. Omita o campo para deixar as fotos como estão. Se nenhuma URL puder ser obtida, as fotos existentes são mantidas e um aviso é retornado.

Uma de cada vez

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]}'
As URLs remotas devem ser endereços http(s) públicos. Destinos locais, privados e reservados são recusados em cada redirecionamento. O conteúdo é verificado como imagem real, independentemente do Content-Type declarado.

Equipamento (106 valores)

Envie o equipamento como slugs em features e as ajudas de estacionamento em parking_assist. Só os valores abaixo são aceitos; slugs desconhecidos retornam 422 indicando quais são. Omitir o campo em PATCH mantém o equipamento; enviar [] esvazia a lista. Etiquetas em todos os idiomas: GET /v1/options.

Ajudas de estacionamento parking_assist

6
cam_360Câmara 360° · 360° Camera
cam_frontCâmara frontal · Front camera
cam_rearCâmara traseira · Rear camera
self_steeringSistemas de auto-direção · Self-steering systems
sens_frontSensores dianteiros · Front parking sensors
sens_rearSensores traseiros · Rear parking sensors

Exterior features 78

Eletrônica

10
absABS · ABS
espESP · ESP
immobiliserImobilizador eletrónico · Electronic immobiliser
centralLockingFecho centralizado · Central locking
keylessFecho centralizado sem chave · Keyless central locking
rainSensorSensor de chuva · Rain sensor
lightSensorSensor de luz · Light sensor
tyrePressureMonitorControlo da pressão dos pneus · Tyre pressure monitoring
startStopSistema Start/Stop · Start/stop system
electricTailgateMala elétrica · Electric tailgate

Iluminação

6
fogLightsFaróis de nevoeiro · Fog lights
ledDrlLuzes diurnas LED · LED daytime running lights
drlLuzes diurnas · Daytime running lights
corneringLightLuz de curva · Cornering light
headlightWasherLimpa-faróis · Headlight washer
dynamicIndicatorsIndicadores dinâmicos / sequenciais / deslizantes · Dynamic / sweeping / sliding indicators

Faróis

7
biXenonHeadlightsFaróis bi-xénon · Bi-xenon headlights
xenonHeadlightsFaróis de xénon · Xenon headlights
ledHeadlightsFaróis LED · LED headlights
laserLightLuzes laser · Laser light
highBeamAssistAssistente de luzes altas · High beam assist
nightVisionAssistente de visão noturna · Night vision assistant
matrixLightsLuzes inteligentes / matriciais · Intelligent / matrix lights

Assistentes de condução

12
distanceWarnerAviso de distância · Distance warning
hillStartAssistAssistente de arranque em declive · Hill start assist
speedLimiterLimitador de velocidade · Speed limiter
emergencyBrakeAssistAssistente de travagem de emergência · Emergency brake assist
laneAssistAssistente de manutenção de faixa · Lane assist
blindSpotMonitorAssistente de ângulo morto · Blind spot monitor
tractionControlControlo de tração · Traction control
trafficSignRecognitionReconhecimento de sinais · Traffic sign recognition
adaptiveCorneringLuz de curva adaptativa · Adaptive cornering light
cruiseControlCruise control · Cruise control
adaptiveCruiseControlCruise control adaptativo · Adaptive cruise control
fatigueWarnerAssistente de fadiga · Fatigue warning system

Conforto & outros

43
tintedWindowsJanelas fumadas · Tinted windows
adaptiveSuspensionSuspensão adaptativa · Adaptive suspension
allWeatherTyresPneus para todas as estações · All-weather tyres
heatedWindscreenPara-brisas aquecido · Heated windscreen
disabledAccessAcesso para deficientes · Disabled access
roofRailsBarras de tejadilho · Roof rails
airSuspensionSuspensão pneumática · Air suspension
spareWheelRoda sobressalente · Spare wheel
tyreSealantKit antipontura · Tyre sealant kit
fullSizeSpareRoda sobressalente completa · Full-size spare wheel
powerSteeringDireção assistida · Power steering
summerTyresPneus de verão · Summer tyres
sportSuspensionSuspensão desportiva · Sport suspension
sportPackagePacote desportivo · Sport package
steelWheelsJantes de aço · Steel wheels
alloyWheelsJantes em liga leve · Alloy wheels
winterPackagePacote de inverno · Winter package
winterTyresPneus de inverno · Winter tyres
panoramicRoofTejadilho panorâmico · Panoramic roof
slidingRoofTejadilho deslizante · Sliding roof
foldingRoofTeto dobrável · Folding roof
towHitchGancho de reboque · Tow hitch
alarmSystemSistema de alarme · Alarm system
ambientLightingIluminação ambiente · Ambient lighting
electricWindowsVidros elétricos · Electric windows
handsFreeSistema mãos-livres · Hands-free system
cargoPartitionSeparador da bagageira · Cargo area partition
isofixIsofix · Isofix
isofixPassengerIsofix banco do passageiro · Isofix passenger seat
emergencyCallSystemSistema de chamada de emergência · Emergency call system
smokersPackagePacote de fumador · Smoker's package
rightHandDriveCondução pela direita · Right-hand drive
skiStorageSaco para skis · Ski storage
auxiliaryHeatingAquecimento auxiliar · Auxiliary heating
usbUSB · USB
heatedSteeringWheelVolante aquecido · Heated steering wheel
leatherSteeringWheelVolante em couro · Leather steering wheel
multifunctionSteeringWheelVolante multifunções · Multifunction steering wheel
paddleShiftersPaletas de mudança · Paddle shifters
electricMirrorsEspelhos elétricos · Electric mirrors
electricFoldingMirrorsEspelhos elétricos dobráveis · Electric folding mirrors
autoGlareFreeMirrorEspelho interior antiofuscante · Auto-dimming interior mirror
virtualMirrorsEspelhos laterais virtuais · Virtual side mirrors

Interior features 28

Infoentretenimento

17
androidAutoAndroid Auto · Android Auto
appleCarplayApple CarPlay · Apple CarPlay
bluetoothBluetooth · Bluetooth
boardComputerComputador de bordo · On-board computer
cdPlayerLeitor de CD · CD player
headUpDisplayHead-up display · Head-up display
inductiveChargingCarregamento indutivo para smartphones · Inductive charging for smartphones
musicStreamingStreaming de música integrado · Integrated music streaming
navigationSistema de navegação · Navigation system
radioDabRádio DAB · DAB radio
soundSystemSistema de som · Sound system
touchscreenEcrã tátil · Touchscreen
tunerRadioSintonizador/Rádio · Tuner/Radio
tvTV · TV
voiceControlControlo por voz · Voice control
wifiHotspotHotspot Wi-Fi · Wi-Fi hotspot
digitalInstrumentClusterPainel de instrumentos totalmente digital · Fully digital instrument cluster

Assentos

11
armrestApoio de braço · Armrest
electricSeatAdjustAjuste elétrico dos assentos · Electric seat adjustment
electricSeatAdjustMemoryAjuste elétrico com memória · Electric seat adjustment with memory
electricSeatAdjustRearAjuste elétrico dos assentos traseiros · Electric rear seat adjustment
lumbarSupportSuporte lombar · Lumbar support
massageSeatsAssentos com massagem · Massage seats
seatVentilationVentilação dos assentos · Seat ventilation
seatHeatingAquecimento dos assentos · Seat heating
seatHeatingRearAquecimento dos assentos traseiros · Rear seat heating
sportSeatsAssentos desportivos · Sport seats
foldablePassengerSeatBanco do passageiro rebatível · Foldable passenger seat

Enumerações

Etiquetas no idioma selecionado; todos os idiomas estão em GET /v1/options. Valores desconhecidos são recusados, não adivinhados.

vehicle_type

Carid 1Motorcycleid 2Truckid 3Vanid 4SUVid 5

year

1990 – 2027

fuel_type

12
ValorEtiquetaEnglish
petrolGasolinaPetrol / Gasoline
dieselGasóleoDiesel
electricElétricoElectric
hybrid_petrolHíbrido (Gasolina)Hybrid (Petrol)
hybrid_dieselHíbrido (Gasóleo)Hybrid (Diesel)
phev_petrolPHEV (Gasolina)PHEV (Petrol)
phev_dieselPHEV (Gasóleo)PHEV (Diesel)
lpgGPLLPG
cngGNCCNG
hydrogenHidrogénioHydrogen
mild_hybridHíbrido suaveMild Hybrid
otherOutroOther

gearbox_type

5
ValorEtiquetaEnglish
manualManualManual
automaticAutomáticoAutomatic
cvtCVTCVT
dctDupla embraiagem (DCT)Dual-Clutch (DCT)
semi_autoSemi-automáticoSemi-automatic

body_type

11
ValorEtiquetaEnglish
sedanSedãSedan
hatchbackHatchbackHatchback
estateFamiliar / BreakEstate / Break
coupeCoupéCoupé
convertibleDescapotávelCabriolet / Convertible
suvSUVSUV
crossoverCrossoverCrossover
mpvMPV / MonovolumeMPV / Minivan
pickupPickupPickup
vanCarrinhaVan
otherOutroOther

drivetrain

3
ValorEtiquetaEnglish
4wdTração nas 4 rodas4 wheel drive
frontTração dianteiraFront drive
rearTração traseiraRear drive

steering_position

2
ValorEtiquetaEnglish
lhdVolante à esquerdaLeft-hand drive
rhdVolante à direitaRight-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
otherOutroOther

color

15

color é texto livre; estes valores são os que o site traduz.

ValorEtiquetaEnglish
whiteBrancoWhite
blackPretoBlack
silverPrataSilver
grayCinzaGray
blueAzulBlue
redVermelhoRed
greenVerdeGreen
yellowAmareloYellow
orangeLaranjaOrange
brownMarromBrown
beigeBegeBeige
goldDouradoGold
purpleRoxoPurple
pinkRosaPink
otherOutroOther

interior_material

6
ValorEtiquetaEnglish
alcantaraAlcântaraAlcantara
fabricTecidoFabric
artificial_leatherCouro artificialArtificial leather
partial_leatherCouro parcialPartial leather
full_leatherCouro integralFull leather
velourVeludoVelour

vehicle_condition

6
ValorEtiquetaEnglish
factory_newNovo de fábricaFactory New
new_conditionEstado novoNew Condition
new_with_damageEstado novo com danosNew Condition with Damage
usedUsadoUsed
used_with_damageUsado com danosUsed with Damage
partsPara peçasUsed for Parts

maintenance_history

4
ValorEtiquetaEnglish
noneNãoNo
dealershipSim, com concessionáriaYes, with dealership
platformSim, com the platformYes, with the platform
bothSim, com concessionária e the platformYes, with dealership and the platform

airbags

4
ValorEtiquetaEnglish
airbagDriverAirbag do condutorDriver airbag
airbagFrontAirbags frontaisFront airbags
airbagFrontSideAirbags frontais e lateraisFront & side airbags
airbagFullAirbags frontais, laterais e traseirosFront, side & rear airbags

air_conditioning

5
ValorEtiquetaEnglish
acNoneSem ar condicionadoNone
acManualManualManual
ac2ZoneAutomático 2 zonas2-zone automatic
ac3ZoneAutomático 3 zonas3-zone automatic
ac4ZoneAutomático 4 zonas4-zone automatic

Erros

Os erros são JSON com um código error estável e um message legível; alguns trazem chaves extras.

{
  "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_keyChave ausente, desconhecida ou revogada.
403read_only_keyA chave só pode ler.
403workshop_blocked / workshop_inactiveA oficina não pode publicar no momento.
403sale_limit_reachedTodas as vagas de venda estão em uso. O corpo inclui used, limit, available.
404vehicle_not_found / image_not_found / make_not_foundNão encontrado nesta oficina.
409duplicate_vin / duplicate_license_plateOutro veículo já tem esse identificador.
409stale_updateO external_updated_at salvo é mais recente do que o enviado.
409empty_snapshotUma sincronização completa sem veículos precisa de allow_empty: true.
422validation_errorErros por campo em `fields` (ou `vehicles` em uma sincronização). Nada foi gravado.
422image_url_* / image_too_large / image_unreadableNão foi possível obter uma foto. Ao criar ou atualizar são avisos, não falhas.
404webhook_not_foundNenhum webhook com esse id para esta oficina.
409webhook_limitNo máximo 5 webhooks por oficina.
422invalid_webhook_urlA URL deve ser https e apontar para um endereço público.
429—Limite de uso. Tente de novo após o cabeçalho `Retry-After`.

Respostas bem-sucedidas: 200 leitura ou atualização, 201 criado, 204 excluído.

Limites de uso

Cada chave pode fazer 3 000 requisições por hora. Acima disso, a API responde 429 com um cabeçalho Retry-After. Uma sincronização noturna completa de algumas centenas de carros usa poucas chamadas; se precisar de mais, entre em contato com Driv.one.

Os downloads de fotos contam no mesmo orçamento por meio das chamadas que os originam, não por imagem.

Contato