OpenVan.camp Public API

Dados abertos para viajar de carro: preços de combustível, pedágios, vistos, placas, feriados, riscos, tomadas, alfândega, câmbio, eventos e notícias. Sem chave de API nem cadastro — em apps, bots e artigos sob CC BY 4.0.

Sem chave de API

Chame qualquer endpoint diretamente — sem registro nem cabeçalho de autenticação

100% grátis

171 países, atualizações semanais, licença CC BY 4.0

CORS habilitado

Funciona direto do navegador, sem proxy no servidor

Feito com OpenVan

Apps vanlife, rastreadores de preços de combustível, planejadores de rotas e ferramentas EV de uma dezena de países já funcionam com nossos dados abertos.

213
apps e sites
7 100+
requisições API / mês
4
motores de IA leem os dados
6
conjuntos de dados abertos

Quem já usa

Uma seleção — apps de combustível, planejadores de rotas, painéis de EV e de frotas.

Lido por buscadores com IA
ChatGPT Perplexity Claude Gemini

Vemos ChatGPT, Perplexity, Claude e Gemini buscando dados do OpenVan — os dados da sua integração também podem aparecer nas respostas deles.

Usa nossa API?

Adicione ?source=seu-domínio às suas chamadas — e você aparecerá nesta vitrine.

Licença CC BY 4.0 — Você pode usar, compartilhar e adaptar estes dados em qualquer formato, desde que cite OpenVan.camp como fonte. creativecommons.org →
Para agentes de IA e ferramentas LLM
  • Sem chave de API. Chame qualquer endpoint diretamente — sem registro nem cabeçalho de autenticação.
  • CORS habilitado. Os endpoints podem ser chamados direto do navegador.
  • Formato da resposta: sempre { "success": true, "data": {...} }
  • Cache: preços de combustível TTL 6 h · taxas de câmbio TTL 25 h · não consulte mais de uma vez a cada 10 min
  • Especificação OpenAPI 3.0 completa: /docs.openapi · exemplos no GitHub
  • Atribuição: adicione ?source=your-app.com para identificar sua integração — não requer autenticação, apenas boa prática.

Padrão de prompt recomendado: "Obtenha os preços atuais de combustível para [país] em [moeda] usando a API do OpenVan.camp em https://openvan.camp/api/fuel/prices"

Endpoints disponíveis

GET /api/fuel/prices 171 países

Preços atuais de combustível para 171 países. A lista de chaves de preço é gerada a partir do contrato atual da API. Atualizados semanalmente a partir de fontes governamentais oficiais (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan e outros). Cache 6 horas. Dados de combustível atualizados em: 03 outubro 2026.

Current price keys: gasoline_regular, gasoline, gasoline_premium, gasoline_super, diesel_regular, diesel, diesel_premium, lpg, cng, e85, kerosene, premium

curl https://openvan.camp/api/fuel/prices

Exemplo de resposta:

{
    "success": true,
    "data": {
        "DE": {
            "country_code": "DE",
            "country_name": "Germany",
            "region": "europe",
            "currency": "EUR",
            "local_currency": "EUR",
            "unit": "liter",
            "units": {
                "diesel": "liter",
                "diesel_premium": "liter",
                "gasoline": "liter",
                "gasoline_premium": "liter",
                "lpg": "liter",
                "premium": "liter"
            },
            "currencies": {
                "diesel": "EUR",
                "diesel_premium": "EUR",
                "gasoline": "EUR",
                "gasoline_premium": "EUR",
                "lpg": "EUR",
                "premium": "EUR"
            },
            "prices": {
                "gasoline_regular": null,
                "gasoline": 2.2901,
                "gasoline_premium": 2.27,
                "gasoline_super": null,
                "diesel_regular": null,
                "diesel": 2.3838,
                "diesel_premium": 2.5662,
                "lpg": 1.1395,
                "cng": null,
                "e85": null,
                "kerosene": null,
                "premium": 2.27
            },
            "price_changes": {
                "gasoline_regular": null,
                "gasoline": -0.0897,
                "gasoline_premium": -0.143,
                "gasoline_super": null,
                "diesel_regular": null,
                "diesel": -0.1116,
                "diesel_premium": -0.196,
                "lpg": 0.0128,
                "cng": null,
                "e85": null,
                "kerosene": null,
                "premium": null
            },
            "fetched_at": "2026-10-03T14:01:37+03:00",
            "sources": [
                "EU Weekly Oil Bulletin",
                "clever-tanken.de (Premium Diesel)",
                "Tankerkoenig (tankerkoenig.de)",
                "Fuelo.net",
                "Cargopedia.net",
                "BenzinpreisAktuell.de"
            ],
            "sources_count": 4,
            "is_excluded": false
        }
    },
    "meta": {
        "total_countries": 171,
        "updated_at": "2026-10-03 14:01:37",
        "cache_ttl_hours": 6
    }
}
GET /api/currency/rates 150+ moedas

