OpenVan.camp Public API
Datos abiertos sobre precios de combustible, tipos de cambio y eventos vanlife. Uso gratuito en tus apps, bots y artículos bajo CC BY 4.0.
Sin clave API
Llama a cualquier endpoint directamente — sin registro ni cabecera de autenticación
100% gratis
125+ países, actualizaciones semanales, licencia CC BY 4.0
CORS habilitado
Funciona directamente desde el navegador, sin proxy de servidor
Hecho con OpenVan
Apps vanlife, rastreadores de precios de combustible, planificadores de rutas y herramientas EV de una decena de países ya funcionan con nuestros datos abiertos.
Quién ya lo usa
Una selección — apps de combustible, planificadores de rutas, paneles EV y de flotas.
Vemos a ChatGPT, Perplexity, Claude y Gemini consultar los datos de OpenVan — los datos de tu integración también pueden aparecer en sus respuestas.
¿Usas nuestra API?
Añade ?source=tu-dominio a tus llamadas — y aparecerás en esta vitrina.
- Sin clave API. Llama a cualquier endpoint directamente — sin registro ni cabecera de autenticación.
- CORS habilitado. Los endpoints pueden llamarse directamente desde el navegador.
- Formato de respuesta: siempre
{ "success": true, "data": {...} } - Caché: precios de combustible TTL 6 h · tipos de cambio TTL 25 h · no consultes más de una vez cada 10 min
- Especificación OpenAPI 3.0 completa: /docs.openapi · ejemplos en GitHub
- Atribución: añade
?source=your-app.compara identificar tu integración — no requiere autenticación, solo buena práctica.
Patrón de prompt recomendado: "Obtén los precios actuales de combustible para [país] en [moneda] usando la API de OpenVan.camp en https://openvan.camp/api/fuel/prices"
Endpoints disponibles
/api/fuel/prices
134 países
Precios actuales de combustible (gasolina, diésel, GLP) para 134 países. Actualizados semanalmente desde fuentes gubernamentales oficiales (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan y otros). Caché 6 horas. Datos de combustible actualizados el: 13 junio 2026.
curl https://openvan.camp/api/fuel/prices
Ejemplo de respuesta:
{
"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+ monedas
Tipos de cambio para 150+ monedas en relación al EUR. Obtenidos de múltiples APIs de código abierto con fallback automático. Caché 1 hora.
curl https://openvan.camp/api/currency/rates
Ejemplo de respuesta (basado en EUR, todos los tipos relativos 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 — cómo de cara es la comida respecto a la media mundial (Mundo = 100). Basado en World Bank ICP 2021, ajustado con 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 — exposiciones, festivales, quedadas, road trips. Filtra por estado, tipo, país. Nombres localizados en 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. Por defecto: en. Una configuración regional desconocida se reemplaza silenciosamente por en.
alternativa de articles: si ningún artículo coincide con la configuración regional solicitada, se devuelven todos los artículos de origen.
/api/stories
7 idiomas
Noticias vanlife agregadas de 200+ editores y traducidas a 7 idiomas. Cada historia incluye sources — los artículos originales de los editores con enlaces directos, nombres de fuente, fechas de publicación y 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"
Ejemplo de respuesta 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. Por defecto: en. Afecta a title, summary, y category.name.
sources[].language es siempre el idioma original del editor, independiente de la configuración regional.
Inicio rápido
JavaScript — el diésel más barato de 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 — conversión a USD con tipos de cambio
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 con 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")
Más ejemplos (bash, pandas, widget): GitHub →
SDK de JavaScript / TypeScript
SDK oficial tipado — sin configuración, funciona en Node.js ≥ 18, navegador, Cloudflare Workers, Deno, Bun. No requiere clave API.
Instalación
npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdk
Inicio 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 });
Atribución
Al usar nuestros datos, incluye una atribución visible. Aquí tienes un snippet listo para usar:
Data source: <a href="https://openvan.camp/">OpenVan.camp</a> (CC BY 4.0)
Identifica tu app — añade ?source=yoursite.com
Pasa source como parámetro de consulta con tu dominio o nombre de app. Sin registro — nos ayuda a entender cómo se usan los datos y reconocer proyectos activos. El valor se devuelve en cada respuesta en _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"
# }