OpenVan.camp Public API
Открытые данные для путешествий на машине: цены на топливо, платные дороги, визы, автомобильные номера, праздники, опасности, розетки, таможня, курсы валют, события и новости. Без API-ключа и регистрации — в приложениях, ботах и статьях по лицензии CC BY 4.0.
Без API-ключа
Вызывайте любой эндпоинт напрямую — без регистрации и заголовков авторизации
100% бесплатно
171 стран, еженедельные обновления, лицензия CC BY 4.0
CORS включён
Работает прямо из браузера, серверный прокси не нужен
Уже строят на OpenVan API
Топливные приложения, тревел-планировщики, EV-сервисы и флит-дашборды из десятка стран уже работают на наших открытых данных.
Кто уже использует
Выборка реальных интеграций — топливные приложения, тревел-планировщики, EV- и флит-дашборды.
В логах видим, как ChatGPT, Perplexity, Claude и Gemini запрашивают данные OpenVan — данные вашей интеграции тоже могут попасть в их ответы.
Используете наш API?
Добавьте ?source=ваш-домен к запросам — и попадёте в эту витрину.
- Без API-ключа. Вызывайте любой эндпоинт напрямую — без регистрации и заголовков авторизации.
- CORS включён. Эндпоинты можно вызывать прямо из браузера.
- Формат ответа: всегда
{ "success": true, "data": {...} } - Кеширование: цены на топливо TTL 6 ч · курсы валют TTL 25 ч · опрашивайте не чаще раза в 10 минут
- Полная спецификация OpenAPI 3.0: /docs.openapi · примеры на GitHub
- Атрибуция: добавьте
?source=your-app.comчтобы обозначить вашу интеграцию — авторизация не требуется, просто хороший тон.
Рекомендуемый шаблон запроса: "Получи текущие цены на топливо для [страна] в [валюта], используя API OpenVan.camp по адресу https://openvan.camp/api/fuel/prices"
Доступные эндпоинты
/api/fuel/prices
171 стран
Актуальные цены на топливо для 171 стран. Список ключей цен берётся из текущего API-контракта. Обновляются еженедельно из официальных государственных источников (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan и др.). Кеш 6 часов. Данные о топливе обновлены: 03 октября 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
Пример ответа:
{
"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
}
}
/api/currency/rates
150+ валют
Курсы обмена для 150+ валют относительно EUR. Получаются из нескольких открытых API с автоматическим fallback. Кеш 1 час.
curl https://openvan.camp/api/currency/rates
Пример ответа (на базе EUR, все курсы относительно 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+ стран
VanBasket Food Price Index — насколько дорогая еда относительно среднемирового уровня (Мир = 100). На основе World Bank ICP 2021 с корректировкой по 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/visa/check
39 601 пара
Визовые и пограничные правила: сколько можно находиться для любой пары «паспорт × страна», как считаются дни (на каждый въезд или в скользящем окне), обнуляет ли счётчик визаран — плюс правила временного ввоза автомобиля. У каждого ответа есть уверенность, источник и слой, из которого он взят.
# 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"
/api/plates
Номера мира
Автомобильные номера мира: формат, коды регионов и готовая картинка номера. SVG/PNG рисует тот же движок, что на сайте, — шрифт номера уже внутри контурами, ничего устанавливать не нужно: вставьте <img src> с номером. Есть проверка номера с нормализацией букв, случайный номер и движок для отрисовки в браузере.
# 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
/api/tolls
Стоимость маршрута
Платные дороги по странам — ставка за километр для легковой машины, кемпера до 3,5 т и тяжёлых машин, виньетки, платные мосты и тоннели, у каждой цифры дата проверки и источник, — и стоимость всего маршрута по названиям точек: платные дороги диапазоном в евро и топливо по ценам каждой страны на пути.
# 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"}'
waypoints
vehicle_class
cons
tank
fuel
currency
locale
Как это выглядит в Роудбуке
Полная документация
/api/holidays/countries/{code}
Праздники
Государственные праздники, школьные каникулы (часто по регионам, с кодами ISO 3166-2) и официальные пиковые дни на дорогах за период до 400 дней — чтобы знать, когда забиты трассы, кемпинги и паромы.
# 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
/api/hazards/countries/{code}
Опасности
Обстановка в стране сейчас: уровень рекомендаций МИД Великобритании (FCDO) и текущие стихийные бедствия GDACS с уровнем тревоги, плюс очаги пожаров со спутников NASA FIRMS за последние 48 часов в заданном прямоугольнике. Не прогноз.
# 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"
/api/electricity/countries/{code}
Розетки
Типы розеток (IEC A–N), напряжение и частота сети для каждой страны с источником значения, плюс разъём подключения на кемпингах Европы (CEE17).
curl https://openvan.camp/api/electricity/countries/GB
curl https://openvan.camp/api/electricity/countries
/api/customs/countries/{code}
Таможня
Что можно ввезти на машине: запреты на продукты, декларация наличных, нормы алкоголя и табака, беспошлинная сумма, топливо в канистре. Можно указать страну, откуда едете, — внутри ЕС таможни нет. У каждого правила дословная цитата официального источника и ссылка.
# 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
/api/events
ванлайф-события
Постраничный список ванлайф-событий — выставки, фестивали, встречи, автопробеги. Фильтрация по статусу, типу, стране. Локализованные названия на 7 языках.
# 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"
en ru de fr es pt tr. По умолчанию: en. Неизвестная локаль молча заменяется на en.
запасной вариант для articles: если статьи на запрошенной локали не найдены, возвращаются все исходные статьи.
/api/stories
7 языков
Ванлайф-новости, агрегированные из 200+ изданий и переведённые на 7 языков. Каждый сюжет содержит sources — оригинальные статьи изданий с прямыми ссылками, названиями источников, датами публикации и кодами языка.
# 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"
Пример ответа для /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://..."
}
]
}
en ru de fr es pt tr. По умолчанию: en. Влияет на title, summary, и category.name.
sources[].language всегда оригинальный язык издания, независимо от локали.
Быстрый старт
JavaScript — самый дешёвый дизель в Европе
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 — конвертация в USD по курсам валют
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 — страны с СПГ
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")
Больше примеров (bash, pandas, виджет): GitHub →
SDK для JavaScript / TypeScript
Официальный типизированный SDK — без настройки, работает в Node.js ≥ 18, браузере, Cloudflare Workers, Deno, Bun. API-ключ не нужен.
Установка
npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdk
Быстрый старт (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" });
Атрибуция
При использовании наших данных, пожалуйста, добавьте видимую атрибуцию. Вот готовый код:
Data source: <a href="https://openvan.camp/">OpenVan.camp</a> (CC BY 4.0)
Обозначьте ваше приложение — добавьте ?source=yoursite.com
Передавайте source — параметр запроса с вашим доменом или названием приложения. Регистрация не нужна — это помогает нам понимать, как используются данные, и отмечать активные проекты. Значение возвращается в каждом ответе в поле _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"
# }