OpenVan.campβ World of motorhomes — here

Report a problem

What is the problem?

Could not attach a screenshot — send without it

OpenVan.camp Public API

Free fuel price API, currency rates and vanlife data — no API key, no registration required. Use in your apps, bots, and articles under CC BY 4.0.

No API Key

Call any endpoint directly — no registration, no auth header

100% Free

125+ countries, weekly updates, CC BY 4.0 license

CORS Enabled

Works from browser, no server-side proxy needed

Built with OpenVan

Vanlife apps, fuel trackers, trip planners and EV tools across a dozen countries already run on our open data.

45
apps & websites
42 200+
API requests / month
4
AI engines read the data
6
open datasets

Who already uses it

A hand-picked sample — fuel apps, trip planners, EV and fleet dashboards.

MyDiodia Trip planner AutoCost Cost Scopri24 Tools
Croatia Toll Calculator Trip planner
EvBlue EV
Scotlynn Fleet Fleet
FuelWatch Fuel
Carburant Belgique Fuel
MileFuel Fuel
ExpenseOS Cost
Read by AI search engines
ChatGPT Perplexity Claude Gemini

We see ChatGPT, Perplexity, Claude and Gemini fetching OpenVan data — your integration's data can surface in their answers too.

Using our API?

Add ?source=your-domain to your calls — and you'll appear in this showcase.

CC BY 4.0 License — You are free to use, share and adapt this data in any medium or format, as long as you give appropriate credit to OpenVan.camp. creativecommons.org →
For AI Agents & LLM Tools
  • No API key. Call any endpoint directly — no registration, no auth header.
  • CORS enabled. Endpoints can be called from the browser directly.
  • Response format: always { "success": true, "data": {...} }
  • Caching: fuel prices TTL 6h · currency rates TTL 25h · please poll no faster than every 10 min
  • Full OpenAPI 3.0 spec: /docs.openapi · GitHub examples
  • Attribution: add ?source=your-app.com to identify your integration — no auth required, just good practice.

Recommended prompting pattern: "Get current fuel prices for [country] in [currency] using the OpenVan.camp API at https://openvan.camp/api/fuel/prices"

Available Endpoints

GET /api/fuel/prices 134 countries

Current retail fuel prices (gasoline, diesel, LPG) for 134 countries. Updated weekly from official government sources (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan and others). Cached 6 hours. Fuel data last updated: 13 June 2026.

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

Example response:

{
  "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 }
}
GET /api/currency/rates 150+ currencies

Exchange rates for 150+ currencies relative to EUR. Fetched from multiple open-source APIs with automatic fallback. Cached 1 hour.

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

Example response (EUR-based, all rates relative to 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+ countries

VanBasket Food Price Index — how expensive food is relative to world average (World = 100). Based on World Bank ICP 2021, adjusted with 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/events vanlife events

Paginated list of vanlife events — exhibitions, festivals, meetups, road trips. Filter by status, type, country. Localized names in 7 languages.

# 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"
locale — one of en ru de fr es pt tr. Default: en. Unknown locale silently falls back to en. articles fallback: if no articles match the requested locale, all source articles are returned.
Params: locale status type country search page limit Full docs →
GET /api/stories 7 languages

Vanlife news stories aggregated from 200+ publishers, translated into 7 languages. Each story includes sources — original publisher articles with direct links, source names, publication dates, and language codes.

# 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"

Example response for /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://..."
    }
  ]
}
locale — one of en ru de fr es pt tr. Default: en. Affects title, summary, and category.name. sources[].language is always the original publisher language, independent of locale.
Params: locale category country search page limit Full docs →

Quick Start

JavaScript — cheapest diesel in Europe

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 — convert to USD using currency rates

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 — countries with LPG

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")

More examples (bash, pandas, widget): GitHub →

JavaScript / TypeScript SDK

Official typed SDK — zero-config, works in Node.js ≥ 18, browser, Cloudflare Workers, Deno, Bun. No API key required.

Install

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

Quick start (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 });

Attribution

When using our data, please include a visible attribution. Here's a ready-to-use snippet:

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

Identify your app — add ?source=yoursite.com

Pass source query parameter with your domain or app name. No registration needed — it helps us understand how data is being used and acknowledge active projects. The value is echoed back in every response under _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"
# }

Install OpenVan.camp

Get quick access and offline reading.

Install on iOS

  1. 1 Tap Share in Safari.
  2. 2 Choose "Add to Home Screen".
  3. 3 Confirm by tapping Add.

Already installed

The app is already installed on this device.

Install from browser menu

Use your browser menu to install or add to home screen.

→ Glossary