Перейти к содержанию
Menu

Журнал изменений API

Все важные изменения API. Новые — вверху. Следуем стабильности v1 — без Breaking changes без новой версии.

2026-08-01 Исправление AI Studio: feeds without their context are skipped, not billed

If an assistant has a feed enabled but the call does not carry the context that feed needs — queue without a ppid, for example — the feed is now skipped before any request is made and is not charged. Previously it was called anyway, failed, and still cost a unit. The studio shows what each feed needs, recalculates the price as you fill the context in, and marks results ✓ ran / ⊘ skipped, not charged / ✕ failed; the API returns data.feeds_skipped telling you exactly which parameter to pass.

Answers no longer mention feeds, data sources or anything technical: a missing feed is at most one plain sentence to the end user, never an internal name. Feeds with only optional filters (such as fuel narrowed to a country we have no data for) now fall back to the broad dataset instead of returning nothing.

2026-08-01 Новое AI Studio: build your own assistant on your content + our live data

New: /{lang}/developers/studio. Build an AI assistant that answers from your content and our live border data. Give us your markdown, or just name the pages and we fetch and index them — you only ever maintain your own files. Pick which of our feeds it may use (queue, forecast, alternatives, day-stats, fuel, truck bans, trading Sundays, holidays, road conditions, bus carriers, POIs, currency), pick a model tier (fast / balanced / pro — that is what sets the price), write your own instructions with {{feed.slug}} placeholders saying exactly where our data lands in the answer, and add a closing sentence of your own that is appended to every reply. Ready-made blueprints: personal travel assistant, work/freight assistant, insurance & Green Card sales assistant.

Test it in the studio (30 answers/day, separate from your API quota), then call it in production at GET /api/v2/data/assistant-custom?assistant_id=N&q=…. Price per answer = model tier units + 1 unit per enabled feed, returned in X-Devapi-Units. The product is v2-only — a v1 URL returns unsupported_version. The existing assistant product is unchanged.

Every assistant runs under a platform content policy that outranks your instructions: no impersonating officials, no help evading border or customs control, no invented numbers, no profanity. Instructions and answers are both screened; blocked calls are logged.

2026-07-26 Новое MCP-сервер (Streamable HTTP)

Новое: настоящий MCP-сервер по адресу https://nakordoni.eu/mcp, предоставляющий безопасное подмножество API только для чтения (status, checkpoints, border queue, live queue, forecast) в виде MCP-инструментов. Тот же API-ключ и квота, что и в REST API. Карточка сервера по адресу /.well-known/mcp/server-card.json. См. раздел MCP-сервер в документации.

2026-07-21 Исправление Docs page still said "Data Freshness API" after the rename — now fixed in all 25 languages

The retitle to "Live Queue & Freshness API" below did not actually reach the docs page. The page renders each product title through a translation lookup that falls back to the endpoint's title only when no translation exists — and a translation already existed, frozen at the old name, in all 25 UI languages. It now wins over any future update to the underlying title until it is updated too.

Retitled the translation key in all 25 languages so the docs page matches. No endpoint, parameter or response change — title text only.

2026-07-21 Новое Data Freshness API is also your standard-quota live queue endpoint

If you poll live queue data frequently, you may be spending heavy quota you do not need to. /update-info is standard-class and already returns the live figure:

GET /api/v1/data/update-info?ppid=id_13

It returns queue_now, freshness, age_minutes, is_realtime, status, timestamp and timezone. Use it for the frequent refresh against your standard daily quota, and keep /queue, /multi and /forecast (all heavy-class) for when you need wait_min, the trend fields or history.

Nothing changed in the endpoint itself — only its documentation. It was listed as the "Data Freshness API" and its description mentioned only the freshness rating, never queue_now, so it was easy to miss. It is now titled "Live Queue & Freshness API" with the returned fields spelled out. Thanks to the developer who raised this.

2026-07-20 Исправление Failed calls now correctly return ok:false

Some failed requests were returning HTTP 200 with ok: true and the error buried inside data — so the documented if (!ok) throw pattern could not detect them, and the call was still billed. Affected calls now return HTTP 400 with ok: false and a proper error.code / error.message, as documented. Seen on fuel-cities with an unsupported country and travel-matrix with malformed coordinates.

