API परिवर्तन लॉग
API में सभी महत्वपूर्ण परिवर्तन। नवीनतम पहले। v1 स्थिरता — नई संस्करण के बिना Breaking changes नहीं।
नया प्रोडक्ट lane-cost-index (GET /api/v2/data/lane-cost-index)। यह यूरोप में A से B तक एक लदे हुए ट्रक ट्रिप का लागत सूचकांक देता है: ईंधन, टोल, ड्राइवर का समय और दैनिक भत्ता।
- इनपुट:
fromऔरto"lat,lng" या शहर id के रूप में,vehicle(उदाहरण के लिएartic_40t), वैकल्पिकeuro,co2_classऔरempty_return। - देश के अनुसार: किमी, टोल, डीज़ल लीटर और ईंधन लागत (VAT के बिना), और टोल के लिए इस्तेमाल हुई वाहन श्रेणी।
- ड्राइवर का समय: ड्राइविंग, ब्रेक और विश्राम EU 561/2006 नियमों के अनुसार हैं। ड्राइवर लागत और दैनिक भत्ता मूल देश की दर से गिने जाते हैं। स्पेन और इटली के लिए अब सामूहिक समझौतों से ड्राइवर दर और दैनिक भत्ता उपलब्ध है।
- रुझान:
trendमौजूदा और पिछले दो महीनों का लागत सूचकांक देता है। - अधूरा डेटा: जब रूट पर किसी देश का टोल या ईंधन डेटा नहीं है, या मूल देश की ड्राइवर दर उपलब्ध नहीं है, तो
incompleteका मानtrueहोता है और कुल राशि न्यूनतम सीमा है।missing_countriesऔरmissing_componentsबताते हैं कि क्या कमी है।
यह लागत सूचकांक है, माल भाड़ा कीमत नहीं: वाहन पूंजी, बीमा, ओवरहेड और मार्जिन शामिल नहीं हैं।
कोटा: एक अनुरोध route श्रेणी की 1 इकाई गिना जाता है, truck-route की तरह।
दस्तावेज़: Lane Cost Index.
toll-cost उत्पाद अब फ़्रांस, स्पेन और इटली की गणना अधिक सटीक करता है।
- फ़्रांस और स्पेन: रूट पर दो टोल स्टेशनों के बीच मोटरवे का हिस्सा मोटरवे ऑपरेटर के प्रवेश/निकास टैरिफ़ से गिना जाता है। यह नए आइटम प्रकार
motorway_sectionके रूप में दिखता है, जिसमें ऑपरेटर या सड़क, दोनों स्टेशन,toll_kmऔरcost_eurहोते हैं। देश के बाकी टोल वाले किमी अब भी प्रति किमी औसत दर से गिने जाते हैं। - वाहन श्रेणी: फ़्रांस: 2 एक्सल के लिए श्रेणी 3 और 3 या अधिक एक्सल के लिए श्रेणी 4। स्पेन: 2 या 3 एक्सल के लिए Pesados 1 और 4 या अधिक एक्सल के लिए Pesados 2।
- इटली: 2 और 3 एक्सल वाले ट्रकों की अब अपनी प्रति किमी दरें हैं।
- Euro और CO2 श्रेणी: फ़्रांस, इटली और स्पेन के टैरिफ़ इन श्रेणियों पर निर्भर नहीं हैं। जब आप
euroयाco2_classभेजते हैं, तो इन देशों के लिएclass_fallbackका मानfalseहोता है औरclass_noteकारण बताता है। - कोई टोल सड़क नहीं: बिना टोल सड़क वाला स्पेन का रूट (उदाहरण: ज़ारागोज़ा – बार्सिलोना) स्पेन को
cost_eur0 औरschemenot_tolledके साथ लौटाता है।
अन्य देश नहीं बदलते। दस्तावेज़: Truck Toll Cost.
नया उत्पाद toll-cost (POST /api/v2/data/toll-cost, JSON बॉडी)। यह यूरोप में किसी रूट का ट्रक टोल खर्च लौटाता है।
- इनपुट: रूट लाइन
coordinatesके रूप में (उदाहरण के लिएtruck-routeकी ज्योमेट्री), याwaypointsजिनका रूट हम अपनी ट्रक रूटिंग से बनाते हैं। - वाहन:
axles,gross_weight_t,euroऔरco2_class। वैकल्पिक: टैरिफ के लिएdateऔर कुल राशि के लिएcurrency। - देश के अनुसार: टोल वाले km, प्रति km प्रभावी EUR दर, खर्च, जिस वाहन वर्ग का मूल्य लगाया गया और टैरिफ की तारीख। किसी विशेष Euro और CO2 वर्ग की दरें वहाँ उपयोग होती हैं जहाँ उस वर्ग का आधिकारिक टैरिफ उपलब्ध है। अन्यथा डिफ़ॉल्ट वर्ग की दर उपयोग होती है और
class_fallbackका मानtrueहोता है। - अलग मदें: मोटरवे के रियायती खंड, और ट्रकों के लिए अपने अलग टोल वाली सुरंगें और पुल (उदाहरण के लिए Calafat-Vidin)।
कोटा: एक अनुरोध route वर्ग की 1 इकाई गिना जाता है, truck-route की तरह।
दस्तावेज़: Truck Toll Cost.
दो नए उत्पाद: /api/v2। कोच यात्रा के लिए ये बताते हैं कि किस तरफ धूप और किस तरफ छाया रहेगी, और छाया या नज़ारे के लिए कौन सी सीटें सबसे अच्छी हैं।
bus-sun-side(/api/v2/data/bus-sun-side), GET: हमारे बस रूट रजिस्टर से एक रूट (route_id,dir,date) या एक मुक्त यात्रा (from,to,depart)।bus-sun-side, POST: अपना रूट स्टॉप की सूची, GeoJSON लाइन या एन्कोडेड पॉलीलाइन के रूप में भेजें। बस के पैरामीटर जोड़ें (पंक्तियाँ, सीट लेआउट, दरवाज़े की तरफ, खिड़कियाँ, डेक) या कैटलॉग से मॉडल चुनें:bus_model।- मौसम: अगले 3 दिनों की यात्राओं के लिए रूट पर घंटेवार पूर्वानुमान उपयोग होता है। बाद की यात्राएँ साफ आसमान के लिए गणना की जाती हैं। हमेशा साफ आसमान का परिणाम पाने के लिए
weather=0भेजें। - चित्र (POST): सीट मैप, रूट मैप और टाइमलाइन PNG, WebP या JPG में URL के रूप में। चित्र 12 घंटे रखे जाते हैं। परिणाम को अपने पेज पर दिखाने के लिए आपको
embed_htmlभी मिलता है। चित्रों के URL इससे शुरू होते हैं:https://api.nakordoni.dev/images/। - एनिमेशन:
animationब्लॉक में हर 5 मिनट पर एक फ्रेम होता है, जिसमें बस की स्थिति, दिशा, सूर्य का दिगंश और ऊँचाई और धूप वाली तरफ होती है, आपकी भाषा में लेबल, हर तरफ का कुल योग और लेजेंड के साथ। इसे हटाने के लिएanimation=0भेजें। - विजेट: परिणाम को किसी भी वेबसाइट पर, WordPress सहित, script टैग या iframe से दिखाएँ। विजेट एक सार्वजनिक कुंजी का उपयोग करता है जो केवल आपके अनुमत ओरिजिन पर काम करती है, और हमारी अपनी मैप टाइलें। एक WordPress प्लगइन (zip) उपलब्ध है।
bus-sun-catalog(/api/v2/data/bus-sun-catalog): वे बस मॉडल जिन्हेंbus-sun-sideस्वीकार करता है, उनके सीट लेआउट और खिड़कियों के साथ।
कोटा: चित्रों वाला POST अनुरोध 2 इकाई गिना जाता है। अन्य सभी अनुरोध 1 इकाई गिने जाते हैं।
दस्तावेज़: Bus Sun Side.
fleet-compliance-validate अब Regulation (EU) 2020/1054 द्वारा संशोधित EU 561/2006 के अधिक हिस्से को कवर करता है। मौजूदा रिस्पॉन्स फ़ील्ड नहीं बदलते; नए फ़ील्ड जोड़े गए हैं।
- Art. 12 अपवाद: ड्राइविंग गतिविधियों को
art12_exceed: trueसे चिह्नित करें। असाधारण मामलों में चालक साप्ताहिक विश्राम के लिए ऑपरेशनल सेंटर या घर पहुँचने हेतु दैनिक और साप्ताहिक ड्राइविंग सीमा से अधिकतम 1 घंटे तक आगे जा सकता है, या जब नियमित साप्ताहिक विश्राम आगे आता हो तब 30 मिनट के ब्रेक के बाद अधिकतम 2 घंटे तक। वैलिडेटर इसे स्वीकार करता है और देय क्षतिपूर्ति तथा उसकी समय-सीमा (उसके बाद के तीसरे सप्ताह का अंत)remaining.driving.art12_compensationऔरexceptions.art12में लौटाता है। - Art. 8(8a) बेस पर वापसी: साप्ताहिक विश्रामों पर
location(residence,operational_centreयाelsewhere) भेजें। जब लगातार 4 सप्ताह तक घर पर या ऑपरेशनल सेंटर पर कोई नियमित साप्ताहिक विश्राम न हो, तो आपको चेतावनी मिलती है। - Art. 8(6a) 12-दिन की छूट: किसी एकल आकस्मिक अंतरराष्ट्रीय कोच सेवा के लिए
passenger_12day: true। तब साप्ताहिक विश्राम नियमित साप्ताहिक विश्राम के बाद बारह 24-घंटे की अवधियों तक आ सकता है। उसके बाद के विश्राम और रात्रि ड्राइविंग (22:00-06:00) की जाँच की जाती है। AETR Art. 8(6)(b) पर भी यही तरीका लागू होता है। - राष्ट्रीय रात्रि अवधि (Directive 2002/15/EC Art. 3(h)): राष्ट्रीय रात्रि अवधि लागू करने के लिए
countryयाwtd.countryका उपयोग करें। सत्यापित: AT, IE (यात्री अलग से) और SE। अन्य EU/EEA देश 00:00-04:00 का उपयोग करते हैं औरnight_window_verified: falseलौटाते हैं। fleet-compliance-limits: AETR अब 2010 के बाद के उन संशोधनों की सूची देता है जिनकी जाँच की गई। वे केवल Article 14 को बदलते हैं, ड्राइविंग या विश्राम के नियमों को नहीं।
दस्तावेज़: Fleet Compliance।
चार नए प्रोडक्ट, जो /api/v2 से उपलब्ध हैं और हमारे अपने अवकाश नियम इंजन द्वारा 51 देशों (यूरोप और खाड़ी देश: SA, AE, QA, KW, BH, OM) के लिए 2020-2035 अवधि हेतु गणना किए गए हैं:
holiday-calendar-holidays(/api/v2/data/holiday-calendar/holidays) — एक वर्ष या तिथि सीमा में अधिकतम 10 देशों के सार्वजनिक, बैंक, क्षेत्रीय, धार्मिक और पर्व-संबंधी अवकाश। प्रत्येक अवकाश बताता है कि वह कार्य-मुक्त दिन है, बैंक अवकाश है या स्कूल की छुट्टियों के भीतर है, क्या सप्ताहांत का अवकाश किसी अन्य दिन स्थानांतरित हुआ, क्या इस्लामी कैलेंडर की तिथि अब भी अनुमानित है, और क्या उस दिन ट्रक चलाने पर प्रतिबंध लागू है (truck_ban)। क्षेत्र (region=DE-BY), प्रकार, भाषा और नाम के आधार पर फ़िल्टर करें;school=1स्कूल की छुट्टियाँ जोड़ता है।holiday-calendar-business-days(/api/v2/data/holiday-calendar/business-days) — दो तिथियों के बीच कार्य दिवस गिनें, कार्य दिवस जोड़ें या घटाएँ, किसी तिथि की जाँच करें, या अगला अथवा पिछला कार्य दिवस खोजें। यह देश के सप्ताहांत (शनिवार-रविवार, या खाड़ी देशों में शुक्रवार-शनिवार व अन्य सप्ताहांत), राष्ट्रीय और क्षेत्रीय अवकाश तथा आदेश द्वारा दिन-स्थानांतरण का उपयोग करता है।holiday-calendar-countries(/api/v2/data/holiday-calendar/countries) — समर्थित देश, उनके सप्ताहांत के दिन, समय क्षेत्र, क्षेत्र और अवकाश प्रकार;country=के साथ प्रति वर्ष कार्य दिवस और अगले पाँच अवकाश भी।holiday-calendar-impact(/api/v2/data/holiday-calendar/impact, Pro प्लान और उससे ऊपर) — मॉडल द्वारा अनुमानित व्यावसायिक प्रभाव: प्रति अवकाश 0-100 प्रभाव स्कोर, दुकान बंद होने की संभावना, मांग श्रेणियाँ, लंबे सप्ताहांत और ब्रिज की स्थिति, तथा मांग-वृद्धि की अवधियाँ।holiday-calendar-holidaysपर Pro और उससे ऊपर के प्लानinclude=impactके साथ यह ब्लॉक भी प्राप्त करते हैं औरmin_impactसे फ़िल्टर कर सकते हैं।
मौजूदा holiday-calendar प्रोडक्ट में कोई बदलाव नहीं है। दस्तावेज़: Holiday Calendar।
ड्राइविंग-समय अनुपालन के लिए तीन नए प्रोडक्ट, जो /api/v2 से उपलब्ध हैं:
fleet-compliance-validate(POST /api/v2/data/fleet/compliance/validate, JSON बॉडी) — दर्ज की गई ड्राइवर गतिविधि को EU 561/2006 या AETR और Directive 2002/15/EC के कार्य समय के विरुद्ध जाँचता है। यह प्रत्येक उल्लंघन को उसके नियम अनुच्छेद और गंभीरता श्रेणी के साथ लौटाता है, साथ ही यह भी कि ड्राइवर के पास अब क्या शेष है: दैनिक ड्राइविंग, रोलिंग 56 घंटे की साप्ताहिक और 90 घंटे की दो-सप्ताह की सीमाएँ, अगला ब्रेक, दैनिक और साप्ताहिक विश्राम। यह विभाजित ब्रेक, घटाए गए और बढ़ाए गए दिन, घटे साप्ताहिक विश्राम की क्षतिपूर्ति, रात्रि कार्य, डबल क्रू तथा फ़ेरी या ट्रेन से बाधित विश्राम को कवर करता है।fleet-compliance-limits(/api/v2/data/fleet/compliance/limits) — EU 561, AETR (561 से इसके अंतरों सहित) और 2002/15 के नियम पैरामीटर, साथ ही Regulation (EU) 2016/403 की गंभीरता श्रेणियाँ।fleet-compliance-plan-check(POST /api/v2/data/fleet/compliance/plan-check, JSON बॉडी) — डिस्पैच से पहले नियोजित शिफ़्टों को यात्रा वाले देशों में ट्रक ड्राइविंग प्रतिबंधों, सार्वजनिक अवकाशों और सप्ताहांत के दिनों के विरुद्ध, तथा EU 561, AETR और 2002/15 नियमों के विरुद्ध जाँचता है। प्रत्येक शिफ़्ट को सबसे जल्दी वैध प्रारंभ समय मिलता है।
दस्तावेज़: Fleet Compliance।
v3 से दैनिक और साप्ताहिक विश्राम के ठहरावों में in_vehicle_allowed, accommodation_required और rule फ़ील्ड हैं (rest_rules=eu561 के साथ route-plan और truck-route)। विनियम (EU) 2020/1054 ने EU 561/2006 के अनुच्छेद 8(8) को बदला: नियमित साप्ताहिक विश्राम और 45 घंटे से अधिक का कोई भी साप्ताहिक विश्राम वाहन में नहीं लिया जा सकता। इन ठहरावों के लिए in_vehicle_allowed = false। घटाया गया साप्ताहिक विश्राम (24 घंटे से 45 घंटे से कम तक) और दैनिक विश्राम सोने की सुविधा वाले खड़े वाहन में लिया जा सकता है।
साप्ताहिक विश्राम के ठहरावों में accommodation[] भी है — ठहराव के पास ऐसी पार्किंग जहाँ कमरे उपलब्ध हैं — और ठहराव की पार्किंग में has_accommodation है। यह केवल जानकारी है: ठहराव, उसका समय और ट्रक पार्किंग नहीं बदलते। यदि कमरों वाला कोई स्थान ज्ञात नहीं है, तो ठहराव में warning = no_accommodation_found होता है। v1 और v2 के उत्तर नहीं बदलते।
/api/v2/data/fuel-stations, /api/v2/data/fuel-cheapest, /api/v2/data/fuel-local और mode=nearest के साथ /api/v2/data/fuel में स्टेशन मूल्यों की अब अधिकतम आयु 90 दिन है। जिस मूल्य की हमने आख़िरी बार 90 दिन से पहले पुष्टि की थी, वह अब नहीं लौटाया जाता। पहले ऐसा मूल्य stale = true के साथ लौटाया जाता था।
उत्तरों में क्या बदलता है: जिस ईंधन प्रकार का केवल पुराना मूल्य है, वह prices में नहीं होता; जिस स्टेशन का कोई मूल्य नहीं बचा, वह सूची में नहीं आता, या जहाँ बिना मूल्य वाले स्टेशन दिखाए जाते हैं वहाँ उसका prices ऑब्जेक्ट खाली होता है; और जहाँ पहले पुराने मूल्य थे, वहाँ उत्तर खाली हो सकता है। खाली उत्तर में पहले की तरह empty_reason होता है। तब fuel-local क्षेत्र या देश स्तर से उत्तर दे सकता है। stale फ़्लैग नहीं बदला है: जब किसी मूल्य की आख़िरी पुष्टि 7 दिन से पहले हुई हो, तब वह true होता है। मूल्य इतिहास रखा जाता है। fuel-cities, fuel-cost, राष्ट्रीय औसत और fuel-grades में कोई व्यावहारिक बदलाव नहीं है। विवरण: मूल्य की आयु।
GET /api/v2/data/route-plan को v2 में विस्तृत ठहराव मॉडल मिलता है (केवल जोड़: कुछ हटाया या नाम नहीं बदला गया) और v3 में नए डिफ़ॉल्ट (/api/v3/data/route-plan) मिलते हैं।
v2, अतिरिक्त। stop_places=1 के साथ हर ठहराव (ब्रेक, भोजन, रात्रि विश्राम, साप्ताहिक विश्राम) में places[] होता है: ठहराव के आसपास ड्राइविंग-समय की खिड़की में उम्मीदवार पार्किंग, हर एक के साथ name, type, country, lat, lon, at_km, at_drive_s, offset_min, off_route_km, detour_km, exceeds_4h30 और type_rank फ़ील्ड। खोज को places_before_min, places_after_min, places_radius_km और rest_radius_km से ट्यून करें; 25 किमी से बड़ा दायरा सीमित कर दिया जाता है और चेतावनी radius_clamped के रूप में बताया जाता है। rest_rules=legacy|eu561 विश्राम मॉडल चुनता है, और eu561 के साथ आप ड्राइवर की स्थिति भेज सकते हैं: driven_since_break_min, driven_today_min, duty_started_min_ago, driven_week_min, driven_fortnight_min, extended_days_used, reduced_rests_used और allow_reduced। नए ठहराव प्रकार: ban_wait (ban के साथ: name, country, from, until) और weekly_rest; जो प्रतीक्षा किसी ब्रेक या विश्राम की जगह लेती है उसे counts_as से चिह्नित किया जाता है। यूक्रेन से निकासी पर इलेक्ट्रॉनिक कतार वाले ट्रक क्रॉसिंग registration_required, registration_wait_minutes, registration_wait_source, registration_wait_at, registration_note और registration_url फ़ील्ड और echerha_registration और echerha_wait_unverified चेतावनियाँ जोड़ते हैं।
v3, नए डिफ़ॉल्ट। rest_rules का डिफ़ॉल्ट eu561 है; स्थानों के नाम सख़्त हैं (केवल वास्तविक पार्किंग और विश्राम क्षेत्र); eCherha द्वारा प्रकाशित प्रतीक्षा समय (ताज़ा डेटा, बिना सीमा) सीमा प्रतीक्षा के रूप में उपयोग होता है, और सीमा प्रतीक्षा देय ब्रेक या विश्राम के रूप में गिनी जाती है। v2 पुराना विश्राम मॉडल और स्थानों का मूल फ़िल्टर बनाए रखता है, इसलिए मौजूदा इंटीग्रेशन नहीं बदलते। विवरण: Route Planner API।
GET /api/v3/data/truck-route अब eCherha की सीमा प्रतीक्षा का उपयोग करता है। v3 में यूक्रेन से निकासी की इलेक्ट्रॉनिक कतार वाली ट्रक लेनों के लिए border_crossings[] wait_min को eCherha के प्रकाशित प्रतीक्षा समय से लेते हैं (केवल ताज़ा डेटा, बिना सीमा; पुराना होने पर wait_min का मान null होता है और चेतावनी echerha_wait_unverified जुड़ती है) और registration_required, registration_wait_minutes, registration_wait_source, registration_wait_at, registration_note और registration_url फ़ील्ड रखते हैं, चेतावनी echerha_registration के साथ।
विश्राम योजना सीमा प्रतीक्षा को सीमा पर बिताए समय के रूप में मानती है: लंबी कतार देय ब्रेक, दैनिक या साप्ताहिक विश्राम के रूप में गिनी जाती है (waits[] पंक्ति में counts_as), ऊपर से नहीं जोड़ी जाती। v2 अपरिवर्तित है। विवरण: Truck Route API।
जब /api/v2/data/fuel-stations या /api/v2/data/fuel-cheapest को कोई स्टेशन नहीं मिलता, तब भी उत्तर खाली सूची के साथ HTTP 200 होता है, और अब वह कारण भी बताता है। केवल खाली उत्तर में data में empty_reason (no_station_in_radius, no_price_for_fuel_type, fuel_type_not_priced_in_country, unknown_fuel_type या no_fresh_price_in_radius), nearest_station_km (आपके ग्रेड वाला सबसे नज़दीकी स्टेशन, खोज nearest_search_km = 50 km तक; न मिलने पर null), country और suggestion होते हैं — आपके lang में एक छोटा वाक्य, उदाहरण के लिए: 5 km के भीतर कोई स्टेशन नहीं — सबसे नज़दीकी 6.4 km दूर है; radius_km=10 आज़माएं।
अपना कोड empty_reason और nearest_station_km के आधार पर शाखित करें। suggestion लोगों के लिए सलाह है और इसका शब्दांकन बदल सकता है। हम आपके लिए त्रिज्या कभी नहीं बढ़ाते। यदि आप किसी क्षेत्र या मार्ग का ग्रिड पर नमूना लेते हैं, तो radius_km 10–15 उपयोग करें। जिन उत्तरों में स्टेशन हैं, वे अपरिवर्तित हैं। विवरण: खाली उत्तर।
खोज त्रिज्या। /api/v2/data/fuel-stations पर radius_km अब एक दशमलव स्थान बनाए रखता है। 4.8 जैसी त्रिज्या पहले बिना सूचना के 4 कर दी जाती थी, इसलिए हर खोज अनुरोध से एक-तिहाई तक कम क्षेत्र कवर करती थी और कम स्टेशन या कोई नहीं लौटा सकती थी। anchor.radius_km वास्तव में लागू की गई त्रिज्या दिखाता है; पूर्णांक पहले की तरह लौटाए जाते हैं।
ब्रांड नाम। एक ही ब्रांड अब brand में हमेशा एक ही तरह लिखा जाता है — उदाहरण के लिए ORLEN और orlen Orlen के रूप में लौटते हैं, और CircleK Circle K के रूप में। स्टेशन, कीमतें, आईडी और फ़ील्ड अपरिवर्तित हैं। यदि आप ब्रांड का मिलान सटीक वर्तनी से करते हैं (लोगो या फ़िल्टर के लिए), तो कृपया अपनी सूची को नए नामों से जांच लें।
GET /api/v2/data/truck-route एक नया वैकल्पिक पैरामीटर traffic स्वीकार करता है। यह तय करता है कि ETA, विश्राम योजना, सीमा पर पहुंचने के समय और ट्रक प्रतिबंधों के समय के लिए ट्रैफ़िक को कैसे ध्यान में रखा जाए:
forecast(डिफ़ॉल्ट): ट्रक जिस घंटे हर हिस्से से गुज़रता है उस समय की आवर्ती भीड़, पहुंचने के समय के साथ घटती वर्तमान भीड़, मार्ग पर सड़क कार्य और बंद मार्ग, और जहां उपलब्ध हो वहां मौसम। उत्तर मेंtraffic_forecastब्लॉक होता है, जिसमें देरी कारण के अनुसार बंटी होती है।live: केवल वर्तमान ट्रैफ़िक, आवर्ती भीड़ के बिना।off: कोई ट्रैफ़िक समायोजन नहीं; समय निर्बाध प्रवाह में ट्रक इंजन द्वारा गणना किए गए समय हैं। तबtraffic_forecastमें केवलmodelऔरmodeहोते हैं।
कोई भी अन्य मान 400 bad_request लौटाता है, संदेश: Invalid traffic: forecast, live or off। पैरामीटर के बिना अनुरोधों को डिफ़ॉल्ट, यानी forecast मिलता है।
पूर्वानुमानित पहुंच समय पर ट्रक प्रतिबंध: forecast या live के साथ, truck_bans[].active का आकलन अब उस समय पर होता है जब ट्रक के हर प्रतिबंध तक पहुंचने का पूर्वानुमान है (depart_at से, या यदि आप न भेजें तो अभी से), उस प्रतिबंध के लिए किसी भी प्रतीक्षा से पहले। नया फ़ील्ड truck_bans[].active_at वह समय देता है जिस पर आकलन हुआ, प्रतिबंध वाले देश के स्थानीय समय में। bans_summary, restriction_hits और legal इन्हीं निष्कर्षों का पालन करते हैं, और जिस प्रतिबंध से पूर्वानुमानित देरी के कारण नया सामना होता है (उदाहरण के लिए अगले दिन या किसी दूसरे देश में) वह भी truck_bans में सूचीबद्ध होता है। traffic=off के साथ, active का आकलन निर्बाध प्रवाह की समयरेखा पर होता है और active_at eta_at_ban के बराबर होता है।
नया उत्पाद: Truck Route API (GET /api/v2/data/truck-route, केवल v2)। एक कॉल ट्रक के लिए वैध रूट और रास्ते में डिस्पैचर को जो कुछ चाहिए, वह सब लौटाती है। रूट की गणना हमारे TruckTurn ट्रक नेविगेशन ऐप वाले ही रूटिंग कोर से, हमारे अपने मैप डेटा पर की जाती है।
- वाहन:
height,width,length,weight,axle_load,axles,trailers,emission_class,hazmat(ADR श्रेणियाँ) औरadr_tunnel(B–E)। ट्रक चलाने पर प्रतिबंध और प्रतिबंधित क्षेत्र लौटाई गई रेखा पर जाँचे जाते हैं। - रूट के साथ: वर्तमान कीमतों वाले ईंधन स्टेशन, ट्रक पार्किंग और वेइंग स्टेशन, प्रत्येक के साथ
km_from_startऔर चक्कर। - EU रेगुलेशन 561/2006 के अंतर्गत ड्राइवर की विश्राम योजना: ब्रेक (विभाजित 15+30 सहित), दैनिक और साप्ताहिक विश्राम (घटाए गए सहित), एकल या दो-ड्राइवर क्रू (
crew=2), यदि आप ड्राइवर की वर्तमान स्थिति देते हैं तो उसी से शुरू होकर। हर पड़ाव रास्ते में एक वास्तविक पार्किंग पर रखा जाता है। यह एक नियोजन सहायता है, टैकोग्राफ़ रिकॉर्ड नहीं। - ETA जिसमें विश्राम, ट्रक चलाने पर प्रतिबंध और सीमा पर प्रतीक्षा शामिल हैं।
depart_atयाarrive_atके अनुसार योजना बनाएँ। - देश-वार टोल लागत अनुमान (EUR, एक्सल और उत्सर्जन श्रेणी के अनुसार), जिन देशों की दरें उपलब्ध नहीं हैं उन्हें
tolls.coverage_noteमें सूचीबद्ध किया जाता है। साथ हीavoid(टोल, फ़ेरी, मोटरवे, सीमाएँ, सुरंगें, कच्ची सड़कें, कम-उत्सर्जन क्षेत्र), 2 तक विकल्प, देश-वार विभाजन, औरgeometrypolyline5, polyline6 या GeoJSON के रूप में।
कोटा: truck-route के लिए अलग सीमा: हर खाते पर प्रतिदिन 10 कॉल, सशुल्क योजनाओं पर अधिक, और एक अतिरिक्त truck-route कॉल ऐड-ऑन। सैंडबॉक्स में आप प्रतिदिन 10 ट्रक रूट चला सकते हैं, पूरी रूट योजना के साथ परिणाम मैप पर देख सकते हैं, और उसे GPX, KML, GeoJSON, CSV, कैलेंडर (.ics) या ITN के रूप में निर्यात कर सकते हैं। उत्पाद पृष्ठ और संदर्भ देखें।
API नियमों के अनुसार, Market वह देश है जिसका डेटा आप उपयोग करते हैं, और आपकी key आपके खाते के लिए स्वीकृत देशों को कवर करती है। अब तक, निर्देशांक आधारित उत्पाद (lat/lon — जैसे Nearby Shops, Truck Parkings, Fuel Stations) यूरोप के किसी भी बिंदु के लिए जवाब देते थे। 13 अक्टूबर 2026 से, यह आपके अनुरोध की प्रोसेसिंग के समय जांचा जाएगा:
- ऐसा अनुरोध जिसका
lat/lonकिसी ऐसे देश में स्थित हो जो आपके खाते के लिए स्वीकृत नहीं है, 403 लौटाता है, जिसमेंerror.codemarket_not_allowedहोता है। संदेश में देश का नाम और आपकी स्वीकृत सूची बताई जाती है। - जब त्रिज्या (radius) किसी सीमा को पार करती है, तो ऐसे परिणाम जिनका
country_codeआपके स्वीकृत देशों से बाहर है, हटा दिए जाते हैं। तब प्रतिक्रिया मेंmarkets_filtered(कितने हटाए गए) औरmarkets_noticeशामिल होते हैं, औरtotal_foundकेवल प्राप्त परिणामों की गिनती करता है।
यह उन खातों पर लागू होता है जिनके देशों की समीक्षा की जा चुकी है (स्थिति approved या partial)। अनुरोध में कुछ भी नहीं बदलता — कोई नया पैरामीटर नहीं, कोई नया वर्शन नहीं। यदि आपके ऐप को किसी अन्य देश की आवश्यकता है, तो 13 अक्टूबर से पहले डेवलपर पोर्टल में उसे जोड़ें। market_not_allowed को संदर्भ में अन्य त्रुटि कोड के साथ सूचीबद्ध किया गया है।
एक ही ईमेल से Nakordoni Partners खाते से जुड़े डेवलपर खाते अब partners.nakordoni.eu से समाचार सबमिट कर सकते हैं और अपने NakBus फ्लीट (NakDriver / NakManager) को प्रबंधित कर सकते हैं, टीम भूमिकाओं (Owner, Manager, Viewer) और दोनों पोर्टल के बीच एक-क्लिक साइन-इन के साथ। डेवलपर पोर्टल के पेज, API कुंजियाँ, फ्लीट एंडपॉइंट और ऐप्स अपरिवर्तित रहते हैं।
Fuel Prices में updated_at और प्रतिक्रिया का अपना age_hours/stale फ़्लैग अलग-अलग घड़ियों पर चल रहे थे: updated_at केवल तब बदलता है जब कीमत सचमुच बदलती है, लेकिन पुरानेपन की गणना ऐसे की जाती थी मानो वह हर पुष्टि पर बदलता हो। कीमत वाले इंडेक्स के 46.7% में age_hours ≤48 और stale:false दिख रहा था, जबकि updated_at वास्तव में 48 घंटे से अधिक पुराना था; 12,620 स्टेशन एक सप्ताह से अधिक पुराने थे। अब हर कीमत के साथ confirmed_at भी आता है — वह अंतिम समय जब हमने कीमत की पुष्टि की, घंटे तक पूर्णांकित, updated_at से कभी पहले का नहीं — और age_hours/stale उसी से गणना किए जाते हैं। updated_at का अर्थ नहीं बदला है: कीमत आख़िरी बार कब बदली, यह जानना हो तो उसका उपयोग करें; अभी वह कितनी ताज़ा है, यह जानना हो तो confirmed_at का उपयोग करें। फ़्रीज़ किए गए v1 अनुबंध में उपलब्ध नहीं।
दो भाषा बग, दोनों चुपचाप: कैनोनिकल ग्रेड कोड को lang=pl (या साइट की अन्य 24 भाषाओं में से किसी एक) के साथ भेजने पर भी fuel_type_local अंग्रेज़ी में ही लौटता था — लेबल तालिका में केवल 10 भाषाओं की जाँच होती थी, इसलिए उस सूची से बाहर की हर भाषा आपकी माँगी गई भाषा के बजाय डिफ़ॉल्ट UI शब्दावली पर चली जाती थी। अलग से, lang=tr (या कुछ अन्य मान्य कोड) स्टेशन सूचियाँ यूक्रेनी में लौटाता था, क्योंकि जब भी अनुरोधित भाषा उसी 10-भाषा सूची में नहीं होती थी, आंतरिक डिफ़ॉल्ट uk लागू हो जाता था। दोनों ठीक कर दिए गए हैं: आप जो भाषा भेजते हैं, अब वही भाषा मिलती है, सभी 25 में।
साथ ही: Nearby Fuel Stations में brand अब उन लगभग 330 स्टेशनों के लिए कच्चा इनजेस्ट सेंटिनल OTHER नहीं लौटाता जिनका ब्रांड हमें ज्ञात नहीं — वह null है, जो प्रतिक्रिया के अन्य सभी अज्ञात फ़ील्ड के अनुरूप है।
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 — prognosed wait time (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 परिवर्तनों को कवर करता है। आंतरिक अपडेट सूचीबद्ध नहीं हैं।
अपडेट किया गया