Webservice com os preços de automóveis da FIPE

Webservice com os preços de automóveis da FIPE
4.4 37

Como diz a máxima, a necessidade é a mãe das boas idéias. Faz um bom tempo que tenho em mente automatizar a busca pelos preços de automóveis que a FIPE dispõe na sua tabela.

Como é de conhecimento a FIPE não disponibiliza nenhum tipo de API ou webservice para que possamos consumir os dados. Enviei 3 e-mails para eles e até hoje não obtive resposta, como não posso ficar esperando, acabei criando um pequeno webservice para consulta dos dados que estão disponíveis no site da própria FIPE.

Basicamente existem 3 URLs para consultar o webservice, são eles:
Obtendo as marcas:

http://webservices.profissionaisdaweb.com.br/fipe/marcas-[TIPO].xml

Obtendo os modelos:
http://webservices.profissionaisdaweb.com.br/fipe/[ID-DA-MARCA]-modelos-[TIPO].xml

Obtendo os anos e respectivo valor:
http://webservices.profissionaisdaweb.com.br/fipe/[ID-DO-MODELO]-precos-[TIPO].xml

Explicando:
[TIPO] aceita apenas 3 valores (por enquanto): "carro", "moto" e "caminhao", não preciso dizer que carro vai retornar valores relativos a carros, moto vai retornar o de motos e o caminhao vai retornar o que for relacionado a caminhões.

[ID-DA-MARCA] está no XML que retorna quando são requistadas as marcas.

[ID-DO-MODELO] está no XML que vem quando se consultam os modelos.

Para ficar mais claro, vamos a um exemplo prático, vamos imaginar que eu queira saber qual o preço do Fiat Marea 2.4 automático ano 2003. Para isto começamos requisitando a lista de marcas de carro, a URL seria:
http://webservices.profissionaisdaweb.com.br/fipe/marcas-carro.xml

Isso me retorna um XML com as marcas e respectivos IDs, abaixo uma parte do conteúdo assim:

Envemo
19


Ferrari
20


Fiat
21


Fibravan
149


Ford
22


Como podemos ver a Fiat tem o ID 21. Agora vamos consultar o modelo dos veículos relacionados a este ID, para tanto vamos requisitar a lista na URL:
http://webservices.profissionaisdaweb.com.br/fipe/21-modelos-carro.xml

Isto retorna um XML com os carros da Fiat, entre eles eu busco o que me interessa, abaixo copio um pedaço do XML:

Marea ELX 2.4 mpi 20V 4p
001144-4


Marea HLX 2.0 20V 4p
001082-0


Marea HLX 2.4 mpi 20V 4p Aut.
001173-8


Marea HLX 2.4 mpi 20V 4p Mec.
001145-2


Marea SX 1.6 mpi 16V 106cv 4p
001226-2


Como podemos ver o ID do Fiat Marea 2.4 automático é o 001173-8, então agora vamos buscar os preços do carro, a URL fica:
http://webservices.profissionaisdaweb.com.br/fipe/001173-8-precos-carro.xml

E pronto, o retorno é a lista de preços do referido veículo:


2007 Gasolina
22573.00


2006 Gasolina
21391.00


2005 Gasolina
20693.00


2004 Gasolina
19074.00


2003 Gasolina
16628.00


2002 Gasolina
14277.00



Com isto sabemos que o Fiat Marea 2.4 automático 2003 custa na tabela R$ 16.628,00.

Caso exista algum problema na sua requisição o retorno será um erro, com a seguinte estrutura:

Descrição do erro que foi encontrado na sua requisição...


Bom, quero deixar algumas considerações, os dados estão sendo pegos direto no site da FIPE, só estou fazendo um cache do que é consultado, esse cache será apagado todo dia 5 do mês, recomendo que se você for usar também faça um cache, se eu perceber que está sendo feito algum abuso no uso do sistema eu simplesmente removo ele do uso público e pronto.

