OpenVan.camp Public API
Dados abertos sobre preços de combustível, taxas de câmbio e eventos vanlife. Uso gratuito 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
125+ 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.
Quem já usa
Uma seleção — apps de combustível, planejadores de rotas, painéis de EV e de frotas.
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.
- 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.compara 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
/api/fuel/prices
134 países
Preços atuais de combustível (gasolina, diesel, GLP) para 134 países. 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: 13 junho 2026.
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", // "gallon" for US and Ecuador
"prices": {
"gasoline": 2.13,
"diesel": 2.28,
"lpg": 1.11,
"e85": null,
"premium": null
},
"price_changes": { "gasoline": -0.02, "diesel": 0.01, "lpg": 0.0 },
"fetched_at": "2026-03-28T13:59:57+03:00",
"sources": ["Fuelo.net", "EU Weekly Oil Bulletin", "Cargopedia.net"],
"sources_count": 3,
"is_excluded": false // true for heavily subsidized countries
}
},
"meta": { "total_countries": 87, "updated_at": "2026-03-28 13:59:57", "cache_ttl_hours": 6 }
}
/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"
}
/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
/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=Nauticampo&locale=ru"
# Event details + linked source articles
curl "https://openvan.camp/api/event/nauticampo-2026?locale=en"
curl "https://openvan.camp/api/event/nauticampo-2026/articles?locale=en"
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.
/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=camping&country=DE"
# Full story with all source articles
curl "https://openvan.camp/api/story/vanlife-festival-germany-2026?locale=en"
Exemplo de resposta para /api/story/{slug}:
{
"slug": "vanlife-festival-germany-2026",
"title": "VanLife Festival Germany 2026",
"summary": "The largest vanlife gathering in Germany returns this summer.",
"image_url": "https://...",
"category": { "slug": "events", "name": "Events" },
"countries": [{ "code": "de", "name": "Germany", "flag_emoji": "🇩🇪" }],
"first_published_at": "2026-04-01T10:00:00+00:00",
"last_updated_at": "2026-04-03T08:00:00+00:00",
"articles_count": 8,
"url": "https://openvan.camp/en/news/events/vanlife-festival-germany-2026",
"sources": [
{
"title": "Germany's biggest van life festival is back",
"original_url": "https://campermag.de/festival-2026",
"source_name": "CamperMag.de",
"published_at": "2026-04-01T10:00:00+00:00",
"language": "de",
"image_url": "https://..."
}
]
}
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.
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
function toUSD(price, currency, unit) {
let usd = (price / rates[currency]) * rates["USD"];
return unit === "gallon" ? usd / 3.78541 : usd;
}
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 });
Atribuição
Ao usar nossos dados, inclua uma atribuição visível. Aqui está um snippet pronto para usar:
Data source: <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",
# "attribution_url": "https://openvan.camp/",
# "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
# "your_source": "myapp.com"
# }