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

142 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.

100
apps & websites
265 900+
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 142 countries

Current retail fuel prices for 142 countries. The price key list is generated from the live API contract. Updated weekly from official government sources (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan and others). Cached 6 hours. Fuel data last updated: 01 August 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

Example response:

{
    "success": true,
    "data": {
        "DE": {
            "country_code": "DE",
            "country_name": "Germany",
            "region": "europe",
            "currency": "EUR",
            "local_currency": "EUR",
            "unit": "liter",
            "prices": {
                "gasoline_regular": null,
                "gasoline": 2.1673,
                "gasoline_premium": 2.2119,
                "gasoline_super": null,
                "diesel_regular": null,
                "diesel": 2.1875,
                "diesel_premium": 2.4339,
                "lpg": 1.1075,
                "cng": null,
                "e85": null,
                "kerosene": null,
                "premium": 2.2119
            },
            "price_changes": {
                "gasoline_regular": null,
                "gasoline": 0.0024,
                "gasoline_premium": 0.0013,
                "gasoline_super": null,
                "diesel_regular": null,
                "diesel": 0.0149,
                "diesel_premium": 0.002,
                "lpg": 0.001,
                "cng": null,
                "e85": null,
                "kerosene": null,
                "premium": null
            },
            "fetched_at": "2026-08-01T13:43: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": 142,
        "updated_at": "2026-08-01 13:43:37",
        "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/visa/check 39,601 pairs

Visa and border rules: how long you may stay for any passport × destination pair, how the days are counted (per entry or a rolling window), whether a visa run resets the counter — plus temporary vehicle import rules. Every answer carries its confidence, its source and the layer it came from.

# 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 means the number of days is right but the counting window is an assumption — verify at the border. Reference data, not legal advice.
Parameters: passport destination weight plate mode locale limit Full documentation
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=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 — 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=festival&country=DE"

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

Example response for /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 — 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