API परिवर्तन लॉग
API में सभी महत्वपूर्ण परिवर्तन। नवीनतम पहले। v1 स्थिरता — नई संस्करण के बिना Breaking changes नहीं।
On Fuel Prices, updated_at and the response's own age_hours/stale flag were running on different clocks: updated_at moves only when a price actually changes, but staleness was computed as if it moved on every confirmation. 46.7% of the priced index showed age_hours ≤48 and stale:false while updated_at was in fact more than 48 hours old, 12,620 stations over a week old. Each price now also carries confirmed_at — the last time we confirmed the price, hour-floored, never earlier than updated_at — and age_hours/stale are computed from it. updated_at's meaning is unchanged: use it when you want to know when the price last moved, use confirmed_at when you want to know how current it is right now. Not present on the frozen v1 contract.
Two language bugs, both silent: sending the canonical grade code as lang=pl (or any of the other 24 site languages) got fuel_type_local back in English regardless — only 10 languages were ever checked against the label table, so anything outside that list fell through to the default UI vocabulary rather than the language you asked for. Separately, lang=tr (or several other valid codes) answered station listings in Ukrainian, because an internal default of uk fired whenever the requested language did not sit in that same 10-language list. Both are fixed: the language you send is now the language you get, across all 25.
Also: brand on Nearby Fuel Stations no longer returns the raw ingest sentinel OTHER for the ~330 stations where we do not know the brand — it is null, consistent with every other unknown field in the response.
Border AI Assistant (/api/v1/data/assistant) तब 503 internal_error — “Assistant temporarily unavailable” — लौटाता था, जब एक ही कुंजी पाँच मिनट के भीतर वही प्रश्न दो बार पूछती थी। वास्तव में कुछ भी अनुपलब्ध नहीं था: ऐसे अधिकांश मामलों में उत्तर पहले ही गणना कर लिया गया था और लौटाने के लिए तैयार था। अब वह सामान्य रूप से ok: true और HTTP 200 के साथ लौटाया जाता है।
यदि दोहराया गया अनुरोध तब आता है जब पहला उत्तर अभी लिखा ही जा रहा हो, तो कॉल अब 503 के बजाय 429 लौटाती है और error.code में duplicate_request देती है, ताकि रीट्राई नीति “थोड़ी देर बाद फिर पूछें” को वास्तविक आउटेज से अलग पहचान सके। दोनों ही स्थितियाँ आपके खाते की त्रुटि दर में सर्वर त्रुटि के रूप में गिनी जाती थीं; अब नहीं गिनी जातीं। अनुरोध में कुछ नहीं बदलता — न कोई पैरामीटर, न कोई संस्करण। duplicate_request को संदर्भ दस्तावेज़ में अन्य त्रुटि कोड के साथ सूचीबद्ध किया गया है।
Truck Parking (/api/v2/data/truck-parkings) ऐसी प्रविष्टियाँ लौटाता था जिनमें name का मान null और address खाली था — Bensheim के पास 50 में से 20। ये वे स्थान हैं जिन्हें हम केवल एक निर्देशांक के रूप में रखते हैं: न दिखाने को कुछ, न आपके अपने POI सेट से मिलान करने को कुछ। वे अब इस उत्पाद का हिस्सा नहीं हैं: अब केवल नाम वाले स्थान लौटाए जाते हैं, फ़िलहाल पूरे यूरोप में 22,000 से अधिक। यदि आप स्वयं बिना नाम वाली प्रविष्टियाँ छाँट रहे थे, तो वह कोड अब अनावश्यक है, पर हानिरहित। समान radius और limit पर उत्तर छोटे हो जाते हैं, और लौटने वाली हर प्रविष्टि उपयोग योग्य होती है।
अलग से, लगभग 10,000 पार्किंग के name में कच्ची निर्देशांक जोड़ी थी, उदाहरण के लिए 51.927301,10.14112, जबकि वास्तविक नाम address में था। अब वे वही नाम रखते हैं — Ionity, Seesen, Rest Area A5 E35 Kaelberpfad, Bensheim — हर उस जगह जहाँ वे दिखते हैं, /api/v1/data/pois सहित। हर स्थान का id अपरिवर्तित है, इसलिए कैश की गई मैपिंग वैध बनी रहती है; केवल name भिन्न है।
snapshot.updated_at, जो /api/v1/data/queue और /api/v1/data/multi में लौटाया जाता है, चेकपॉइंट के अपने ज़ोन का स्थानीय समय है (उदाहरण के लिए Europe/Istanbul, Europe/Sofia, Europe/Budapest, Europe/Warsaw, Europe/Kyiv), और अब तक उत्तर में कहीं यह नहीं बताया जाता था कि वह ज़ोन कौन-सा है, इसलिए कॉल करने वाला उसे किसी निश्चित क्षण में नहीं बदल सकता था। snapshot में अब एक अतिरिक्त timezone फ़ील्ड (IANA नाम) जुड़ता है, updated_at के साथ। कोई पैरामीटर नहीं, कोई संस्करण नहीं, किसी अन्य फ़ील्ड में बदलाव नहीं।
अब तक हर ईंधन एंडपॉइंट अपनी कवरेज को हाथ से लिखी सूची से बताता था: AT, DE, DK, ES, FR, HR, IT, LU, PL, PT, SI, और उसमें पोलैंड Trójmiasto क्षेत्र तक सिमटा हुआ था। दोनों दावे बहुत पहले पुराने पड़ चुके थे। कवरेज अब स्टेशनों के लाइव इंडेक्स से मापी जाती है और हर छह घंटे में दोबारा गणना की जाती है: आज 39 देशों में कीमत वाले स्टेशन हैं, और उनमें पोलैंड पूरे देश में है, तीन शहरों में नहीं। अनुरोध में कुछ नहीं बदलता: न कोई पैरामीटर, न कोई संस्करण।
Nearby Fuel Stations और Cheapest Fuel: जब कोई खोज खाली लौटती है, तो coverage ब्लॉक अब मापे गए station_countries, station_counts, sparse_coverage और measured_at मान देता है, और ये सामान्य रूप से ईंधन के लिए नहीं, बल्कि आपके पूछे गए ईंधन प्रकार तक सीमित होते हैं। कोई देश sparse_coverage में तब आता है जब वहाँ हमारे पास कीमत वाले 25 या उससे कम स्टेशन हों — यह गिनती है, कोई राय नहीं।
ऐसे प्रकार के लिए एक नई टिप्पणी है जिसे हम पहचानते हैं, पर जहाँ आपने पूछा वहाँ उसकी कीमत कोई नहीं देता। अब तक coverage.fuel_type_note केवल तब दिखती थी जब पंप पर लिखा नाम ही हमारे लिए अनजान हो। अब यह तब भी दिखती है जब नाम सही पहचाना जाता है पर उस देश में उसके लिए कोई कीमत ही नहीं है; यह उन देशों के नाम बताती है जहाँ वह प्रकार कीमत के साथ मिलता है, और वे प्रकार भी जिनकी कीमत हम आपके आसपास देते हैं। चेक नाम Natural 100 साफ़ उदाहरण है: वह पहचाना जाता है, पर चेकिया में कोई स्रोत उसकी कीमत नहीं देता। खाली उत्तर अब टूटे हुए अनुरोध जैसा नहीं लगता।
Fuel Grades (/api/v2/data/fuel-grades) को हर प्रकार के लिए priced_countries और priced_station_counts मिलते हैं, तथा priced_here तब मिलता है जब आप ?country= भेजते हैं। दोनों सूचियों का अर्थ अलग है: countries में शामिल देश वह है जहाँ हम पंप का वह नाम स्वीकार करते हैं, जबकि priced_countries बताता है कि किसी स्रोत ने वास्तव में कहाँ कीमत दी है, इसलिए priced_here का 0 होना उत्तर में कमी नहीं, बल्कि असली उत्तर है। उत्तर में coverage_measured_at और coverage_note भी आते हैं, और इसका Cache-Control पुनर्गणना की आवृत्ति से मेल खाने के लिए 24 घंटे से घटकर 6 घंटे हो गया है।
पंप पर लिखे और भी स्थानीय नाम पहचाने जाते हैं, जिनमें Klimadiesel 90 (HVO100) और HVO Diesel, Erdgas और Metano, Autogas और Autogaz, AdBlue के लिए DEF, तथा प्रीमियम डीज़ल और पेट्रोल के कई ब्रांड नाम शामिल हैं। पहचान का क्रम वही है और मिलान अब भी सटीक है, इसलिए पहले जो नाम काम करता था उसका अर्थ आज कुछ और नहीं है, और कोई नया नाम अधिक से अधिक खाली उत्तर को कीमतों वाले उत्तर में बदल सकता है। इसी के साथ संदर्भ दस्तावेज़ और एंडपॉइंट विवरण साइट की सभी 25 भाषाओं में ठीक किए गए।
Cheapest Fuel (/api/v2/data/fuel-cheapest) सबसे सस्ते स्टेशनों के बजाय दूरी के क्रम में निकटतम स्टेशन लौटाता था। चूँकि परिणाम को आपकी limit तक सीमित करने से पहले ही रैंकिंग लागू कर दी जाती थी, इसलिए आपकी त्रिज्या के भीतर सबसे सस्ते पंप जवाब से पूरी तरह गायब हो सकते थे। रैंकिंग अब सही है: आपके अनुरोधित ग्रेड के लिए सबसे सस्ता पहले, बराबरी की स्थिति में निकटतम स्टेशन जीतता है, और उस ग्रेड के लिए कोई भाव न रखने वाला स्टेशन सबसे अंत में आता है। अनुरोध में कुछ भी नहीं बदलता — न कोई पैरामीटर, न कोई वर्शन।
v2 ईंधन प्रतिक्रियाएँ भी वैसे ही दस्तावेज़ीकृत की गई हैं जैसे वे वास्तव में भेजी जाती हैं: स्टेशन data.stations[] के अंतर्गत आते हैं, प्रत्येक भौतिक स्टेशन के लिए एक प्रविष्टि, जिसमें हर ग्रेड prices ऑब्जेक्ट (price, currency, local_name, updated_at, age_hours, stale) के भीतर नेस्टेड है, साथ ही station_ref, grades, total_found और notices भी। Nearby Fuel Stations और Cheapest Fuel के संदर्भ दस्तावेज़ में अब भी पुरानी फ़्लैट data.data[] पंक्ति सूची का वर्णन था।
बिलिंग पेज (मासिक टैब) पर किसी भी प्लान के ऊपर, उसे बदले बिना, दो ऐड-ऑन उपलब्ध हैं: अतिरिक्त पूर्वानुमान कॉल — प्रति ब्लॉक प्रतिदिन +100 पूर्वानुमान और आँकड़ा कॉल, प्रति ब्लॉक €2 प्रति माह, अधिकतम 10 ब्लॉक; और अतिरिक्त देश — प्रति इकाई +1 घोषित किया जा सकने वाला देश, प्रत्येक €2 प्रति माह. मात्रा बदलने पर कोई शुल्क लगने से पहले सटीक आनुपातिक अनुमान दिखाया जाता है.
10 नवंबर 2026 से प्रत्येक प्लान में घोषित देशों की एक निश्चित संख्या शामिल होगी: Explorer और Student 4, Starter 10, Pro और उससे ऊपर असीमित. उस तारीख से प्लान और खरीदे गए अतिरिक्त देशों के योग से लंबी घोषणा सहेजी नहीं जा सकेगी; खाता टैब आपकी सीमा अभी से दिखाता है, और जो खाते पहले से उससे ऊपर हैं उन्हें डैशबोर्ड पर एक सुझाव दिखता है. 10 नवंबर से पहले कुछ नहीं बदलता.
API सैंडबॉक्स अब सूची में हर एंडपॉइंट को उसके कोटा वर्ग (भारी / मानक) के साथ चिह्नित करता है, कुछ भी चलाने से पहले चुने गए संस्करण की कोटा लागत दिखाता है, और कॉल के बाद दिखाता है कि वही कॉल आपके लाइव कोटा से कितनी पड़ती — इसमें ceil(N ppids × M sub-products / 2) सूत्र भी शामिल है, जो /multi जैसी कॉल के लिए इस्तेमाल होता है.
यह केवल पढ़ने के लिए पूर्वावलोकन है: सैंडबॉक्स कॉल स्वयं आपके अलग सैंडबॉक्स परीक्षण बजट से घटाई जाती हैं, कभी भी आपके लाइव कोटा से नहीं.
आज से, जिस भी चीज़ की समाप्ति की घोषणा हमने सार्वजनिक रूप से की है, वह घोषणा की तारीख को या उसके बाद बनाए गए डेवलपर खातों के लिए बंद है। यदि आपका खाता घोषणा से पहले मौजूद था, तो कुछ नहीं बदलता — आपको पूरी रियायत अवधि मिलती रहेगी, ठीक उस समाप्ति तिथि तक जो उसकी घोषणा करने वाली प्रविष्टि में दी गई है।
यह नियम क्यों है। 24 अगस्त 2026 को हमने घोषणा की थी कि truck-bans v1 8 सितंबर 2026 को समाप्त हो रहा है। उस घोषणा के कुछ ही दिन बाद दो खाते पंजीकृत हुए, उन्होंने अपना इंटीग्रेशन v1 पर बनाया, और 410 से कुछ घंटे की दूरी पर आ पहुँचे, जबकि हमारा एक भी ईमेल उन तक कभी नहीं पहुँचा था: घोषणा और सूचना भेजने का बैच, दोनों उनके साइन-अप से पहले के थे। API में ऐसा कुछ नहीं था जो उन्हें उस संस्करण को अपनाने से रोकता जिसके हटने की बात हम पहले ही कह चुके थे। यह हमारी चूक थी, और यह उसका सुधार है — जिसे हटाना पहले से तय है, उसे अब नए सिरे से अपनाया नहीं जा सकता।
यह कैसा दिखता है। ऐसी कॉल 410 Gone और त्रुटि कोड version_closed_to_new_accounts के साथ अस्वीकार की जाती है। संदेश में समाप्ति तिथि, घोषणा तिथि और इसके बजाय उपयोग किया जाने वाला संस्करण बताया जाता है। यह जानबूझकर version_sunset से अलग कोड है, जो समाप्ति तिथि बीत जाने के बाद हर खाते को मिलता है — इससे सपोर्ट टीम लॉग पढ़े बिना ही «आप शुरू करने के लिए बहुत देर से आए» और «यह सबके लिए हट चुका है» में अंतर कर सकती है।
छूट खाता बनने की तारीख से तय होती है, पहली कॉल से नहीं। यदि आपने घोषणा से पहले पंजीकरण किया था लेकिन इंटीग्रेशन अभी शुरू कर रहे हैं, तब भी आपको पूरी रियायत अवधि मिलती है: हो सकता है आप शुरू से ही इसी पर काम कर रहे हों।
अभी प्रभावी — truck-bans v1 के लिए (24 अगस्त 2026 को घोषित, 8 सितंबर 2026 को समाप्त), और आगे से हमारी घोषित हर समाप्ति के लिए स्वतः। आपसे कुछ नया नहीं चाहिए: समाप्त हो रहे संस्करण की हर प्रतिक्रिया में पहले से ही Deprecation, Sunset और Link: rel="successor-version" हेडर मौजूद रहते हैं, इसलिए नया इंटीग्रेशन इस पेज को पढ़े बिना भी आती हुई समाप्ति देख सकता है।
कल के v4 बदलाव की अगली कड़ी (डेवलपर टिकट #105). v1 और v2 में अल्पविराम से अलग की गई destination सूचियाँ काम करती रहेंगी, लेकिन अब वे destination=all जैसी ही समय-सीमा के अधीन हैं: दोनों 2026-10-06 को बंद हो जाएँगी (तब तक Deprecation/Sunset हेडर, उसके बाद 400 destination_list_removed, जो विकल्प के रूप में /api/v4/ बताता है). अल्पविराम वाली सूचियों पर 10 की मौजूदा सीमा की जाँच उस तारीख तक अपरिवर्तित है.
v4 में प्रति कॉल एक ही गंतव्य रहेगा — आज इसमें कोई बदलाव नहीं हुआ. बदला सिर्फ यह है कि v1/v2 के बारे में क्या बताया जाता है: destination=all की 400 त्रुटि अब माइग्रेशन के रास्ते के रूप में अल्पविराम वाली सूची का सुझाव नहीं देती (वह भी उसी तारीख को समाप्त हो जाती), बल्कि सीधे v4 की ओर इशारा करती है.
दस्तावेज़ सुधार: इस साइट पर v4 का उदाहरण पहले /api/v4/data/border/1/2,3,4/9 था — यह अल्पविराम वाली सूची है, जिसे v4 अस्वीकार करता है. अब यह /api/v4/data/border/1/2/9 है. जिसने पुराना उदाहरण कॉपी किया होगा उसे पहली ही कॉल पर 400 मिलता; क्षमा करें.
नई अनूदित कुंजी product_border_v4_p_destination साइट की सभी 25 भाषाओं में जारी हो रही है और v1/v2 की भाषा पर लौटने के बजाय v4 के एक-गंतव्य नियम को स्पष्ट रूप से बताती है.
/api/v4/data/border/{origin}/{destination}/{crossing_type} आज लाइव हो गया है। v2 की तुलना में तीन चीज़ें बदलती हैं, और यही वजह है कि यह किसी संशोधन के बजाय एक नया संस्करण है।
1. अब destination=all नहीं रहा। हमारा डेटा हर देश के लिए अलग लाइसेंस पर है (Developer API Terms, खंड 7), और ऐसा वाइल्डकार्ड जो "हर उस पड़ोसी देश" तक फैल जाता है जिसका डेटा हमारे पास है, वे देश भी लौटा देता है जिनके लिए आपका खाता स्वीकृत नहीं हो सकता — और अनुरोध में इसका कोई संकेत नहीं होता। v4 में देश का नाम आप खुद देते हैं।
2. हर कॉल में एक ही गंतव्य देश। /api/v4/data/border/1/2/9 एक ही सीमा के लिए अनुरोध करता है। अल्पविराम वाली सूचियाँ स्वीकार नहीं की जातीं: 1/2/9, 1/3/9 और 1/4/9 को अलग-अलग कॉल के रूप में भेजें। अल्पविराम वाली सूची या all का उत्तर 400 होता है, जिसमें वे सटीक कॉल बताए जाते हैं जो भेजने चाहिए, इसलिए कुछ भी चुपचाप विफल नहीं होता।
3. ट्रक के लिए एक ही कोड। v1 और v2 माल परिवहन को 8 (Freight Transport) और 9 (7.5 t तक Freight Transport) में बाँटते थे। यह विभाजन क्रॉसिंग पर सचमुच मौजूद है, लेकिन कोई भी इंटीग्रेटर इस पर कार्रवाई नहीं कर सकता: UA-PL सीमा पर v2 से 9 माँगने पर 70 ट्रक क्रॉसिंग में से 21 लौटती थीं और इसका कोई ज़िक्र नहीं होता था। v4 9 का उत्तर हर ट्रक लेन के साथ देता है, और 8 को 9 का उपनाम मानता है। हर पंक्ति अपना crossing_type साथ लाती है, इसलिए मिला-जुला उत्तर भी जाँचने योग्य रहता है।
v1 और v2 में destination=all 2026-10-06 तक काम करता रहेगा और तब तक Deprecation / Sunset हेडर भेजेगा। उस तारीख से ये संस्करण भी all पर 400 लौटाएँगे — v1 और v2 का बाकी हिस्सा अछूता है और उपलब्ध रहेगा। यही तारीख बाकी सभी-देश शॉर्टकट पर भी लागू होती है: travel-matrix — ?dest= के बिना, bus-carriers — ?ppid=all के साथ, और fuel-grades — ?country= के बिना।
आज पहले घोषित v3 की जगह अब v4 ले लेता है। v3 v4 से केवल इस बात में अलग था कि वह अब भी अल्पविराम वाली सूची स्वीकार करता है, और कोई भी इंटीग्रेशन इस रूप का उपयोग नहीं करता। v3 पते उत्तर देते रहेंगे, इसलिए उन पर लिखा कुछ भी नहीं टूटेगा, पर v3 प्रलेखित नहीं है और आगे विकसित नहीं किया जाएगा — v4 पर माइग्रेट करें।
v4 में बाकी सब कुछ v2 जैसा ही है: दिशात्मक पाथ क्रम, direction{from,to}, stale, और ?max_age_min=।
पाथ में इस्तेमाल होने वाले संख्यात्मक id — /border/{origin}/{destination}/{crossing_type} — कभी तालिका के रूप में प्रकाशित नहीं किए गए थे, इसलिए इंटीग्रेटर उन्हें टाइमज़ोन और नमूना पतों से जोड़-तोड़कर निकालते थे। अब वे प्रलेखन में देश और वाहन-प्रकार कोड के अंतर्गत हैं, और उन्हीं तालिकाओं से रेंडर होते हैं जिनके विरुद्ध API जाँच करता है — हर देश id उन सीमाओं के साथ जिनमें वह फैलता है, और हर crossing_type उस लेबल के साथ जो API लौटाता है।
इन्हें प्रकाशित करते समय हमने पाया कि sandbox और endpoint मेटाडेटा 8 को "truck<7.5t" और 9 को "truck" बताते हैं। यह उलटा है: API 8 को Freight Transport और 9 को 7.5 टन तक Freight Transport लेबल करता है, और हमेशा से ऐसा ही रहा है। अगर आपने ट्रक कोड पैरामीटर संकेत से चुना था, तो आप अपनी इच्छित लेन के बजाय उलटी लेन फ़िल्टर कर रहे थे। हर जगह ठीक कर दिया गया है, और v3 यह विकल्प पूरी तरह हटा देता है।
API शर्तें v1.1 v1.0 के प्रभावी होने से पहले ही उसकी जगह लेते हैं, और 2026-10-06 से लागू होते हैं। कृपया इन्हें अपने डैशबोर्ड में स्वीकार करें।
खंड 7 अब बताता है कि Market क्या है: वह देश जिसका डेटा आप उपयोग करते हैं — यानी जहाँ वह चेकपॉइंट या सीमा है जिसका आप अनुरोध करते हैं — न कि वह देश जहाँ आपके उपयोगकर्ता रहते हैं। हमारे डैशबोर्ड में अलग-अलग जगहों पर दोनों बातें लिखी थीं; प्रवर्तन में हमेशा पहली ही मानी गई।
आपके पक्ष में दो बदलाव। आपके खाते के लिए पहले से स्वीकृत देश तब भी उपयोग योग्य रहते हैं जब कोई बाद का बदलाव समीक्षा में हो (नया देश जोड़ने से अब मौजूदा देश निलंबित नहीं होते)। और अगर हमने किसी market घोषणा का उत्तर 5 कार्य दिवसों में नहीं दिया, तो उत्तर देने तक आपकी पूरी प्लान सीमाएँ लागू रहेंगी।
खंड 10.3 अब उसी से मेल खाता है जो डैशबोर्ड वास्तव में माँगता है, और खंड 13.2 उपलब्धता का ऐसा आधार तय करता है जिसे हम मापते हैं और आपको दिखा सकते हैं।
तीन उत्पाद अब एक अतिरिक्त data_quality फ़ील्ड (high या low) देते हैं, जो बताता है कि कोई रीडिंग वास्तविक अवलोकन है या ऐसा मॉडल अनुमान जिसके लिए उस क्रॉसिंग पर कोई लाइव गिनती स्रोत नहीं है: queue (शीर्ष-स्तरीय snapshot पर और data[] की हर ऐतिहासिक पंक्ति पर — पूर्वानुमान पंक्तियों पर नहीं), update-info (एनवेलप पर), और multi (हर चेकपॉइंट के लिए queue और update_info दोनों उप-वस्तुओं पर)। यह कोई नया संकेत नहीं है — यह फ़्लैग भीतर पहले से मौजूद था — पर इसे कभी उजागर नहीं किया गया, इसलिए पूरी तरह मॉडल-आधारित चेकपॉइंट सीधे मापे गए चेकपॉइंट जैसा ही दिखता था। is_realtime को जानबूझकर नहीं बदला गया है: मॉडल-आधारित पंक्तियों के लिए यह अब भी true ही रहता है, और उस अर्थ को बदलना v2-स्तर का ब्रेकिंग बदलाव होगा, जो हम यहाँ नहीं कर रहे।
इसी रिलीज़ से: queue-advanced उत्पाद अब कच्चा अपस्ट्रीम मौसम डेटा आगे नहीं बाँटता। weather_main, temperature और wind_speed की जगह अब व्युत्पन्न condition_code (0–5 खतरा पैमाना, मौसम डेटा उपलब्ध न होने पर null), condition और severity आते हैं।
2026-08-30 से एक /api/v1/data/multi अनुरोध का उत्तर अधिकतम 5 सीमा चौकियों के लिए दिया जाएगा। इससे अधिक PPID सूचीबद्ध करने वाली कॉल अस्वीकार नहीं की जाती: वह फिर भी 200 लौटाती है, लेकिन उत्तर केवल ?ppids= में दिए पहले 5 ID के लिए मिलता है। शेष ID अनदेखे रहते हैं, meta.ppid_cap.ignored में वापस लौटाए जाते हैं और आपके कोटा से नहीं काटे जाते — कॉल का शुल्क उसी पर लगता है जो वह वास्तव में लौटाती है।
जब तक कोई कॉल सीमा से ऊपर है, प्रतिक्रिया में X-Devapi-Warning: multi_ppid_cap हेडर और एक meta.ppid_cap ब्लॉक रहता है जिसमें cap, enforced_from, enforced, ppids_asked, ppids_answered और ignored[] फ़ील्ड होते हैं। 2026-08-30 तक ये फ़ील्ड enforced: false के साथ और पूरे परिणाम सेट के साथ दिखते हैं, ताकि आप आने वाला बदलाव अपने ही लॉग में देख सकें।
कोटा पर आधी छूट अपरिवर्तित है। अपनी सीमा चौकियों को 5-5 के समूहों में बाँटें और अपने सामान्य रिफ़्रेश चक्र में हर समूह के लिए एक कॉल भेजें; केवल कतार की लंबाई और डेटा की ताज़गी की बार-बार जाँच के लिए update-info ही मानक श्रेणी का सस्ता उत्पाद बना रहता है।
यूक्रेन के लिए गणना किया गया गर्मी प्रतिबंध — include_ua_heat के साथ, और country=UA पर अपने आप लौटाया जाता है — अब उसी तिथि सीमा के लिए उत्तर देता है जो आप माँगते हैं। पहले यह date_from और date_to जो भी कहें, आने वाले सात दिन ही लौटाता था, इसलिए दिसंबर की सीमा पर चुपचाप इसी सप्ताह की पंक्तियाँ आ जाती थीं। यह प्रतिबंध प्रतिबंध कैलेंडर से नहीं पढ़ा जाता, मौसम पूर्वानुमान से गणना होता है, इसलिए इसकी दो सीमाएँ हैं जो कैलेंडर की नहीं हैं: यह पीछे नहीं देखता और वहीं समाप्त होता है जहाँ पूर्वानुमान समाप्त होता है। अब आपकी सीमा को उस अवधि से काटा जाता है जिसे पूर्वानुमान वास्तव में कवर करता है, और नया ua_heat_ban.forecast_horizon फ़ील्ड अंतिम उपलब्ध तिथि बताता है। इस क्षितिज से आगे की सीमा कोई पंक्ति नहीं लौटाती और कारण summary में बताती है — यह «कोई प्रतिबंध नहीं» के बराबर नहीं है। v1 उत्तर अपरिवर्तित हैं।
रिस्पॉन्स की बनावट अब तक कहीं दर्ज नहीं थी — कोई प्रोडक्ट क्या लौटाता है, यह जानने का एकमात्र तरीका उसे कॉल करना था। अब हर प्रोडक्ट पेज पर पैरामीटर तालिका के नीचे एक तालिका है रिस्पॉन्स फ़ील्ड जिसमें हर फ़ील्ड का संक्षिप्त विवरण है; सूची के एलिमेंट के फ़ील्ड इस रूप में दिखते हैं: items[].name, और एनवेलप स्तर के फ़ील्ड (usage, meta, snapshot, resolved_location) बिना उपसर्ग के। 42 में से 40 प्रोडक्ट दर्ज हैं: दो जो अभी लॉन्च नहीं हुए (weather, road-quality) जान-बूझकर बिना विवरण के हैं। यही तालिका GitHub पर हमारे सार्वजनिक दस्तावेज़ मिरर में भी प्रकाशित होती है।
अब हर ईंधन प्रोडक्ट ईंधन का स्थानीय नाम भी स्वीकार करता है, सिर्फ़ हमारी आंतरिक वर्तनी नहीं: ON पोलैंड में, Nafta चेकिया में, Gázolaj हंगरी में, Motorină रोमानिया में, ДП यूक्रेन में, Motorin तुर्की में, Gasóleo पुर्तगाल और स्पेन में. नाम पहले देश के हिसाब से पढ़ा जाता है — “95” डेनमार्क के पंप पर E10 है और पोलैंड के पंप पर E5 — इसलिए country को स्थानीय नाम के साथ भेजें, या ऐसे निर्देशांक जिनसे हम बिंदु का देश तय कर सकें। उत्तर में लौटते हैं fuel_type (कैनोनिकल), fuel_type_requested (जैसा आपने लिखा) और fuel_type_local। जिस नाम को हम तय नहीं कर पाते, उसे कभी किसी डिफ़ॉल्ट ईंधन से नहीं बदला जाता: उत्तर खाली आता है और यही बात कहता है।
पूरी तालिका अब अपने आप में एक प्रोडक्ट है — GET /api/v2/data/fuel-grades[?country=PL][&fuel_type=ON] — हमारे कैनोनिकल ईंधन और यूरोप के 41 देशों में उनके स्थानीय नाम, उन बाज़ारों समेत जिनके दाम हम नहीं देते। इसके अलावा, fuel और fuel-local के देश और क्षेत्र स्तर को grades ऑब्जेक्ट मिला है, जो हर मूल्य-कुंजी को उसके ईंधन और पंप पर इस्तेमाल होने वाले नाम से जोड़ता है।
अब truck-bans उत्पाद इस पते पर किसी विशेष तिथि या तिथि-श्रेणी के लिए उत्तर देता है: /api/v2/data/truck-bans। अब तक यह हमेशा आगामी 7 दिन लौटाता था और भेजी गई तिथि को अनदेखा कर देता था, इसलिए कैलेंडर बनाने के लिए हर दिन के लिए एक अलग अनुरोध करना पड़ता था — और प्रति सेकंड दो अनुरोध वाली योजना पर उनमें से अधिकांश इस त्रुटि के साथ अस्वीकार हो जाते हैं: 429 qps_exceeded।
एक दिन के लिए ?date=YYYY-MM-DD का उपयोग करें, या श्रेणी के लिए ?date_from= और ?date_to= का। दोनों सिरे सम्मिलित हैं और किसी एक को छोड़ा जा सकता है: आरंभ डिफ़ॉल्ट रूप से आज है, और अंत आरंभ से 7 दिन आगे। एक विंडो अधिकतम 92 दिन तक हो सकती है — इससे लंबी विंडो चुपचाप काटी नहीं जाती, बल्कि इस त्रुटि के साथ अस्वीकार होती है: 400 date_range_too_long। यह आगे की ओर देखने वाला कैलेंडर है: एक विंडो अधिक से अधिक 7 दिन पीछे से शुरू हो सकती है, और उससे पुरानी तिथियाँ दी नहीं जातीं बल्कि अस्वीकार कर दी जाती हैं — कवरेज आगे 31 दिसंबर 2028 तक, 23 देशों में है।
अब हर उत्तर में एक window ऑब्जेक्ट होता है, जो ठीक-ठीक बताता है कि कौन-सी श्रेणी शामिल है। यह एक अतिरिक्त फ़ील्ड है और v1 में भी भेजा जाता है, जहाँ v1 अपनी निश्चित 7-दिन की विंडो अपरिवर्तित रखता है। ध्यान दें: include_ua_heat आप जो भी विंडो माँगें, हमेशा आगामी 7 दिन ही शामिल करता है — यह मौसम पूर्वानुमान से गणना होता है, प्रतिबंध कैलेंडर से नहीं। याद रखें कि इस उत्पाद का v1 संस्करण 8 सितंबर 2026 को बंद हो जाएगा।
पूरे API में दो संबंधित सुधार: कोई भी पैरामीटर जिसे उत्पाद स्वीकार नहीं करता, अब चुपचाप हटाया नहीं जाता बल्कि उत्तर के ignored_params में सूचीबद्ध होता है; और डेटा सेवा की सत्यापन त्रुटियाँ आप तक ठीक वैसे ही पहुँचती हैं जैसे लिखी गई हैं, मशीन-पठनीय कोड के साथ error.reason में।
गेटवे ऑडिट (टिकट #43) से निकले तीन रिस्पॉन्स-गुणवत्ता सुधार।
X-API-Key हेडर अब स्वीकार किया जाता है — Authorization: Bearer और ?key= के साथ-साथ। यदि आपका HTTP क्लाइंट कुंजियाँ X-API-Key नाम के हेडर से भेजता है, तो अब यह काम करता है — पहले इसे चुपचाप अनदेखा कर दिया जाता था और कॉल missing_api_key कहकर अस्वीकार हो जाती थी। Authorization: Bearer ही प्रलेखित और अनुशंसित रूप बना हुआ है।
कुंजी न मिलने वाला त्रुटि संदेश अब प्रमाणीकरण के तीनों तरीके बताता है (Bearer हेडर, X-API-Key हेडर, या ?key=) — केवल साइनअप पृष्ठ का लिंक देने के बजाय।
checkpoints डायरेक्टरी अब हर पंक्ति में has_day_stats देती है — यह एक अतिरिक्त बूलियन है जो बताता है कि Best Time to Cross (day-stats) API के पास उस चेकपॉइंट का डेटा है या नहीं। Day-stats केवल निगरानी वाले चेकपॉइंट्स के एक हिस्से के लिए मौजूद है; अनुमानित 404 से बचने के लिए पोलिंग से पहले इस फ़्लैग की जाँच करें। मौजूदा फ़ील्ड अपरिवर्तित हैं।
दस्तावेज़ में एक और सुधार: road-conditions प्रोडक्ट लेबल स्थानीयकरण के लिए lang पैरामीटर को हमेशा मानता रहा है — वह बस सूचीबद्ध नहीं था।
truck-bans प्रोडक्ट के लिए दो सुधार और एक नया संस्करण।
अल्पविराम से अलग किए गए देश अब काम करते हैं। ?country= अधिकतम 3 ISO-2 कोड की सूची स्वीकार करता है, उदाहरण के लिए ?country=DE,RO। इससे लंबी सूची चुपचाप छाँटी नहीं जाती, बल्कि 400 too_many_countries के साथ अस्वीकार की जाती है — यह प्रति-देश प्रतिबंध कैलेंडर है, थोक फ़ीड नहीं। पहले यह काम नहीं करता था: विभाजक हटा दिया जाता था, इसलिए DE,RO को एकल टोकन DERO के रूप में पढ़ा जाता, किसी से मेल नहीं खाता, और success: true के साथ total_bans: 0 लौटाता — दो ऐसे देशों के लिए आत्मविश्वास से भरा “कोई प्रतिबंध नहीं”, जिनके पास मिलाकर 22 थे। यदि आपने हर देश के लिए अलग अनुरोध भेजकर इसका हल निकाला था, तो अब एक ही अनुरोध सबको कवर करता है और कई के बजाय एक कॉल में पड़ता है।
अब रिस्पॉन्स अपनी पूर्णता स्वयं बताते हैं। तीन अतिरिक्त फ़ील्ड — returned, total_available और truncated — बताते हैं कि उत्तर सीमित किया गया था या नहीं। विशेष रूप से बिना स्कोप वाली कॉल एक सीमित हिस्सा लौटाती है, और अब तक पेलोड में इसका कोई संकेत नहीं था। total_bans का अर्थ पहले जैसा ही रहता है (इस रिस्पॉन्स की पंक्तियाँ), इसलिए आप जो पहले से पार्स कर रहे हैं उसमें कुछ नहीं बदलता।
v2 प्रति देश स्कोप वाला है। /api/v2/data/truck-bans पर ?country= अनिवार्य है और बिना स्कोप वाला अनुरोध 400 scope_required के साथ अस्वीकार होता है — यह प्रोडक्ट प्रति-देश प्रतिबंध कैलेंडर है, थोक फ़ीड नहीं। v1 आज अपरिवर्तित है — यह अब भी बिना स्कोप वाली कॉल स्वीकार करता है और अब भी वही सीमित 50 पंक्तियाँ लौटाता है, इसलिए आपका चालू कुछ भी अभी नहीं टूटेगा। इस प्रोडक्ट का v1 8 सितंबर 2026 को बंद हो रहा है। यह 7 सितंबर तक सामान्य रूप से काम करेगा; 8 सितंबर से v1 अनुरोध 410 Gone और v2 की ओर इशारा करने वाले संदेश के साथ अस्वीकार होगा। तब तक हर v1 रिस्पॉन्स में Deprecation: true, उस तारीख वाला Sunset हेडर, और उत्तराधिकारी संस्करण बताने वाला Link हेडर रहेगा, ताकि क्लाइंट लाइब्रेरी यह पृष्ठ पढ़े बिना ही समयसीमा दिखा सके। माइग्रेट करने के लिए: संस्करण सेगमेंट बदलकर /api/v2/data/truck-bans करें और ?country= भेजें।
दस्तावेज़ में एक सुधार: date पैरामीटर हटा दिया गया है। यह लंबे समय से सूचीबद्ध था लेकिन सेवा ने इसे कभी नहीं पढ़ा, इसलिए इसे भेजने वाले हर अनुरोध को माँगे गए दिन के बजाय चुपचाप डिफ़ॉल्ट 7-दिन की विंडो मिलती थी। कोई दिन चुनने के लिए upcoming_bans ऐरे को उसके date फ़ील्ड से फ़िल्टर करें। साथ ही DEU जैसा ISO-3 कोड अब सारांश में देश के नाम में नहीं बदलता, जहाँ वह भ्रामक “No truck ban data for: Germany.” उत्पन्न करता था।
truck-bans उत्पाद अब पाँच और देशों के लिए देशव्यापी यातायात प्रतिबंध लौटाता है: बेल्जियम (BE), बेलारूस (BY), मोंटेनेग्रो (ME), उत्तरी मैसेडोनिया (MK) और स्वीडन (SE)। बुल्गारिया, ग्रीस और पुर्तगाल का मौजूदा कवरेज बढ़ाया और ताज़ा किया गया है — ग्रीक प्रतिबंध अब सितंबर 2027 तक चलते हैं, और पुर्तगाल में फिर से डेटा है।
प्रतिक्रिया की संरचना अपरिवर्तित है। नई पंक्तियाँ वही कुंजियाँ रखती हैं जो हर दूसरे प्रतिबंध में होती हैं: date, time_from, time_until, restriction_type, restriction_details, min_weight_tons और details_url। जहाँ कोई प्रतिबंध केवल किसी शर्त पर लागू होता है — उदाहरण के लिए, बेलारूस के गर्मियों के प्रतिबंध 25 °C से ऊपर लागू होते हैं — वह शर्त restriction_details में बताई जाती है, इसलिए किसी चालक को चेतावनी देने से पहले यह फ़ील्ड पढ़ें। जब कोई नियम टनभार के बजाय परिवहन श्रेणी (खतरनाक माल) पर लागू होता है, तब min_weight_tons का मान null होता है।
fuel-stations और fuel-cheapest उत्पाद अब पोलैंड में स्टेशन-स्तरीय कीमतें लौटाते हैं। कवरेज आंशिक है — त्रि-नगर क्षेत्र (ग्दान्स्क, ग्दीन्या, सोपोत) — इसलिए पोलैंड को एक नए अतिरिक्त coverage.sparse_coverage ऐरे में, मौजूदा coverage.station_countries सूची के साथ, दर्शाया जाता है। sparse_coverage में सूचीबद्ध देश के पास अपने क्षेत्र के केवल एक हिस्से के लिए स्टेशन डेटा होता है; उस देश में कहीं और की गई क्वेरी पहले की तरह कवरेज नोट के साथ खाली सूची लौटाती है। पोलिश कीमतें PLN में दी जाती हैं।
थोक क्वेरी की त्रुटि भी अधिक स्पष्ट है: जब lat नहीं होता, तो scope_required संदेश अब देश-व्यापी औसत कीमतों के लिए fuel उत्पाद (?country=XX) की ओर इशारा करता है।
GET /api/v2/data/fuel-local?lat=&lon= अब कीमत दो के बजाय तीन स्तरों पर तय करता है: station, फिर region, फिर country। नया मध्य स्तर यूक्रेन के लिए है, जहाँ प्रति-स्टेशन दाम कहीं उपलब्ध नहीं हैं: यूक्रेन का कोई बिंदु अब राष्ट्रीय औसत के बजाय अपने ओब्लास्त का औसत पाता है, और राष्ट्रीय औसत पर तभी लौटता है जब उस ओब्लास्त का भाव उपलब्ध न हो।
region स्तर के उत्तर में ओब्लास्त का कोड (ISO 3166-2 मान, जैसे UA-46), region_name और region_center_dist_km होते हैं, साथ ही वही मूल्य फ़ील्ड जो देश स्तर पर मिलते हैं। अपने कोड को पहले की तरह resolution के आधार पर विभाजित करें, उत्तर के आकार के आधार पर नहीं; station और country उत्तर अपरिवर्तित हैं।
नया एंडपॉइंट GET /api/v2/data/fuel-local?lat=&lon= यूरोप में किसी भी बिंदु के लिए उपलब्ध सर्वोत्तम ईंधन मूल्य लौटाता है। जहाँ हमारे पास प्रति-स्टेशन डेटा है वहाँ यह निकटतम पंपों के दाम देता है, अन्यथा उस देश का राष्ट्रीय औसत जिसमें वह बिंदु आता है — यूक्रेन सहित, जहाँ प्रति-स्टेशन दाम कहीं उपलब्ध नहीं हैं।
हर उत्तर में resolution फ़ील्ड होता है, जो उत्तर देने वाले स्तर को बताता है: station (distance_km के साथ स्टेशनों की सूची, हर एक अपनी मुद्रा में) या country (राष्ट्रीय औसत वाला एक ऑब्जेक्ट)। अपने कोड को उत्तर के आकार के बजाय resolution के आधार पर विभाजित करें। /api/v2/ से आगे उपलब्ध; fuel, fuel-stations और fuel-cheapest अपरिवर्तित हैं।
fuel-stations और fuel-cheapest प्रोडक्ट अब जर्मनी के काफ़ी अधिक स्टेशनों को कवर करते हैं, और कीमतें पूरे दिन अपडेट होती रहती हैं — ग्रामीण इलाके भी शामिल हैं। fuel_type पैरामीटर 13 ईंधन प्रकार स्वीकार करता है: diesel, e5, e10, superplus, super100, premdiesel, truckdiesel, hvo, lpg, cng, adblue, e85 और lng। जब किसी क्वेरी से कोई स्टेशन मेल नहीं खाता, तो रिस्पॉन्स में एक coverage ऑब्जेक्ट शामिल होता है जिसमें उन देशों की सूची होती है जिनके लिए स्टेशन डेटा उपलब्ध है।
radius= पैरामीटर अब हर उस प्रोडक्ट में radius_km के संगत उपनाम के रूप में स्वीकार किया जाता है जो इसे दस्तावेज़ करता है। जब कोई स्टेशन मेल नहीं खाता, तो fuel-stations और fuel-cheapest प्रोडक्ट चुपचाप खाली परिणाम देने के बजाय एक अतिरिक्त coverage ऑब्जेक्ट लौटाते हैं (स्टेशन डेटा वाले देशों की सूची और एक नोट)। route-plan के बॉर्डर ऑब्जेक्ट में अब एक अतिरिक्त wait_basis की शामिल है (car_lane बनाम vehicle_lane), जिससे क्लाइंट जान सकें कि ट्रक का प्रतीक्षा डेटा असल में कार लेन से लिया गया है। रूट के साथ ट्रक बॉर्डर मिलान अब काफ़ी अधिक सटीक है: जिन बॉर्डर जोड़ियों के लिए ट्रक लेन डेटा नहीं है उनके लिए कार लेन फ़ॉलबैक, ग़लत दिशा से सुरक्षा, अधिक सख़्त दूरी सीमा, और एक ही स्थान पर मौजूद क्रॉसिंग की डुप्लिकेट हटाना। सभी बदलाव अतिरिक्त हैं; कोई ब्रेकिंग चेंज नहीं है।
डेवलपर लैंडिंग पेज में अब जंप नेविगेशन के साथ एंकर किए गए सेक्शन हैं (#products, #plans, #quickstart, #integrations, #datasets, #apps, #companies, #showcase), और हर प्रोडक्ट कार्ड अपने स्वयं के डॉक्स पेज से लिंक करता है। नया Mobile apps सेक्शन Google Play लिंक के साथ Kordon Online और Truck Bans प्रस्तुत करता है। अनुवाद बैकफिल: बिलिंग इतिहास, लॉगिन त्रुटियां, sandbox लिंक और प्लान-चयन बटन अब सभी 25 भाषाओं में स्थानीयकृत हैं।
Fleet beacon प्रतिक्रिया (POST /api/v1/fleet_position.php) में अब एक messages ऐरे शामिल है जो मालिक→ड्राइवर के लंबित संदेश पहुंचाता है। केवल मालिकों के लिए नया लाइव JSON फ़ीड (?ajax=live) और fleet डैशबोर्ड पर "ड्राइवरों को संदेश" कार्ड। नया ड्राइवर आमंत्रण पेज /{lang}/get-nakbus (25 भाषाएं)।
product_fleet_vehicles/live/history के title, desc और fleet-history पैरामीटर को डेवलपर पोर्टल की सभी 25 भाषाओं में स्थानीयकृत किया गया।
/api/v1/data/truck-bans अब यह जो भी क्वेरी प्रतिक्रिया को ट्रिगर करे, उसी शीर्ष-स्तरीय फ़ील्ड्स का सेट लौटाता है। पहले, कैलेंडर प्रतिबंध न रखने वाले देश के लिए क्वेरी, एक अपरिचित ppid, या सामान्य डेटाबेस मैच — इनमें से हर एक अलग-अलग फ़ील्ड्स (जैसे country, covered_countries, ppid) छोड़ सकता था। अब हर प्रतिक्रिया लगातार as_of, bans_by_country, countries_not_covered, country, covered_countries, current_bans, is_ban_active, lang, page_url, ppid, relevant_countries, source, success, summary, total_bans और upcoming_bans शामिल करती है (जहां लागू नहीं वहां null या खाली), जिससे क्लाइंट-साइड पार्सिंग सरल हो जाती है।
प्रत्येक सेवा के लिए नौ नए प्रोडक्ट। स्थान-आधारित प्रोडक्ट lat/lon या city + country स्वीकार करते हैं (हम आपके लिए शहर को geocode करते हैं): /api/v2/data/truck-parkings, /api/v2/data/shops, /api/v2/data/showers, /api/v2/data/restaurants, /api/v2/data/industrial, /api/v2/data/fuel-stations, /api/v2/data/fuel-cheapest (चुने गए ईंधन प्रकार की कीमत के अनुसार क्रमबद्ध स्टेशन) और /api/v2/data/internet-points; परिणामों में distance_km होता है और वे radius से सीमित हैं। /api/v2/data/vignettes बताता है कि क्या किसी देश को विनयेट चाहिए, मौजूदा कीमतों के साथ। मौजूदा pois प्रोडक्ट अब दस्तावेज़ के अनुसार lon और radius का समर्थन करता है, और fuel प्रोडक्ट का mode=nearest मोड भी lon स्वीकार करता है। सभी नौ सैंडबॉक्स में उपलब्ध हैं।
/api/v1/data/truck-bans में अब प्रत्येक प्रतिबंध में restriction_type (General / Local / Sunday / Holiday / Seasonal), restriction_details (प्रभावित सटीक क्षेत्र या सड़कें) और min_weight_tons शामिल है। details_url अब nakordoni.eu पर प्रति-देश पेजों की ओर इशारा करता है। एक नया वैकल्पिक lang पैरामीटर देश के नामों और सारांश की भाषा चुनता है; डिफ़ॉल्ट अब अंग्रेज़ी है।
गलत ?ppid= अब संक्षिप्त "Request failed" के बजाय असली कारण लौटाता है: त्रुटि पैरामीटर, अपेक्षित id_<number> प्रारूप बताती है और /api/v1/data/checkpoints की ओर इशारा करती है। stats, forecast, update-info, weather और bus-carriers की पैरामीटर तालिकाएँ अब सभी 25 भाषाओं में id_13 उदाहरण दिखाती हैं।
पोर्टल का नया इंटरफ़ेस (शीर्ष बार, आइकन साइडबार, KPI डैशबोर्ड, कार्ड-आधारित लेआउट) अब लॉग-इन सभी डेवलपर खातों के लिए डिफ़ॉल्ट अनुभव है — नियोजित 10 अगस्त की तिथि से पहले ही। क्लासिक लेआउट पर कभी भी लौटने के लिए ?v=1 का उपयोग करें।
डेवलपर पोर्टल के सभी पृष्ठ — मुखपृष्ठ, दस्तावेज़, डैशबोर्ड, AI Studio, सैंडबॉक्स, टिकट, अनुरोध, निर्यात, फ़्लीट, समाचार, परिवर्तन-सूची और खाता पृष्ठ — अब कोई विज्ञापन स्क्रिप्ट या विज्ञापन स्थान लोड नहीं करते। यह पूरे पोर्टल पर लागू है, पहले की तरह केवल लॉगिन और साइन-अप पर नहीं।
पूरी सीमा-पार यात्रा एक ही कॉल में बनाएँ: /api/v2/data/route-plan मार्ग लौटाता है, उस पर वास्तव में पड़ने वाली सीमा चौकियाँ लाइव कतार या आपके पहुँचने के समय के पूर्वानुमान के साथ, और वे ठहराव जो चालक सचमुच करता है — आराम, भोजन, ईंधन — सब एक ही समयरेखा पर।
सीमा उसी समयरेखा का हिस्सा है। लंबी कतार उस विश्राम के रूप में गिनी जाती है जो वैसे भी देय था और ड्राइविंग घड़ी को रीसेट कर देती है, इसलिए तीन घंटे की प्रतीक्षा कभी तीन घंटे साथ में उन विश्रामों के पूरे सेट के रूप में नहीं दिखाई जाती जो किसी ने लिए ही नहीं। कारों के लिए सुरक्षित ड्राइविंग मॉडल लागू है; बसों और ट्रकों को EU 561/2006 का अनिवार्य विश्राम मिलता है, और बसों का सेवा समय 1000 से अधिक लाइसेंसशुदा अंतरराष्ट्रीय समय-सारणियों पर कैलिब्रेट किया गया है। हर ठहराव को असली विश्राम स्थल या पेट्रोल पंप का नाम देने के लिए stop_places=1 जोड़ें, और किसी दूसरी चौकी से जाने के लिए via=lat,lon।
पोर्टल मेन्यू में नया: प्रस्तुति — nakordoni डेटा प्लेटफ़ॉर्म की जीवंत, हमेशा अद्यतन प्रस्तुति, आपके बाज़ार के अनुसार वैयक्तिकृत (बीमा, यात्रा, लॉजिस्टिक्स, वाहक, मीडिया, नेविगेशन, ईंधन, फ़िनटेक, सार्वजनिक क्षेत्र या व्यक्तिगत परियोजनाएँ)। यह प्लेटफ़ॉर्म की वास्तविक 30-दिवसीय मात्रा, आपका अपना API उपयोग, प्रतिक्रिया-समय और सीमा संबंधी आँकड़े, तथा जब आपके कॉल निःशुल्क स्तर की सीमा तक पहुँचें तो योजना की अनुशंसा दिखाती है। अपना बाज़ार (या बाज़ार) पृष्ठ पर, अपनी प्रोफ़ाइल में — या साइन-अप के दौरान चुनें या पुष्ट करें। पहली बार आने पर यह अपने आप खुलती है; स्वतः खुलना पृष्ठ पर ही बंद किया जा सकता है।
यदि किसी सहायक में कोई फ़ीड सक्षम है पर कॉल उस फ़ीड के लिए आवश्यक संदर्भ नहीं लाती — उदाहरण के लिए queue बिना ppidके — तो वह फ़ीड अब किसी भी अनुरोध से पहले ही छोड़ दी जाती है और उसका शुल्क नहीं लगता। पहले उसे फिर भी कॉल किया जाता था, वह विफल होती थी और तब भी एक यूनिट खर्च होती थी। स्टूडियो दिखाता है कि हर फ़ीड को क्या चाहिए, संदर्भ भरते ही मूल्य फिर से गणना करता है और परिणामों को ✓ चली / ⊘ छोड़ी गई, कोई शुल्क नहीं / ✕ विफल के रूप में चिह्नित करता है; API data.feeds_skipped लौटाता है, जो ठीक-ठीक बताता है कि कौन-सा पैरामीटर भेजना है।
उत्तरों में अब फ़ीड, डेटा स्रोत या कोई भी तकनीकी बात नहीं आती: कोई फ़ीड न मिलने पर अंतिम उपयोगकर्ता को अधिक-से-अधिक एक सरल वाक्य मिलता है, कभी कोई आंतरिक नाम नहीं। केवल वैकल्पिक फ़िल्टर वाली फ़ीड (जैसे fuel , जिसे ऐसे देश तक सीमित किया गया हो जिसका हमारे पास डेटा नहीं है) अब कुछ न लौटाने के बजाय व्यापक डेटासेट पर लौट आती हैं।
नया: /{lang}/developers/studio. ऐसा AI सहायक बनाएँ जो आपकी सामग्री और हमारे लाइव सीमा-डेटा से उत्तर दे। हमें अपना markdown दें, या बस पृष्ठ बताइए और हम उन्हें लाकर अनुक्रमित कर देंगे — आप केवल अपनी फ़ाइलें ही संभालते हैं। चुनें कि वह हमारी कौन-सी फ़ीड उपयोग कर सकता है (कतार, पूर्वानुमान, विकल्प, दैनिक आँकड़े, ईंधन, ट्रक प्रतिबंध, व्यापारिक रविवार, अवकाश, सड़क की स्थिति, बस वाहक, POI, मुद्रा), मॉडल स्तर चुनें (तेज़ / संतुलित / प्रो — यही मूल्य तय करता है), {{feed.slug}} प्लेसहोल्डर के साथ अपने निर्देश लिखें जो ठीक-ठीक बताएँ कि हमारा डेटा उत्तर में कहाँ आएगा, और अपना समापन वाक्य जोड़ें जो हर उत्तर के अंत में लगेगा। तैयार खाके: व्यक्तिगत यात्रा सहायक, कार्य/माल-ढुलाई सहायक, बीमा एवं ग्रीन कार्ड बिक्री सहायक।
इसे स्टूडियो में परखें (प्रतिदिन 30 उत्तर, आपके API कोटा से अलग), फिर उत्पादन में GET /api/v2/data/assistant-custom?assistant_id=N&q=…पर कॉल करें। प्रति उत्तर मूल्य = मॉडल स्तर की यूनिट + प्रत्येक सक्षम फ़ीड के लिए 1 यूनिट, जो X-Devapi-Unitsमें लौटाया जाता है। यह उत्पाद केवल v2 में है — v1 URL unsupported_versionलौटाता है। मौजूदा assistant उत्पाद अपरिवर्तित है।
हर सहायक प्लेटफ़ॉर्म की सामग्री नीति के तहत चलता है, जो आपके निर्देशों से ऊपर है: अधिकारियों का रूप धरना मना, सीमा या सीमा-शुल्क जाँच से बचने में सहायता मना, गढ़े हुए आँकड़े मना, अपशब्द मना। निर्देश और उत्तर दोनों की जाँच होती है; अवरुद्ध कॉल दर्ज की जाती हैं।
नया: https://nakordoni.eu/mcp पर एक वास्तविक MCP सर्वर, जो API के सुरक्षित, केवल-पढ़ने योग्य उपसमुच्चय (status, checkpoints, border queue, live queue, forecast) को MCP टूल्स के रूप में उपलब्ध कराता है। REST API जैसी ही API कुंजी और कोटा। सर्वर कार्ड /.well-known/mcp/server-card.json पर। दस्तावेज़ में MCP सर्वर अनुभाग देखें।
नीचे बताया गया „Live Queue & Freshness API“ नाम-परिवर्तन असल में दस्तावेज़ पृष्ठ तक पहुँचा ही नहीं था। पृष्ठ हर उत्पाद का शीर्षक अनुवाद-खोज के ज़रिए दिखाता है, जो एंडपॉइंट के शीर्षक पर तभी लौटती है जब कोई अनुवाद मौजूद न हो — और अनुवाद पहले से मौजूद था, पुराने नाम पर जमा हुआ, सभी 25 इंटरफ़ेस भाषाओं में। अब वह मूल शीर्षक के किसी भी भावी अद्यतन पर भारी पड़ता है, जब तक उसे भी अद्यतन न किया जाए।
अनुवाद कुंजी सभी 25 भाषाओं में बदली गई, इसलिए दस्तावेज़ पृष्ठ अब मेल खाता है। एंडपॉइंट, पैरामीटर या प्रतिक्रिया में कोई बदलाव नहीं — केवल शीर्षक का पाठ।
यदि आप लाइव कतार का डेटा बार-बार लेते हैं, तो शायद बिना ज़रूरत भारी कोटा खर्च कर रहे हैं। /update-info मानक श्रेणी का है और लाइव आँकड़ा पहले से लौटाता है:
GET /api/v1/data/update-info?ppid=id_13
यह लौटाता है queue_now, freshness, age_minutes, is_realtime, status, timestamp और timezone। बार-बार ताज़ा करने के लिए इसे अपने मानक दैनिक कोटा से उपयोग करें, और /queue, /multi तथा /forecast (सभी भारी श्रेणी) को तब के लिए रखें जब आपको wait_min, रुझान फ़ील्ड या इतिहास चाहिए।
एंडपॉइंट में स्वयं कुछ नहीं बदला — केवल उसके दस्तावेज़ में। यह „Data Freshness API“ के नाम से सूचीबद्ध था और उसके विवरण में केवल ताज़गी की रेटिंग का उल्लेख था, कभी queue_nowका नहीं, इसलिए उस पर ध्यान न जाना आसान था। अब इसका नाम „Live Queue & Freshness API“ है और लौटाए जाने वाले फ़ील्ड स्पष्ट रूप से लिखे हैं। इसे उठाने वाले डेवलपर को धन्यवाद।
कुछ विफल अनुरोध HTTP 200 के साथ ok: true लौटा रहे थे और त्रुटि data के भीतर दबी रहती थी — इसलिए प्रलेखित if (!ok) throw पैटर्न उन्हें पकड़ नहीं पाता था, और कॉल का शुल्क फिर भी लगता था। प्रभावित कॉल अब प्रलेखन के अनुसार HTTP 400 के साथ ok: false और उचित error.code / error.messageलौटाते हैं। यह fuel-cities पर असमर्थित देश के साथ और travel-matrix पर ग़लत निर्देशांक के साथ देखा गया।
अलग से: कोई आवश्यक पैरामीटर न होने पर 500 internal_error के बजाय 400 bad_request लौटता था (आंतरिक सेवा की 4xx प्रतिक्रिया का मुख्य भाग उसकी स्थिति पढ़े जाने से पहले ही हटा दिया जाता था)। अब आंतरिक सेवा के संदेश के साथ 400 bad_request लौटता है — जैसे search बिना ?name=के।
सफल प्रतिक्रियाएँ बाइट-दर-बाइट अपरिवर्तित हैं — वही फ़ील्ड, वही पैरामीटर, वही कोटा लागत। यदि आपका क्लाइंट पहले से okपर शाखा बनाता है, तो कुछ बदलने की ज़रूरत नहीं। यदि वह ok को अनदेखा कर सीधे data पढ़ता था, तो अब उसे उन कॉलों पर त्रुटि-लिफ़ाफ़े दिखेंगे जो हमेशा से विफल ही हो रही थीं।
एक बग ठीक किया गया जिसमें /multi कुछ सीमा-चौकियों के लिए — मुख्यतः बाल्कन और हंगरी–सर्बिया की चौकियाँ — जब भी उसका कैश ठंडा होता, कतार की ग़लत संख्या लौटा सकता था। फ़ॉलबैक ऐसी तालिका पढ़ता था जिसमें उन चौकियों के लिए कतार का डेटा है ही नहीं, और असंबद्ध मानों को कारों की संख्या बताकर दे देता था। मापे गए उदाहरण: 12 कारों वाली एक चौकी 6 बताती थी, और वास्तविक कतार वाली कई चौकियाँ 0 बताती थीं।
तीन बदलाव जो आपको दिख सकते हैं:
found: falseका अर्थ अब वाक़ई यह है कि कतार का कोई हालिया डेटा नहीं है। पहले आपको गढ़े हुएfound: trueके साथqueue_now: 0मिल सकता था।wait_status,trend_percentऔरtrend_directionअब ठंडे अनुरोधों पर भी लौटाए जाते हैं — पहले येnullहोते थे।- एंडपॉइंट तब भी फ़ॉलबैक पर जाता है जब उसका कैश किया स्नैपशॉट पुराना (24 घंटे से अधिक) हो, केवल तब नहीं जब वह अनुपस्थित हो।
अनुरोध के पैरामीटर, कोटा लागत या प्रतिक्रिया की संरचना में कोई बदलाव नहीं।
एक बग ठीक किया गया जिसकी वजह से हर /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पंक्ति ऑब्जेक्ट से हटाए गए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 था — केवल कुछ अपस्ट्रीम फ़ीड सीधे प्रतीक्षा समय की रिपोर्ट करते हैं। बिना प्रतीक्षा समय वाली पंक्तियों को अब मानक अनुमान मिलता है, जिसे एक नए wait_time_estimated boolean के साथ चिह्नित किया जाता है ताकि आप एक वास्तविक रिपोर्ट किए गए आँकड़े को गणना किए गए से अलग बता सकें।
queue-advanced: 1.5x पर बिल किया गया, प्रतिसाद छाँटा गया
queue-advanced की लागत अब प्रति कॉल 1 के बजाय 1.5 यूनिट है (यह जो अतिरिक्त ट्रैफ़िक/मौसम/ड्राइवर-रिपोर्ट लुकअप करता है उसे दर्शाते हुए) — ऊपर usage.used देखें। प्रतिसाद में अब 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 की सही गणना करता है। पहले यह फ़ील्ड हमेशा 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 — (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 परिवर्तनों को कवर करता है। आंतरिक अपडेट सूचीबद्ध नहीं हैं।