Separately, a missing required parameter returned 500 internal_error instead of 400 bad_request (an upstream 4xx body was being discarded before its status was read). It now returns 400 bad_request with the upstream message — e.g. search without ?name=.

Successful responses are byte-for-byte unchanged — same fields, same params, same quota cost. If your client already branches on ok, no change is needed. If it ignored ok and read data directly, it will now see error envelopes on calls that were always failing.

2026-07-20 Исправление Multi-Checkpoint API: accurate queue data when the cache is cold

Fixed a bug where /multi could return a wrong queue count for some checkpoints — mainly Balkan and Hungary–Serbia crossings — whenever its cache was cold. The fallback read a table that, for those crossings, holds no queue data, and reported unrelated values as car counts. Measured examples: a checkpoint with 12 cars reported 6, and several with real queues reported 0.

Three changes you may notice:

  • found: false now means there is genuinely no recent queue data. Previously you could receive found: true with a fabricated queue_now: 0.
  • wait_status, trend_percent and trend_direction are now returned on cold requests — they were null before.
  • The endpoint also falls back when its cached snapshot is stale (older than 24h), not only when it is missing.

No changes to request parameters, quota cost or response shape.

2026-07-20 Исправление Multi-Checkpoint API: исправлено двойное списание квоты

Исправлена ошибка, из-за которой каждый вызов /multi тарифицировался дважды — сначала общей проверкой на 1 единицу, а затем собственной формулой переменной стоимости эндпоинта (N PPID × подпродукты). Теперь вызов стоит ровно ⌈(N×M)/2⌉ единиц, как и задокументировано, без дополнительного начисления.

Также на странице документации добавлен значок класса квоты (Standard/Heavy) для каждого продукта, чтобы сразу было видно, какую дневную квоту расходует эндпоинт.

2026-07-15 Новое Holiday Calendar: объединение country/countries, compare_to, несколько языков

country и countries объединены в один параметр (1-15 кодов через запятую). Новый параметр compare_to: сравнение одинаковых и разных праздников между странами, сочетается с upcoming+days. lang теперь принимает несколько языков (добавляет объект names). days=0 или отсутствие значения теперь означает без ограничения в режиме upcoming.

2026-07-15 Новое Новый продукт: Holiday Calendar API

Официальные государственные праздники для каждой европейской страны — даты, местные названия и тип. Работает на том же сервисе Nager.Date / OpenHolidaysAPI (с локально вычисляемым календарем Косово), что и страница календаря праздников nakordoni.eu и календарные факторы системы прогнозирования.

  • ?country=PL&year=2026 — полный годовой список праздников для одной страны
  • ?upcoming=1&days=30 — плоский список ближайших праздников по странам
  • Без параметров — индекс базового набора стран с ближайшим праздником для каждой
2026-07-13 Новое Новый продукт: Currency Exchange Rates API

Добавлен продукт currency — курсы обмена на основе EUR для PLN, CZK, HUF, USD, GBP, CHF, NOK и UAH, из источника Frankfurter (ECB), кешируются на 6 часов. Без параметров, всегда возвращает полную таблицу курсов. См. документацию.

2026-07-12 Новое Бесплатный встраиваемый виджет запретов для грузовиков

Встройте актуальные европейские запреты движения грузовиков на свой сайт — бесплатный iframe-виджет с 3 дизайнами (light, dark, board), 5 языками (en, uk, pl, de, ru), необязательным фильтром по странам и живым статусом «действует сейчас». Ключ API не нужен. Настройте и скопируйте код на nakordoni.eu/en/for_truck_drivers/traffic_bans/widget. Нужны сырые данные? Продукт API truck-bans и публичный JSON-фид остаются доступными.

2026-07-11 Новое API v2 (версионирование на уровне эндпоинтов), направленный border и интерактивный Sandbox

Три дополнения, все обратно совместимы — v1 без изменений.

Версионирование на уровне эндпоинтов. Теперь есть базовый URL /api/v2/. Оно действует на уровне эндпоинтов: иначе ведут себя только те эндпоинты, которые действительно изменились; каждый другой эндпоинт прозрачно отдаёт свой ответ v1 (так что /api/v2/data/queue = те же данные, что и v1, только с "api_version":"v2"). Мигрировать работающие эндпоинты не нужно.

border v2 является направленным. Порядок в пути задаёт направление движения:

