OpenVan.camp Public API
Открытые данные о ценах на топливо, курсах валют и ванлайф-событиях. Бесплатно для использования в приложениях, ботах и статьях по лицензии CC BY 4.0.
Без API-ключа
Вызывайте любой эндпоинт напрямую — без регистрации и заголовков авторизации
100% бесплатно
125+ стран, еженедельные обновления, лицензия 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
134 стран
Актуальные цены на топливо (бензин, дизель, СПГ) для 134 стран. Обновляются еженедельно из официальных государственных источников (EU Oil Bulletin, Statistics Norway, EIA, ANP, NRCan и др.). Кеш 6 часов. Данные о топливе обновлены: 13 июня 2026.
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", // "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 }
}
/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/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=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"
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=camping&country=DE"
# Full story with all source articles
curl "https://openvan.camp/api/story/vanlife-festival-germany-2026?locale=en"
Пример ответа для /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://..."
}
]
}
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"
# }