OpenVan.camp Public API
Открытые данные о ценах на топливо, курсах валют и ванлайф-событиях. Бесплатно для использования в приложениях, ботах и статьях по лицензии CC BY 4.0.
Без API-ключа
Вызывайте любой эндпоинт напрямую — без регистрации и заголовков авторизации
100% бесплатно
142 стран, еженедельные обновления, лицензия 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
142 стран
Актуальные цены на топливо для 142 стран. Список ключей цен берётся из текущего API-контракта. Обновляются еженедельно из официальных государственных источников (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan и др.). Кеш 6 часов. Данные о топливе обновлены: 25 июля 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",
"prices": {
"gasoline_regular": null,
"gasoline": 2.1649,
"gasoline_premium": 2.2106,
"gasoline_super": null,
"diesel_regular": null,
"diesel": 2.1726,
"diesel_premium": 2.4319,
"lpg": 1.1065,
"cng": null,
"e85": null,
"kerosene": null,
"premium": 2.2106
},
"price_changes": {
"gasoline_regular": null,
"gasoline": -0.005,
"gasoline_premium": -0.0824,
"gasoline_super": null,
"diesel_regular": null,
"diesel": 0.0401,
"diesel_premium": -0.0564,
"lpg": -0.0021,
"cng": null,
"e85": null,
"kerosene": null,
"premium": null
},
"fetched_at": "2026-07-25T11:19:58+03:00",
"sources": [
"EU Weekly Oil Bulletin",
"clever-tanken.de (Premium Diesel)",
"Tankerkoenig (tankerkoenig.de)",
"Cargopedia.net",
"Fuelo.net",
"BenzinpreisAktuell.de"
],
"sources_count": 4,
"is_excluded": false
}
},
"meta": {
"total_countries": 142,
"updated_at": "2026-07-25 11:19:58",
"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/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
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 — страны с СПГ
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 });
Атрибуция
При использовании наших данных, пожалуйста, добавьте видимую атрибуцию. Вот готовый код:
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"
# }