GET /api/v2/data/border/1/2/6   → buses UA→PL (Ukrainian-side crossings)
GET /api/v2/data/border/2/1/6   → buses PL→UA (Polish-side crossings)

Каждый пункт пропуска также получает объект direction {from,to} и булево значение stale, а ?max_age_min=N возвращает только недавно обновлённые пункты. (v1 border по-прежнему возвращает обе стороны границы независимо от порядка — без изменений.)

Интерактивный Sandbox. Авторизованные разработчики теперь могут попробовать любой эндпоинт из браузера на Developers → Sandbox — выберите эндпоинт, версию и один из своих ключей, измените параметры и посмотрите живой ответ. Тестирование в Sandbox имеет собственный отдельный суточный лимит (50 calls/day) и никогда не затрагивает вашу рабочую квоту API.

Документация теперь разделена по эндпоинтам (Developers → API Docs) с переключателем версий на эндпоинтах, у которых больше одной версии.

2026-07-10 Улучшение queue-advanced: два новых корректирующих фактора

Два новых фактора добавлены в формулу времени ожидания, наряду с существующими корректировками section_mode и погодой:

  • service_rate — измеренное число авто/мин, обрабатываемых сейчас, по сравнению с настроенной базовой скоростью пункта пропуска. Мультипликативный, в пределах 0.5x-1.5x.
  • shift_change — влияние собственной локальной пересменки пограничников в 08:00/20:00 на пункте пропуска. Аддитивный (минуты), а не мультипликативный — применяется только в пределах +/-60 минут от пересменки, требует минимальной истории выборки, ограничен до +/-120 минут.

advanced_wait_min теперь равен round(base_wait × section_mode × weather × service_rate) + shift_change.adjustment_min. Оба фактора также отражаются в driver_reported.prognosed_advanced_wait_min для исторических сравнений.

2026-07-09 Несовместимое Несколько сугубо внутренних полей удалены из queue, border, multi, update-info

В рамках проверки безопасности/приватности удалены следующие поля — они раскрывали внутренние детали реализации (нашу таксономию источников данных, идентификаторы строк БД, внутренние аннотации конвейера, неиспользуемые/мёртвые поля) без реальной продуктовой ценности:

  • id и corrected — удалены из объектов строк queue
  • tmin/tpercar — удалены из queue, border и multi (константы формулы времени ожидания; уже вычисленные wait_min/wait_time не затрагиваются)
  • source (сырая строка, напр. "line") — удалено из queue, multi и update-info. update-info и multi (его блок update_info) по-прежнему содержат source_category/source_label_en (небольшой публичный словарь); queue и multi (его блок queue) больше не содержат никакого поля источника
  • traffic_status — удалено из border; оно всегда было null и никогда не заполнялось ни одной частью системы

Если ваша интеграция читает любое из этих полей, обновите её — см. текущий перечень полей на странице документации соответствующего продукта.

2026-07-09 Несовместимое usage.used теперь может быть дробным числом

Суточное использование квоты (usage.used в каждом ответе) теперь может быть десятичным значением (напр. 67.5) вместо всегда целого числа. Это побочный эффект того, что queue-advanced тарифицируется по дробной ставке — см. ниже. usage.limit не затрагивается и всегда является целым числом. Если ваш клиент строго типизирует usage.used как целое число, расширьте его до приёма десятичного/дробного значения.

2026-07-09 Новое wait_status и trend_percent/trend_direction добавлены в border, multi и queue-advanced

Эти три продукта теперь возвращают те же поля живого статуса, что показывает сайт: wait_status (green/yellow/red, на основе собственной недавней истории этого пункта пропуска) и trend_percent/trend_direction (up/up-slight/down/down-slight/stable, сравнение последних 3 часов). Чисто аддитивно.

2026-07-09 Улучшение queue: wait_time теперь заполняется в каждой исторической строке

В /api/v1/data/queue строки data[] ранее имели wait_time: null для большинства источников — лишь несколько внешних фидов сообщают время ожидания напрямую. Строки без него теперь получают стандартную оценку tmin + queue×tpercar, помеченную новым булевым значением wait_time_estimated, чтобы вы могли отличить реально сообщённое значение от вычисленного.

2026-07-09 Несовместимое queue-advanced: тарифицируется 1.5x, ответ сокращён