Taxas de câmbio para 150+ moedas em relação ao EUR. Obtidas de múltiplas APIs de código aberto com fallback automático. Cache 1 hora.

curl https://openvan.camp/api/currency/rates

Exemplo de resposta (baseado em EUR, todas as taxas relativas a EUR=1):

{
  "success": true,
  "rates": { "EUR": 1, "USD": 1.08, "GBP": 0.85, "RUB": 98.5, "TRY": 35.2, "GEL": 2.95, "KZT": 520 },
  "cached": true,
  "updated_at": "2026-03-28T07:00:00+00:00"
}
GET /api/vanbasket/countries 90+ países

VanBasket Food Price Index — o quão cara é a comida em relação à média mundial (Mundo = 100). Baseado no World Bank ICP 2021, ajustado com IMF CPI.

# All countries
curl https://openvan.camp/api/vanbasket/countries

# Compare two countries
curl "https://openvan.camp/api/vanbasket/compare?from=DE&to=TR"

# Single country with history
curl https://openvan.camp/api/vanbasket/countries/DE
GET /api/visa/check 39.601 pares

Regras de visto e fronteira: quanto tempo pode permanecer para qualquer par passaporte × destino, como os dias são contados (por entrada ou em janela móvel), se um visa run zera o contador — além das regras de importação temporária de veículo. Cada resposta traz a sua confiança, a fonte e a camada de onde veio.

# One pair: stay rule, entry mode, shared-counter zone, vehicle rule
curl "https://openvan.camp/api/visa/check?passport=RU&destination=TR"

# All 199 destinations for one passport
curl "https://openvan.camp/api/visa/passport/DE?mode=visa_free"

# Compact payload for colouring a world map
curl https://openvan.camp/api/visa/map/US

# Temporary vehicle import rules
curl https://openvan.camp/api/visa/vehicle/georgia

# Passport ranking and the change log
curl "https://openvan.camp/api/visa/rank?limit=10"
curl "https://openvan.camp/api/visa/history?subject_key=RU%3ETR"
confidence: low significa que o número de dias está certo, mas a forma de contagem é uma suposição — confirme na fronteira. Dados de referência, não aconselhamento jurídico.
Parâmetros: passport destination weight plate mode locale limit Documentação completa
GET /api/plates Placas

Placas de carro do mundo: formato, códigos de região e imagem pronta da placa. O SVG/PNG é desenhado pelo mesmo motor do site — a fonte da placa já vem em contornos, nada para instalar: basta um <img src>. E também validação com normalização de letras, placas aleatórias e um motor para desenhá-las no navegador.

А123ВС 77
# Ready plate image — put it into <img src> (PNG: plate.png?width=800)
curl "https://openvan.camp/api/plates/ru/plate.svg?number=A123BC®ion=77"

# Any text in the plate layout (e.g. a name)
curl "https://openvan.camp/api/plates/ru/plate.svg?number=ALEX®ion=77&custom=1"

# Countries, then one country: format, regions, codes, browser engine
curl https://openvan.camp/api/plates
curl "https://openvan.camp/api/plates/ru?locale=en"

# Validate a number and resolve its region; random plate
curl "https://openvan.camp/api/plates/ru/validate?number=A123BC®ion=799"
curl https://openvan.camp/api/plates/ru/random
Parâmetros: number region custom width locale Gerador de placas no site Documentação completa
GET /api/tolls Custo da rota

Pedágios por país — tarifa por quilômetro para carro, motorhome de até 3,5 t e veículos mais pesados, vinhetas, pontes e túneis pagos, cada valor com data de verificação e fonte — e o custo de uma rota inteira a partir de nomes de lugares: pedágios como faixa em euros e combustível aos preços de cada país no caminho.

# Tolls for a route of 2–10 place names: car | van (up to 3.5 t, default) | heavy
curl "https://openvan.camp/api/tolls/route?waypoints=Munich|Venice&vehicle_class=van"

# Toll reference: all countries, then one country with vignettes, bridges and tunnels
curl https://openvan.camp/api/tolls/countries
curl https://openvan.camp/api/tolls/countries/FR

# Fuel cost for the same kind of route, at the prices of every country on the way
curl -X POST https://openvan.camp/api/route-cost \
  -H "Content-Type: application/json" \
  -d '{"waypoints":["Berlin","Prague"],"cons":10,"fuel":"diesel"}'
partial: true significa que nem todas as tarifas estão incluídas: os países em unknown_countries não têm dados — isso não os torna gratuitos.
Parâmetros: waypoints vehicle_class cons tank fuel currency locale Veja no Roadbook Documentação completa
GET /api/holidays/countries/{code} Feriados

