API dəyişiklik jurnalı
API-dəki bütün mühüm dəyişikliklər. Ən yenilər əvvəl. v1 sabitliyi — yeni versiya olmadan Breaking changes yoxdur.
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.
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.
Yenilik: https://nakordoni.eu/mcp ünvanında əsl MCP server, API-nin təhlükəsiz, yalnız oxumaq üçün olan alt dəstini (status, checkpoints, border queue, live queue, forecast) MCP alətləri kimi təqdim edir. REST API ilə eyni API açarı və kvota. Server kartı /.well-known/mcp/server-card.json ünvanında. Sənədlərdə MCP server bölməsinə baxın.
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.
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.
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.
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: falsenow means there is genuinely no recent queue data. Previously you could receivefound: truewith a fabricatedqueue_now: 0.wait_status,trend_percentandtrend_directionare now returned on cold requests — they werenullbefore.- 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.
Hər /multi çağırışının iki dəfə hesablanmasına səbəb olan xəta düzəldildi — əvvəlcə ümumi 1 vahidlik yoxlama, sonra isə endpointin öz dəyişkən dəyər düsturu ilə (N PPID × alt-məhsullar). İndi çağırış sənədləşdirildiyi kimi məhz ⌈(N×M)/2⌉ vahidə başa gəlir, əlavə ödəniş olmadan.
Həmçinin sənədləşmə səhifəsində hər məhsul üçün kvota sinfi nişanı (Standard/Heavy) əlavə edildi, beləliklə bir baxışda hansı gündəlik kvotadan istifadə edildiyi aydın olur.
country və countries bir parametrə birləşdirildi (1-15 vergüllə ayrılmış kod). Yeni compare_to parametri: ölkələr arasında eyni/fərqli bayram müqayisəsi, upcoming+days ilə birlikdə işləyir. lang artıq bir neçə dili qəbul edir (bir names obyekti əlavə edir). days=0 və ya buraxılması indi upcoming rejimində limit yoxdur deməkdir.
Hər Avropa ölkəsi üzrə rəsmi dövlət bayramları — tarixlər, yerli adlar və növ. nakordoni.eu bayram təqvimi səhifəsini və proqnoz sisteminin təqvim amillərini işə salan eyni Nager.Date / OpenHolidaysAPI xidməti (yerli hesablanmış Kosovo təqvimi ilə) ilə təmin olunur.
?country=PL&year=2026— bir ölkə üçün tam illik bayram siyahısı?upcoming=1&days=30— ölkələr üzrə qarşıdan gələn bayramların düz siyahısı- Parametrsiz — hər növbəti bayramla əsas ölkə dəstinin indeksi
currency məhsulu əlavə edildi — Frankfurter (ECB) mənbəyindən götürülən və 6 saat keşlənən PLN, CZK, HUF, USD, GBP, CHF, NOK və UAH üçün EUR-əsaslı məzənnələr. Parametrsiz, həmişə tam məzənnə cədvəlini qaytarır. sənədlərə baxın.
Öz veb saytınızda canlı Avropa yük maşını hərəkət qadağalarını yerləşdirin — 3 dizayn (light, dark, board), 5 dil (en, uk, pl, de, ru), opsional ölkə üzrə filtr və canlı «indi aktiv» statusu olan pulsuz iframe vidceti. API açarı tələb olunmur. Kodu nakordoni.eu/en/for_truck_drivers/traffic_bans/widget ünvanında konfiqurasiya edin və kopyalayın. Xam məlumatı üstün tutursunuz? truck-bans API məhsulu və ictimai JSON lenti mövcud olaraq qalır.
border və interaktiv Sandbox
Üç əlavə, hamısı geriyə uyğun — v1 dəyişməz qalır.
Endpoint üzrə versiyalaşdırma. İndi /api/v2/ əsas URL-i var. O, endpoint üzrədir: yalnız həqiqətən dəyişmiş endpointlər v2 altında fərqli davranır; hər digər endpoint şəffaf şəkildə öz v1 cavabını verir (belə ki, /api/v2/data/queue = v1 ilə eyni məlumat, sadəcə "api_version":"v2" ilə). İşləyən endpointləri köçürməyə ehtiyac yoxdur.
border v2 istiqamətlidir. Yol sırası səyahət istiqamətidir:
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)
Hər keçid məntəqəsi həmçinin bir direction {from,to} obyekti və stale boolean dəyəri qazanır və ?max_age_min=N yalnız son vaxtlar yenilənmiş keçidləri qaytarır. (v1 border sıradan asılı olmayaraq hələ də sərhədin hər iki tərəfini qaytarır — dəyişməz.)
İnteraktiv Sandbox. Daxil olmuş developerlər indi brauzerdən istənilən endpointi Developers → Sandbox ünvanında sınaya bilər — bir endpoint, versiya və açarlarınızdan birini seçin, parametrləri tənzimləyin və canlı cavabı görün. Sandbox testinin öz ayrıca gündəlik büdcəsi var (gündə 50 çağırış) və heç vaxt canlı API kvotanıza toxunmur.
Sənədlər indi endpoint üzrə bölünüb (Developers → API Docs) və birdən çox versiyası olan endpointlərdə versiya seçicisi var.
queue-advanced: iki yeni tənzimləmə amili
Mövcud section_mode və hava tənzimləmələri ilə yanaşı gözləmə vaxtı formuluna iki yeni amil əlavə edildi:
service_rate— hazırda emal edilən ölçülmüş maşın/dəq göstəricisinin keçid məntəqəsinin konfiqurasiya edilmiş baza sürəti ilə nisbəti. Multiplikativ, 0.5x-1.5x ilə məhdudlaşdırılıb.shift_change— keçid məntəqəsinin öz yerli 08:00/20:00 sərhədçi növbə dəyişikliyinin təsiri. Additiv (dəqiqə), multiplikativ deyil — yalnız növbədən +/-60 dəqiqə ərzində tətbiq olunur, minimum nümunə tarixçəsi tələb edir, +/-120 dəqiqə ilə məhdudlaşdırılıb.
advanced_wait_min indi round(base_wait × section_mode × weather × service_rate) + shift_change.adjustment_min-dir. Hər iki amil həmçinin tarixi müqayisələr üçün driver_reported.prognosed_advanced_wait_min-də əks olunur.
queue, border, multi, update-info-dan bir neçə yalnız daxili sahə silindi
Təhlükəsizlik/məxfilik yoxlamasının bir hissəsi olaraq aşağıdakı sahələr silindi — onlar heç bir real məhsul dəyəri olmadan daxili tətbiq detallarını (yuxarı axın məlumat mənbəyi taksonomiyamız, DB sətir ID-ləri, daxili pipeline qeydləri, istifadə olunmayan/ölü sahələr) açıqlayırdı:
idvəcorrected—queuesətir obyektlərindən silinditmin/tpercar—queue,bordervəmulti-dən silindi (gözləmə vaxtı formulu sabitləri; artıq hesablanmışwait_min/wait_timetəsirlənməyib)source(xam sətir, məs."line") —queue,multivəupdate-info-dan silindi.update-infovəmulti-ninupdate_infobloku hələ dəsource_category/source_label_endaşıyır (kiçik ictimai lüğət);queuevəmulti-ninqueuebloku artıq heç bir source sahəsi daşımırtraffic_status—border-dən silindi; o həmişənullidi və sistemin heç bir hissəsi tərəfindən doldurulmurdu
İnteqrasiyanız bu sahələrdən hər hansını oxuyursa, zəhmət olmasa yeniləyin — cari sahə siyahısını müvafiq məhsulun sənəd səhifəsində görün.
usage.used indi kəsr ədəd ola bilər
Gündəlik kvota istifadəsi (hər cavabda usage.used) indi həmişə tam ədəd əvəzinə onluq dəyər (məs. 67.5) ola bilər. Bu, queue-advanced-in kəsr tariflə hesablanmasının yan təsiridir — aşağıya baxın. usage.limit təsirlənmir və həmişə tam ədəddir. Müştəriniz usage.used-i ciddi şəkildə tam ədəd kimi tiplənirsə, zəhmət olmasa onu onluq/float qəbul edəcək şəkildə genişləndirin.
wait_status və trend_percent/trend_direction border, multi və queue-advanced-ə əlavə edildi
Bu üç məhsul indi veb saytın göstərdiyi eyni canlı status sahələrini qaytarır: wait_status (green/yellow/red, bu keçid məntəqəsinin öz son tarixçəsinə əsaslanır) və trend_percent/trend_direction (up/up-slight/down/down-slight/stable, son 3 saatı müqayisə edir). Tamamilə additiv.
queue: wait_time indi hər tarixi sətirdə doldurulur
/api/v1/data/queue-nin data[] sətirlərində əvvəllər əksər mənbələr üçün wait_time: null var idi — yalnız bir neçə yuxarı axın lenti gözləmə vaxtını birbaşa bildirir. Onsuz olan sətirlər indi standart tmin + queue×tpercar təxminini alır, yeni wait_time_estimated boolean ilə işarələnir ki, real bildirilmiş rəqəmi hesablanmışdan ayıra biləsiniz.
queue-advanced: 1.5x hesablanır, cavab qısaldıldı
queue-advanced indi hər çağırış üçün 1 əvəzinə 1.5 vahid təşkil edir (etdiyi əlavə trafik/hava/sürücü-hesabatı sorğularını əks etdirir) — yuxarıda usage.used-ə baxın. Cavab həmçinin artıq tmin, tpercar və ya total_crossing_time daxil etmir və driver_reported indi sadəcə {wait_min, ts, age_min}-dir — əvvəlki proqnoz-reallıq müqayisə sahələri (prognosed_wait_min, diff_min, historical_section_mode, historical_weather və s.) silindi. section_mode, weather, advanced_wait_min və exceeds_crossing_time dəyişməzdir.
active_window / next_window)
/api/v1/data/truck-bans indi bans_by_country-dəki hər ölkə üçün bir status (active/clear) və əlavə olaraq active_window, next_window, local_time və tz qaytarır — o ölkənin öz saat qurşağında hesablanır, beləliklə artıq xam qadağa pəncərələrini özünüz saata görə qiymətləndirməli deyilsiniz. Cavab həmçinin yuxarı səviyyəli covered_countries siyahısı və bir as_of UTC vaxt möhürü əlavə edir.
GET /api/v1/data/truck-bans?country=PL
Tamamilə additiv — mövcud current_bans/upcoming_bans/bans_by_country sahələri dəyişməzdir. Naməlum ?country= indi hər ölkənin qadağaları əvəzinə countries_not_covered ilə boş nəticə qaytarır.
queue-advanced)
Standart gözləmə vaxtını canlı trafik axını və hava üçün tənzimləyən yeni könüllü məhsul. Hər tənzimləmənin tam təfərrüatını qaytarır.
GET /api/v1/data/queue-advanced?ppid=id_13
Sorğu ilə verilir — onu aktivləşdirmək üçün idarə panelinizdən Data bileti açın.
/api/v1/data/border indi queue və multi məhsullarına uyğun olaraq cavabdakı hər keçid məntəqəsi üçün wait_min-i düzgün hesablayır (və tmin/tpercar qaytarır). Əvvəllər bu sahə həmişə null idi.
/api/v1/data/forecast indi istənilən prediction_steps dəyəri üçün etibarlı şəkildə v4 ansambl modelindən istifadə edir (əvvəllər bəzi qeyri-standart üfüqlər səssizcə köhnə modelə keçə bilərdi). Ansamblı qidalandıran hava amili də düzəldildi və indi həmişə əlçatmaz bildirmək əvəzinə həqiqətən canlı şəraiti (yağış, qar, külək, duman) əks etdirir.
Təsdiqlənmiş developerlər indi yeni Data export tabından 5-ə qədər keçid məntəqəsi üçün saatlıq ortalanmış tarixi sərhəd növbəsi məlumatını (90 günə qədər sürüşən pəncərə) CSV və ya NDJSON kimi yükləyə bilər. Məlumat yalnız dərc olunmuş və keyfiyyət yoxlamasından keçmişdir; vaxt möhürləri UTC-dir. Giriş lazımdır? Data bileti açın.
Hələ veb saytınız yoxdur? İndi canlı səhifə URL-i daxil etməyə məcbur edilmək əvəzinə, məlumatlarımızı harada və necə istifadə etməyi planlaşdırdığınızı təsvir edərək developer hesabı yarada bilərsiniz. Saytınız və ya tətbiqiniz canlı olan kimi real URL-i sonra idarə panelinizdən (Account & data → Your project) əlavə edin — həmin səhifədə nakordoni.eu-ya görünən keçid Şərtlərimizlə tələb olunur.
Developerlər indi Nakordoni xəbər lentinə öz sərhədlə bağlı xəbərlərini təqdim edə bilər. Redaktorlarımız onu dərc edərsə, xidmətinizə indekslənə bilən dofollow backlink (naşir imzası + mənbə sətri) alırsınız və biz məqaləni pulsuz olaraq bütün 24 dilə tərcümə edirik.
Həftədə bir məqalə pulsuzdur; əlavə məqalələr ödənişli əlavədir. 'yüngülcə redaktə edə + daxili keçidlər əlavə edə bilərik' və ya 'olduğu kimi dərc et' seçin. Developers → Submit news altında təqdim edin və baxış statusunu izləyin.
Multi-Checkpoint API (/api/v1/data/multi) indi kvotanı ⌈(N PPID × alt-məhsul) / 2⌉ ilə hesablayır — ekvivalent fərdi çağırışların yarısı qədər. Hər iki alt-məhsulla 10 keçid məntəqəsi üçün sorğu indi 20 əvəzinə 10 vahid təşkil edir. Cavabdakı X-Devapi-Units başlığı və meta.units_consumed endirimli məbləği əks etdirir.
multi)
Tək API çağırışında 20-yə qədər keçid məntəqəsi üçün canlı növbə statusunu və məlumat təzəliyini əldə edin — hazırda dövrədə çoxlu PPID sorğulayan idarə paneli qurucuları üçün nəzərdə tutulub.
Kvota ədalətli şəkildə tələb olunan N PPID × alt-məhsul kimi sayılır, beləliklə ümumi istifadə fərdi çağırışlarla eynidir — lakin çox əvəzinə bir gediş-gəliş ilə. GreenTravel tipli nümunələr saatda 24+ çağırışdan 2-yə düşür.
GET /api/v1/data/multi?ppids=id_2,id_13,id_15,id_59&include=queue,update-info&lang=en
include=queue— cari queue_now, təxmini wait_min, məlumat yaşı və keçid məntəqəsi adıinclude=update-info— məlumat təzəliyi, mənbə təsnifatı, saniyə/dəqiqə ilə yaş- Hər sorğu üçün maksimum 20 PPID; tam idarə paneli məlumatı üçün hər iki alt-məhsulu tək çağırışda birləşdirin
- Cavab
meta.units_consumeddaxil edir ki, kvota istifadəsini dəqiq izləyə biləsiniz
queue məhsulunun cavabı indi ən son real vaxt məlumatı və hesablanmış proqnozlaşdırılmış gözləmə vaxtı olan yuxarı səviyyəli snapshot obyektini daxil edir — nakordoni.eu hero bölməsində istifadə olunan eyni formul:
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 massivi (tarixi qeydlər) dəyişməzdir — bu tamamilə additiv əlavədir. snapshot-u oxumayan müştərilər təsirlənmir.
border)
Hər PPID üçün bir sorğu etmək əvəzinə verilmiş sərhəd + nəqliyyat növü üzrə bütün keçid məntəqələrini tək çağırışda sorğulayın.
GET /api/v1/data/border/{origin}/{destination}/{crossing_type}
- Tək təyinat ölkəsini, vergüllə ayrılmış siyahını və ya birdən hər izlənən qonşuya genişləndirmək üçün
all-u dəstəkləyir. - Nəticələr
queue_nowüzrə artan sırada çeşidlənir (əvvəlcə ən qısa növbə). - Tam lokallaşdırılıb: həmin dildə keçid məntəqəsi adlarını almaq üçün
?lang=uk(və ya dəstəklənən 22 dilimizdən hər hansı birini) əlavə edin.
search)
Tam kataloqu nəzərdən keçirmədən keçid məntəqəsi PPID dəyərlərini ada görə kəşf edin.
GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en
- Tək ad və ya vergüllə ayrılmış siyahını (20-yə qədər) qəbul edir.
- Bütün 24 tərcümə dili üzrə axtarır — Ukrayna, Polyak, Alman və ya istənilən dəstəklənən dildə ad ötürün və o uyğunlaşacaq.
- Həmin məkandakı bütün PPID-ləri nəqliyyat növünə görə qruplaşdırılmış qaytarır (avtomobil / avtobus / piyada / yük maşını).
crossing_type əvəzləməsi
alternatives məhsulu indi dəstəklənən bütün 22 dildə ?lang= qəbul edir (əvvəllər yalnız 12 idi).
Yeni crossing_type parametri nəqliyyat növü filtrini əvəz etməyə imkan verir — məs. avtobus PPID-dən sorğulasanız belə avtomobil alternativlərini almaq üçün crossing_type=4 ötürün.
checkpoints, border və search cavablarındakı crossing_type_label sahəsi indi dəstəklənən bütün 22 dildə tələb olunan dilə tərcümə olunur. Ölkə adı sahələri (origin_name, destination_name) eyni lokala uyğun gəlir.
Nakordoni Developer API portalı /en/developers ünvanında canlıdır. Sərhəd növbəsi məlumatına, proqnozlara, yanacaq qiymətlərinə, sürücü POI-lərinə və daha çoxuna daxil olmaq üçün pulsuz Explorer açarına (gündə 200 sorğu) qeydiyyatdan keçin.
Başlanğıcda mövcud məhsullar: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant.
Bu jurnal ictimai API dəyişikliklərini əhatə edir. Daxili yeniləmələr siyahıda yoxdur.