Pular para o conteúdo
ZapCar
Developersv1

Tabela FIPE: valor por marca, modelo ou código

Valor FIPE do mês (ou de um mês passado) por marca, modelo e ano, ou direto pelo código FIPE, com histórico opcional.

POST/v1/fipe/tabela
Cobra saldoIdempotency-KeySíncronoSandbox

O valor da Tabela FIPE por código FIPE (ou por marca + modelo, com os códigos das listas gratuitas) e ano. Síncrono, como a FIPE por placa: sem id, sem polling, sem PDF. Com historico: true, a resposta traz os últimos meses, sem custo adicional.

Informação:

Preço: R$ 0,10 por requisição

Serviço fipe-tabela em GET /v1/servicos, com estorno automático se falhar ou não houver valor. Aceita Idempotency-Key; o replay devolve o mesmo 200.

valor é o texto como a FIPE publica; valor_numerico é o mesmo número, para cálculo. Se a fonte não devolver o histórico pedido, historico vem null e o valor é entregue e cobrado normalmente.

Pedido
curl -X POST "https://api.zapcarconsulta.com.br/v1/fipe/tabela" \
  -H "Authorization: Bearer $ZAPCAR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-9f2c-fipe-tabela" \
  -d '{"tipo":"carros","codigo_fipe":"005340-6","ano":"2014-3","historico":true}'
Resposta
{
  "id": "c3d4e5f6-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
  "servico": "fipe-tabela",
  "tipo": "carros",
  "referencia": null,
  "veiculo": {
    "codigo_fipe": "005340-6",
    "marca": "VW - VolksWagen",
    "modelo": "AMAROK High.CD 2.0 16V TDI 4x4 Dies. Aut",
    "ano_modelo": 2014,
    "ano": "2014-3",
    "combustivel": "Diesel",
    "sigla_combustivel": "D"
  },
  "valor": "R$ 85.179,00",
  "valor_numerico": 85179,
  "mes_referencia": "setembro de 2026",
  "historico": [
    { "valor": "R$ 85.179,00", "valor_numerico": 85179, "mes_referencia": "setembro de 2026", "referencia": "337" },
    { "valor": "R$ 85.608,00", "valor_numerico": 85608, "mes_referencia": "agosto de 2026", "referencia": "336" }
  ],
  "valor_cobrado": 0.10,
  "saldo_restante": 464.66
}

Requisição

Cabeçalhos

Authorizationstringobrigatório
Sua chave no formato Bearer zc_live_… (produção) ou Bearer zc_test_… (teste). O cabeçalho X-API-Key também é aceito. Ver Autenticação.

Exemplo: Bearer zc_test_…

Idempotency-Keystringopcional
Identificador SEU desta operação (8–255 caracteres). Repetir a requisição com a mesma chave e o mesmo corpo devolve a resposta original SEM cobrar de novo: a proteção contra cobrança dupla em retry de rede. Validade de 30 dias. Cada nova tentativa de uma consulta que falhou precisa de uma chave NOVA.

Exemplo: pedido-erp-984281

Corpo (JSON)

tipostringobrigatório
Valores:carrosmotoscaminhoes
anostringobrigatório
Código do ano das listas ("2014-3"). 32000 = zero km.

Exemplo: 2014-3

codigo_fipestringopcional
Código FIPE (000000-0). Se vier, marca e modelo são ignorados.

Exemplo: 005340-6

marcastringopcional
Código da marca (de /marcas). Exigido sem codigo_fipe.

Exemplo: 59

modelostringopcional
Código do modelo (de /modelos). Exigido sem codigo_fipe.

Exemplo: 5940

referenciastringopcional
Código do mês (de /referencias). Ausente = vigente.

Exemplo: 337

historicobooleanopcional
true = inclui os últimos meses em historico (o valor do mês pedido continua em valor).

Respostas

  • 200
    Valor FIPE do veículo.Corpo: FipeTabelaResponse
  • 400
    Pedido inválido. Nada foi criado nem cobrado. codigo diz o que corrigir.Corpo: ApiError
  • 401
    Chave ausente, inválida ou revogada.Corpo: ApiError
  • 402
    Saldo insuficiente. Nada foi criado nem cobrado; a resposta traz o saldo atual.Corpo: ApiError
  • 404
    Não encontrado, ou não pertence a esta conta (um id de outro cliente responde 404, nunca o dado).Corpo: ApiError
  • 409
    Conflito: requisição idêntica (mesma Idempotency-Key) ainda em processamento (espere alguns segundos e repita, não crie outra consulta; ou, em atpve, aceite_atpve.versao diferente da vigente (AVISO_ATPVE_DESATUALIZADO)) busque o aviso em GET /public/avisos/atpve, mostre ao usuário e reenvie.Corpo: ApiError
  • 422
    Pedido compreendido mas não processável: serviço indisponível para a conta, Idempotency-Key reusada com outro payload, ou atpve sem a declaração aceite_atpve.Corpo: ApiError
  • 429
    Rate limit excedido. Respeite o header Retry-After (segundos) antes de repetir. Não consome saldo.Corpo: ApiError
  • 500
    Falha interna inesperada. É transitória (retryable: true); informe o request_id ao suporte se persistir.Corpo: ApiError
  • 502
    A fonte respondeu com erro (FIPE). Transitório: nada foi cobrado, o valor já foi estornado.Corpo: ApiError
  • 503
    Fornecedor temporariamente indisponível (circuito aberto). Transitório.Corpo: ApiError

Cabeçalhos da resposta

RateLimit-Limitintegerpode não vir
Teto de requisições da janela de 60s (120 em produção; 60 com chave de teste, em contador separado).
RateLimit-Remainingintegerpode não vir
Requisições restantes na janela atual.
RateLimit-Resetintegerpode não vir
Segundos até a janela zerar.
X-Request-Idstring (uuid)pode não vir
Id de correlação desta requisição. Informe ao suporte para localizar a chamada nos logs.

Falhas e estorno

HTTPCódigoQuando acontece
400VALIDATION_ERRORtipo ou ano inválidos, ou faltou codigo_fipe e também marca + modelo. Nada é cobrado.
402SALDO_INSUFICIENTESaldo menor que o preço. Nada é cobrado.
404FIPE_NAO_DISPONIVELA combinação (código, ano, mês) não existe na tabela. Valor estornado.
502FIPE_ERROFalha ao consultar a fonte. Valor estornado.
503FIPE_INDISPONIVELFonte temporariamente fora (ou cota diária esgotada). Valor estornado.
Informação:
No sandbox o valor é fictício e não há débito. O código FIPE escolhe o cenário: 000404-0 devolve FIPE_NAO_DISPONIVEL e 000503-0 devolve FIPE_INDISPONIVEL.