OpenVan.camp Public API

Открытые данные для путешествий на машине: цены на топливо, платные дороги, визы, автомобильные номера, праздники, опасности, розетки, таможня, курсы валют, события и новости. Без API-ключа и регистрации — в приложениях, ботах и статьях по лицензии CC BY 4.0.

Без API-ключа

Вызывайте любой эндпоинт напрямую — без регистрации и заголовков авторизации

100% бесплатно

171 стран, еженедельные обновления, лицензия CC BY 4.0

CORS включён

Работает прямо из браузера, серверный прокси не нужен

Уже строят на OpenVan API

Топливные приложения, тревел-планировщики, EV-сервисы и флит-дашборды из десятка стран уже работают на наших открытых данных.

205
приложений и сайтов
7 200+
запросов к API / мес
4
ИИ-движка читают данные
6
открытых датасета

Кто уже использует

Выборка реальных интеграций — топливные приложения, тревел-планировщики, EV- и флит-дашборды.

Данные читают ИИ-поисковики
ChatGPT Perplexity Claude Gemini

В логах видим, как ChatGPT, Perplexity, Claude и Gemini запрашивают данные OpenVan — данные вашей интеграции тоже могут попасть в их ответы.

Используете наш API?

Добавьте ?source=ваш-домен к запросам — и попадёте в эту витрину.

Лицензия CC BY 4.0 — вы можете свободно использовать, распространять и адаптировать эти данные в любом формате при условии указания авторства OpenVan.camp. creativecommons.org →
Для AI-агентов и LLM-инструментов
  • Без 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"

Доступные эндпоинты

GET /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
    }
}
GET /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"
}
GET /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
GET /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"
confidence: low — число дней верное, а способ подсчёта предположение; уточняйте на границе. Справочные данные, не юридическая консультация.
Параметры: passport destination weight plate mode locale limit Полная документация
GET /api/plates Номера мира

Автомобильные номера мира: формат, коды регионов и готовая картинка номера. SVG/PNG рисует тот же движок, что на сайте, — шрифт номера уже внутри контурами, ничего устанавливать не нужно: вставьте <img src> с номером. Есть проверка номера с нормализацией букв, случайный номер и движок для отрисовки в браузере.

А123ВС 77
# 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
GET /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"}'
partial: true — в сумму вошла не вся плата: у стран из unknown_countries нет данных, и бесплатными они от этого не становятся.
Параметры: waypoints vehicle_class cons tank fuel currency locale Как это выглядит в Роудбуке Полная документация
GET /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 возвращает ошибку — это значит «мы не знаем», а не «праздников нет» или «ничего не запрещено».
GET /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"
GET /api/electricity/countries/{code} Розетки

Типы розеток (IEC A–N), напряжение и частота сети для каждой страны с источником значения, плюс разъём подключения на кемпингах Европы (CEE17).

curl https://openvan.camp/api/electricity/countries/GB
curl https://openvan.camp/api/electricity/countries
GET /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 возвращает ошибку — это значит «мы не знаем», а не «праздников нет» или «ничего не запрещено».
GET /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"
locale — одно из en ru de fr es pt tr. По умолчанию: en. Неизвестная локаль молча заменяется на en. запасной вариант для articles: если статьи на запрошенной локали не найдены, возвращаются все исходные статьи.
Параметры: locale status type country search page limit Полная документация →
GET /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://..."
    }
  ]
}
locale — одно из en ru de fr es pt tr. По умолчанию: en. Влияет на title, summary, и category.name. sources[].language всегда оригинальный язык издания, независимо от локали.
Параметры: locale category country search page limit Полная документация →

Быстрый старт

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"
# }
Предложить новость или событие

Отправляется в "Предложка" для модерации

Все предложения проходят авто-проверку и модерацию. Мы публикуем только выдержки и ссылку на первоисточник. Отправляя данные, вы согласны с Правообладателям, Условия, Политика конфиденциальности и Cookies.

→ В глоссарий