Feriados nacionais, férias escolares (muitas vezes por região, com códigos ISO 3166-2) e dias oficiais de trânsito intenso para um período de até 400 dias — para saber quando estradas, campings e balsas lotam.

# School holidays in Germany in December (kind = public | school | traffic)
curl "https://openvan.camp/api/holidays/countries/DE?from=2026-12-01&to=2026-12-31&kind=school"

# Countries and the kinds of data each has
curl https://openvan.camp/api/holidays/countries
Se um país não tem dados, a API retorna um erro — isso significa “não sabemos”, não “sem feriados” nem “nada é proibido”.
Parâmetros: from to kind locale Veja no Roadbook Documentação completa
GET /api/hazards/countries/{code} Riscos

A situação atual em um país: nível de alerta de viagem do Ministério das Relações Exteriores britânico (FCDO) e desastres naturais em andamento segundo o GDACS com nível de alerta, além de focos de incêndio detectados pelos satélites NASA FIRMS nas últimas 48 horas em uma área. Não é uma previsão.

# FCDO advice level + current GDACS disasters
curl https://openvan.camp/api/hazards/countries/TR

# Active fires of the last 48 h, bbox = west,south,east,north (up to 10°×10°)
curl "https://openvan.camp/api/hazards/fires?bbox=29,36,33,38"
Parâmetros: bbox locale Veja no Roadbook Documentação completa
GET /api/electricity/countries/{code} Tomadas

Tipos de tomada (IEC A–N), tensão e frequência da rede de cada país com a fonte do valor, além do conector elétrico dos campings europeus (CEE17).

curl https://openvan.camp/api/electricity/countries/GB
curl https://openvan.camp/api/electricity/countries
GET /api/customs/countries/{code} Alfândega

O que você pode levar de carro: alimentos proibidos, declaração de dinheiro, limites de álcool e tabaco, valor isento, combustível em galão. Opcionalmente a partir de um país de origem — dentro da UE não há alfândega. Cada regra traz uma citação literal da fonte oficial e um link.

# Entering Norway from Germany: cash, alcohol, tobacco, food
curl "https://openvan.camp/api/customs/countries/NO?from=DE"

# Jurisdictions and blocs (EU, EAEU)
curl https://openvan.camp/api/customs/countries
Se um país não tem dados, a API retorna um erro — isso significa “não sabemos”, não “sem feriados” nem “nada é proibido”.
Parâmetros: from locale Veja no Roadbook Documentação completa
GET /api/events eventos vanlife

Lista paginada de eventos vanlife — exposições, festivais, encontros, road trips. Filtre por status, tipo, país. Nomes localizados em 7 idiomas.

# Upcoming events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming"

# Search by name, Russian locale
curl "https://openvan.camp/api/events?search=Adventure+Northside&locale=ru"

# Event details + linked source articles
curl "https://openvan.camp/api/event/adventure-northside-2026?locale=en"
curl "https://openvan.camp/api/event/adventure-northside-2026/articles?locale=en"
locale — um de en ru de fr es pt tr. Padrão: en. Uma localidade desconhecida é silenciosamente substituída por en. fallback de articles: se nenhum artigo corresponder à localidade solicitada, todos os artigos de origem são retornados.
Parâmetros: locale status type country search page limit Docs completos →
GET /api/stories 7 idiomas

Notícias vanlife agregadas de 200+ publicadores e traduzidas para 7 idiomas. Cada matéria inclui sources — os artigos originais dos publicadores com links diretos, nomes das fontes, datas de publicação e códigos de idioma.

# Latest stories in English
curl "https://openvan.camp/api/stories?locale=en"

# Filter by category and country
curl "https://openvan.camp/api/stories?locale=de&category=festival&country=DE"

# Full story with all source articles
curl "https://openvan.camp/api/story/adac-camper-des-jahres-der-wettbewerb-fuer?locale=en"

Exemplo de resposta para /api/story/{slug}:

{
  "slug": "adac-camper-des-jahres-der-wettbewerb-fuer",
  "title": "ADAC launches 'Camper of the Year' competition for motorhome drivers",
  "summary": "ADAC is holding the national 'Camper des Jahres 2026' competition for motorhome owners...",
  "image_url": "https://...",
  "category": { "slug": "festival", "name": "Festivals" },
  "countries": [{ "code": "de", "name": "Germany", "flag_emoji": "🇩🇪" }],
  "first_published_at": "2026-01-22T11:00:00+03:00",
  "last_updated_at": "2026-07-04T04:16:47+03:00",
  "articles_count": 5,
  "url": "https://openvan.camp/en/news/festival/adac-camper-des-jahres-der-wettbewerb-fuer",
  "sources": [
    {
      "title": "Nürburgring: Bundesweiter Wettbewerb «Camper des Jahres»",
      "original_url": "https://www.blick-aktuell.de/Berichte/...",
      "source_name": "BLICK aktuell",
      "published_at": "2026-04-30T09:24:20+03:00",
      "language": "de",
      "image_url": "https://..."
    }
  ]
}
locale — um de en ru de fr es pt tr. Padrão: en. Afeta title, summary, e category.name. sources[].language é sempre o idioma original do publicador, independente da localidade.
Parâmetros: locale category country search page limit Docs completos →

