Precificar corretamente um carro usado é um problema de dados antes de ser um problema comercial. O mesmo Golf GTI de três anos pode estar anunciado a € 24.900 no Mobile.de na Alemanha, € 22.400 no AutoScout24 na França e € 21.000 por um particular no Leboncoin, no mesmo dia. E uma vez que o carro está no seu pátio, o recondicionamento depende de peças cujos preços variam tanto quanto: a mesma referência de kit de freios pode custar 20% menos no autodoc.pl do que no auto-doc.fr.
Grupos de concessionárias, compradores de frotas e as plataformas de pricing automotivo que os atendem precisam da mesma coisa: uma visão contínua e estruturada dos anúncios e dos preços das peças, através de marketplaces e países. Ninguém consegue isso atualizando páginas de busca manualmente. É preciso um pipeline de coleta automatizado, construído sobre dados de marketplace confiáveis.
Este artigo percorre esse pipeline, a partir de um padrão de produção de um dos nossos clientes (uma plataforma de inteligência de preços automotivos que não vamos nomear), com chamadas de API concretas ao AutoScout24, Mobile.de, Leboncoin e Autodoc.
O caso de uso: uma plataforma de pricing de veículos para grupos de concessionárias
Um dos nossos clientes constrói inteligência de preços para concessionárias e operadores de frotas. O produto deles responde às três perguntas que todo profissional de seminovos faz diariamente:
- Quanto vale este carro agora? Snapshots de mercado por modelo: preços de anúncios ao vivo, faixas de quilometragem, dias no mercado, por país.
- Onde é mais barato comprar? Alertas de arbitragem transfronteiriça quando o mesmo modelo é negociado bem abaixo do preço doméstico num país vizinho.
- Quanto custará o recondicionamento? Um índice de custo de peças por modelo, alimentado por preços ao vivo dos marketplaces de peças, para transformar uma ficha de inspeção de avaliação num orçamento de recondicionamento.
Responder a essas perguntas exige coletar dezenas de milhares de anúncios por dia de sites fortemente protegidos, localizados e estruturalmente diferentes entre si. Em vez de manter internamente uma frota de navegadores headless, proxies e parsers por site, a plataforma deles faz a coleta passar pelas APIs da Piloterr. Três propriedades da web automotiva justificam essa escolha:
- Cada marketplace tem um formato diferente. O Mobile.de serve componentes de servidor Next.js atrás de regras anti-bot agressivas; o Leboncoin mistura anúncios de lojistas e particulares com proteção própria; o AutoScout24 se estende por uma dúzia de domínios europeus. Uma única camada de API normaliza tudo para JSON.
- Preços só fazem sentido localizados. Uma busca alemã e uma francesa sobre o mesmo modelo são mercados diferentes. As APIs preservam a locale, a moeda e o contexto de mercado de cada anúncio.
- O volume é diário, não pontual. Dias no mercado e detecção de quedas de preço exigem re-escanear as mesmas buscas todos os dias e comparar os resultados: uma carga de infraestrutura, não de scripting.
Anatomia de um pipeline de monitoramento de preços automotivos
Descobrir Normalizar Enriquecer Produzir
(APIs search) (unificar campos) (APIs ad) (índices + alertas)
│ │ │ │
varreduras por → preço, km, → specs completas, → snapshot de mercado,
modelo e mercado emplacamento, equipamentos, alertas de arbitragem,
moeda tipo de vendedor índice custo de peças
Estágio 1: descobrir anúncios com os endpoints de busca
Tudo começa com varreduras por modelo e por mercado. Para cada modelo do catálogo, a plataforma consulta o endpoint de busca de cada marketplace coberto, em cada país relevante.
No AutoScout24, você passa qualquer URL de busca de qualquer um dos domínios europeus: filtros incluídos. Uma chamada retorna os cards de anúncios com especificações do veículo, preço e informações do vendedor:
curl -G "https://api.piloterr.com/v2/autoscout24/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.autoscout24.fr/lst/volkswagen/golf?atype=C"
Troque autoscout24.fr por autoscout24.de ou autoscout24.it e você estará varrendo outro mercado nacional com a mesma integração.
No Mobile.de, a API Search aceita uma URL de busca completa ou um código de marca/modelo, com um parâmetro locale cobrindo 10 locales e um parâmetro page para paginação:
curl -G "https://api.piloterr.com/v2/mobile/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.mobile.de/fr/voiture/recherche.html?ms=20100&s=Car&vc=Car"
Cada card de resultado já é rico: price, currency, mileage, first_registration, fuel_type, power, transmission, location, além do price_rating: a avaliação de mercado do próprio Mobile.de (GOOD_PRICE, etc.). Alimentar esse rótulo no seu próprio modelo de pricing dá um sinal de calibração gratuito vindo do maior marketplace alemão.
No Leboncoin, a API Search recebe qualquer URL de busca ou categoria e retorna anúncios parseados. É onde vive o mercado de particulares, cujos preços de classificados ficam sistematicamente abaixo dos preços de lojistas:
curl -G "https://api.piloterr.com/v2/leboncoin/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.leboncoin.fr/recherche?category=2&text=golf+gti"
Estágio 2: normalizar para um modelo de anúncio único
Três marketplaces significam três esquemas, três moedas e três formas de escrever "primeiro emplacamento 03/2023". A camada de normalização projeta tudo num único registro:
(marketplace, ad_id, observed_at) → { make, model, price, currency, mileage_km, first_registration, fuel, transmission, seller_type, location, url }
Duas regras vindas da produção evitam a maior parte da dor:
- Manter os campos brutos do marketplace ao lado dos normalizados. Quando uma anomalia de preço aparece, você quer ver exatamente o que o site exibia.
- Um anúncio que desaparece é um sinal, não um erro. Carros são vendidos. A data em que um anúncio some é o que transforma uma série de preços numa métrica de dias no mercado: o melhor indicador de demanda do negócio de seminovos.
Estágio 3: enriquecer a shortlist com os endpoints ad
Os cards de busca bastam para as curvas de mercado. Para os carros que um comprador está realmente considerando, a plataforma busca o anúncio completo pelos endpoints ad: AutoScout24 Ad (specs completas, lista de equipamentos, dados do vendedor), Mobile Ad (preços, specs, imagens, equipamentos) e Leboncoin Ad (atributos, informações do vendedor, imagens):
curl -G "https://api.piloterr.com/v2/mobile/ad" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=https://www.mobile.de/fr/details.html?id=123456789"
A lista de equipamentos importa mais do que parece: dois Golfs com quilometragem idêntica podem diferir em milhares de euros porque um tem engate de reboque e piloto automático adaptativo. Dados de equipamentos estruturados são o que torna honesta a comparação entre anúncios.
Estágio 4: orçar o recondicionamento com os endpoints de peças
Uma avaliação só vale seu preço de revenda menos os custos de recondicionamento. É aqui que os marketplaces de peças entram no pipeline.
A API Autodoc Search cobre mais de 30 lojas nacionais (autodoc.de, auto-doc.fr, autodoc.pl, autodoc.es, …) via o parâmetro domain. Cada resultado inclui price, original_price, discount, a reference do fabricante da peça, o vendedor e a disponibilidade:
# Peças de freio na loja francesa
curl -G "https://api.piloterr.com/v2/autodoc/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=search?keyword=frein" \
--data-urlencode "domain=auto-doc.fr"
# A mesma varredura na loja alemã: mesmas referências, preços diferentes
curl -G "https://api.piloterr.com/v2/autodoc/search" \
-H "x-api-key: YOUR-API-KEY" \
--data-urlencode "query=search?keyword=bremsen" \
--data-urlencode "domain=autodoc.de"
O campo reference do fabricante é a chave de junção: ele permite comparar exatamente a mesma peça entre lojas nacionais, e contra outras fontes: Oscaro e Norauto para o mercado francês, e Ovoko para peças OEM usadas, que frequentemente cortam pela metade uma linha de recondicionamento. O Autodoc Product adiciona specs, EAN e compatibilidade de veículos para as peças acompanhadas no longo prazo.
Um exemplo funcional em Python: uma peça, cinco países
O script abaixo busca a mesma palavra-chave de peça em várias lojas nacionais da Autodoc, junta os resultados pela referência do fabricante e imprime a loja mais barata por referência. Ele é deliberadamente mínimo: em produção, você persistiria os snapshots, acompanharia a disponibilidade e converteria moedas.
import requests
from collections import defaultdict
PILOTERR_API_KEY = "YOUR-API-KEY"
BASE = "https://api.piloterr.com/v2"
HEADERS = {"x-api-key": PILOTERR_API_KEY}
SHOPS = {
"auto-doc.fr": "frein",
"autodoc.de": "bremsen",
"autodoc.es": "freno",
"autodoc.pl": "hamulec",
"auto-doc.it": "freno",
}
def sweep_autodoc(domain: str, keyword: str) -> list[dict]:
r = requests.get(f"{BASE}/autodoc/search", headers=HEADERS,
params={"query": f"search?keyword={keyword}", "domain": domain},
timeout=60)
r.raise_for_status()
return [
{
"shop": domain,
"name": item["name"],
"reference": item.get("reference"),
"price": item.get("price"),
"original_price": item.get("original_price"),
"discount": item.get("discount"),
"availability": item.get("availability"),
"url": item.get("product_url"),
}
for item in r.json().get("results", [])
]
def main():
by_reference = defaultdict(list)
for domain, keyword in SHOPS.items():
for offer in sweep_autodoc(domain, keyword):
if offer["reference"] and offer["price"] is not None:
by_reference[offer["reference"]].append(offer)
multi_shop = {ref: offers for ref, offers in by_reference.items()
if len(offers) >= 2}
print(f"{len(by_reference)} referências coletadas, "
f"{len(multi_shop)} disponíveis em 2+ lojas\n")
for ref, offers in sorted(multi_shop.items()):
offers.sort(key=lambda offer: offer["price"])
best, worst = offers[0], offers[-1]
spread = (worst["price"] - best["price"]) / worst["price"] * 100
print(f"{ref} {best['name'][:50]}")
print(f" best: {best['price']} @ {best['shop']} "
f"worst: {worst['price']} @ {worst['shop']} "
f"spread: {spread:.0f}%\n")
if __name__ == "__main__":
main()
A mesma lógica de junção por referência alimenta o lado de carros do pipeline: substitua lojas por marketplaces, referências por buckets normalizados de (marca, modelo, ano, faixa de km), e o spread vira um alerta de arbitragem transfronteiriça.
Além dos anúncios: leilões, máquinas e o mercado britânico
A mesma abordagem API-first vai além dos marketplaces europeus principais:
- Sinistros e leilões: o Copart expõe lotes de leilão, a fonte com que compradores de veículos avariados e seguradoras precificam estoques de perda total.
- Caminhões e máquinas: o Mascus cobre equipamentos pesados usados, tratores e veículos comerciais.
- Mercados do Reino Unido e dos EUA: o Autotrader traz anúncios com volante à direita e norte-americanos para o mesmo pipeline.
- Referências de aluguel: o AutoEurope adiciona pontos de preço de aluguel, úteis para operadores de mobilidade que modelam a utilização de frotas.
Fazer scraping de marketplaces de carros é legal?
Anúncios de veículos são ofertas comerciais exibidas publicamente, e o monitoramento de preços sobre dados públicos é um dos casos de uso de scraping mais consolidados: a mesma prática sustenta todos os comparadores de preços. Os princípios habituais valem: coletar apenas dados públicos, respeitar os limites de taxa e ter cuidado com dados pessoais em anúncios de particulares (armazenar o que a análise precisa, não o telefone do vendedor). Para o quadro geral, veja nosso guia sobre a legalidade do web scraping.
Em resumo
Inteligência de preços automotivos é um pipeline: descobrir com APIs de busca de marketplaces, normalizar para um modelo de anúncio único, enriquecer a shortlist com endpoints ad, e orçar o recondicionamento com APIs de peças juntadas por referências de fabricante. Vencem as plataformas cuja visão de mercado é mais fresca do que a intuição do lojista. Para a mecânica das diferenças de preço entre países (moedas, promoções assíncronas, sortimento), nosso guia de monitoramento de preços multirregional se aplica às autopeças exatamente como aos bens de consumo.
A Piloterr fornece essa camada de coleta como API: AutoScout24, Mobile.de, Leboncoin, Autodoc, Ovoko, Copart e o restante da biblioteca de 500 endpoints, com bypass anti-bot e renderização de navegador gerenciados por nós. Se você está construindo ferramentas de pricing automotivo e quer avaliar a qualidade dos dados com os seus próprios modelos, crie uma conta gratuita (+500 créditos, sem cartão de crédito) ou fale conosco sobre preços por volume e endpoints que podemos adicionar para o seu caso de uso.