API Değişiklik Günlüğü
API'deki tüm önemli değişiklikler. En yeniler önce. v1 kararlılığı — yeni sürüm olmadan Breaking changes yok.
toll-cost ürünü artık otomobillerin ücretini de hesaplıyor. "vehicle": {"class": "car"} gönderin.
- Otomobil sınıfı: rotadaki gişeleri ve vinyet uygulayan her ülkenin en ucuz vinyetini hesaplarız (örneğin AT ve HU 1 günlük vinyetleri). Ara noktalar varsa otomobil rotası hesaplarız.
- Yanıt:
by_country[]içindecost_eur,gates_eur,vignette_eurvevignette_namedöner. Ücret alınan her gişegatetüründe bir öğedir. Otomobillerdetoll_kmdeğerinullolur. - Varsayılan:
classyoksa veya"class": "hgv"ise ürün kamyonları eskisi gibi hesaplar. Otomobiller içinaxles,gross_weight_t,euroveco2_classkullanılmaz.
Belgeler: Truck Toll Cost.
v3 sürümü, truck-route için artık belgelenmiştir. GET https://api.nakordoni.dev/v3/truck-route adresinden ve GET /api/v3/data/truck-route adresinden erişilebilir. v2 ile aynı istek parametrelerini alır. Ayrıca 2026-10-22 tarihinden itibaren v3 yanıt alanlarını da içerir: dinlenme durağı kuralları ve eCherha sınır bekleme süresi.
- Rota önce özel yönlendirme sunucumuzda hesaplanır. Bu sunucu zamanında yanıt vermezse rotayı ana sunucumuz hesaplar. Yanıt biçimi aynıdır.
- Yanıt başlığı
X-Route-Source, hangi sunucunun yanıt verdiğini belirtir:primaryveyafallback. - v2 ile aynı API anahtarı ve aynı kota sınıfı geçerlidir:
route, çağrı başına 1 birim.
v2 desteklenmeye devam eder ve değişmez. v3 sürümüne geçmek için istek URL'nizdeki sürümü değiştirin.
Belgeler: Truck Route API v3.
v4: plate-recognition (POST /api/v4/data/plate-recognition) uç noktasının sürümü yeni isteğe bağlı istek seçeneklerini kabul eder. Bunlar olmadan v4 çıktısı değişmez.
regions: beklediğiniz ülkeler, ISO kodlarıyla (örneğin["PL","DE"]). Ülke tahmini ve okumaların sırası bu ülkelere doğru yönelir.camera_idvetimestamp: değiştirilmeden şurada döndürülür:data.camera_idvedata.timestamp. Normal istek günlüğü dışında saklanmazlar.config.threshold: skoru bu değerin altında olan sonuçlar dışarıda bırakılır.config.mode:fastaraç algılamayı atlar, v2'ye yakın hız için.regionyine doldurulur vevehicledeğerinullolur.
Seçenekleri JSON gövdesinde, multipart alanları olarak veya sorgu parametreleri olarak gönderin. Yeni 400 hata kodları: bad_regions, bad_camera_id, bad_timestamp, bad_config, bad_threshold, bad_mode. v2 değişmez ve seçenekleri yok sayar.
Belgeler: Plate Image Recognition v4.
Yeni sürüm v4: plate-recognition (POST /api/v4/data/plate-recognition). v2'nin her zaman null döndürdüğü iki alanı doldurur:
results[].region: plakanın ISO ülke kodunu içeren{code, score}(örneğinUA), plaka biçiminden okunur. Birden fazla ülke aynı biçimi kullandığında skor düşüktür.results[].vehicle: plakayı taşıyan aracın{type, score, box}bilgisi.typedeğericar,bus,truckveyamotorcycleolur.
İstek, diğer alanlar ve hata kodları değişmez. v4, araç tespiti nedeniyle v2'den daha uzun sürer (görüntü başına genellikle 0.5-1.5 s). v2 değişmez ve her iki alan için de null döndürmeye devam eder.
Belgeler: Plate Image Recognition v4.
Yeni ürün plate-recognition (POST /api/v2/data/plate-recognition). Bir aracın fotoğrafındaki plakaları okur. Motor, Avrupa kamyon ve otobüsleri üzerinde ayarlanmış kendi plaka dedektörümüz ve okuyucumuzdur.
- Girdi: tek bir görüntü (JPEG, PNG, WebP, BMP veya TIFF, en fazla 8 MB) JSON olarak
image_urlveyaimage_base64, şu alanda multipart yükleme olarakimage, ya da ham bayt olarakimage/*Content-Type ile. - Çıktı:
results[]şunlarla:plate,score,candidates[],region,box,dscorevevehicle, ayrıcaprocessing_timems cinsinden. - Hatalar: 400 görüntü yok veya geçersiz, 404
no_plate_detected, 413 görüntü 8 MB'tan büyük, 500engine_error. - Gizlilik: görüntüler bellekte işlenir ve asla saklanmaz.
image_urlherkese açık bir adres olmalıdır; özel ve dahili adresler ile bunlara yönlendirmeler reddedilir.
Standart anahtar kimlik doğrulaması, kota sınıfı heavy. Şu sürümden itibaren: /api/v2/; mevcut hiçbir endpoint değişmedi.
Yeni ürün lane-cost-index (GET /api/v2/data/lane-cost-index). Avrupa'da A'dan B'ye yüklü bir tır seferinin maliyet endeksini döndürür: yakıt, otoyol ücretleri, sürücü süresi ve harcırah.
- Girdi:
fromveto"lat,lng" ya da şehir kimliği olarak,vehicle(örneğinartic_40t), isteğe bağlıeuro,co2_classveempty_return. - Ülkeye göre: km, otoyol ücreti, dizel litresi ve yakıt maliyeti (KDV hariç) ile ücrette kullanılan araç sınıfı.
- Sürücü süresi: sürüş, molalar ve dinlenmeler AB 561/2006 kurallarına uyar. Sürücü maliyeti ve harcırah çıkış ülkesinin oranını kullanır. İspanya ve İtalya artık toplu iş sözleşmelerinden bir sürücü oranına ve harcıraha sahip.
- Trend:
trendiçinde bulunulan ay ile önceki iki ayın maliyet endeksini verir. - Eksik veri: güzergâhtaki bir ülkenin otoyol ücreti veya yakıt verisi yoksa ya da çıkış ülkesinin kayıtlı bir sürücü oranı yoksa
incompletedeğeritrueolur ve toplam bir alt sınırdır.missing_countriesvemissing_componentsneyin eksik olduğunu gösterir.
Bu bir maliyet endeksidir, navlun fiyatı değildir: araç sermayesi, sigorta, genel giderler ve kâr marjı dahil değildir.
Kota: bir istek, truck-route ile aynı şekilde route sınıfından 1 birim sayılır.
Belgeler: Lane Cost Index.
toll-cost ürünü Fransa, İspanya ve İtalya'yı artık daha doğru hesaplıyor.
- Fransa ve İspanya: rotadaki iki gişe arasındaki otoyol kesimi, otoyol işletmecisinin giriş/çıkış tarifesiyle hesaplanır. Yeni bir öğe türü olarak gösterilir:
motorway_section; işletmeci veya yol, iki gişe,toll_kmvecost_eurile. Ülkenin diğer ücretli km'leri yine km başına ortalamayı kullanır. - Araç sınıfı: Fransa: 2 dingil için sınıf 3, 3 veya daha fazla dingil için sınıf 4. İspanya: 2 veya 3 dingil için Pesados 1, 4 veya daha fazla dingil için Pesados 2.
- İtalya: 2 ve 3 dingilli kamyonların artık kendi km ücretleri var.
- Euro ve CO2 sınıfı: Fransa, İtalya ve İspanya tarifeleri bu sınıflara bağlı değildir.
euroveyaco2_classgönderdiğinizde bu ülkeler içinclass_fallbackdeğerifalseolur veclass_notenedenini belirtir. - Ücretli yol yok: ücretli yol içermeyen bir İspanya rotası (örneğin Zaragoza – Barselona) İspanya'yı
cost_eur0 veschemenot_tolledile döndürür.
Diğer ülkeler değişmez. Belgeler: Truck Toll Cost.
Yeni ürün toll-cost (POST /api/v2/data/toll-cost, JSON gövdesi). Avrupa'daki bir rotanın kamyon geçiş ücreti tutarını döndürür.
- Girdi:
coordinatesolarak rota çizgisi (örneğintruck-routegeometrisi) veya kamyon rotalamamızla rota hesapladığımızwaypoints. - Araç:
axles,gross_weight_t,euroveco2_class. İsteğe bağlı olarak tarifeler içindateve toplam içincurrency. - Ülkelere göre: ücretli km, km başına etkin EUR ücreti, maliyet, ücretlendirilen araç sınıfı ve tarife tarihi. Belirli Euro ve CO2 sınıfı ücretleri, o sınıf için resmi tarife bulunan yerlerde kullanılır. Aksi halde varsayılan sınıf ücreti kullanılır ve
class_fallbackdeğeritrueolur. - Ayrı kalemler: imtiyazlı otoyol kesimleri ile kamyonlar için kendi geçiş ücreti olan tüneller ve köprüler (örneğin Calafat-Vidin).
Kota: bir istek, truck-route ile aynı şekilde route sınıfının 1 birimi sayılır.
Belgeler: Truck Toll Cost.
İki yeni ürün: /api/v2. Bir otobüs yolculuğu için hangi tarafın güneş, hangi tarafın gölge alacağını ve gölge ya da manzara için en iyi koltukları gösterirler.
bus-sun-side(/api/v2/data/bus-sun-side), GET: otobüs hattı kaydımızdan bir güzergah (route_id,dir,date) veya serbest bir yolculuk (from,to,depart).bus-sun-side, POST: kendi güzergahınızı durak listesi, GeoJSON çizgisi veya kodlanmış polyline olarak gönderin. Otobüs parametrelerini ekleyin (sıralar, koltuk düzeni, kapı tarafı, camlar, kat) veya katalogdan bir modeli şununla seçin:bus_model.- Hava durumu: önümüzdeki 3 gün içindeki yolculuklar için güzergah boyunca saatlik tahmin kullanılır. Daha sonraki yolculuklar açık hava için hesaplanır. Her zaman açık hava sonucunu almak için
weather=0gönderin. - Görseller (POST): koltuk planı, güzergah haritası ve zaman çizelgesi PNG, WebP veya JPG biçiminde URL olarak. Görseller 12 saat saklanır. Sonucu sayfanıza yerleştirmek için
embed_htmlde alırsınız. Görsel URL'leri şununla başlar:https://api.nakordoni.dev/images/. - Animasyon:
animationbloğu her 5 dakikada bir kare içerir: otobüsün konumu, yönü, güneşin azimutu ve yüksekliği ve güneşli taraf; dilinizde etiketler, taraf toplamları ve bir açıklama ile. Bunu çıkarmak içinanimation=0gönderin. - Widget: sonucu WordPress dahil her web sitesinde bir script etiketi veya iframe ile gösterin. Widget yalnızca izin verdiğiniz kaynaklarda (origins) çalışan bir yayınlanabilir anahtar ve kendi harita karolarımızı kullanır. Bir WordPress eklentisi (zip) mevcuttur.
bus-sun-catalog(/api/v2/data/bus-sun-catalog):bus-sun-sidetarafından kabul edilen otobüs modelleri, koltuk düzeni ve camlarıyla.
Kota: görselli bir POST isteği 2 birim sayılır. Diğer tüm istekler 1 birim sayılır.
Belgeler: Bus Sun Side.
fleet-compliance-validate artık (AB) 2020/1054 sayılı Tüzük ile değiştirilen AB 561/2006 sayılı Tüzüğün daha büyük bir bölümünü kapsıyor. Mevcut yanıt alanları değişmiyor; yeni alanlar ekleniyor.
- Md. 12 istisnası: Sürüş faaliyetlerini
art12_exceed: trueile işaretleyin. Olağanüstü durumlarda sürücü, haftalık dinlenme için operasyon merkezine veya eve ulaşmak amacıyla günlük ve haftalık sürüş sınırlarını en fazla 1 saat, ya da ardından düzenli bir haftalık dinlenme geliyorsa 30 dk moladan sonra en fazla 2 saat aşabilir. Doğrulayıcı bunu kabul eder ve borçlu olunan telafiyi ile son tarihini (sonraki üçüncü haftanın sonu)remaining.driving.art12_compensationveexceptions.art12içinde döndürür. - Md. 8(8a) üsse dönüş: Haftalık dinlenmelerde
locationalanını (residence,operational_centreveyaelsewhere) gönderin. Art arda 4 hafta boyunca evde veya operasyon merkezinde düzenli haftalık dinlenme yoksa uyarı alırsınız. - Md. 8(6a) 12 günlük istisna: Tek seferlik arızi uluslararası yolcu otobüsü hizmeti için
passenger_12day: true. Haftalık dinlenme bu durumda düzenli bir haftalık dinlenmeden sonra on iki adet 24 saatlik döneme kadar gelebilir. Sonraki dinlenmeler ve gece sürüşü (22:00-06:00) kontrol edilir. AETR Md. 8(6)(b) aynı şekilde uygulanır. - Ulusal gece pencereleri (2002/15/AT Direktifi Md. 3(h)): Ulusal gece dönemini uygulamak için
countryveyawtd.countrykullanın. Doğrulananlar: AT, IE (yolcular ayrı) ve SE. Diğer AB/AEA ülkeleri 00:00-04:00 kullanır venight_window_verified: falsedöndürür. fleet-compliance-limits: AETR artık 2010 sonrasında kontrol edilen değişiklikleri listeliyor. Bunlar yalnızca 14. maddeyi değiştirir, sürüş veya dinlenme kurallarını değiştirmez.
Belgeler: Fleet Compliance.
/api/v2 üzerinden sunulan ve 51 ülke (Avrupa ve Körfez: SA, AE, QA, KW, BH, OM) için 2020-2035 yılları arasında kendi tatil kuralı motorumuzla hesaplanan dört yeni ürün:
holiday-calendar-holidays(/api/v2/data/holiday-calendar/holidays) — bir yıl veya tarih aralığında en fazla 10 ülke için resmi, banka, bölgesel, dini tatiller ve anma günleri. Her tatil; izin günü olup olmadığını, banka tatili olup olmadığını veya okul tatillerinin içinde yer alıp almadığını, hafta sonuna denk gelen bir tatilin başka bir güne kaydırılıp kaydırılmadığını, bir İslami takvim tarihinin hâlâ tahmini olup olmadığını ve o gün kamyon sürüş yasağı uygulanıp uygulanmadığını (truck_ban) belirtir. Bölgeye (region=DE-BY), türe, dile ve ada göre filtreleyin;school=1okul tatillerini ekler.holiday-calendar-business-days(/api/v2/data/holiday-calendar/business-days) — iki tarih arasındaki iş günlerini sayar, iş günü ekler veya çıkarır, bir tarihi test eder ya da sonraki veya önceki iş gününü bulur. Ülkenin hafta sonunu (Cumartesi-Pazar veya Körfez'de Cuma-Cumartesi ve diğer hafta sonları), ulusal ve bölgesel izin günlerini ve kararname ile yapılan gün kaydırmalarını kullanır.holiday-calendar-countries(/api/v2/data/holiday-calendar/countries) — kapsanan ülkeler; hafta sonu günleri, saat dilimi, bölgeler ve tatil türleriyle birlikte;country=ile ayrıca yıllık iş günleri ve sonraki beş tatil.holiday-calendar-impact(/api/v2/data/holiday-calendar/impact, Pro plan ve üzeri) — model tahminli ticari etki: tatil başına 0-100 arası etki puanı, mağaza kapanma olasılığı, talep kategorileri, uzun hafta sonu ve köprü gün konumu ile talep artışı pencereleri.holiday-calendar-holidaysüzerinde, Pro ve üzeri planlar bu bloğuinclude=impactile de alır vemin_impactile filtreleyebilir.
Mevcut holiday-calendar ürünü değişmez. Dokümantasyon: Holiday Calendar.
Sürüş süresi uyumluluğu için /api/v2 üzerinden sunulan üç yeni ürün:
fleet-compliance-validate(POST /api/v2/data/fleet/compliance/validate, JSON gövdesi) — kaydedilen sürücü faaliyetini EU 561/2006 veya AETR ile Directive 2002/15/EC çalışma süresi kurallarına göre kontrol eder. Her ihlali ilgili kural maddesi ve ciddiyet bandıyla birlikte döndürür; ayrıca sürücünün şu anda kalan haklarını bildirir: günlük sürüş, kayan 56 saatlik haftalık ve 90 saatlik iki haftalık limitler, bir sonraki mola, günlük ve haftalık dinlenme. Bölünmüş molaları, kısaltılmış ve uzatılmış günleri, kısaltılmış haftalık dinlenme telafisini, gece çalışmasını, çift sürücülü mürettebatı ve feribot veya tren nedeniyle kesintiye uğrayan dinlenmeyi kapsar.fleet-compliance-limits(/api/v2/data/fleet/compliance/limits) — EU 561, AETR (561'den farklarıyla birlikte) ve 2002/15 için kural parametreleri ile Regulation (EU) 2016/403 ciddiyet bantları.fleet-compliance-plan-check(POST /api/v2/data/fleet/compliance/plan-check, JSON gövdesi) — planlanan vardiyaları sevkiyattan önce, seyahatin geçtiği ülkelerdeki kamyon sürüş yasaklarına, resmi tatillere ve hafta sonu günlerine karşı ve ayrıca EU 561, AETR ve 2002/15 kurallarına göre kontrol eder. Her vardiya için yasal olarak mümkün en erken başlangıç saati verilir.
Dokümantasyon: Fleet Compliance.
v3'ten itibaren günlük ve haftalık dinlenme durakları in_vehicle_allowed, accommodation_required ve rule alanlarına sahiptir (rest_rules=eu561 ile route-plan ve truck-route). (AB) 2020/1054 sayılı Tüzük, EU 561/2006 Madde 8(8)'i değiştirdi: düzenli haftalık dinlenme ve 45 saatten uzun her haftalık dinlenme araçta geçirilemez. Bu duraklar için in_vehicle_allowed = false. Azaltılmış haftalık dinlenme (24 saatten 45 saatten aza kadar) ve günlük dinlenme, uyku yeri olan duran bir araçta geçirilebilir.
Haftalık dinlenme duraklarında ayrıca accommodation[] bulunur — durağın yakınında, yerinde odası olan otoparklar — ve durağın otoparkında has_accommodation bulunur. Bu yalnızca bilgidir: durak, saati ve kamyon otoparkı değişmez. Odalı bir yer bilinmiyorsa durakta warning = no_accommodation_found bulunur. v1 ve v2 yanıtları değişmez.
/api/v2/data/fuel-stations, /api/v2/data/fuel-cheapest, /api/v2/data/fuel-local ve mode=nearest ile /api/v2/data/fuel içindeki istasyon fiyatlarının artık en fazla 90 günlük bir yaşı var. En son 90 günden daha önce doğruladığımız bir fiyat artık döndürülmüyor. Önceden böyle bir fiyat stale = true ile döndürülüyordu.
Yanıtlarda ne değişiyor: yalnızca daha eski bir fiyatı olan yakıt türü prices içinde yer almıyor; hiç fiyatı kalmayan bir istasyon listelenmiyor veya fiyatsız istasyonların gösterildiği yerde boş bir prices nesnesine sahip oluyor; ve daha önce eski fiyatlar listelenen yerde yanıt boş olabiliyor. Boş bir yanıt her zamanki gibi empty_reason içeriyor. fuel-local bu durumda bölge veya ülke seviyesinden yanıt verebilir. stale bayrağı değişmedi: bir fiyat en son 7 günden daha önce doğrulandıysa true olur. Fiyat geçmişi saklanıyor. fuel-cities, fuel-cost, ulusal ortalamalar ve fuel-grades için pratik bir değişiklik yok. Ayrıntılar: Fiyat yaşı.
GET /api/v2/data/route-plan, v2'de genişletilmiş bir durak modeli (yalnızca eklemeler: hiçbir şey kaldırılmadı veya yeniden adlandırılmadı) ve v3'te yeni varsayılanlar (/api/v3/data/route-plan) alır.
v2, ek. stop_places=1 ile her durak (mola, yemek, konaklama, haftalık dinlenme) places[] içerir: durağın çevresindeki sürüş süresi penceresinde aday otoparklar; her biri şu alanlarla gelir: name, type, country, lat, lon, at_km, at_drive_s, offset_min, off_route_km, detour_km, exceeds_4h30 ve type_rank. Aramayı places_before_min, places_after_min, places_radius_km ve rest_radius_km ile ayarlayabilirsiniz; 25 km üzerindeki yarıçap sınırlanır ve radius_clamped uyarısıyla bildirilir. rest_rules=legacy|eu561 dinlenme modelini seçer, eu561 ile de sürücü durumunuzu gönderebilirsiniz: driven_since_break_min, driven_today_min, duty_started_min_ago, driven_week_min, driven_fortnight_min, extended_days_used, reduced_rests_used ve allow_reduced. Yeni durak türleri: ban_wait (ban ile: name, country, from, until) ve weekly_rest; molanın veya dinlenmenin yerine geçen bekleme counts_as ile işaretlenir. Ukrayna çıkışındaki elektronik kuyruklu kamyon geçişleri registration_required, registration_wait_minutes, registration_wait_source, registration_wait_at, registration_note ve registration_url alanlarını ve echerha_registration ve echerha_wait_unverified uyarılarını ekler.
v3, yeni varsayılanlar. rest_rules varsayılan olarak eu561 olur; yer adları katıdır (yalnızca gerçek otoparklar ve dinlenme alanları); eCherha'nın yayımladığı bekleme süresi (taze veri, sınırsız) sınır beklemesi olarak kullanılır ve sınır beklemesi, vadesi gelen mola veya dinlenme sayılır. v2 eski dinlenme modelini ve özgün yer filtresini korur; mevcut entegrasyonlar değişmez. Ayrıntılar: Route Planner API.
GET /api/v3/data/truck-route artık eCherha sınır bekleme süresini kullanıyor. v3'te Ukrayna çıkışındaki elektronik kuyruklu kamyon şeritleri için border_crossings[], wait_min değerini eCherha'nın yayımladığı bekleme süresinden alır (yalnızca taze veri, sınırsız; veri eskiyse wait_min değeri null olur ve echerha_wait_unverified uyarısı eklenir) ve registration_required, registration_wait_minutes, registration_wait_source, registration_wait_at, registration_note ve registration_url alanlarını taşır, ayrıca echerha_registration uyarısı verilir.
Dinlenme planı sınır beklemesini sınırda geçirilen süre olarak ele alır: uzun bir kuyruk, vadesi gelen mola, günlük veya haftalık dinlenme sayılır (waits[] satırında counts_as); üstüne eklenmez. v2 değişmedi. Ayrıntılar: Truck Route API.
/api/v2/data/fuel-stations veya /api/v2/data/fuel-cheapest hiçbir istasyon bulamadığında yanıt yine boş bir listeyle HTTP 200 olur ve artık nedenini belirtir. Yalnızca boş yanıtta data şunları içerir: empty_reason (no_station_in_radius, no_price_for_fuel_type, fuel_type_not_priced_in_country, unknown_fuel_type veya no_fresh_price_in_radius), nearest_station_km (yakıt türünüzü veren en yakın istasyon, nearest_search_km = 50 km'ye kadar aranır; yoksa null), country ve suggestion (lang dilinizde tek kısa cümle), örneğin: 5 km içinde istasyon yok; en yakını 6,4 km uzakta; radius_km=10 deneyin.
Kodunuzun dallanmasını empty_reason ve nearest_station_km üzerine kurun. suggestion insanlar için bir tavsiyedir ve ifadesi değişebilir. Yarıçapı sizin yerinize asla genişletmeyiz. Bir alanı veya rotayı ızgara üzerinde örnekliyorsanız radius_km için 10–15 kullanın. İstasyon içeren yanıtlar değişmedi. Ayrıntılar: Boş yanıtlar.
Arama yarıçapı. /api/v2/data/fuel-stations üzerindeki radius_km artık bir ondalık basamağı koruyor. 4.8 gibi bir yarıçap daha önce bildirim yapılmadan 4'e kesiliyordu; bu yüzden her arama istenenden üçte bire kadar daha az alanı kapsıyor ve daha az istasyon veya hiç istasyon döndürebiliyordu. anchor.radius_km fiilen uygulanan yarıçapı gösterir; tam sayılar eskisi gibi döndürülür.
Marka adları. Aynı marka artık brand içinde her zaman aynı şekilde yazılır; örneğin ORLEN ve orlen Orlen olarak, CircleK ise Circle K olarak döndürülür. İstasyonlar, fiyatlar, kimlikler ve alanlar değişmedi. Markaları tam yazımla eşleştiriyorsanız (logolar veya filtreler için), listenizi yeni adlara göre kontrol edin.
GET /api/v2/data/truck-route yeni, isteğe bağlı bir traffic parametresi kabul eder. Trafiğin ETA, mola planı, sınır varış saatleri ve kamyon yasaklarındaki saatler için nasıl hesaba katılacağını belirler:
forecast(varsayılan): kamyonun her kesimden geçeceği saatteki yinelenen sıkışıklık, varışa kadar zamanla azalan mevcut yoğunluk, güzergâhtaki yol çalışmaları ve kapanmalar ve elimizde varsa hava durumu. Yanıt, gecikmeyi nedene göre ayıran birtraffic_forecastbloğu içerir.live: yalnızca mevcut trafik, yinelenen sıkışıklık olmadan.off: trafik ayarı yok; süreler serbest akışta kamyon motoru süreleridir. Bu durumdatraffic_forecastyalnızcamodelvemodeiçerir.
Başka herhangi bir değer, 400 bad_request döndürür, mesaj: Invalid traffic: forecast, live or off. Parametresiz istekler varsayılanı, yani forecast değerini alır.
Tahmini varış saatinde kamyon yasakları: forecast veya live ile truck_bans[].active artık kamyonun her yasağa ulaşması beklenen saatte (depart_at değerinden, göndermezseniz şu andan itibaren) ve o yasak için herhangi bir bekleme öncesinde değerlendirilir. Yeni truck_bans[].active_at alanı, değerlendirilen saati yasağın bulunduğu ülkenin yerel saatiyle verir. bans_summary, restriction_hits ve legal aynı kararları izler; tahmini gecikmenin yeni karşılaştığı bir yasak (örneğin sonraki bir günde veya başka bir ülkede) de truck_bans içinde listelenir. traffic=off ile active serbest akış zaman çizelgesinde değerlendirilir ve active_at, eta_at_ban değerine eşittir.
Yeni ürün: Truck Route API (GET /api/v2/data/truck-route, yalnızca v2). Tek bir çağrı, tırlara uygun bir rotayı ve bir sevkiyatçının güzergah boyunca ihtiyaç duyduğu her şeyi döndürür. Rota, kendi harita verilerimiz üzerinde, TruckTurn tır navigasyon uygulamamızla aynı rotalama çekirdeği tarafından hesaplanır.
- Araç:
height,width,length,weight,axle_load,axles,trailers,emission_class,hazmat(ADR sınıfları) veadr_tunnel(B–E). Tır sürüş yasakları ve kısıtlama bölgeleri, döndürülen hat üzerinde kontrol edilir. - Güzergah boyunca: güncel fiyatlı akaryakıt istasyonları, tır park yerleri ve kantarlar; her biri
km_from_startve sapma bilgisiyle. - AB 561/2006 Tüzüğü kapsamında sürücü dinlenme planı: molalar (bölünmüş 15+30 dahil), günlük ve haftalık dinlenme (kısaltılmış dahil), tek sürücülü veya iki sürücülü ekip (
crew=2); sürücünün mevcut durumunu iletirseniz plan bu durumdan başlar. Her durak, güzergah üzerindeki gerçek bir park yerine yerleştirilir. Bu bir planlama aracıdır, takograf kaydı değildir. - ETA; dinlenmeleri, tır sürüş yasaklarını ve sınır beklemelerini içerir.
depart_atveyaarrive_atile planlama yapılır. - Ülke bazında geçiş ücreti tahminleri (EUR, aks sayısı ve emisyon sınıfına göre); fiyatlandırılmayan ülkeler
tolls.coverage_noteiçinde listelenir. Ayrıcaavoid(ücretli yollar, feribotlar, otoyollar, sınırlar, tüneller, asfaltsız yollar, düşük emisyon bölgeleri), en fazla 2 alternatif, ülke bazında döküm vegeometryiçin polyline5, polyline6 veya GeoJSON.
Kota: ayrı bir truck-route hakkı: her hesapta günde 10 çağrı, ücretli planlarda daha fazlası ve bir Ek truck-route çağrıları eklentisi. Sandbox ortamında günde 10 tır rotası çalıştırabilir, sonucu tam rota planıyla birlikte haritada görebilir ve GPX, KML, GeoJSON, CSV, takvim (.ics) veya ITN olarak dışa aktarabilirsiniz. Ürün sayfasına ve referansa bakın.
API Şartlarına göre bir Market, verilerini kullandığınız ülkedir ve anahtarınız hesabınız için onaylanmış ülkeleri kapsar. Şimdiye kadar koordinat tabanlı ürünler (lat/lon — örn. Nearby Shops, Truck Parkings, Fuel Stations) Avrupa'daki her nokta için yanıt veriyordu. 13 Ekim 2026'dan itibaren, bu, isteğiniz işlenirken kontrol edilir:
lat/londeğeri hesabınız için onaylanmamış bir ülkede bulunan bir istek 403 döndürür;error.codedeğerimarket_not_allowedolur. Mesajda ülke ve onaylı listeniz belirtilir.- Yarıçap bir sınırı aştığında,
country_codeonaylı ülkelerinizin dışında olan sonuçlar kaldırılır. Yanıt bu durumdamarkets_filtered(kaç sonucun kaldırıldığı) vemarkets_noticeiçerir;total_foundyalnızca aldığınız sonuçları sayar.
Bu, ülkeleri incelenmiş hesaplar için geçerlidir (approved veya partial durumu). İstekte hiçbir şey değişmez — yeni parametre yok, yeni sürüm yok. Uygulamanızın başka bir ülkeye ihtiyacı varsa, 13 Ekim'den önce geliştirici portalından ekleyin. market_not_allowed, referansta diğer hata kodlarıyla birlikte listelenmiştir.
Aynı e-posta ile bir Nakordoni Partners hesabına bağlı geliştirici hesapları artık partners.nakordoni.eu üzerinden haber gönderebilir ve NakBus filolarını (NakDriver / NakManager) yönetebilir; takım rolleri (Owner, Manager, Viewer) ve iki portal arasında tek tıkla oturum açma ile. Geliştirici portalı sayfaları, API anahtarları, filo uç noktaları ve uygulamalar değişmeden kalır.
Fuel Prices üzerinde updated_at ile yanıtın kendi age_hours/stale bayrağı farklı saatlere göre çalışıyordu: updated_at yalnızca fiyat gerçekten değiştiğinde ilerler, ancak bayatlık her doğrulamada ilerliyormuş gibi hesaplanıyordu. Fiyatlı dizinin %46.7'si age_hours ≤48 ve stale:false gösteriyordu; oysa updated_at aslında 48 saatten eskiydi ve 12,620 istasyon bir haftadan eskiydi. Artık her fiyat ayrıca confirmed_at alanını da taşır — fiyatı en son doğruladığımız zaman, saate yuvarlanmış, hiçbir zaman updated_at değerinden önce olmayan — ve age_hours/stale bu alandan hesaplanır. updated_at alanının anlamı değişmedi: fiyatın en son ne zaman değiştiğini öğrenmek için onu, şu anda ne kadar güncel olduğunu öğrenmek için confirmed_at alanını kullanın. Dondurulmuş v1 sözleşmesinde bulunmaz.
İkisi de sessiz olan iki dil hatası: kanonik yakıt sınıfı kodunu lang=pl (veya diğer 24 site dilinden herhangi biri) ile gönderdiğinizde, fuel_type_local yine de İngilizce dönüyordu — etiket tablosunda yalnızca 10 dil kontrol ediliyordu, bu nedenle bu listenin dışındaki her şey istediğiniz dil yerine varsayılan arayüz sözlüğüne düşüyordu. Ayrıca lang=tr (veya geçerli birkaç başka kod) istasyon listelerini Ukraynaca yanıtlıyordu; çünkü istenen dil aynı 10 dillik listede yer almadığında dahili uk varsayılanı devreye giriyordu. İkisi de düzeltildi: gönderdiğiniz dil artık, 25 dilin tamamında aldığınız dildir.
Ayrıca: Nearby Fuel Stations üzerindeki brand alanı, markasını bilmediğimiz yaklaşık 330 istasyon için artık ham veri alımı işaretçisi OTHER değerini döndürmüyor — yanıttaki diğer tüm bilinmeyen alanlarla tutarlı olarak null döner.
Sınır AI Asistanı (/api/v1/data/assistant) aynı anahtar aynı soruyu beş dakika içinde iki kez sorduğunda 503 internal_error — “Asistan geçici olarak kullanılamıyor” — yanıtını veriyordu. Kullanılamayan bir şey yoktu: bu durumların çoğunda yanıt zaten hesaplanmış ve geri verilmeye hazırdı. Artık normal şekilde, ok: true ve HTTP 200 ile döndürülüyor.
Tekrar eden istek, ilk yanıt henüz yazılırken geldiğinde, çağrı artık 503 yerine 429 döndürüyor ve error.code değeri duplicate_request oluyor; böylece bir yeniden deneme politikası “birazdan tekrar sor” durumunu gerçek bir kesintiden ayırt edebiliyor. Her iki durum da hesabınızın hata oranına sunucu hatası olarak sayılıyordu; artık sayılmıyor. İstekte hiçbir şey değişmiyor — ne parametre ne de sürüm. duplicate_request, referansta diğer hata kodlarıyla birlikte listelenmiştir.
Truck Parking (/api/v2/data/truck-parkings), name değeri null ve address alanı boş olan kayıtlar döndürüyordu — Bensheim yakınında 50 kaydın 20'si. Bunlar yalnızca bir koordinat olarak tuttuğumuz yerler; gösterilecek bir şey yok, kendi POI kümenizle eşleştirilecek bir şey de yok. Artık bu ürünün parçası değiller: ürün şimdi yalnızca adlandırılmış konumları sunuyor, şu anda Avrupa genelinde 22.000'den fazla. Adsız kayıtları kendiniz eliyorduysanız, o kod artık gereksiz ama zararsız. Aynı radius ve limit için yanıtlar kısalıyor ve dönen her kayıt kullanılabilir durumda.
Ayrıca yaklaşık 10.000 otopark, name alanında ham bir koordinat çifti taşıyordu, örneğin 51.927301,10.14112; gerçek etiket ise address alanındaydı. Artık bu etiketi — Ionity, Seesen, Rest Area A5 E35 Kaelberpfad, Bensheim — göründükleri her yerde, /api/v1/data/pois dahil, taşıyorlar. Her yerin id değeri değişmedi, dolayısıyla önbelleğe alınmış bir eşleme geçerliliğini koruyor; yalnızca name farklı.
snapshot.updated_at alanı, /api/v1/data/queue ve /api/v1/data/multi uçlarında sınır kapısının kendi dilimindeki yerel saattir (örneğin Europe/Istanbul, Europe/Sofia, Europe/Budapest, Europe/Warsaw, Europe/Kyiv); şimdiye kadar yanıtta bunun hangi dilim olduğunu belirten bir şey yoktu, bu yüzden çağıran taraf bunu kesin bir ana çözemiyordu. snapshot, ek bir timezone alanı kazanıyor (IANA adı); bu alan updated_at ile birlikte yer alıyor. Parametre yok, sürüm yok, başka hiçbir alan değişmiyor.
Şimdiye kadar her yakıt uç noktası kendi kapsamını elle yazılmış bir listeyle anlatıyordu: AT, DE, DK, ES, FR, HR, IT, LU, PL, PT, SI ve Polonya bu listede Trójmiasto bölgesine indirgenmişti. Her iki bilgi de çoktan eskimişti. Kapsam artık istasyonların canlı dizininden ölçülüyor ve altı saatte bir yeniden hesaplanıyor: bugün 39 ülkede fiyatlı istasyon var, Polonya da bunların arasında ülke genelinde, üç şehirde değil. İsteğin kendisinde hiçbir şey değişmiyor: ne parametre ne sürüm.
Nearby Fuel Stations ve Cheapest Fuel: bir arama boş döndüğünde coverage bloğu artık ölçülmüş station_countries, station_counts, sparse_coverage ve measured_at değerlerini taşıyor; hem de genel olarak yakıta değil, sorduğunuz yakıt türüne göre daraltılmış olarak. Bir ülke, orada fiyatlı 25 ya da daha az istasyonumuz olduğunda sparse_coverage listesine girer — bu bir sayımdır, yargı değil.
Tanıdığımız, ama sorduğunuz yerde kimsenin fiyatlamadığı bir tür için yeni bir not var. Şimdiye kadar coverage.fuel_type_note yalnızca pompadaki adın kendisi bize yabancı olduğunda görünüyordu. Artık ad doğru çözümlendiği hâlde o ülkede onun için hiç fiyat bulunmadığında da görünüyor; bu türün fiyatlandığı ülkeleri ve çevrenizde fiyatladığımız türleri adlandırıyor. Çekçe Natural 100 adı temiz örnektir: çözümlenir, ama Çekya'da hiçbir kaynak ona fiyat vermez. Boş bir yanıt artık bozuk bir istek gibi görünmüyor.
Fuel Grades (/api/v2/data/fuel-grades) her tür için priced_countries ve priced_station_counts alanlarını kazanıyor; priced_here alanı ise ?country= gönderdiğinizde eklenir. İki liste farklı şeyler söyler: countries altındaki ülke, o pompa adını kabul ettiğimiz ülkedir; priced_countries ise bir kaynağın onu gerçekten fiyatladığı yerdir, dolayısıyla priced_here değerinin 0 olması yanıttaki bir boşluk değil, gerçek bir yanıttır. Yanıt ayrıca coverage_measured_at ve coverage_note taşır; Cache-Control ise yeniden hesaplama sıklığına uyacak şekilde 24 saatten 6 saate iner.
Pompadaki yerel adlardan daha fazlası da çözümleniyor; aralarında Klimadiesel 90 (HVO100) ve HVO Diesel, Erdgas ve Metano, Autogas ve Autogaz, AdBlue için DEF ve bir dizi premium dizel ve benzin marka adı var. Çözümleme sırası değişmedi, eşleşme tam kalıyor; bu yüzden daha önce çalışan hiçbir ad bugün başka bir şey ifade etmiyor, yeni bir ad ise ancak boş bir yanıtı fiyatlı bir yanıta çevirebilir. Aynı anda referans belgeleri ve uç nokta açıklamaları sitenin 25 dilinin tamamında düzeltildi.
Cheapest Fuel (/api/v2/data/fuel-cheapest) en ucuz istasyonlar yerine mesafeye göre sıralanmış en yakın istasyonları döndürüyordu. Sıralama, sonuç limit değerinize kırpılmadan önce uygulandığından, yarıçapınız içindeki en ucuz istasyonlar yanıttan tamamen eksik kalabiliyordu. Sıralama yeniden doğru çalışıyor: istediğiniz yakıt türü için önce en ucuzu, eşitlik durumunda en yakını kazanır ve o yakıt türü için fiyatı olmayan bir istasyon en sona sıralanır. İstekte hiçbir şey değişmiyor — ne parametre, ne de sürüm.
v2 yakıt yanıtları da artık gerçekte sunuldukları şekilde belgelenmiştir: istasyonlar data.stations[] altında gelir, her fiziksel istasyon için bir kayıt olacak şekilde; her yakıt türü prices nesnesi içine yerleştirilmiştir (price, currency, local_name, updated_at, age_hours, stale), ayrıca station_ref, grades, total_found ve notices alanları da bulunur. Nearby Fuel Stations ve Cheapest Fuel için referans dokümanı hâlâ eski, düz data.data[] satır listesini tanımlıyordu.
Faturalandırma sayfasında (aylık sekme), planınızı değiştirmeden herhangi bir planın üzerine iki eklenti alınabilir: Ek tahmin çağrıları — blok başına günde +100 tahmin ve istatistik çağrısı, blok başına ayda €2, en fazla 10 blok; ve Ek ülkeler — birim başına +1 bildirilebilir ülke, her biri ayda €2. Adet değiştirildiğinde, herhangi bir tahsilat yapılmadan önce tam orantılı bir fiyat teklifi gösterilir.
10 Kasım 2026 tarihinden itibaren her plan belirli sayıda bildirilen ülke içerir: Explorer ve Student 4, Starter 10, Pro ve üzeri sınırsız. Bu tarihten itibaren plan artı satın alınan ek ülkelerden daha uzun bir bildirim kaydedilemez; Hesap sekmesi hakkınızı şimdiden gösteriyor ve bu sınırı zaten aşan hesaplar panoda bir öneri görüyor. 10 Kasım öncesinde hiçbir şey değişmiyor.
API sandbox artık seçicideki her uç noktayı kota sınıfıyla (Ağır / Standart) etiketliyor, seçilen sürümün kota maliyetini siz herhangi bir şey çalıştırmadan önce gösteriyor ve bir çağrının ardından aynı çağrının canlı kotanızdan ne kadara mal olacağını gösteriyor — buna ceil(N ppids × M sub-products / 2) formülü de dahildir; bu formül /multi biçimindeki çağrılar için kullanılır.
Bu, yalnızca okunabilir bir ön izlemedir: sandbox çağrılarının kendisi ayrı sandbox test bütçenizden düşülür, asla canlı kotanızdan değil.
Bugünden itibaren, kaldırılacağını kamuya duyurduğumuz her şey, duyuru tarihinde veya sonrasında oluşturulan geliştirici hesaplarına kapalıdır. Hesabınız duyurudan önce mevcutsa hiçbir şey değişmez — tam geçiş süresini, onu duyuran kayıtta belirtilen kaldırma tarihine kadar korursunuz.
Bu kural neden var. 24 Ağustos 2026'da truck-bans v1'in 8 Eylül 2026'da kaldırılacağını duyurduk. Bu duyurudan birkaç gün sonra kaydolan iki hesap entegrasyonlarını v1 üzerine kurdu ve bir 410 yanıtına saatler kala geldiler; hiçbir e-postamız onlara ulaşmamıştı: hem duyuru hem de bildirim gönderimi kayıtlarından önceydi. API'de, kaldırılacağını çoktan söylediğimiz bir sürümü benimsemelerini engelleyen hiçbir şey yoktu. Bu bizim hatamızdı ve düzeltmesi şudur: kaldırılması zaten planlanmış bir şeyi yeniden benimseyemezsiniz.
Nasıl göründüğü. Böyle bir çağrı 410 Gone ve version_closed_to_new_accounts hata koduyla reddedilir. Mesaj kaldırma tarihini, duyuru tarihini ve bunun yerine kullanılacak sürümü belirtir. Bu, bilerek version_sunset kodundan farklıdır; ikincisini kaldırma tarihi geçtikten sonra her hesap alır — destek ekibi «başlamak için çok geç kaldınız» ile «bu artık herkes için yok» arasındaki farkı bir günlüğü okumadan görebilir.
Kazanılmış hak, ilk çağrıya göre değil, hesabın oluşturulma tarihine göre belirlenir. Duyurudan önce kaydolduğunuz halde entegrasyona ancak şimdi başlıyorsanız, tam geçiş süresini yine de alırsınız: baştan beri bunun üzerinde geliştirme yapıyor olabilirsiniz.
Şu andan itibaren geçerli truck-bans v1 için (24 Ağustos 2026'da duyuruldu, 8 Eylül 2026'da kaldırılıyor) ve bundan sonra duyuracağımız her kaldırma için otomatik olarak. Sizden yeni bir şey istenmiyor: kaldırılmakta olan bir sürümdeki her yanıt zaten Deprecation, Sunset ve Link: rel="successor-version" başlıklarını taşır; böylece yeni bir entegrasyon bu sayfayı okumadan yaklaşan bir kaldırmayı görebilir.
Dünkü v4 değişikliğinin devamı (geliştirici talebi #105). v1 ve v2 sürümlerinde virgülle ayrılmış destination listeleri çalışmaya devam ediyor, ancak artık destination=all ile aynı takvime tabi: her ikisi de 2026-10-06 tarihinde duruyor (o tarihe kadar Deprecation/Sunset başlıkları, sonrasında 400 destination_list_removed, yerine geçen adres olarak /api/v4/ belirtilir). Virgüllü listelerdeki mevcut 10 öğe sınırı kontrolü bu tarihe kadar değişmiyor.
v4 çağrı başına tek hedefte kalıyor — bugün bu değişmedi. Değişen tek şey v1/v2 için verilen mesaj: destination=all için dönen 400 hatası artık geçiş yolu olarak virgüllü liste önermiyor (aynı tarihte o da sona ererdi), doğrudan v4 sürümüne yönlendiriyor.
Belge düzeltmesi: bu sitedeki v4 örneği daha önce /api/v4/data/border/1/2,3,4/9 şeklindeydi — bu, v4 sürümünün reddettiği bir virgüllü listedir. Artık /api/v4/data/border/1/2/9 olarak yer alıyor. Eski örneği kopyalayan herkes ilk çağrısında 400 alırdı; özür dileriz.
Yeni çevrilmiş anahtar product_border_v4_p_destination sitenin 25 dilinin tamamında yayımlanıyor ve v1/v2 ifadesine geri düşmek yerine v4 sürümünün tek hedef kuralını açıkça belirtiyor.
/api/v4/data/border/{origin}/{destination}/{crossing_type} bugün yayında. v2'ye göre üç şey değişiyor ve bir arada, bunun bir düzenleme değil yeni bir sürüm olmasının nedeni bunlar.
1. Artık destination=all yok. Verilerimiz ülke bazında lisanslanır (Developer API Şartları, bölüm 7) ve "veri tuttuğumuz her komşu" anlamına gelen bir joker karakter, hesabınızın onaylı olmayabileceği ülkeleri döndürür — üstelik istekte bunu gösteren hiçbir şey olmaz. v4'te ülkeyi siz belirtirsiniz.
2. Çağrı başına tek hedef ülke. /api/v4/data/border/1/2/9 tek bir sınırı sorar. Virgüllü listeler kabul edilmez: 1/2/9, 1/3/9 ve 1/4/9 ayrı çağrılar olarak gönderin. Virgüllü bir liste veya all 400 döndürür ve gönderilmesi gereken çağrıları tek tek adlandırır; böylece hiçbir şey sessizce başarısız olmaz.
3. Tek bir kamyon kodu. v1 ve v2, yük taşımacılığını 8 (Freight Transport) ve 9 (7,5 t'a kadar Freight Transport) olarak ikiye ayırıyordu. Bu ayrım sınır kapısında gerçektir, ancak hiçbir entegratör buna göre hareket edemez: v2'den UA-PL sınırında 9 istemek 70 kamyon geçişinden 21'ini döndürüyordu ve bunu hiçbir şey belirtmiyordu. v4, 9 sorgusuna tüm kamyon şeritleriyle yanıt verir ve 8 kodunu 9 için takma ad olarak kabul eder. Her satır kendi crossing_type değerini taşır, böylece birleştirilmiş yanıt incelenebilir kalır.
v1 ve v2'de destination=all 2026-10-06 tarihine kadar çalışmayı sürdürür ve o tarihe kadar Deprecation / Sunset başlıklarını taşır. O tarihten itibaren bu sürümler de all için 400 döndürür — v1 ve v2'nin geri kalanı değişmeden kalır ve kullanılabilir olmayı sürdürür. Aynı tarih diğer tüm-ülke kısayolları için de geçerlidir: travel-matrix (?dest= olmadan), bus-carriers (?ppid=all ile) ve fuel-grades (?country= olmadan).
Bugün daha önce duyurulan v3'ün yerini v4 alıyor. v3, v4'ten yalnızca virgüllü listeyi hâlâ kabul etmesiyle ayrılıyordu ve hiçbir entegrasyon bu biçimi kullanmıyor. v3 URL'leri yanıt vermeyi sürdürür, böylece onlara göre yazılmış hiçbir şey bozulmaz; ancak v3 belgelenmiyor ve geliştirilmeyecek — v4'e geçin.
v4'teki diğer her şey v2 ile aynı: yönlü yol sırası, direction{from,to}, stale ve ?max_age_min=.
/border/{origin}/{destination}/{crossing_type} içindeki sayısal kimlikler hiçbir zaman bir tablo olarak yayımlanmamıştı; bu yüzden entegratörler bunları saat dilimlerinden ve örnek URL'lerden çıkarıyordu. Artık belgelerde Ülke ve araç türü kodları başlığı altındalar ve API'nin doğrulama için kullandığı tablolardan üretiliyorlar — her ülke kimliği, kapsadığı sınırlarla birlikte ve her crossing_type, API'nin döndürdüğü etiketle birlikte.
Bunları yayımlarken sandbox'ın ve uç nokta meta verilerinin 8 kodunu "truck<7.5t", 9 kodunu ise "truck" olarak tanımladığını gördük. Bu terstir: API 8 kodunu Freight Transport, 9 kodunu ise 7,5 tona kadar Freight Transport olarak etiketler ve hep böyle olmuştur. Kamyon kodunu parametre ipucundan seçtiyseniz, amaçladığınızın tam tersi şeridi filtreliyordunuz. Her yerde düzeltildi ve v3 bu seçimi tamamen ortadan kaldırıyor.
API Şartları v1.1, v1.0'ın yerini yürürlüğe girmeden önce alıyor ve 2026-10-06 tarihinden itibaren geçerli. Lütfen bunları kontrol panelinizden kabul edin.
Bölüm 7 artık Pazar'ın ne olduğunu söylüyor: kullandığınız verinin ait olduğu ülke — istediğiniz sınır kapısının veya sınırın bulunduğu ülke — kullanıcılarınızın yaşadığı ülke değil. Kontrol panelimiz farklı yerlerde her iki şeyi de söylüyordu; uygulama her zaman ilkini kastediyordu.
Lehinize iki değişiklik. Hesabınız için zaten onaylanmış ülkeler, sonraki bir değişiklik incelenirken kullanılabilir kalır (bir ülke eklemek artık mevcut ülkeleri askıya almaz). Ayrıca bir pazar bildirimini 5 iş günü içinde yanıtlamazsak, yanıtlayana kadar tam plan limitleriniz geçerli olur.
Bölüm 10.3 artık kontrol panelinin gerçekten istediğiyle örtüşüyor ve bölüm 13.2, ölçtüğümüz ve size gösterebileceğimiz bir kullanılabilirlik esasını belirtiyor.
Üç ürün artık, bir okumanın gerçek bir gözlem mi yoksa o geçişte canlı sayım kaynağı bulunmayan bir model tahmini mi olduğunu gösteren, eklemeli bir data_quality alanı (high veya low) taşıyor: queue (üst düzey snapshot üzerinde ve data[] içindeki her geçmiş satırda — tahmin satırlarında yoktur), update-info (zarf üzerinde) ve multi (her sınır kapısı için hem queue hem de update_info alt nesnelerinde). Bu yeni bir sinyal değil — bayrak dahili olarak zaten vardı — ancak hiçbir zaman dışarıya verilmemişti; bu yüzden tamamen modellenmiş bir sınır kapısı, doğrudan ölçülmüş olanla aynı görünüyordu. is_realtime bilerek değiştirilmedi: modellenmiş satırlarda hâlâ true döndürür ve bu anlamı değiştirmek, burada yapmadığımız v2 düzeyinde kırıcı bir değişiklik olurdu.
Bu sürümle birlikte ayrıca: queue-advanced ürünü artık ham yukarı akış hava durumu verisini yeniden dağıtmıyor. weather_main, temperature ve wind_speed yerlerini türetilmiş bir condition_code (0–5 tehlike ölçeği, hava durumu verisi yoksa null), condition ve severity alanlarına bıraktı.
2026-08-30 tarihinden itibaren bir /api/v1/data/multi isteği en fazla 5 sınır kapısı için yanıtlanır. Daha fazla PPID listeleyen bir çağrı reddedilmez: yine 200 döndürür, ancak yalnızca ?ppids= içindeki ilk 5 kimlik yanıtlanır. Kalan kimlikler yok sayılır, meta.ppid_cap.ignored içinde geri döndürülür ve kotanızdan düşülmez — çağrı, gerçekte döndürdüğü kadarıyla ücretlendirilir.
Bir çağrı sınırın üzerinde olduğu sürece yanıt, X-Devapi-Warning: multi_ppid_cap başlığını ve bir meta.ppid_cap bloğunu taşır; bu blokta cap, enforced_from, enforced, ppids_asked, ppids_answered ve ignored[] alanları bulunur. 2026-08-30 tarihine kadar bu alanlar enforced: false değeriyle ve sonuç kümesinin tamamıyla görünür; böylece yaklaşan değişikliği kendi günlüklerinizde görebilirsiniz.
Kotadaki yarı yarıya indirim değişmedi. Sınır kapılarınızı 5 kişilik gruplara ayırın ve normal yenileme döngünüzde her grup için bir çağrı gönderin; yalnızca kuyruk uzunluğunu ve verinin tazeliğini sık sık sorgulamak için update-info daha ucuz standart sınıf ürün olmaya devam ediyor.
Ukrayna için hesaplanan sıcaklık yasağı — include_ua_heat ile, country=UA sorgularında ise otomatik olarak dönüyor — artık istediğiniz tarih aralığı için yanıt veriyor. Önceden date_from ve date_to ne derse desin önümüzdeki yedi günü döndürüyordu; bu yüzden aralık ayına ait bir aralık sessizce bu haftanın satırlarını getiriyordu. Yasak, yasak takviminden okunmaz, hava tahmininden hesaplanır; bu nedenle takvimde olmayan iki sınırı vardır: geriye bakmaz ve tahmin nerede biterse orada biter. Aralığınız artık tahminin gerçekten kapsadığı dönemle kesiştiriliyor ve yeni ua_heat_ban.forecast_horizon alanı ulaşılan son tarihi bildiriyor. Bu ufkun ötesindeki bir aralık hiç satır döndürmez ve nedenini summary içinde açıklar — bu «yasak yok» ile aynı şey değildir. v1 yanıtları değişmedi.
Yanıtın biçimi bugüne kadar hiçbir yerde belgelenmemişti; bir ürünün ne döndürdüğünü öğrenmenin tek yolu onu çağırmaktı. Artık her ürün sayfasında, parametre tablosunun altında bir tablo var: Yanıt alanları her alanın kısa açıklamasıyla; liste ögelerinin alanları şu biçimde gösterilir: items[].name, zarf düzeyindeki alanlar (usage, meta, snapshot, resolved_location) ise öneksiz. 42 üründen 40 tanesi belgelendi: henüz yayına alınmayan iki ürün (weather, road-quality) bilerek açıklamasız bırakıldı. Aynı tablo GitHub üzerindeki açık belge aynamızda da yayımlanıyor.
Artık her yakıt ürünü, yalnızca bizim iç yazımımızı değil, yakıtın yerel adını da kabul ediyor: ON Polonya'da, Nafta Çekya'da, Gázolaj Macaristan'da, Motorină Romanya'da, ДП Ukrayna'da, Motorin Türkiye'de, Gasóleo Portekiz ve İspanya'da. Ad önce ülkeye göre çözümlenir — “95” bir Danimarka pompasında E10, bir Polonya pompasında E5 demektir — bu yüzden country parametresini yerel adla birlikte ya da noktayı konumlandırabileceğimiz koordinatları gönderin. Yanıtta fuel_type (kanonik), fuel_type_requested (yazdığınız haliyle) ve fuel_type_local döner. Konumlandıramadığımız bir adı asla varsayılan bir yakıtla değiştirmeyiz: yanıt boş döner ve bunu açıkça söyler.
Tablonun tamamı artık kendi başına bir ürün — GET /api/v2/data/fuel-grades[?country=PL][&fuel_type=ON] — kanonik yakıtlarımız ve bunların 41 Avrupa ülkesindeki yerel adları; fiyat vermediğimiz pazarlar da dahil. Ayrıca fuel ve fuel-local ürünlerinin ülke ve bölge katmanları grades nesnesini kazandı: her fiyat anahtarını yakıtına ve pompadaki adına bağlar.
Artık truck-bans ürünü şu adreste belirli bir tarih veya tarih aralığı için yanıt veriyor: /api/v2/data/truck-bans. Şimdiye kadar her zaman önümüzdeki 7 günü döndürüyor ve gönderdiğiniz tarihi yok sayıyordu; bu yüzden takvim oluşturmak için her güne bir istek gerekiyordu — saniyede iki istek veren bir planda ise bunların çoğu şu hatayla reddediliyor: 429 qps_exceeded.
Tek bir gün için ?date=YYYY-MM-DD parametresini, bir aralık için ?date_from= ve ?date_to= parametrelerini kullanın. Her iki uç da dahildir ve herhangi biri atlanabilir: başlangıç varsayılan olarak bugündür, bitiş ise başlangıç artı 7 gündür. Bir pencere en fazla 92 günü kapsayabilir — daha uzunu sessizce kısaltılmak yerine şu hatayla reddedilir: 400 date_range_too_long. Bu ileriye dönük bir takvimdir: bir pencere en fazla 7 gün geriden başlayabilir, daha eski tarihler sunulmak yerine reddedilir — kapsam ileriye doğru 31 Aralık 2028'e kadar, 23 ülkede geçerlidir.
Her yanıt artık kapsanan aralığı tam olarak belirten bir window nesnesi taşıyor. Bu ek bir alandır ve v1'de de gönderilir; v1 sabit 7 günlük penceresini değiştirmeden korur. Dikkat: include_ua_heat hangi pencereyi isterseniz isteyin her zaman önümüzdeki 7 günü kapsar — hava durumu tahmininden hesaplanır, yasak takviminden değil. Bu ürünün v1 sürümünün 8 Eylül 2026'da kaldırılacağını hatırlatırız.
API genelinde iki ilgili iyileştirme: bir ürünün kabul etmediği her parametre artık sessizce atılmak yerine yanıttaki ignored_params alanında listeleniyor ve veri servisinden gelen doğrulama hataları size yazıldığı gibi ulaşıyor; makine tarafından okunabilir kod ise şu alanda: error.reason.
Ağ geçidi denetiminden (ticket #43) çıkan üç yanıt kalitesi düzeltmesi.
X-API-Key başlığı artık kabul ediliyor — Authorization: Bearer ve ?key= yöntemlerinin yanı sıra. HTTP istemciniz anahtarları X-API-Key adlı bir başlıkla gönderiyorsa artık çalışıyor — daha önce sessizce yok sayılıyor ve çağrı missing_api_key olarak reddediliyordu. Authorization: Bearer belgelenmiş ve önerilen biçim olmayı sürdürüyor.
Eksik anahtar hata mesajı artık kimlik doğrulamanın üç yolunu da adlandırıyor (Bearer başlığı, X-API-Key başlığı veya ?key=); yalnızca kayıt sayfasına bağlantı vermekle yetinmiyor.
checkpoints dizini artık her satırda has_day_stats taşıyor — Best Time to Cross (day-stats) API'sinin o sınır kapısı için verisi olup olmadığını belirten ek bir boolean. Day-stats yalnızca izlenen sınır kapılarının bir bölümü için mevcuttur; öngörülebilir 404'lerden kaçınmak için sorgulamadan önce bu bayrağı denetleyin. Mevcut alanlar değişmedi.
Belgelerde ayrıca şu düzeltildi: road-conditions ürünü etiket yerelleştirmesi için lang parametresini her zaman dikkate alıyordu — yalnızca listelenmemişti.
truck-bans ürünü için iki düzeltme ve bir yeni sürüm.
Virgülle ayrılmış ülkeler artık çalışıyor. ?country= en fazla 3 ISO-2 kodundan oluşan bir liste kabul ediyor, örneğin ?country=DE,RO. Daha uzun bir liste sessizce kırpılmak yerine 400 too_many_countries ile reddediliyor — bu, toplu bir akış değil, ülke bazlı bir yasak takvimidir. Bu daha önce çalışmıyordu: ayırıcı kaldırılıyordu, dolayısıyla DE,RO tek bir DERO belirteci olarak okunuyor, hiçbir şeyle eşleşmiyor ve success: true ile total_bans: 0 döndürüyordu — ikisinde toplam 22 yasak bulunan iki ülke için kendinden emin bir “yasak yok” yanıtı. Bunu her ülke için ayrı istek göndererek aştıysanız, artık tek bir istek hepsini kapsıyor ve birkaç çağrı yerine tek çağrı harcıyor.
Yanıtlar artık kendi eksiksizliğini bildiriyor. Üç ek alan — returned, total_available ve truncated — bir yanıtın sınırlandırılıp sınırlandırılmadığını gösteriyor. Özellikle kapsamsız bir çağrı sınırlandırılmış bir dilim döndürür ve şimdiye kadar yükte bunu belirten hiçbir şey yoktu. total_bans mevcut anlamını koruyor (bu yanıttaki satırlar), dolayısıyla hâlihazırda ayrıştırdığınız hiçbir şey değişmiyor.
v2, ülke başına kapsamlandırılmıştır. /api/v2/data/truck-bans üzerinde ?country= zorunludur ve kapsamsız bir istek 400 scope_required ile reddedilir — bu ürün, toplu bir akış değil, ülke bazlı bir yasak takvimidir. v1 bugün değişmedi — hâlâ kapsamsız çağrıyı kabul ediyor ve her zaman döndürdüğü aynı sınırlı 50 satırı döndürüyor, dolayısıyla şu anda çalışan hiçbir şeyiniz bozulmuyor. Bu ürünün v1 sürümü 8 Eylül 2026'da kullanımdan kaldırılıyor. 7 Eylül dahil olmak üzere normal şekilde hizmet verir; 8 Eylül'den itibaren bir v1 isteği 410 Gone ve v2'yi gösteren bir mesajla reddedilir. O tarihe kadar her v1 yanıtı Deprecation: true, bu tarihi taşıyan bir Sunset başlığı ve ardıl sürümü belirten bir Link başlığı içerir; böylece bir istemci kitaplığı, kimse bu sayfayı okumadan son tarihi gösterebilir. Geçiş için: sürüm segmentini /api/v2/data/truck-bans olarak değiştirin ve ?country= gönderin.
Bir belge düzeltmesi: date parametresi kaldırıldı. Uzun süredir listelenmişti ancak servis tarafından hiç okunmuyordu; bu yüzden onu gönderen her istek, istediği gün yerine sessizce varsayılan 7 günlük pencereyi alıyordu. Bir gün seçmek için upcoming_bans dizisini date alanına göre filtreleyin. Ayrıca DEU gibi bir ISO-3 kodu artık özette bir ülke adına çözümlenmiyor; orada yanıltıcı “No truck ban data for: Germany.” çıktısını üretiyordu.
truck-bans ürünü artık beş ülke daha için ülke genelindeki trafik kısıtlamalarını döndürüyor: Belçika (BE), Belarus (BY), Karadağ (ME), Kuzey Makedonya (MK) ve İsveç (SE). Bulgaristan, Yunanistan ve Portekiz için mevcut kapsam genişletildi ve tazelendi — Yunan kısıtlamaları artık Eylül 2027'ye kadar uzanıyor, Portekiz ise yeniden veriyle dolu.
Yanıtın yapısı değişmedi. Yeni satırlar diğer tüm yasaklarla aynı anahtarları taşıyor: date, time_from, time_until, restriction_type, restriction_details, min_weight_tons ve details_url. Bir kısıtlama yalnızca belirli bir koşulda geçerliyse — örneğin Belarus'taki yaz yasakları 25 °C'nin üzerinde uygulanır — bu koşul restriction_details alanında belirtilir; bu nedenle bir sürücüyü uyarmadan önce bu alanı okuyun. Bir kural tonaj yerine bir taşıma sınıfını (tehlikeli madde) hedefliyorsa min_weight_tons değeri null olur.
fuel-stations ve fuel-cheapest ürünleri artık Polonya'da istasyon bazlı fiyat döndürüyor. Kapsam kısmi — Üçkent bölgesi (Gdansk, Gdynia, Sopot) — bu nedenle Polonya yeni ve ek bir coverage.sparse_coverage dizisinde, mevcut coverage.station_countries listesinin yanında bildiriliyor. sparse_coverage içinde listelenen bir ülkede istasyon verisi yalnızca toprakların bir bölümü için vardır; o ülkenin başka bir yerindeki sorgu, tıpkı eskisi gibi kapsam notuyla birlikte boş bir liste döndürür. Polonya fiyatları PLN cinsindendir.
Toplu sorgu hatası da daha nettir: lat eksik olduğunda scope_required mesajı artık ülke geneli ortalama fiyatlar için fuel ürününe (?country=XX) yönlendiriyor.
GET /api/v2/data/fuel-local?lat=&lon= artık fiyatı iki yerine üç katmanda çözüyor: station, ardından region, ardından country. Yeni orta katman, istasyon bazlı fiyatın hiçbir yerde bulunmadığı Ukrayna için var: Ukrayna'daki bir nokta artık ulusal ortalama yerine kendi ilinin ortalamasını alıyor ve yalnızca il için kotasyon yoksa ulusal ortalamaya düşüyor.
region katmanından gelen yanıt, il kodunu (UA-46 gibi bir ISO 3166-2 değeri), region_name ve region_center_dist_km alanlarını ve ülke katmanıyla aynı fiyat anahtarlarını taşır. Kodunuzu yanıtın şekline göre değil, yine resolution alanına göre dallandırın; station ve country yanıtları değişmedi.
Yeni GET /api/v2/data/fuel-local?lat=&lon= uç noktası, Avrupa'daki herhangi bir nokta için mevcut en iyi yakıt fiyatını döndürür. İstasyon bazlı verimizin bulunduğu yerlerde en yakın istasyonların fiyatlarıyla, aksi halde noktanın bulunduğu ülkenin ulusal ortalamasıyla yanıt verir — istasyon bazlı fiyatın hiçbir yerde bulunmadığı Ukrayna dahil.
Her yanıt, hangi katmanın yanıtladığını belirten resolution alanını taşır: station (her biri kendi para biriminde, distance_km bilgisiyle birlikte istasyon listesi) veya country (ulusal ortalamaları içeren tek bir nesne). Kodunuzu yanıtın şekline göre değil resolution alanına göre dallandırın. /api/v2/ sürümünden itibaren kullanılabilir; fuel, fuel-stations ve fuel-cheapest değişmedi.
fuel-stations ve fuel-cheapest ürünleri artık Almanya'da çok daha fazla istasyonu kapsıyor ve fiyatlar gün boyunca güncelleniyor — kırsal bölgeler dahil. fuel_type parametresi 13 yakıt türünü kabul ediyor: diesel, e5, e10, superplus, super100, premdiesel, truckdiesel, hvo, lpg, cng, adblue, e85 ve lng. Sorguyla eşleşen istasyon bulunmadığında yanıt, istasyon verisi bulunan ülkeleri listeleyen bir coverage nesnesi içerir.
radius= parametresi artık, onu belgeleyen tüm ürünlerde radius_km için uyumlu bir takma ad olarak kabul ediliyor. fuel-stations ve fuel-cheapest ürünleri, hiçbir istasyon eşleşmediğinde sessizce boş sonuç döndürmek yerine eklemeli bir coverage nesnesi (istasyon verisi olan ülkelerin listesi ve bir not) döndürüyor. route-plan sınır nesneleri artık eklemeli wait_basis anahtarını içeriyor (car_lane veya vehicle_lane); böylece istemciler kamyon bekleme verisinin aslında otomobil şeridinden geldiğini anlayabiliyor. Rota boyunca kamyon sınır kapılarının eşleştirilmesi belirgin biçimde daha isabetli: kamyon şeridi verisi olmayan kapı çiftleri için otomobil şeridine geri dönüş, yanlış yön koruması, daha sıkı bir mesafe eşiği ve aynı konumdaki geçişlerin yinelenenlerinin ayıklanması. Tüm değişiklikler eklemelidir; uyumluluğu bozan değişiklik yoktur.
Geliştirici açılış sayfasında artık atlama navigasyonuyla birlikte bağlantılı bölümler var (#products, #plans, #quickstart, #integrations, #datasets, #apps, #companies, #showcase) ve her ürün kartı kendi belge sayfasına bağlanıyor. Yeni Mobile apps bölümü, Google Play bağlantılarıyla Kordon Online ve Truck Bans'ı sunuyor. Çeviri tamamlama: faturalama geçmişi, giriş hataları, sandbox bağlantıları ve plan seçim düğmesi artık tüm 25 dilde yerelleştirildi.
Filo beacon yanıtı (POST /api/v1/fleet_position.php) artık sahipten sürücüye bekleyen mesajları ileten bir messages dizisi içeriyor. Sadece sahipler için yeni canlı JSON akışı (?ajax=live) ve filo panosunda bir "Sürücülere mesajlar" kartı. Yeni sürücü davet sayfası /{lang}/get-nakbus (25 dil).
product_fleet_vehicles/live/history başlık, açıklama (title, desc) ve fleet-history parametreleri, geliştirici portalının 25 dilinin tamamında yerelleştirildi.
/api/v1/data/truck-bans artık yanıtı hangi sorgunun tetiklediğinden bağımsız olarak aynı üst düzey alan kümesini döndürüyor. Daha önce, takvimde yasağı olmayan bir ülke için sorgu, tanınmayan bir ppid veya normal bir veritabanı eşleşmesi, her biri farklı alanları (ör. country, covered_countries, ppid) atlayabiliyordu. Artık her yanıt tutarlı bir şekilde 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 ve upcoming_bans alanlarını içeriyor (uygun olmadığında null veya boş), bu da istemci tarafı ayrıştırmayı basitleştiriyor.
Hizmet başına dokuz yeni ürün. Konum tabanlı olanlar lat/lon veya city + country kabul eder (şehri sizin için biz coğrafi kodlarız): /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 (belirli bir yakıt türü için fiyata göre sıralanmış istasyonlar) ve /api/v2/data/internet-points; sonuçlar distance_km içerir ve radius ile sınırlıdır. /api/v2/data/vignettes, bir ülkenin vinyet gerektirip gerektirmediğini güncel fiyatlarla yanıtlar. Mevcut pois ürünü artık belgelendiği gibi lon ve radius'u destekliyor, fuel ürününün mode=nearest modu da lon'u kabul ediyor. Dokuzu da sandbox'ta mevcuttur.
/api/v1/data/truck-bans içindeki her yasak artık restriction_type (General / Local / Sunday / Holiday / Seasonal), restriction_details (etkilenen tam kapsam veya yollar) ve min_weight_tons içeriyor. details_url artık nakordoni.eu üzerindeki ülkeye özgü sayfalara işaret ediyor. Yeni isteğe bağlı lang parametresi, ülke adlarının ve özetin dilini seçiyor; varsayılan artık İngilizce.
Hatalı bir ?ppid= artık kısa "Request failed" yerine gerçek nedeni döndürüyor: hata parametreyi, beklenen id_<number> biçimini adlandırıyor ve /api/v1/data/checkpoints adresine yönlendiriyor. stats, forecast, update-info, weather ve bus-carriers parametre tabloları artık id_13 örneğini 25 dilin tamamında gösteriyor.
Yeniden tasarlanan portal arayüzü (üst çubuk, simgeli yan menü, KPI panosu, kart tabanlı düzenler) artık oturum açmış tüm geliştirici hesapları için varsayılan deneyim — planlanan 10 Ağustos yayınından önce. Klasik düzene istediğiniz zaman dönmek için ?v=1 kullanın.
Geliştirici portalının tüm sayfaları — açılış, dokümantasyon, pano, AI Studio, deneme alanı, destek talepleri, başvurular, dışa aktarma, filo, haberler, değişiklik günlüğü ve hesap sayfaları — artık hiçbir reklam betiği veya reklam alanı yüklemiyor. Bu, eskiden olduğu gibi yalnızca giriş ve kayıt sayfaları için değil, portalın tamamı için geçerli.
Sınır yolculuğunun tamamını tek çağrıyla planlayın: /api/v2/data/route-plan rotayı, gerçekten rota üzerinde bulunan sınır kapılarını canlı kuyrukla ya da varış saatinize göre tahminle ve sürücünün gerçekten yaptığı duraklamaları — mola, yemek, yakıt — tek bir zaman çizelgesinde döndürür.
Sınır bu çizelgenin parçasıdır. Uzun kuyruk zaten gelmiş olan molanın yerine sayılır ve direksiyon başındaki süreyi sıfırlar; böylece üç saatlik bekleme asla üç saat artı kimsenin yapmadığı eksiksiz bir mola dizisi olarak gösterilmez. Otomobiller için güvenli sürüş modeli geçerlidir; otobüs ve kamyonlar AB 561/2006 zorunlu dinlenmesini alır, otobüslerin servis süresi ise 1000'den fazla lisanslı uluslararası tarifeye göre kalibre edilmiştir. Her duraklamaya gerçek bir dinlenme alanı veya akaryakıt istasyonu adı vermek için stop_places=1, farklı bir kapıdan geçmek için via=lat,lon ekleyin.
Portal menüsünde yeni: Sunum — nakordoni veri platformunun canlı, her zaman güncel, pazarınıza göre kişiselleştirilmiş tanıtımı (sigorta, seyahat, lojistik, taşıyıcılar, medya, navigasyon, akaryakıt, fintek, kamu sektörü veya kişisel projeler). Platformun gerçek 30 günlük hacimlerini, kendi API kullanımınızı, yanıt süresi ve limit istatistiklerini ve çağrılarınız ücretsiz kademe sınırlarına dayandığında bir plan önerisini gösterir. Pazarınızı (veya pazarlarınızı) sayfada, profilinizde — ya da kayıt sırasında seçin veya onaylayın. İlk ziyaretinizde otomatik açılır; otomatik açılmayı sayfanın kendisinden kapatabilirsiniz.
Bir asistanda bir veri akışı etkinse ancak çağrı o akışın ihtiyaç duyduğu bağlamı taşımıyorsa — örneğin queue parametresi olmadan ppid— akış artık herhangi bir istek yapılmadan önce atlanıyor ve ücretlendirilmiyor. Önceden yine de çağrılıyor, başarısız oluyor ve yine de bir birim maliyet çıkarıyordu. Stüdyo her akışın neye ihtiyaç duyduğunu gösterir, bağlamı doldurdukça fiyatı yeniden hesaplar ve sonuçları ✓ çalıştı / ⊘ atlandı, ücretsiz / ✕ başarısız olarak işaretler; API, hangi parametreyi geçmeniz gerektiğini tam olarak söyleyen data.feeds_skipped alanını döndürür.
Yanıtlar artık akışlardan, veri kaynaklarından veya teknik hiçbir şeyden söz etmiyor: eksik bir akış, son kullanıcıya en fazla tek bir sade cümledir, asla dahili bir ad değildir. Yalnızca isteğe bağlı filtreleri olan akışlar (örneğin verimiz olmayan bir ülkeye daraltılmış fuel ) artık hiçbir şey döndürmek yerine geniş veri kümesine geri düşer.
Yeni: /{lang}/developers/studio. Kendi içeriğinizden ve bizim canlı sınır verilerimizden yanıt veren bir yapay zekâ asistanı kurun. Markdown dosyalarınızı verin ya da yalnızca sayfaları söyleyin, biz indirip dizinleyelim — siz yalnızca kendi dosyalarınızı bakımda tutarsınız. Hangi akışlarımızı kullanabileceğini seçin (kuyruk, tahmin, alternatifler, günlük istatistik, akaryakıt, kamyon yasakları, ticari pazarlar, resmî tatiller, yol durumu, otobüs taşıyıcıları, POI, döviz), bir model kademesi seçin (hızlı / dengeli / pro — fiyatı belirleyen budur), verilerimizin yanıtta tam olarak nereye yerleşeceğini söyleyen {{feed.slug}} yer tutucularıyla kendi yönergelerinizi yazın ve her yanıta eklenen kendi kapanış cümlenizi ekleyin. Hazır şablonlar: kişisel seyahat asistanı, iş/yük asistanı, sigorta ve Yeşil Kart satış asistanı.
Stüdyoda test edin (günde 30 yanıt, API kotanızdan ayrı), sonra üretimde GET /api/v2/data/assistant-custom?assistant_id=N&q=…adresinden çağırın. Yanıt başına fiyat = model kademesi birimleri + etkin her akış için 1 birim; X-Devapi-Unitsbaşlığında döndürülür. Ürün yalnızca v2'dedir — v1 URL'si unsupported_versiondöndürür. Mevcut assistant ürünü değişmedi.
Her asistan, sizin yönergelerinizin üzerinde yer alan bir platform içerik politikasıyla çalışır: resmî görevli gibi davranmak yok, sınır veya gümrük denetiminden kaçmaya yardım yok, uydurma sayı yok, küfür yok. Hem yönergeler hem yanıtlar taranır; engellenen çağrılar kaydedilir.
Yeni: https://nakordoni.eu/mcp adresinde gerçek bir MCP sunucusu, API'nin güvenli, salt okunur bir alt kümesini (status, checkpoints, border queue, live queue, forecast) MCP araçları olarak sunar. REST API ile aynı API anahtarı ve kota. Sunucu kartı /.well-known/mcp/server-card.json adresinde. Belgelerdeki MCP Sunucusu bölümüne bakın.
Aşağıda anlatılan „Live Queue & Freshness API“ adlandırması aslında dokümantasyon sayfasına ulaşmamıştı. Sayfa her ürün başlığını bir çeviri aramasıyla gösterir; bu arama yalnızca çeviri yoksa uç noktanın başlığına düşer — çeviri ise zaten vardı, eski adda donmuş halde, 25 arayüz dilinin tamamında. Artık, kendisi de güncellenene kadar temel başlığın her türlü gelecekteki güncellemesine üstün gelir.
Çeviri anahtarı 25 dilin tamamında yeniden adlandırıldı, böylece dokümantasyon sayfası artık uyuşuyor. Uç nokta, parametre veya yanıtta değişiklik yok — yalnızca başlık metni.
Canlı kuyruk verilerini sık sorguluyorsanız, gereksiz yere ağır kota harcıyor olabilirsiniz. /update-info standart sınıftır ve canlı değeri zaten döndürür:
GET /api/v1/data/update-info?ppid=id_13
Şunları döndürür: queue_now, freshness, age_minutes, is_realtime, status, timestamp ve timezone. Sık yenileme için bunu standart günlük kotanızdan kullanın; /queue, /multi ve /forecast uç noktalarını (hepsi ağır sınıf) ise wait_min, trend alanları veya geçmiş gerektiğinde saklayın.
Uç noktanın kendisinde hiçbir şey değişmedi — yalnızca dokümantasyonunda. „Data Freshness API“ olarak listelenmişti ve açıklaması yalnızca tazelik derecelendirmesinden söz ediyordu, hiçbir zaman queue_nowalanından değil; bu yüzden gözden kaçması kolaydı. Artık adı „Live Queue & Freshness API“ ve döndürülen alanlar tek tek yazılmış durumda. Bunu dile getiren geliştiriciye teşekkürler.
Bazı başarısız istekler HTTP 200 ile ok: true döndürüyor ve hatayı data içine gömüyordu — dolayısıyla belgelenmiş if (!ok) throw kalıbı bunları saptayamıyordu ve çağrı yine de ücretlendiriliyordu. Etkilenen çağrılar artık belgelendiği gibi HTTP 400 ile ok: false ve düzgün bir error.code / error.messagedöndürüyor. fuel-cities üzerinde desteklenmeyen bir ülkeyle ve travel-matrix üzerinde hatalı koordinatlarla görüldü.
Ayrıca, eksik bir zorunlu parametre 500 internal_error yerine 400 bad_request döndürüyordu (dahili servisin 4xx gövdesi, durumu okunmadan atılıyordu). Artık dahili servisin mesajıyla 400 bad_request döndürülüyor — örneğin search parametresi olmadan ?name=.
Başarılı yanıtlar bayt bayt değişmedi — aynı alanlar, aynı parametreler, aynı kota maliyeti. İstemciniz zaten okdeğerine göre dallanıyorsa yapılacak bir şey yok. Eğer ok değerini yok sayıp doğrudan data okuyorduysa, zaten hep başarısız olan çağrılarda artık hata zarflarını görecek.
Önbelleği her soğuk olduğunda /multi ürününün bazı sınır kapıları için — çoğunlukla Balkanlar ve Macaristan–Sırbistan sınırı — yanlış kuyruk sayısı döndürebildiği bir hata giderildi. Yedek yol, o kapılar için kuyruk verisi barındırmayan bir tabloyu okuyor ve ilgisiz değerleri araç sayısı olarak bildiriyordu. Ölçülen örnekler: 12 aracı olan bir kapı 6 bildiriyordu, gerçek kuyruğu olan birkaçı ise 0 bildiriyordu.
Fark edebileceğiniz üç değişiklik:
found: falseartık gerçekten güncel kuyruk verisi olmadığı anlamına geliyor. Önceden uydurma birfound: trueilequeue_now: 0alabiliyordunuz.wait_status,trend_percentvetrend_directionartık soğuk isteklerde de döndürülüyor — öncedennullidi.- Uç nokta, önbellekteki anlık görüntüsü eskimişse de (24 saatten eski) yedek yola geçiyor; yalnızca eksik olduğunda değil.
İstek parametrelerinde, kota maliyetinde veya yanıt yapısında değişiklik yok.
Her /multi çağrısının iki kez ücretlendirilmesine neden olan bir hata düzeltildi — önce genel bir 1 birimlik kontrolle, sonra uç noktanın kendi değişken maliyet formülüyle (N PPID × alt ürünler). Bir çağrı artık belgelendiği gibi tam olarak ⌈(N×M)/2⌉ birime mal oluyor, ekstra ücret olmadan.
Ayrıca dokümantasyon sayfasında her ürüne bir Standard/Heavy kota sınıfı rozeti eklendi, böylece bir uç noktanın hangi günlük kotayı kullandığı ilk bakışta netleşir.
country ve countries tek bir parametrede birleştirildi (1-15 virgülle ayrılmış kod). Yeni compare_to parametresi: ülkeler arası aynı/farklı tatil karşılaştırması, upcoming+days ile birlikte çalışır. lang artık birden fazla dili kabul ediyor (bir names nesnesi ekler). days=0 veya belirtilmemesi artık upcoming modunda limit yok anlamına gelir.
Her Avrupa ülkesi için resmi kamu tatilleri — tarihler, yerel adlar ve tür. nakordoni.eu tatil takvimi sayfasını ve tahmin sisteminin takvim faktörlerini besleyen aynı Nager.Date / OpenHolidaysAPI hizmeti (yerel olarak hesaplanan bir Kosova takvimi ile) tarafından desteklenir.
?country=PL&year=2026— bir ülke için tam yıllık tatil listesi?upcoming=1&days=30— ülkeler genelinde yaklaşan tatillerin düz listesi- Parametresiz — her bir sonraki tatille birlikte temel ülke kümesinin dizini
currency ürünü eklendi — Frankfurter (ECB) kaynağından alınan ve 6 saat önbelleğe alınan PLN, CZK, HUF, USD, GBP, CHF, NOK ve UAH için EUR tabanlı döviz kurları. Parametre yok, her zaman tam kur tablosunu döndürür. belgelere bakın.
Canlı Avrupa kamyon sürüş yasaklarını kendi web sitenize gömün — 3 tasarım (light, dark, board), 5 dil (en, uk, pl, de, ru), isteğe bağlı ülke bazında filtre ve canlı «şu an aktif» durumu olan ücretsiz bir iframe widget'ı. API anahtarı gerekmez. Kodu nakordoni.eu/en/for_truck_drivers/traffic_bans/widget adresinde yapılandırın ve kopyalayın. Ham veriyi mi tercih edersiniz? truck-bans API ürünü ve genel JSON akışı kullanılabilir durumda kalır.
border ve etkileşimli Sandbox
Üç ekleme, hepsi geriye dönük uyumlu — v1 değişmedi.
Endpoint bazında sürümleme. Artık bir /api/v2/ temel URL'si var. Bu, endpoint bazındadır: yalnızca gerçekten değişen endpointler v2 altında farklı davranır; diğer her endpoint şeffaf biçimde v1 yanıtını sunar (yani /api/v2/data/queue = v1 ile aynı veri, sadece "api_version":"v2" ile). Çalışan endpointleri taşımaya gerek yok.
border v2 yönlüdür. Yol sırası seyahat yönüdür:
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)
Her kontrol noktası ayrıca bir direction {from,to} nesnesi ve bir stale boolean değeri kazanır ve ?max_age_min=N yalnızca son güncellenen geçişleri döndürür. (v1 border sıradan bağımsız olarak hâlâ sınırın her iki tarafını döndürür — değişmedi.)
Etkileşimli Sandbox. Oturum açmış geliştiriciler artık herhangi bir endpointi tarayıcıdan Developers → Sandbox adresinde deneyebilir — bir endpoint, sürüm ve anahtarlarınızdan birini seçin, parametreleri ayarlayın ve canlı yanıtı görün. Sandbox testinin kendi ayrı günlük bütçesi vardır (günde 50 çağrı) ve canlı API kotanıza asla dokunmaz.
Belgeler artık endpoint bazında bölünmüştür (Developers → API Docs) ve birden fazla sürümü olan endpointlerde bir sürüm seçici bulunur.
queue-advanced: iki yeni ayarlama faktörü
Mevcut section_mode ve hava durumu ayarlamalarının yanı sıra bekleme süresi formülüne iki yeni faktör eklendi:
service_rate— şu anda işlenen ölçülen araç/dk değerinin, kontrol noktasının yapılandırılmış temel oranına oranı. Çarpımsal, 0.5x-1.5x ile sınırlı.shift_change— kontrol noktasının kendi yerel 08:00/20:00 sınır muhafızı vardiya değişiminin etkisi. Toplamsal (dakika), çarpımsal değil — yalnızca bir vardiyanın +/-60 dakikası içinde uygulanır, asgari bir örnek geçmişi gerektirir, +/-120 dakika ile sınırlandırılır.
advanced_wait_min artık round(base_wait × section_mode × weather × service_rate) + shift_change.adjustment_min şeklindedir. Her iki faktör de geçmiş karşılaştırmalar için driver_reported.prognosed_advanced_wait_min içinde yansıtılır.
queue, border, multi, update-info ürünlerinden birkaç yalnızca dahili alan kaldırıldı
Bir güvenlik/gizlilik incelemesi kapsamında, aşağıdaki alanlar kaldırıldı — bunlar gerçek bir ürün değeri olmadan dahili uygulama ayrıntılarını (üst kaynak veri taksonomimiz, DB satır kimlikleri, dahili pipeline açıklamaları, kullanılmayan/ölü alanlar) açığa çıkarıyordu:
idvecorrected—queuesatır nesnelerinden kaldırıldısource(ham dize, ör."line") —queue,multiveupdate-infoürünlerinden kaldırıldı.update-infovemultiürünününupdate_infobloğu hâlâsource_category/source_label_entaşır (küçük bir genel sözcük dağarcığı);queuevemultiürünününqueuebloğu artık hiçbir source alanı taşımaztraffic_status—borderürününden kaldırıldı; her zamannullidi ve sistemin hiçbir parçası tarafından doldurulmadı
Entegrasyonunuz bu alanlardan herhangi birini okuyorsa, lütfen güncelleyin — güncel alan listesini ilgili ürünün belge sayfasında görün.
usage.used artık kesirli bir sayı olabilir
Günlük kota kullanımı (her yanıtta usage.used) artık her zaman tam sayı yerine ondalık bir değer (ör. 67.5) olabilir. Bu, queue-advanced ürününün kesirli bir oranla faturalandırılmasının bir yan etkisidir — aşağıya bakın. usage.limit etkilenmez ve her zaman tam sayıdır. İstemciniz usage.used değerini kesinlikle tam sayı olarak tipliyorsa, lütfen bir ondalık/float kabul edecek şekilde genişletin.
wait_status ve trend_percent/trend_direction, border, multi ve queue-advanced ürünlerine eklendi
Bu üç ürün artık web sitesinin gösterdiği aynı canlı durum alanlarını döndürüyor: wait_status (green/yellow/red, bu kontrol noktasının kendi son geçmişine dayalı) ve trend_percent/trend_direction (up/up-slight/down/down-slight/stable, son 3 saati karşılaştırarak). Tamamen ekleyici.
queue: wait_time artık her geçmiş satırda dolduruluyor
/api/v1/data/queue ürününün data[] satırlarında daha önce çoğu kaynak için wait_time: null vardı — yalnızca birkaç üst kaynak akışı bekleme süresini doğrudan bildirir. Bekleme süresi olmayan satırlar artık standart tahminini alır ve gerçek bir bildirilen değeri hesaplanmış olandan ayırt edebilmeniz için yeni bir wait_time_estimated boolean ile işaretlenir.
queue-advanced: 1.5x faturalandırılıyor, yanıt kırpıldı
queue-advanced artık çağrı başına 1 yerine 1.5 birim maliyetindedir (yaptığı ekstra trafik/hava/sürücü-raporu aramalarını yansıtarak) — yukarıdaki usage.used bölümüne bakın. Yanıt ayrıca artık total_crossing_time içermiyor ve driver_reported artık yalnızca {wait_min, ts, age_min} — önceki tahmin-gerçeklik karşılaştırma alanları (prognosed_wait_min, diff_min, historical_section_mode, historical_weather vb.) kaldırıldı. section_mode, weather, advanced_wait_min ve exceeds_crossing_time değişmedi.
active_window / next_window)
/api/v1/data/truck-bans artık bans_by_country içindeki her ülke için bir status (active/clear) artı active_window, next_window, local_time ve tz döndürüyor — bu, o ülkenin kendi saat diliminde hesaplanır, böylece artık ham yasak pencerelerini bir saate göre kendiniz değerlendirmek zorunda kalmazsınız. Yanıt ayrıca üst düzey bir covered_countries listesi ve bir as_of UTC zaman damgası ekler.
GET /api/v1/data/truck-bans?country=PL
Tamamen ekleyici — mevcut current_bans/upcoming_bans/bans_by_country alanları değişmedi. Bilinmeyen bir ?country= artık her ülkenin yasakları yerine countries_not_covered ile boş bir sonuç döndürür.
queue-advanced)
Standart bekleme süresini canlı trafik akışı ve hava durumuna göre ayarlayan yeni, isteğe bağlı bir ürün. Her ayarlamanın tam dökümünü döndürür.
GET /api/v1/data/queue-advanced?ppid=id_13
Talep üzerine verilir — etkinleştirmek için panonuzdan bir Data talebi açın.
/api/v1/data/border artık queue ve multi ürünleriyle eşleşecek şekilde yanıttaki her kontrol noktası için wait_min değerini doğru şekilde hesaplıyor. Daha önce bu alan her zaman null idi.
/api/v1/data/forecast artık herhangi bir prediction_steps değeri için güvenilir biçimde v4 topluluk modelini kullanıyor (daha önce bazı standart dışı ufuklar sessizce daha eski bir modele geri dönebiliyordu). Topluluğu besleyen hava durumu faktörü de düzeltildi ve artık her zaman kullanılamıyor bildirmek yerine canlı koşulları (yağmur, kar, rüzgâr, sis) gerçekten yansıtıyor.
Onaylı geliştiriciler artık yeni Data export sekmesinden en fazla 5 kontrol noktası için saatlik ortalaması alınmış geçmiş sınır kuyruğu verilerini (90 güne kadar kayan pencere) CSV veya NDJSON olarak indirebilir. Veriler yalnızca yayınlanmış ve kalite kontrolünden geçmiştir; zaman damgaları UTC'dir. Erişime mi ihtiyacınız var? Bir Data talebi açın.
Henüz web siteniz yok mu? Artık canlı bir sayfa URL'si girmeye zorlanmak yerine, verilerimizi nerede ve nasıl kullanmayı planladığınızı anlatarak bir geliştirici hesabı oluşturabilirsiniz. Siteniz veya uygulamanız yayına girer girmez gerçek URL'yi daha sonra panonuzdan (Account & data → Your project) ekleyin — o sayfada nakordoni.eu'ya görünür bir bağlantı Şartlarımız gereği zorunludur.
Geliştiriciler artık kendi sınırla ilgili haberlerini Nakordoni haber hattına gönderebilir. Editörlerimiz yayınlarsa, hizmetinize dizine eklenebilir bir dofollow backlink (yayıncı künyesi + kaynak satırı) alırsınız ve makaleyi ücretsiz olarak 24 dilin tümüne çeviririz.
Haftada bir makale ücretsizdir; ek makaleler ücretli bir eklentidir. 'hafifçe düzenleyebilir + dahili bağlantılar ekleyebiliriz' veya 'olduğu gibi yayınla' seçin. Developers → Submit news altında gönderin ve inceleme durumunu takip edin.
Multi-Checkpoint API (/api/v1/data/multi) artık kotayı ⌈(N PPID × alt ürün) / 2⌉ olarak faturalandırıyor — eşdeğer bireysel çağrıların yarısı maliyetinde. Her iki alt ürünle 10 kontrol noktası için bir istek artık 20 yerine 10 birim maliyetindedir. Yanıttaki X-Devapi-Units başlığı ve meta.units_consumed indirimli tutarı yansıtır.
multi)
Tek bir API çağrısında en fazla 20 kontrol noktası için canlı kuyruk durumunu ve veri tazeliğini alın — şu anda bir döngüde birçok PPID'yi yoklayan pano geliştiricileri için tasarlandı.
Kota adil biçimde istenen N PPID × alt ürün olarak sayılır, dolayısıyla toplam kullanım bireysel çağrılarla aynıdır — ancak çok yerine tek bir gidiş-dönüş ile. GreenTravel tarzı desenler saatte 24+ çağrıdan 2'ye düşer.
GET /api/v1/data/multi?ppids=id_2,id_13,id_15,id_59&include=queue,update-info&lang=en
include=queue— güncel queue_now, tahmini wait_min, veri yaşı ve kontrol noktası adıinclude=update-info— veri tazeliği, kaynak sınıflandırması, saniye/dakika cinsinden yaş- İstek başına en fazla 20 PPID; tam pano verisi için her iki alt ürünü tek bir çağrıda birleştirin
- Yanıt
meta.units_consumediçerir, böylece kota kullanımını hassas biçimde takip edebilirsiniz
queue ürününün yanıtı artık en son gerçek zamanlı verileri ve hesaplanmış tahmini bir bekleme süresini içeren üst düzey bir snapshot nesnesi içeriyor — nakordoni.eu hero bölümünde kullanılan aynı formül:
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 dizisi (geçmiş girişler) değişmedi — bu tamamen ekleyici bir eklemedir. snapshot öğesini okumayan istemciler etkilenmez.
border)
Her PPID için bir istek yapmak yerine, belirli bir sınır + araç türündeki tüm kontrol noktalarını tek bir çağrıda sorgulayın.
GET /api/v1/data/border/{origin}/{destination}/{crossing_type}
- Tek bir hedef ülkeyi, virgülle ayrılmış bir listeyi veya bir kerede izlenen her komşuya genişletmek için
alldeğerini destekler. - Sonuçlar
queue_nowdeğerine göre artan sırada sıralanır (önce en kısa kuyruk). - Tamamen yerelleştirilmiş: o dilde kontrol noktası adlarını almak için
?lang=uk(veya desteklenen 22 dilimizden herhangi birini) ekleyin.
search)
Tam dizini taramadan kontrol noktası PPID değerlerini ada göre keşfedin.
GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en
- Tek bir adı veya virgülle ayrılmış bir listeyi (en fazla 20) kabul eder.
- Tüm 24 çeviri dilinde arama yapar — Ukraynaca, Lehçe, Almanca veya desteklenen herhangi bir dilde bir ad girin, eşleşecektir.
- O konumdaki tüm PPID'leri araç türüne göre gruplandırılmış olarak döndürür (araba / otobüs / yaya / kamyon).
crossing_type geçersiz kılma
alternatives ürünü artık desteklenen tüm 22 dilde ?lang= kabul ediyor (önceden yalnızca 12 idi).
Yeni crossing_type parametresi, araç türü filtresini geçersiz kılmanıza olanak tanır — örn. bir otobüs PPID'sinden sorgularken bile araba alternatiflerini almak için crossing_type=4 geçirin.
checkpoints, border ve search yanıtlarındaki crossing_type_label alanı artık desteklenen tüm 22 dilde istenen dile çevriliyor. Ülke adı alanları (origin_name, destination_name) aynı yerel ayarı izler.
Nakordoni Developer API portalı /en/developers adresinde yayında. Sınır kuyruğu verilerine, tahminlere, yakıt fiyatlarına, sürücü POI'lerine ve daha fazlasına erişmek için ücretsiz bir Explorer anahtarına (günde 200 istek) kaydolun.
Lansmanda mevcut ürünler: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant.
Bu günlük genel API değişikliklerini kapsar. Dahili güncellemeler listelenmez.
Güncellendi