Документация API
REST + JSON через HTTPS. Один базовый URL, один ключ, предсказуемые конверты.
| Базовый URL | https://nakordoni.eu/api/v1/data/ |
|---|---|
| Формат | JSON, UTF-8 |
| Аутентификация | Authorization: Bearer NKD-DEV-… |
| Версионирование | Версия в пути и отдельно для каждого эндпоинта: /api/v1/… стабилен; /api/v2/… отдаёт новое поведение только для изменившихся эндпоинтов, а для остальных прозрачно возвращается к v1. Ответы v1 никогда не меняются. Если ваш ключ обращается к версии, которую заменила более новая, мы отправим вам письмо и покажем уведомление в портале разработчика — вам не придётся узнавать об этом из списка изменений. |
На этой странице
Аутентификация
Каждый запрос требует вашего ключа API в заголовке Authorization (рекомендуется) или как параметр ?key=.
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
Формат ответа
{
"ok": true,
"api_version": "v1",
"product": "queue",
"attribution": "Data by nakordoni.eu",
"data": { ... },
"usage": { "limit": 1000, "used": 42, "reset": "2026-06-06T00:00:00Z" }
}
Ошибки возвращают ok:false с error.code (missing_api_key, invalid_api_key, qps_exceeded, quota_exceeded, unknown_product, product_unavailable, bad_request, internal_error) и HTTP-статусом 401/403/404/429/500. Заголовки ограничения частоты X-Devapi-Limit и X-Devapi-Remaining отправляются в каждом тарифицируемом ответе.
Квоты
| Explorer | |
|---|---|
| вызовов/день для стандартных API данных | 1,000 |
| вызовов/день для API прогнозов и статистики | 200 |
| QPS | 2 |
Дневные счётчики сбрасываются в полночь по UTC. Вы получаете email при достижении 80% и 100% квоты.
Платные тарифы поднимают каждый из этих лимитов. Актуальные тарифы и их лимиты: Планы
Примеры кода
curl
curl "https://nakordoni.eu/api/v1/data/queue?ppid=id_13" \ -H "Authorization: Bearer $NKD_API_KEY"
JavaScript (fetch)
const res = await fetch('https://nakordoni.eu/api/v1/data/forecast?ppid=id_13&prediction_steps=24', {
headers: { Authorization: `Bearer ${process.env.NKD_API_KEY}` }
});
const { ok, data, error, usage } = await res.json();
if (!ok) throw new Error(error?.code ?? res.status);
console.log(`forecast points: ${data.length}, calls left today: ${usage.limit - usage.used}`);
Python (requests)
import os, requests
r = requests.get(
"https://nakordoni.eu/api/v1/data/stats",
params={"ppid": "id_15", "compare": 1},
headers={"Authorization": f"Bearer {os.environ['NKD_API_KEY']}"},
timeout=15,
)
payload = r.json()
print(payload["data"]["daily"], payload["usage"])
Excel (Power Query)
Получайте данные об очередях, прогнозах и запретах для грузовиков прямо в таблицу с помощью встроенного JSON-коннектора Power Query — без кода, с обновлением по расписанию. Та же схема заголовков (Headers) работает для любого продукта этого API — достаточно изменить URL.
Data → Get Data → From Other Sources → Blank Query, then Home → Advanced Editor and paste:
let
ApiKey = "NKD-DEV-XXXX-XXXX-XXXX",
Source = Json.Document(Web.Contents("https://nakordoni.eu/api/v1/data/queue",
[Query = [ppid = "id_13"], Headers = [Authorization = "Bearer " & ApiKey]])),
data = Source[data],
AsTable = Record.ToTable(data)
in
AsTable
Храните ключ API внутри M-запроса (Home → Advanced Editor), а не в ячейке листа — Power Query блокирует веб-запрос, построенный на основе другого запроса или ячейки ("Formula.Firewall"), если уровень конфиденциальности не установлен как Organizational.
Несколько пунктов пропуска в одной таблице (дашборды автопарка) — e.g. every truck crossing UA→EU (crossing_type=9):
let
ApiKey = "NKD-DEV-XXXX-XXXX-XXXX",
Source = Json.Document(Web.Contents("https://nakordoni.eu/api/v1/data/border/1/all/9",
[Headers = [Authorization = "Bearer " & ApiKey]])),
checkpoints = Source[data],
AsTable = Table.FromRecords(checkpoints)
in
AsTable
Data → Refresh All в Excel или запланированное обновление в Power BI / Excel Online поддерживает актуальность данных — без кода опроса (polling).
Интеграция с ERP (BAS / BAF и платформы семейства 1С)
BAS / BAF и другие платформы семейства 1С могут обращаться к этому API прямо из регламентного задания — HTTPConnection плюс ReadJSON, без промежуточного сервиса. Самый частый сценарий: поддерживать в актуальном состоянии регистр сведений с ценами на топливо в ЕС.
Обновление регистра сведений (цены на топливо, все страны одним запросом)
// Scheduled job — runs once a day
Connection = New HTTPConnection("nakordoni.eu", 443, , , , 30, New OpenSSLSecureConnection);
Headers = New Map;
Headers.Insert("Authorization", "Bearer NKD-DEV-XXXX-XXXX-XXXX");
Request = New HTTPRequest("/api/v1/data/fuel", Headers);
Response = Connection.Get(Request);
Reader = New JSONReader;
Reader.SetString(Response.GetBodyAsString("UTF-8"));
Answer = ReadJSON(Reader, True);
Reader.Close();
If Answer["ok"] <> True Then
// Answer["error"]["code"] says why; Answer["usage"] holds your quota state
Return;
EndIf;
For Each Row In Answer["data"] Do
Record = InformationRegisters.FuelPrices.CreateRecordManager();
Record.Period = CurrentSessionDate();
Record.Country = Row["country"]; // "PL", "DE", "SK", "RO", ...
Record.Diesel = Row["diesel"];
Record.Petrol = Row["petrol"];
Record.LPG = Row["lpg"];
Record.Currency = Row["currency"];
Record.Write();
EndDo;
Три вещи, которые важно сделать правильно: передайте New OpenSSLSecureConnection на порт 443, иначе запрос упадёт на TLS; вызывайте /api/v1/data/fuel без параметра country — один запрос вернёт все страны вместо отдельного вызова на каждую; и проверяйте ok, прежде чем читать data — ошибки приходят как ok:false с error.code, а не как исключение. В примере использован англоязычный набор ключевых слов платформы; локализованные аналоги (HTTPСоединение, ПрочитатьJSON, РегистрыСведений) работают идентично.
Цены на топливо в источниках меняются раз в сутки, поэтому регламентного задания раз или два в день достаточно — и это остаётся далеко внутри бесплатной квоты Explorer. Данные живых очередей (queue, multi, border) обновляются каждые несколько минут: опрашивайте их по своему графику и берите multi, чтобы прочитать до 5 пунктов пропуска одним запросом вместо цикла.
MCP-сервер
Предпочитаете вызов инструментов вместо REST? Мы запускаем настоящий MCP-сервер (транспорт Streamable HTTP), предоставляющий безопасное подмножество этого API только для чтения в виде MCP-инструментов — тот же API-ключ, та же квота, просто другой транспорт.
Endpoint: https://nakordoni.eu/mcp · Server card: /.well-known/mcp/server-card.json
get_api_status — no key required list_checkpoints — country, lang get_border_queue — origin, destination, crossing_type, lang get_live_queue — ppid, lang get_queue_forecast — ppid, prediction_steps
Настройка клиента (Claude Desktop / Claude Code):
{
"mcpServers": {
"nakordoni": {
"url": "https://nakordoni.eu/mcp",
"headers": { "Authorization": "Bearer NKD-DEV-XXXX-XXXX-XXXX" }
}
}
}
Продукты
Выберите эндпоинт, чтобы увидеть полный справочник, параметры, версии и живую песочницу.
Стандарт использует стандартную квоту данных · Тяжёлый использует квоту прогноза и статистики — см. Квоты
Очереди на границе
Текущее состояние каждого продукта Developer API: онлайн / деградирован / офлайн, задержка ответа и время последней проверки. Пуб…
Справочник всех отслеживаемых пограничных пунктов пропуска: ID, названия, страны, координаты и статус. Используйте его, чтобы пол…
Все КПП на заданной границе для одного типа транспорта в одном запросе — живая очередь, оценка времени и свежесть данных. Поддерж…
Найдите PPID КПП по названию на любом языке. Возвращает все PPID для этого места, сгруппированные по типу транспорта. До 20 назва…
Очереди в реальном времени, оценка времени ожидания и статус для любого КПП. Содержит блок snapshot: текущая очередь (queue_now),…
Wait time adjusted for live traffic flow and weather, with a full breakdown of each adjustment, plus the same wait_status/trend f…
Получайте статус очереди и актуальность данных для до 5 пунктов пропуска в одном запросе. Квота считается как ⌈(N PPID × под-прод…
Ближайшие альтернативные пункты пропуска на той же границе с текущими очередями и разницей в расстоянии.
Когда пункт пропуска обновлялся в последний раз, каким источником, и оценка свежести.
Прогнозы и статистика
Прогноз уровней очереди на основе ML-ансамбля: горизонты на 24 часа и 7 дней (168 ч) с доверительными границами. Та же модель, чт…
Почасовая историческая статистика очереди по пункту пропуска и дате: 24 почасовых значения, суточное среднее/минимум/максимум, пи…
Статистика типичной недели для КПП: матрица 7×24 «день недели × час» (медиана + диапазон p25/p75), самый тихий/загруженный день, …
Топливо и локации
Цены на топливо в странах EU — средние по country, ближайшие станции по координатам или станции рядом с пунктом пропуска. Агрегир…
Цены на топливо по городам страны: самая дешёвая АЗС и среднее по 5 ближайшим станциям.
Ближайшие заправки относительно точки или city с актуальными ценами по каждому типу топлива, отсортированные по расстоянию. Покры…
Самые дешёвые заправки вокруг точки или city, ранжированные по цене для выбранного типа топлива (при равенстве побеждает ближайша…
Лучшая доступная цена на топливо для любой точки Европы, определяемая по трёхуровневой лестнице. Там, где есть данные по отдельны…
Таблица названий, на которой держатся все топливные продукты: наши канонические коды марок и то, как каждую марку называют на зап…
Стоянки для грузовиков (14k+), бесплатные душевые, сервисы и супермаркеты по всей Европе с координатами. Результаты отсортированы…
Ближайшие стоянки для грузовиков, Autohöfe и места отдыха дальнобойщиков относительно точки или city — отсортированные по расстоя…
Ближайшие супермаркеты и продуктовые магазины относительно точки или city — отсортированные по расстоянию с distance_km, название…
Ближайшие бесплатные душевые для водителей относительно точки или city — отсортированные по расстоянию с distance_km, названием, …
Ближайшие рестораны, удобные для водителей, относительно точки или city — отсортированные по расстоянию с distance_km, названием,…
Ближайшие промышленные и логистические зоны относительно точки или city (более 3k+ по всей Европе) — отсортированные по расстояни…
Обменные курсы на базе EUR для PLN, CZK, HUF, USD, GBP, CHF, NOK и UAH, источник Frankfurter (ECB), кеш 6 часов. Без параметров —…
Планирование маршрута
План поездки от двери до двери: маршрут, пункты пропуска на нём с текущей очередью или прогнозом на время вашего прибытия и остан…
Время в пути + очередь на границе для всех пунктов пропуска из заданной точки отправления.
Европейские ограничения движения грузовиков по country и дате, включая сезонные и праздничные запреты. Каждый запрет содержит сво…
Правила воскресной розничной торговли и ближайшие торговые воскресенья для каждой регулируемой страны ЕС.
Официальные государственные праздники по европейским странам — даты, локальные названия и тип, полный список праздников для каждо…
Водители и дороги
Подтверждённые отчёты о состоянии дорог вблизи границ и на основных коридорах: ямы, дорожные работы, перекрытия, гололёд, опаснос…
Требует ли country виньетку для проезда по автомагистралям, актуальные цены по срокам действия и где узнать больше — по country и…
Магазины мобильных операторов и точки WiFi, полезные водителям в дороге, от ближайших к точке или city с distance_km.
Показатели пересечения границы по автобусному перевозчику: пересечения, среднее/медианное/мин/макс время ожидания в минутах — пос…
Дорожная опасность на пункте пропуска по единой шкале 0–5: чистая дорога, туман, снег, дождь, гололёд или сильный ветер — названи…
Air-raid alerts and airborne objects near ONE border crossing. Anchor on a checkpoint (ppid), a coordinate pair or a city and get…
Your Fleet (NakBus Live)
Ваш собственный парк NakBus Live: каждое транспортное средство, зарегистрированное на вашу компанию, с номерным знаком, меткой, н…
Где ваши автобусы находятся прямо сейчас — по одной строке на каждое активное транспортное средство с lat/lon, временной меткой и…
Записанный GPS-трек ваших собственных транспортных средств: каждая сохранённая точка позиции во временном окне, в хронологическом…
ИИ-ассистент
Задайте нашему продакшн AI-ассистенту любой вопрос о пересечении границы (очереди, прогнозы, правила, топливо, маршруты) и получи…
Ваш собственный AI-ассистент, отвечающий на основе ВАШЕГО контента и НАШИХ живых данных о границе. Дайте нам свои markdown-файлы …
Экспорт исторических данных
Одобренные разработчики могут скачать опубликованную историю очередей на границе, усреднённую по часам, для до 5 пунктов пропуска (скользящее окно до 90 дней) в формате gzip-CSV, NDJSON или JSON. Это возможность только в портале — НЕ эндпоинт API; экспорты вы формируете и скачиваете на вкладке «Экспорт данных» в своём аккаунте.
Доступ предоставляется по запросу: откройте тикет категории Data и укажите, какие пункты пропуска, за какой период и для чего они вам нужны. После одобрения в вашем аккаунте появится вкладка «Экспорт данных». Лимит по умолчанию: 1 экспорт в день, до 5 пунктов пропуска в каждом — попросите нас поднять его.
Поля — одна строка на пункт пропуска за каждый час UTC
| Параметр | Описание |
|---|---|
ppid | Идентификатор пункта пропуска |
checkpoint_name | Название пункта пропуска |
hour_utc | Час, ISO-8601 UTC |
direction | напр. UA->PL |
vehicle_type | легковой / автобус / грузовик / пешеход |
avg_queue_length | Средняя длина очереди за час |
avg_wait_minutes | Среднее время ожидания за час; null там, где у пункта пропуска нет официального источника времени ожидания |
sample_count | Количество наблюдений за час |
Данные только опубликованные, и перед экспортом они проходят наши проверки аномалий и качества (никаких сырых данных отдельных сообщений). Все метки времени — UTC. Файлы хранятся 10 дней.
Происхождение: каждый файл содержит в заголовке подписанный отпечаток (sha256 + HMAC), поэтому любую копию можно позже подтвердить как подлинные данные nakordoni.eu и проверить на изменения — даже после скачивания.
# sha256: 3f9c… # signature: e87b… ppid,checkpoint_name,hour_utc,direction,vehicle_type,avg_queue_length,avg_wait_minutes,sample_count id_10,Hrushiv,2026-06-12T02:00:00Z,UA->PL,car,11,,4
Что вы можете создать
Те же продукты данных формируют визуализации на nakordoni.eu — недельные графики прогнозов, почасовые профили очередей, карточки статуса в реальном времени. Небольшой пример того, что содержат API прогнозов и статистики:
Атрибуция
Интеграции плана Explorer должны показывать видимую ссылку "Data by nakordoni.eu" везде, где отображаются данные. Это сохраняет бесплатный план бесплатным.
Точный код
Скопируйте этот фрагмент как есть. Ссылка должна оставаться индексируемой: обычный HTML <a href>, по которому могут переходить поисковики — НЕ добавляйте rel="nofollow" или rel="sponsored", не рендерьте её только через JavaScript и не скрывайте через CSS.
<a href="https://nakordoni.eu/" title="Border queues, forecasts & statistics">Data by nakordoni.eu</a>
Компактный мелкий вариант (например, под графиком или виджетом):
<p style="font-size:12px;margin:4px 0"> Data by <a href="https://nakordoni.eu/">nakordoni.eu</a> </p>
Можно ссылаться на свою языковую версию, например https://nakordoni.eu/ru/ — засчитывается любая индексируемая ссылка на nakordoni.eu. Текст якоря "Data by nakordoni.eu" должен оставаться на английском.
Где размещать
- Непосредственно рядом или под блоком данных (таблица, график, виджет, ответ) — на том же экране, видимо без дополнительных кликов.
- На каждой странице или экране приложения, где отображаются наши данные — не только на странице "о нас".
- Читаемый размер и контраст: минимум ~11px, не скрыто, не свернуто, не цветом фона.
- Нативные мобильные приложения без HTML-ссылок: показывайте текст "Data by nakordoni.eu" на экране с данными и разместите кликабельную ссылку на экране "о приложении".
Мы периодически проверяем атрибуцию на "странице использования данных", указанной при регистрации. Отсутствие или деиндексация атрибуции на бесплатном плане Explorer ведёт сначала к напоминанию, затем к приостановке ключа. Клиенты платного плана могут не указывать атрибуцию.
Лицензия на данные и рынки
Your API key grants a licence to use our data in the countries you declared when you signed up, and only in those countries. We review every declaration before granting full access, because our data is our own product and we do not license it into markets without knowing where it will be published.
- Declare every country your site, app or product serves. You can change the list from your dashboard at any time; a change puts your account back into review.
- Until your markets are approved your key runs on reduced limits - half of the Starter plan allowance. This applies whatever plan you are on.
- Мы можем одобрить только некоторые из запрошенных вами стран. Утвержденный список, а не запрошенный, определяет, какие страны покрывает ваша лицензия.
- Publishing or redistributing our data in a market you did not declare, or reselling it as a competing data feed, is a breach of these terms and can suspend your key without notice.
- Some plans are offered only in selected regions. Availability depends on the markets you declare.
Актуальность данных
Насколько свежие данные — зависит от вашего тарифа. Отметки в самом ответе нет: все тарифы возвращают те же поля, те же типы и ту же структуру ответа.
- Платные тарифы — Student, Starter, Pro и Pro MAX: живая телеметрия, без задержки.
- Бесплатный тариф Explorer: снимок за последние 15–30 минут. Точное смещение меняется от запроса к запросу.
Задержанный ответ — это не ошибка и не проблема с лимитом: это полноценный валидный ответ с более старыми числами. Повторный запрос более свежих данных не вернёт.
Если вашему приложению нужны актуальные данные, любой платный тариф возвращает телеметрию в реальном времени.