Comentários (37)

  • Silas

    Boa tarde!

    Existe alguma previsão para o webservice voltar a funcionar?

    Abs,

    06 de Fevereiro de 2017 às 14:27
    • Edgar Serra

      Na realidade o webservice está funcionando, apenas desabilitei o acesso ao público em geral, pois como é de se esperar alguns pessoas não entendem que devem usar de forma racional e acham que o negócio é para copiar o site da fipe inteiro.

      Estou bolando uma forma de conseguir botar algum freio nisto, só vou liberar novamente após essa questão ser resolvida.

      06 de Fevereiro de 2017 às 21:06
  • Daniel Martins de Souza

    Boa tarde!

    O webservice está fora do ar?

    Abçs

    01 de Fevereiro de 2017 às 14:27
    • Edgar Serra

      Sim.

      03 de Fevereiro de 2017 às 10:29
  • EVERTON RODRIGUES

    Edgar penso que seria interessante você fazer a alteração no xml conforme o link que deixo abaixo.
    http://imasters.com.br/artigo/1642/xml/acentuacao-no-arquivo-xml/

    10 de Maio de 2016 às 08:24
  • Everton Rodrigues

    Parabéns pelo trabalho!
    Ta dando um erro ao consultar as marcas:
    Caractere inválido na linha 53 posição 26
    "Citro?n"
    Acredito que seja devido ao caractere especial da palavra Citro

    09 de Maio de 2016 às 12:07
  • Evandro Bonetti

    Edgar,
    Parabéns pelo seu trabalho.
    Gostaria de saber se os valores que estão no cache continuam sendo atualizados.

    06 de Maio de 2016 às 08:47
  • Rafael

    Gostei do webservice, estava procurando algo assim.
    No site da fipe agora tem como pesquisar valores retroativos, de um histórico deles, pensa em fazer algo para retornar esses dados também?

    24 de Abril de 2016 às 22:19
    • Edgar Serra

      Só vou implementar isto se por acaso a aplicação na qual uso este recurso o requisitar, aparentemente isto não será necessário, então é provável que não implemente.

      25 de Abril de 2016 às 10:47
  • Júlio

    Fala, Edgar. Beleza?

    Cara, muito bom o seu script, mas os da VW ainda continuam sem exibir todos os carros:

    http://webservices.profissionaisdaweb.com.br/fipe/59-modelos-carro.xml

    12 de Abril de 2016 às 12:55
  • Leonardo

    Boa tarde.

    Parabéns pelo trabalho. No entanto, há uma informação aqui que gostaria de saber.

    Antes de mais nada, eu consultei a tabela FIPE de veículos, e percebi que é dividido em categorias. Não consta a informação da procedência do veículo (Nacional ou Importado), na consulta que fiz.

    Estou desenvolvendo um módulo para um cliente (Seguradora), que especifica o tipo de cobertura para troca de vidros, porém somente para veículos nacionais. Se este serviço me retornasse a procedência, resolveria meu problema com a regra que o cliente quer implementar.

    Pode me dirimir tal dúvida?

    24 de Fevereiro de 2016 às 13:43
    • Edgar Serra

      Não existe essa informação na tabela fipe...

      24 de Fevereiro de 2016 às 20:15
  • Vitor

    Cara... muito bom isso ai... tem como me dar uma dica de como vc fez isso? Sou programador PHP há muito tempo mas nunca me aventurei em pegar dados de outro site como vc fez... em cima desse seu script, estava com uma ideia de pegar os valores médios de sites como icarros e webmotors por exemplo.... me dando a ideia de como seria eu posso fazer e dps disponbilizo pra vc postar se quiser... rola?

    09 de Dezembro de 2015 às 12:56
  • Jefferson Albuquerque

    Edgar, boa tarde.

    Como esses seus dados são atualizados? Quando existe novos modelos e novos preços na fipe, o que você faz?

    Esses seus dados foram atualizados quando?


    OBS: Sua iniciativa foi ótima. Parabéns.

    25 de Novembro de 2015 às 17:01
    • Edgar Serra

      Leia o último parágrafo do artigo.

      26 de Novembro de 2015 às 18:33
  • Marcelo

    Olá,

    Eu de novo. Como já tinha uma tabela anterior aqui e usava um outro webservice que retorna arquivos json, só que é bem mais lento que o seu, observei que no caso dos veículos da Volks o seu xml quebra exatamente onde começam os Gols Seleção. Ou seja, será que não tem a ver com os caracteres Ç ou Ã, pois andei observando na tabela de veículos, apenas alguns poucos veículos da Volks contém esses caracteres especiais.
    Nas outras marcas não tem esse tipo de caracter.

    17 de Abril de 2015 às 09:28
    • Edgar Serra

      Marcelo, vou verificar isto.

      21 de Abril de 2015 às 18:54
  • Marcelo Figueiredo

    Olá,

    Eu consegui puxar os veículos, porém os da VolksWagen só vem até o FOX-Route, conforme o primeiro comentário postado.

    06 de Abril de 2015 às 16:18
    • Edgar Serra

      O site da fipe está com algumas instabilidades, algumas vezes ele simplesmente não retorna tudo que deveria, fiz alguns testes com o firebug e está totalmente aleatório isto.

      09 de Abril de 2015 às 09:46
  • Andrews

    primeira mente esta muito bom o seu trabalho caro amigo, gostaria de saber se tem alguma forma de recuperar os modelos sem que repita e sem as informações adicionais sobre o modelo?

    29 de Março de 2015 às 11:34
    • Edgar Serra

      As opções disponíveis para consumo do webservice são as descritas no post.

      29 de Março de 2015 às 15:38
  • Wesley Teixeira

    Primeiramente parabéns pela iniciativa, tenho interesse em uma ferramenta parecida com essa para uso comercial, teria como entrar em contato comigo para conversarmos?

    24 de Março de 2015 às 11:49
    • Edgar Serra

      Ainda não pensei em um uso comercial para isto, além do que já faço, caso precise de algo a mais do que é oferecido, entre em contato pelo formulário do site.

      29 de Março de 2015 às 15:37
  • Eridani campos

    Edgar,
    Antes de mais nada bom trabalho!

    Porém encontrei alguns erros.
    Algum carácter esta quebrando o seu codigo e dando erro no XML como por exemblo:

    http://webservices.profissionaisdaweb.com.br/fipe/43-modelos-carro.xml

    http://webservices.profissionaisdaweb.com.br/fipe/12-modelos-carro.xml

    http://webservices.profissionaisdaweb.com.br/fipe/33-modelos-carro.xml

    E retornou poucos os modelos das Volksvagen.

    http://webservices.profissionaisdaweb.com.br/fipe/59-modelos-carro.xml

    Valeu!

    18 de Março de 2015 às 12:55
    • Edgar Serra

      Resolvido.

      29 de Março de 2015 às 15:39
  • Darllon Pádua

    Bom post parabéns! Agora alguém sabe onde consigo um decodificado de Chassi?

    09 de Fevereiro de 2015 às 08:11
  • Lucas

    No meu github tenho um parser para um serviço REST que recupera informações da FIPE, caso queiram verificar.

    07 de Novembro de 2014 às 06:22
  • Ramon Veloso

    Edgar, Muito obrigado.
    Vim bater aqui sem querer e encontrei o que procurei a semana inteira... hahaha...

    eu estava resolvendo um erro de datas e estava neste post http://www.scriptbrasil.com.br/forum/topic/92149-recuperar-datas-que-sejam-sabado-ou-domingo/

    Ai tem uma resposta sua, ai cliquei nos teus sites pra ver [sou muito curioso MESMO kkk] e pra minha surpresa o quarto post do teu site era o que estava procurando. Cara que alegria vc me fez sentir. KKKKKKKKK Muito bom mesmo, tô rindo atoa. Obrigado cara!

    04 de Agosto de 2014 às 18:48
  • Rafael

    Edgar, será que é possível disponibilizar um .zip com todos xmls de uma carga inicial?
    Dessa forma, podemos programar de forma apenas a chamar o webservice para cargas incrementais. Melhor pra gente, melhor pra você. Para uma carga inicial, chutando a quantidadede de chamadas para cada marca, acredito que eu leve 3 ou mais dias, dado que o máximo de consultas por dia limita isso.

    Desde já, agradeço.

    28 de Julho de 2014 às 09:58
    • Edgar Serra

      Rafael, o objetivo deste ws que eu disponibilizei é apenas servir para pequenas consultas, não baixar o site da fipe inteiro, caso você queira ele por completo, o mais simples é montar um script e ler diretamente da fipe, onde você não tem "limites".

      Eu meso não tenho um XML "completo", pois o sistema pega as informações na fipe quando solicitadas e faz um cache, no começo do mês eu zero este cache e um novo ciclo recomeça.

      28 de Julho de 2014 às 18:07
  • Rafael

    Olá,

    Parabéns pela iniciativa! Consegui fazer parse dos xmls usando java, após apanhar um pouquinho.
    Minha contribuição: O encoding dos xmls está vindo como UTF-8 no cabeçalho, mas na realidade, eles estão vindo como Windows-1252. Tive de converter o arquivo baixado para UTF-8 para conseguir ler corretamente.

    Obrigado novamente!

    25 de Julho de 2014 às 15:09
  • Eder

    Entrei em contato com eles, segue-se retorno:

    "Prezado Eder,

    Para utilização em sites é cobrado um valor mensal que varia de R$3 mil a R$7,5 mil mensais, dependendo do porte e tipo de aplicação. Para aplicações de pequeno porte ou de negócio iniciantes, o menor valor cobrado mensalmente é de R$3 mil. Estou à disposição para qualquer esclarecimento.

    Obrigado.

    Sergio Crispim"

    Acho não recomendado criar um proxy para isso, uma vez que pode sofrer processo Judicial, por interceptar informações sem devidas autorizações.

    02 de Junho de 2014 às 15:33
    • Edgar Serra

      Eder, realmente interessante, de qualquer sorte não estou interceptando nada, tecnicamente o que sistema funciona igual um navegador, é claro que eles solicitarem eu vou ter o maior prazer de remover o sistema do ar, apesar de é claro, continuar usando ele para os fins que eu costrui.

      02 de Junho de 2014 às 22:43
  • Emerson Soares

    Amigo, acredito que a api esteja com um problema ao buscar veiculos da Vw - Volksvagem, ele só trás até o modelo "Fox Route 1.0 Mi Total Flex 8V 5p". Daí pra frente já não vem nenhum modelo mais... Procurei o código fonte, mas ví que você não disponibilizou, seria interessante para que possamos ajudar com esse tipo de problema. Fica a sugestão... Abs!

    01 de Junho de 2014 às 17:39
    • Edgar Serra

      Emerson, na realidade o que é mostrado na API reflete o que foi pego no site da FIPE, como existe um cache, provavelmente no momento da solicitação houve algum erro e isso gerou este problema, quando eu limpar o cache dia 5 os dados serão atualizados, inclusive este que está com um problema realmente.

      01 de Junho de 2014 às 22:24

Comente =)

Atenção: Todos os comentários são moderados, por isto não perca seu tempo postando bobagens ou spam.