queue-advanced теперь стоит 1.5 единицы за вызов вместо 1 (отражая дополнительные запросы трафика/погоды/сообщений водителей, которые он выполняет) — см. usage.used выше. Ответ также больше не включает tmin, tpercar или total_crossing_time, а driver_reported теперь просто {wait_min, ts, age_min} — прежние поля сравнения прогноза с реальностью (prognosed_wait_min, diff_min, historical_section_mode, historical_weather и т. д.) удалены. section_mode, weather, advanced_wait_min и exceeds_crossing_time без изменений.

2026-07-09 Улучшение Truck Bans API: живой статус для каждой страны (active_window / next_window)

/api/v1/data/truck-bans теперь возвращает для каждой страны в bans_by_country значение status (active/clear) плюс active_window, next_window, local_time и tz — вычисленные в собственном часовом поясе этой страны, так что вам больше не нужно самостоятельно сверять сырые окна запретов с часами. Ответ также добавляет список covered_countries верхнего уровня и UTC-метку времени as_of.

GET /api/v1/data/truck-bans?country=PL

Чисто аддитивно — существующие поля current_bans/upcoming_bans/bans_by_country без изменений. Неизвестный ?country= теперь возвращает пустой результат с countries_not_covered вместо запретов всех стран.

2026-07-08 Новое Новый продукт: Advanced Wait Time API (queue-advanced)

Новый подключаемый продукт, который корректирует стандартное время ожидания с учётом живого потока трафика и погоды. Возвращает полную разбивку каждой корректировки.

GET /api/v1/data/queue-advanced?ppid=id_13

Предоставляется по запросу — откройте тикет Data в своей панели, чтобы включить его.

2026-07-08 Улучшение Border Queue API: wait_min теперь заполняется для каждого пункта пропуска

/api/v1/data/border теперь корректно вычисляет wait_min (и возвращает tmin/tpercar) для каждого пункта пропуска в ответе, как в продуктах queue и multi. Ранее это поле всегда было null.

2026-07-08 Улучшение Forecast API: более стабильная модель + работающий сигнал погоды

/api/v1/data/forecast теперь надёжно использует ансамблевую модель v4 для любого значения prediction_steps (ранее некоторые нестандартные горизонты могли тихо откатываться к более старой модели). Погодный фактор, питающий ансамбль, также исправлен и теперь действительно отражает живые условия (дождь, снег, ветер, туман) вместо того, чтобы всегда сообщать о недоступности.

2026-07-02 Новое Экспорт исторических данных (beta)

Одобренные разработчики теперь могут скачивать усреднённые за час исторические данные очередей на границе для до 5 пунктов пропуска (скользящее окно до 90 дней) в формате CSV или NDJSON из новой вкладки Data export. Данные только опубликованные и проверенные на качество; метки времени в UTC. Нужен доступ? Откройте тикет Data.

2026-07-01 Улучшение Регистрация без рабочей страницы — опишите свою идею

Ещё нет сайта? Теперь вы можете создать аккаунт разработчика, описав, где и как планируете использовать наши данные, вместо обязательного ввода URL рабочей страницы. Добавьте настоящий URL позже из своей панели (Account & data → Your project), как только ваш сайт или приложение заработает — видимая обратная ссылка на nakordoni.eu на этой странице требуется нашими Условиями.

2026-06-22 Новое Отправьте приграничные новости за dofollow-ссылку

Разработчики теперь могут отправлять собственные приграничные новости в новостную ленту Nakordoni. Если наши редакторы их опубликуют, вы получите индексируемую dofollow-ссылку на ваш сервис (упоминание издателя + строка источника), и мы бесплатно переведём статью на все 24 языка.

Одна статья в неделю бесплатно; дополнительные статьи — платное дополнение. Выберите 'мы можем немного отредактировать + добавить внутренние ссылки' или 'опубликовать как есть'. Отправляйте и отслеживайте статус проверки в разделе Developers → Submit news.

2026-06-14 Улучшение Multi-Checkpoint API: скидка 50% на квоту

Multi-Checkpoint API (/api/v1/data/multi) теперь списывает квоту по формуле ⌈(N PPIDs × sub-products) / 2⌉ — половина стоимости эквивалентных отдельных вызовов. Запрос на 10 пунктов пропуска с обоими суб-продуктами теперь стоит 10 единиц вместо 20. Заголовок X-Devapi-Units и meta.units_consumed в ответе отражают сниженную сумму.

