API परिवर्तन लॉग
API में सभी महत्वपूर्ण परिवर्तन। नवीनतम पहले। v1 स्थिरता — नई संस्करण के बिना Breaking changes नहीं।
नया: https://nakordoni.eu/mcp पर एक वास्तविक MCP सर्वर, जो API के सुरक्षित, केवल-पढ़ने योग्य उपसमुच्चय (status, checkpoints, border queue, live queue, forecast) को MCP टूल्स के रूप में उपलब्ध कराता है। REST API जैसी ही API कुंजी और कोटा। सर्वर कार्ड /.well-known/mcp/server-card.json पर। दस्तावेज़ में MCP सर्वर अनुभाग देखें।
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.
एक बग ठीक किया गया जिसकी वजह से हर /multi कॉल दो बार बिल की जा रही थी — पहले एक सामान्य 1-यूनिट जांच से, और फिर एंडपॉइंट के अपने परिवर्तनशील लागत फॉर्मूले से (N PPID × उप-उत्पाद)। अब एक कॉल की कीमत दस्तावेज़ के अनुसार ठीक ⌈(N×M)/2⌉ यूनिट है, बिना किसी अतिरिक्त शुल्क के।
दस्तावेज़ीकरण पेज पर हर उत्पाद में एक कोटा-क्लास बैज (Standard/Heavy) भी जोड़ा गया है, ताकि एक नज़र में पता चल सके कि कोई एंडपॉइंट किस दैनिक कोटा से खर्च करता है।
country और countries को एक ही पैरामीटर में मिला दिया गया है (1-15 अल्पविराम से अलग किए गए कोड)। नया compare_to पैरामीटर: देशों के बीच समान बनाम भिन्न अवकाश तुलना, upcoming+days के साथ मिलकर काम करता है। lang अब कई भाषाएँ स्वीकार करता है (एक names ऑब्जेक्ट जोड़ता है)। days=0 या इसे छोड़ देने का अब upcoming मोड में कोई सीमा नहीं होना अर्थ है।
प्रत्येक यूरोपीय देश के आधिकारिक सार्वजनिक अवकाश — तिथियाँ, स्थानीय नाम और प्रकार। यह उसी Nager.Date / OpenHolidaysAPI सेवा (स्थानीय रूप से गणना किए गए कोसोवो कैलेंडर के साथ) द्वारा संचालित है जो nakordoni.eu अवकाश कैलेंडर पृष्ठ और भविष्यवाणी प्रणाली के कैलेंडर कारकों को शक्ति देती है।
?country=PL&year=2026— एक देश के लिए पूरे वर्ष की अवकाश सूची?upcoming=1&days=30— देशों भर में आगामी अवकाशों की सपाट सूची- कोई पैरामीटर नहीं — प्रत्येक अगले अवकाश के साथ एक मुख्य देश समूह की अनुक्रमणिका
currency उत्पाद जोड़ा गया — PLN, CZK, HUF, USD, GBP, CHF, NOK और UAH के लिए EUR-आधारित विनिमय दरें, जो Frankfurter (ECB) से प्राप्त होती हैं और 6 घंटे कैश की जाती हैं। कोई पैरामीटर नहीं, हमेशा पूरी दर तालिका लौटाता है। दस्तावेज़ देखें।
अपनी वेबसाइट पर लाइव यूरोपीय ट्रक ड्राइविंग प्रतिबंध एम्बेड करें — 3 डिज़ाइन (light, dark, board), 5 भाषाएँ (en, uk, pl, de, ru), एक वैकल्पिक प्रति-देश फ़िल्टर और लाइव «अभी सक्रिय» स्थिति वाला एक मुफ्त iframe विजेट। किसी API कुंजी की आवश्यकता नहीं। कोड को nakordoni.eu/en/for_truck_drivers/traffic_bans/widget पर कॉन्फ़िगर करें और कॉपी करें। कच्चा डेटा पसंद है? truck-bans API उत्पाद और सार्वजनिक JSON फ़ीड उपलब्ध रहते हैं।
border, और एक इंटरैक्टिव Sandbox
तीन नई सुविधाएँ, सभी पश्चगामी-संगत — v1 अपरिवर्तित है।
प्रति-endpoint संस्करण। अब एक /api/v2/ बेस URL है। यह प्रति-endpoint है: केवल वे endpoint जो वास्तव में बदले हैं v2 के तहत अलग व्यवहार करते हैं; हर दूसरा endpoint पारदर्शी रूप से अपना v1 प्रतिसाद देता है (यानी /api/v2/data/queue = v1 जैसा ही डेटा, बस "api_version":"v2" के साथ)। जो endpoint काम कर रहे हैं उन्हें माइग्रेट करने की आवश्यकता नहीं।
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 boolean भी मिलता है, और ?max_age_min=N केवल हाल ही में अपडेट किए गए क्रॉसिंग लौटाता है। (v1 border क्रम की परवाह किए बिना अब भी सीमा के दोनों ओर लौटाता है — अपरिवर्तित।)
इंटरैक्टिव Sandbox। साइन-इन किए हुए डेवलपर अब किसी भी endpoint को ब्राउज़र से Developers → Sandbox पर आज़मा सकते हैं — एक endpoint, संस्करण और अपनी किसी एक कुंजी को चुनें, पैरामीटर बदलें और लाइव प्रतिसाद देखें। Sandbox परीक्षण का अपना अलग दैनिक बजट है (50 कॉल/दिन) और यह कभी आपके लाइव API कोटा को नहीं छूता।
दस्तावेज़ अब प्रति-endpoint विभाजित हैं (Developers → API Docs) और एक से अधिक संस्करण वाले endpoint पर एक संस्करण चयनकर्ता है।
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 में भी परिलक्षित होते हैं।
queue, border, multi, update-info से कई केवल-आंतरिक फ़ील्ड हटाए गए
एक सुरक्षा/गोपनीयता समीक्षा के हिस्से के रूप में, निम्नलिखित फ़ील्ड हटा दिए गए — ये बिना किसी वास्तविक उत्पाद मूल्य के आंतरिक कार्यान्वयन विवरण (हमारी अपस्ट्रीम डेटा-स्रोत वर्गीकरण, DB पंक्ति ID, आंतरिक pipeline एनोटेशन, अप्रयुक्त/मृत फ़ील्ड) उजागर करते थे:
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ब्लॉक अब कोई source फ़ील्ड नहीं रखताtraffic_status—borderसे हटाया गया; यह हमेशाnullथा और सिस्टम के किसी भी भाग द्वारा कभी नहीं भरा गया
यदि आपका इंटीग्रेशन इनमें से कोई भी फ़ील्ड पढ़ता है, तो कृपया उसे अपडेट करें — वर्तमान फ़ील्ड सूची संबंधित उत्पाद के दस्तावेज़ पृष्ठ पर देखें।
usage.used अब एक भिन्नात्मक संख्या हो सकती है
दैनिक कोटा उपयोग (हर प्रतिसाद में usage.used) अब हमेशा पूर्ण पूर्णांक के बजाय एक दशमलव मान (जैसे 67.5) हो सकता है। यह queue-advanced के भिन्नात्मक दर पर बिल किए जाने का एक दुष्प्रभाव है — नीचे देखें। usage.limit प्रभावित नहीं है और हमेशा एक पूर्ण संख्या है। यदि आपका क्लाइंट usage.used को सख्ती से पूर्णांक के रूप में टाइप करता है, तो कृपया इसे एक दशमलव/float स्वीकार करने के लिए विस्तृत करें।
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 घंटों की तुलना करते हुए)। पूर्णतः योगात्मक।
queue: wait_time अब हर ऐतिहासिक पंक्ति पर भरा जाता है
/api/v1/data/queue की data[] पंक्तियों में पहले अधिकांश स्रोतों के लिए wait_time: null था — केवल कुछ अपस्ट्रीम फ़ीड सीधे प्रतीक्षा समय की रिपोर्ट करते हैं। बिना प्रतीक्षा समय वाली पंक्तियों को अब मानक tmin + queue×tpercar अनुमान मिलता है, जिसे एक नए wait_time_estimated boolean के साथ चिह्नित किया जाता है ताकि आप एक वास्तविक रिपोर्ट किए गए आँकड़े को गणना किए गए से अलग बता सकें।
queue-advanced: 1.5x पर बिल किया गया, प्रतिसाद छाँटा गया
queue-advanced की लागत अब प्रति कॉल 1 के बजाय 1.5 यूनिट है (यह जो अतिरिक्त ट्रैफ़िक/मौसम/ड्राइवर-रिपोर्ट लुकअप करता है उसे दर्शाते हुए) — ऊपर 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 अपरिवर्तित हैं।
active_window / next_window)
/api/v1/data/truck-bans अब bans_by_country में प्रत्येक देश के लिए एक status (active/clear) के साथ-साथ active_window, next_window, local_time और tz लौटाता है — जो उस देश के अपने समय क्षेत्र में गणना किया जाता है, इसलिए अब आपको कच्ची प्रतिबंध विंडो को घड़ी के विरुद्ध स्वयं मूल्यांकन नहीं करना पड़ता। प्रतिसाद एक शीर्ष-स्तरीय covered_countries सूची और एक as_of UTC टाइमस्टैम्प भी जोड़ता है।
GET /api/v1/data/truck-bans?country=PL
पूर्णतः योगात्मक — मौजूदा current_bans/upcoming_bans/bans_by_country फ़ील्ड अपरिवर्तित हैं। एक अज्ञात ?country= अब हर देश के प्रतिबंधों के बजाय countries_not_covered के साथ एक खाली परिणाम लौटाता है।
queue-advanced)
एक नया वैकल्पिक उत्पाद जो मानक प्रतीक्षा समय को लाइव ट्रैफ़िक प्रवाह और मौसम के अनुसार समायोजित करता है। प्रत्येक समायोजन का पूरा विवरण लौटाता है।
GET /api/v1/data/queue-advanced?ppid=id_13
अनुरोध पर प्रदान किया जाता है — इसे सक्षम करने के लिए अपने डैशबोर्ड से एक Data टिकट खोलें।
/api/v1/data/border अब queue और multi उत्पादों से मेल खाते हुए प्रतिसाद में प्रत्येक चेकपॉइंट के लिए wait_min की सही गणना करता है (और tmin/tpercar लौटाता है)। पहले यह फ़ील्ड हमेशा null था।
/api/v1/data/forecast अब किसी भी prediction_steps मान के लिए विश्वसनीय रूप से v4 ensemble मॉडल का उपयोग करता है (पहले कुछ गैर-मानक क्षितिज चुपचाप एक पुराने मॉडल पर वापस आ सकते थे)। ensemble को फ़ीड करने वाला मौसम कारक भी ठीक कर दिया गया है और अब हमेशा अनुपलब्ध रिपोर्ट करने के बजाय वास्तव में लाइव स्थितियों (बारिश, बर्फ, हवा, कोहरा) को दर्शाता है।
अनुमोदित डेवलपर अब नए Data export टैब से 5 चेकपॉइंट तक के लिए प्रति घंटा-औसत ऐतिहासिक सीमा-कतार डेटा (90 दिनों तक की रोलिंग विंडो) को CSV या NDJSON के रूप में डाउनलोड कर सकते हैं। डेटा केवल-प्रकाशित और गुणवत्ता-जाँचा हुआ है; टाइमस्टैम्प UTC हैं। पहुँच चाहिए? एक Data टिकट खोलें।
अभी तक कोई वेबसाइट नहीं? अब आप एक लाइव पेज URL दर्ज करने के लिए बाध्य होने के बजाय, यह बताकर एक डेवलपर खाता बना सकते हैं कि आप हमारे डेटा का उपयोग कहाँ और कैसे करने की योजना बना रहे हैं। जैसे ही आपकी साइट या ऐप लाइव हो, असली URL को बाद में अपने डैशबोर्ड से (Account & data → Your project) जोड़ें — उस पेज पर nakordoni.eu की ओर एक दृश्यमान लिंक हमारी शर्तों द्वारा आवश्यक है।
डेवलपर अब अपनी सीमा-संबंधी खबरें Nakordoni समाचार लाइन में सबमिट कर सकते हैं। यदि हमारे संपादक इसे प्रकाशित करते हैं, तो आपको अपनी सेवा के लिए एक अनुक्रमणीय dofollow बैकलिंक (प्रकाशक बाईलाइन + स्रोत लाइन) मिलती है और हम लेख का सभी 24 भाषाओं में मुफ्त अनुवाद करते हैं।
प्रति सप्ताह एक लेख मुफ्त है; अतिरिक्त लेख एक सशुल्क ऐड-ऑन हैं। 'हम हल्का संपादन कर सकते हैं + आंतरिक लिंक जोड़ सकते हैं' या 'जैसा है वैसा प्रकाशित करें' चुनें। Developers → Submit news के अंतर्गत सबमिट करें और समीक्षा स्थिति को ट्रैक करें।
Multi-Checkpoint API (/api/v1/data/multi) अब कोटा को ⌈(N PPID × उप-उत्पाद) / 2⌉ पर बिल करता है — समकक्ष व्यक्तिगत कॉलों की आधी लागत। दोनों उप-उत्पादों के साथ 10 चेकपॉइंट के लिए एक अनुरोध की लागत अब 20 के बजाय 10 यूनिट है। प्रतिसाद में X-Devapi-Units हेडर और meta.units_consumed छूट वाली राशि को दर्शाते हैं।
multi)
एक ही API कॉल में 20 चेकपॉइंट तक के लिए लाइव कतार स्थिति और डेटा ताज़गी प्राप्त करें — उन डैशबोर्ड निर्माताओं के लिए डिज़ाइन किया गया जो वर्तमान में एक लूप में कई PPID को पोल करते हैं।
कोटा निष्पक्ष रूप से अनुरोधित N PPID × उप-उत्पाद के रूप में गिना जाता है, इसलिए कुल उपयोग व्यक्तिगत कॉलों के समान है — लेकिन कई के बजाय एक राउंड-ट्रिप के साथ। 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 PPID; पूर्ण डैशबोर्ड डेटा के लिए दोनों उप-उत्पादों को एक ही कॉल में मिलाएँ
- प्रतिसाद में
meta.units_consumedशामिल है ताकि आप कोटा उपयोग को सटीक रूप से ट्रैक कर सकें
queue उत्पाद का प्रतिसाद अब नवीनतम रीयल-टाइम डेटा और एक गणना किए गए पूर्वानुमानित प्रतीक्षा समय के साथ एक शीर्ष-स्तरीय snapshot ऑब्जेक्ट शामिल करता है — वही सूत्र जो 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 नहीं पढ़ते वे प्रभावित नहीं होते।
border)
प्रत्येक PPID के लिए एक अनुरोध करने के बजाय किसी दिए गए सीमा + वाहन प्रकार पर सभी चेकपॉइंट को एक ही कॉल में क्वेरी करें।
GET /api/v1/data/border/{origin}/{destination}/{crossing_type}
- एक ही गंतव्य देश, अल्पविराम से अलग की गई सूची, या एक बार में हर निगरानी किए गए पड़ोसी तक विस्तार करने के लिए
allका समर्थन करता है। - परिणाम
queue_nowके आरोही क्रम में क्रमबद्ध (सबसे छोटी कतार पहले)। - पूर्णतः स्थानीयकृत: उस भाषा में चेकपॉइंट नाम पाने के लिए
?lang=uk(या हमारी 22 समर्थित भाषाओं में से कोई भी) जोड़ें।
search)
पूरी डायरेक्टरी ब्राउज़ किए बिना नाम से चेकपॉइंट PPID मान खोजें।
GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en
- एक नाम या अल्पविराम से अलग की गई सूची (20 तक) स्वीकार करता है।
- सभी 24 अनुवाद भाषाओं में खोजता है — यूक्रेनी, पोलिश, जर्मन या किसी भी समर्थित भाषा में नाम दें और यह मिलान करेगा।
- उस स्थान के सभी PPID को वाहन प्रकार के अनुसार समूहीकृत करके लौटाता है (कार / बस / पैदल यात्री / ट्रक)।
crossing_type ओवरराइड
alternatives उत्पाद अब सभी 22 समर्थित भाषाओं में ?lang= स्वीकार करता है (पहले केवल 12 था)।
नया crossing_type पैरामीटर आपको वाहन प्रकार फ़िल्टर को ओवरराइड करने देता है — जैसे, बस PPID से क्वेरी करते समय भी कार विकल्प पाने के लिए crossing_type=4 दें।
checkpoints, border, और search प्रतिसादों में crossing_type_label फ़ील्ड अब सभी 22 समर्थित भाषाओं में अनुरोधित भाषा में अनुवादित होता है। देश नाम फ़ील्ड (origin_name, destination_name) उसी लोकेल का अनुसरण करते हैं।
Nakordoni Developer API पोर्टल /en/developers पर लाइव है। सीमा कतार डेटा, पूर्वानुमान, ईंधन कीमतों, ड्राइवर POI और अधिक तक पहुँचने के लिए एक मुफ्त Explorer कुंजी (200 अनुरोध/दिन) के लिए साइन अप करें।
लॉन्च पर उपलब्ध उत्पाद: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant।
यह लॉग सार्वजनिक API परिवर्तनों को कवर करता है। आंतरिक अपडेट सूचीबद्ध नहीं हैं।