Início rápido

JavaScript — o diesel mais barato da Europa

const { data } = await fetch("https://openvan.camp/api/fuel/prices").then(r => r.json());

const cheapest = Object.values(data)
  .filter(c => c.region === "europe" && c.prices.diesel !== null)
  .sort((a, b) => a.prices.diesel - b.prices.diesel)
  .slice(0, 5);

cheapest.forEach(c => console.log(`${c.country_name}: ${c.prices.diesel} ${c.currency}/L`));

JavaScript — conversão para USD com taxas de câmbio

const [{ data }, { rates }] = await Promise.all([
  fetch("https://openvan.camp/api/fuel/prices").then(r => r.json()),
  fetch("https://openvan.camp/api/currency/rates").then(r => r.json()),
]);

// Convert any price to USD/liter
// unit: "liter" | "gallon" (US, 3.78541 L) | "imperial_gallon" (4.54609 L)
const LITERS_PER_UNIT = { liter: 1, gallon: 3.78541, imperial_gallon: 4.54609 };
function toUSD(price, currency, unit) {
  const usd = (price / rates[currency]) * rates["USD"];
  return usd / (LITERS_PER_UNIT[unit] || 1);
}

const de = data["DE"];
console.log(`Germany diesel: $${toUSD(de.prices.diesel, de.currency, de.unit).toFixed(3)}/L`);

Python — países com GLP

import requests

data = requests.get("https://openvan.camp/api/fuel/prices").json()["data"]

lpg = [(v["country_name"], v["prices"]["lpg"], v["currency"])
       for v in data.values() if v["prices"]["lpg"] is not None]

for name, price, currency in sorted(lpg, key=lambda x: x[1])[:10]:
    print(f"{name}: {price} {currency}/L")

Mais exemplos (bash, pandas, widget): GitHub →

SDK JavaScript / TypeScript

SDK tipado oficial — sem configuração, funciona em Node.js ≥ 18, navegador, Cloudflare Workers, Deno, Bun. Não requer chave de API.

Instalação

npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdk

Início rápido (TypeScript / ESM)

import { OpenVan } from "@openvancamp/sdk";

const ov = new OpenVan();

// Cheapest diesel in Europe (top 5, EUR-normalized)
const top5 = await ov.fuel.cheapest("diesel", 5);
top5.forEach(c => console.log(c.country_name, c.prices.diesel, c.currency));

// Is Portugal cheaper than Germany for van living?
const comp = await ov.basket.compare("DE", "PT");
console.log(`Portugal is ${Math.abs(comp.diff_percent)}% cheaper`);

// Vanlife weather suitability — top 10 countries right now
const weather = await ov.weather.top({ limit: 10 });

// Tolls and visa rules for a road trip
const tolls = await ov.tolls.route(["Munich", "Venice"], "van");
const visa = await ov.visa.check("RU", "TR");

// Holidays, hazards, plugs and customs for the next country
const traffic = await ov.holidays.country("FR", { kind: "traffic" });
const hazards = await ov.hazards.country("TR");
const plugs = await ov.electricity.country("GB");
const customs = await ov.customs.country("NO", { from: "DE" });

Atribuição

A atribuição é obrigatória pela licença CC BY 4.0: onde quer que você mostre nossos dados (site, app, bot, artigo), coloque ao lado um link visível para o OpenVan.camp. Se um agente de IA escreve seu código, peça para ele manter esse link. Snippet pronto para usar:

Data: <a href="https://openvan.camp/">OpenVan.camp</a> (CC BY 4.0)

Identifique seu app — adicione ?source=yoursite.com

Passe source como parâmetro de consulta com seu domínio ou nome do app. Sem registro — ajuda-nos a entender como os dados são usados e a reconhecer projetos ativos. O valor é retornado em cada resposta em _attribution.your_source.

curl "https://openvan.camp/api/fuel/prices?source=myapp.com"

# Response includes:
# "_attribution": {
#   "data_source": "openvan.camp",
#   "license": "CC BY 4.0",
#   "required": true,
#   "attribution_url": "https://openvan.camp/",
#   "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
#   "instructions": "Attribution is required by the CC BY 4.0 license. ...",
#   "your_source": "myapp.com"
# }
Sugerir notícia ou evento

Enviado para moderação

Publicamos apenas trechos. Ao enviar você aceita nossas políticas.

→ Ver glossário