2026-06-14 Новое Новый продукт: Multi-Checkpoint API (multi)

Получайте живой статус очередей и свежесть данных для до 20 пунктов пропуска одним вызовом API — разработано для создателей дашбордов, которые сейчас опрашивают много PPIDs в цикле.

Квота честно считается как N PPIDs × sub-products запрошенных, так что общее использование идентично отдельным вызовам — но с одним обращением вместо многих. Паттерны в стиле GreenTravel уменьшаются с 24+ вызовов/час до 2.

GET /api/v1/data/multi?ppids=id_2,id_13,id_15,id_59&include=queue,update-info&lang=en
  • include=queue — текущие queue_now, оценённый wait_min, возраст данных и название пункта пропуска
  • include=update-info — свежесть данных, классификация источника, возраст в секундах/минутах
  • Максимум 20 PPIDs на запрос; объедините оба суб-продукта в одном вызове для полных данных дашборда
  • Ответ содержит meta.units_consumed, чтобы вы могли точно отслеживать использование квоты
2026-06-12 Новое Queue API: блок snapshot с прогнозируемым временем ожидания

Ответ продукта queue теперь включает объект snapshot верхнего уровня с самыми свежими данными в реальном времени и вычисленным прогнозируемым временем ожидания — та же формула, что используется в hero-секции nakordoni.eu:

snapshot.queue_now  — current cars in queue
snapshot.wait_min   — tmin + queue_now × tpercar (minutes)
snapshot.tmin       — minimum crossing time (minutes)
snapshot.tpercar    — added time per vehicle (minutes)
snapshot.updated_at — when the queue data was recorded
snapshot.age_min    — minutes since last update
snapshot.source     — data source identifier

Массив data (исторические записи) без изменений — это чисто аддитивное дополнение. Клиенты, которые не читают snapshot, не затрагиваются.

2026-06-12 Новое Новый продукт: Border Queue API (border)

Запрашивайте все пункты пропуска на заданной границе + тип транспорта одним вызовом вместо того, чтобы делать отдельный запрос на каждый PPID.

GET /api/v1/data/border/{origin}/{destination}/{crossing_type}

  • Поддерживает одну страну назначения, список через запятую или all для разворачивания на всех отслеживаемых соседей сразу.
  • Результаты отсортированы по queue_now по возрастанию (сначала самая короткая очередь).
  • Полностью локализовано: добавьте ?lang=uk (или любой из наших 22 поддерживаемых языков), чтобы получить названия пунктов пропуска на этом языке.
2026-06-12 Новое Новый продукт: Checkpoint Search API (search)

Находите значения PPID пунктов пропуска по названию без просмотра всего каталога.

GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en

  • Принимает одно название или список через запятую (до 20).
  • Ищет по всем 24 языкам перевода — передайте название на украинском, польском, немецком или любом поддерживаемом языке, и оно совпадёт.
  • Возвращает все PPIDs в этой локации, сгруппированные по типу транспорта (легковой / автобус / пешеход / грузовик).
2026-06-12 Улучшение Alternatives API: полная поддержка i18n + переопределение crossing_type

Продукт alternatives теперь принимает ?lang= на всех 22 поддерживаемых языках (было лишь 12).

Новый параметр crossing_type позволяет переопределить фильтр типа транспорта — напр. передайте crossing_type=4, чтобы получить альтернативы для легковых даже при запросе с автобусного PPID.

2026-06-12 Улучшение Checkpoints + Border + Search: локализованные подписи типа пересечения и названия стран

Поле crossing_type_label в ответах checkpoints, border и search теперь переводится на запрошенный язык на всех 22 поддерживаемых языках. Поля названий стран (origin_name, destination_name) следуют той же локали.

2026-06-05 Новое Портал для разработчиков запущен

Портал Nakordoni Developer API работает по адресу /en/developers. Зарегистрируйте бесплатный ключ Explorer (200 requests/day), чтобы получить доступ к данным очередей на границе, прогнозам, ценам на топливо, POI для водителей и не только.

Продукты, доступные на старте: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant.

Журнал охватывает изменения публичного API. Внутренние обновления не отображаются.