Guia de integração

A API do Datacar devolve dados de veículos — preço e histórico da Tabela FIPE, ficha técnica, consumo, fotos e identificação por chassi e placa — consolidados de fontes abertas, com a proveniência e a confiança de cada campo. É uma API REST com JSON, autenticada por chave, documentada em OpenAPI 3.1.

URL base (produção)https://datacar.digitalmart.com.br/api/v1
FormatoJSON UTF-8 · erros em application/problem+json (RFC 9457)
AutenticaçãoAuthorization: Bearer dc_live_…
Especificaçãoopenapi.json · referência interativa

Quickstart

Com a sua chave em mãos, consulte um veículo pelo código FIPE e pelo ano modelo (opcionalmente com o combustível da FIPE, como em 2015-3; use 0km para zero quilômetro):

Terminalbash
curl https://datacar.digitalmart.com.br/api/v1/vehicles/005340-6/2015-3 \
  -H "Authorization: Bearer $DATACAR_API_KEY"
Node.js 18+js
const res = await fetch('https://datacar.digitalmart.com.br/api/v1/vehicles/004516-0/2023', {
  headers: { Authorization: `Bearer ${process.env.DATACAR_API_KEY}` },
})

if (res.status === 202) {
  // Veículo novo: a consulta às fontes continua em segundo plano.
  const wait = Number(res.headers.get('retry-after') ?? 2)
  console.log(`Tente novamente em ${wait}s`)
} else if (res.ok) {
  const { data } = await res.json()
  console.log(data.brand, data.model, data.price?.amount, data.engine, data.quality.score)
} else {
  const problem = await res.json() // { code, detail, request_id, ... }
  throw new Error(`${problem.code}: ${problem.detail}`)
}
PHP 8php
$ch = curl_init('https://datacar.digitalmart.com.br/api/v1/vehicles/005340-6/2015-3?view=flat');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('DATACAR_API_KEY')],
    CURLOPT_TIMEOUT => 10,
]);
$body = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($status === 200) {
    echo $body['data']['marca'] . ' ' . $body['data']['modelo'] . ' — R$ ' . $body['data']['preco_fipe'];
}

Respostas de uma consulta

StatusSignificadoConsome cota?
200Veículo encontradoSim (1)
202Veículo novo sendo consultado nas fontes; repita após Retry-AfterNão
304Nada mudou desde o ETag enviado em If-None-MatchNão
404A FIPE não lista este código/ano (veja os anos em GET /v1/vehicles/{fipe_code})Não

Conceitos

Proveniência e confiança

Adicione include=provenance para receber, por campo, a confiança (0–1), as fontes que concordam e as que divergem. A confiança combina a confiabilidade de cada fonte para aquele campo com o quanto elas concordam entre si — um valor visto em uma única fonte nunca chega a 1. inferred:fipe indica um valor lido da descrição FIPE (por exemplo, “2.0 16V TDI 4x4” → motor 2.0, 16 válvulas, turbo, 4x4); fontes que informam o mesmo campo diretamente sempre têm peso maior.

json
"provenance": {
  "price":     { "confidence": 0.99, "sources": ["parallelum", "brasil-api"], "dissent": [] },
  "body_type": { "confidence": 0.78, "sources": ["wikidata", "inferred:fipe"], "dissent": [] },
  "engine":    { "confidence": 0.55, "sources": ["inferred:fipe"], "dissent": [] }
}
Dica: publique automaticamente campos com confiança ≥ 0,8 e envie para revisão humana os que tiverem alertas conflict em quality.warnings.

Qualidade

quality.score (0–100) mede a completude da ficha ponderada pela confiança: preço, motor, marca/modelo, câmbio, dimensões, consumo e fotos pesam mais. quality.warnings lista conflitos entre fontes, valores implausíveis (potência incompatível com a cilindrada, por exemplo), saltos de preço fora do normal entre meses e campos essenciais ausentes.

Revisões e a virada mensal da FIPE

Cada veículo tem um meta.revision que incrementa somente quando o conteúdo muda. A FIPE publica uma nova tabela nos primeiros dias úteis de cada mês: o Datacar reprocessa os veículos logo depois, e cada preço novo gera uma revisão, um item no feed de alterações e o webhook vehicle.updated. Reconsultas que não mudam nada não geram nada disso.

Formatos de saída

Próximos passos