Ιστορικό αλλαγών 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. - Ανά χώρα: km, διόδια, λίτρα ντίζελ και κόστος καυσίμου (χωρίς ΦΠΑ), καθώς και η κατηγορία οχήματος που χρεώθηκε στα διόδια.
- Χρόνος οδηγού: η οδήγηση, τα διαλείμματα και οι αναπαύσεις ακολουθούν τους κανόνες ΕΕ 561/2006. Το κόστος οδηγού και η ημερήσια αποζημίωση χρησιμοποιούν τον συντελεστή της χώρας αναχώρησης. Η Ισπανία και η Ιταλία έχουν τώρα συντελεστή οδηγού και ημερήσια αποζημίωση από τις συλλογικές συμβάσεις.
- Τάση: το
trendδίνει τον δείκτη κόστους του τρέχοντος και των δύο προηγούμενων μηνών. - Ελλιπή δεδομένα: όταν μια χώρα της διαδρομής δεν έχει δεδομένα διοδίων ή καυσίμου, ή η χώρα αναχώρησης δεν έχει συντελεστή οδηγού, το
incompleteείναιtrueκαι το σύνολο είναι κατώτατο όριο. Ταmissing_countriesκαιmissing_componentsδείχνουν τι λείπει.
Πρόκειται για δείκτη κόστους, όχι για τιμή μεταφοράς: το κεφάλαιο του οχήματος, η ασφάλιση, τα γενικά έξοδα και το περιθώριο δεν περιλαμβάνονται.
Όριο: ένα αίτημα μετρά ως 1 μονάδα της κλάσης route, όπως το truck-route.
Τεκμηρίωση: Lane Cost Index.
Το προϊόν toll-cost υπολογίζει πιο ακριβώς τη Γαλλία, την Ισπανία και την Ιταλία.
- Γαλλία και Ισπανία: ένα τμήμα αυτοκινητόδρομου ανάμεσα σε δύο σταθμούς διοδίων της διαδρομής υπολογίζεται με το τιμολόγιο εισόδου/εξόδου του φορέα του αυτοκινητόδρομου. Εμφανίζεται ως νέος τύπος στοιχείου
motorway_sectionμε τον φορέα ή τον δρόμο, τους δύο σταθμούς,toll_kmκαιcost_eur. Τα υπόλοιπα χλμ με διόδια της χώρας χρησιμοποιούν ακόμη τον μέσο όρο ανά χλμ. - Κατηγορία οχήματος: Γαλλία: κατηγορία 3 για 2 άξονες και κατηγορία 4 για 3 ή περισσότερους άξονες. Ισπανία: Pesados 1 για 2 ή 3 άξονες και Pesados 2 για 4 ή περισσότερους άξονες.
- Ιταλία: τα φορτηγά με 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για το σύνολο. - Ανά χώρα: χιλιόμετρα με διόδια, πραγματική χρέωση σε EUR ανά km, κόστος, η κατηγορία οχήματος που τιμολογήθηκε και η ημερομηνία του τιμολογίου. Χρεώσεις για συγκεκριμένη κατηγορία Euro και CO2 χρησιμοποιούνται όπου υπάρχει επίσημο τιμολόγιο για αυτή την κατηγορία. Διαφορετικά χρησιμοποιείται η χρέωση της προεπιλεγμένης κατηγορίας και το
class_fallbackείναιtrue. - Ξεχωριστά στοιχεία: τμήματα αυτοκινητοδρόμων με παραχώρηση, καθώς και σήραγγες και γέφυρες με δικά τους διόδια για φορτηγά (για παράδειγμα Calafat-Vidin).
Όριο: ένα αίτημα μετράει ως 1 μονάδα της κατηγορίας route, όπως το 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): διάγραμμα θέσεων, χάρτης διαδρομής και χρονολόγιο ως URL σε PNG, WebP ή JPG. Οι εικόνες διατηρούνται 12 ώρες. Λαμβάνετε επίσης
embed_htmlγια να εμφανίσετε το αποτέλεσμα στη σελίδα σας. Οι διευθύνσεις URL των εικόνων ξεκινούν μεhttps://api.nakordoni.dev/images/. - Κίνηση: το μπλοκ
animationέχει ένα καρέ κάθε 5 λεπτά με τη θέση του λεωφορείου, την κατεύθυνση, το αζιμούθιο και το ύψος του ήλιου και την ηλιόλουστη πλευρά, με ετικέτες στη γλώσσα σας, σύνολα ανά πλευρά και υπόμνημα. Στείλτεanimation=0για να το παραλείψετε. - Widget: εμφανίστε το αποτέλεσμα σε οποιονδήποτε ιστότοπο, και σε WordPress, με ετικέτα script ή iframe. Το widget χρησιμοποιεί δημόσιο κλειδί που λειτουργεί μόνο στα origins που επιτρέπετε, και τα δικά μας πλακίδια χάρτη. Διατίθεται πρόσθετο WordPress (zip).
bus-sun-catalog(/api/v2/data/bus-sun-catalog): τα μοντέλα λεωφορείων που δέχεται τοbus-sun-side, με διάταξη θέσεων και παράθυρα.
Όριο: ένα αίτημα POST με εικόνες μετρά ως 2 μονάδες. Όλα τα άλλα αιτήματα μετρούν ως 1 μονάδα.
Τεκμηρίωση: Bus Sun Side.
Το fleet-compliance-validate καλύπτει πλέον μεγαλύτερο μέρος του κανονισμού EU 561/2006 όπως τροποποιήθηκε από τον κανονισμό (ΕΕ) 2020/1054. Τα υπάρχοντα πεδία της απάντησης δεν αλλάζουν· προστίθενται νέα πεδία.
- Εξαίρεση Άρθρου 12: σημειώστε τις δραστηριότητες οδήγησης με
art12_exceed: true. Σε εξαιρετικές περιπτώσεις ο οδηγός μπορεί να υπερβεί τα ημερήσια και εβδομαδιαία όρια οδήγησης έως και 1 ώρα, για να φτάσει στο επιχειρησιακό κέντρο ή στο σπίτι για εβδομαδιαία ανάπαυση, ή έως και 2 ώρες μετά από διάλειμμα 30 λεπτών, όταν έπεται κανονική εβδομαδιαία ανάπαυση. Ο ελεγκτής το δέχεται και επιστρέφει την οφειλόμενη αντιστάθμιση και την προθεσμία της (το τέλος της τρίτης εβδομάδας μετά) σταremaining.driving.art12_compensationκαιexceptions.art12. - Επιστροφή στη βάση, Άρθρο 8(8a): στείλτε το
location(residence,operational_centreήelsewhere) στις εβδομαδιαίες αναπαύσεις. Λαμβάνετε προειδοποίηση όταν 4 συνεχόμενες εβδομάδες δεν έχουν κανονική εβδομαδιαία ανάπαυση στο σπίτι ή στο επιχειρησιακό κέντρο. - Παρέκκλιση 12 ημερών, Άρθρο 8(6a):
passenger_12day: trueγια μία έκτακτη διεθνή υπηρεσία μεταφοράς επιβατών με πούλμαν. Η εβδομαδιαία ανάπαυση μπορεί τότε να λάβει χώρα έως και δώδεκα περιόδους 24 ωρών μετά από μια κανονική εβδομαδιαία ανάπαυση. Ελέγχονται οι αναπαύσεις που ακολουθούν και η νυχτερινή οδήγηση (22:00-06:00). Το Άρθρο 8(6)(b) της AETR εφαρμόζεται με τον ίδιο τρόπο. - Εθνικά νυχτερινά παράθυρα (Οδηγία 2002/15/ΕΚ Άρθρο 3(h)): χρησιμοποιήστε το
countryή τοwtd.countryγια να εφαρμόσετε την εθνική νυχτερινή περίοδο. Επαληθευμένα: AT, IE (οι επιβάτες χωριστά) και SE. Οι άλλες χώρες ΕΕ/ΕΟΧ χρησιμοποιούν 00:00-04:00 και επιστρέφουνnight_window_verified: false. fleet-compliance-limits: η AETR απαριθμεί πλέον τις τροποποιήσεις μετά το 2010 που ελέγχθηκαν. Αλλάζουν μόνο το Άρθρο 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 h εβδομαδιαίως και 90 h ανά δύο εβδομάδες, το επόμενο διάλειμμα, ημερήσια και εβδομαδιαία ανάπαυση. Καλύπτει τα διασπασμένα διαλείμματα, τις μειωμένες και παρατεταμένες ημέρες, την αντιστάθμιση της μειωμένης εβδομαδιαίας ανάπαυσης, τη νυχτερινή εργασία, το διπλό πλήρωμα και τη διακοπτόμενη ανάπαυση σε πλοίο ή τρένο.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 (route-plan με rest_rules=eu561 και truck-route). Ο Κανονισμός (ΕΕ) 2020/1054 τροποποίησε το άρθ. 8 παρ. 8 του EU 561/2006: η κανονική εβδομαδιαία ανάπαυση και κάθε εβδομαδιαία ανάπαυση άνω των 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 και /api/v2/data/fuel με mode=nearest έχουν πλέον μέγιστη ηλικία 90 ημερών. Μια τιμή που επιβεβαιώσαμε τελευταία φορά πριν από περισσότερες από 90 ημέρες δεν επιστρέφεται πλέον. Πριν, μια τέτοια τιμή επιστρεφόταν με stale = true.
Τι αλλάζει στις απαντήσεις: ένα καύσιμο που έχει μόνο παλαιότερη τιμή λείπει από το prices· ένα πρατήριο χωρίς καμία τιμή δεν εμφανίζεται στη λίστα ή έχει κενό αντικείμενο prices όπου εμφανίζονται πρατήρια χωρίς τιμή· και μια απάντηση μπορεί να είναι κενή εκεί όπου πριν περιείχε παλιές τιμές. Μια κενή απάντηση περιέχει όπως πάντα το empty_reason. Το fuel-local μπορεί τότε να απαντήσει από το επίπεδο περιοχής ή χώρας. Η σημαία stale δεν αλλάζει: είναι true όταν μια τιμή επιβεβαιώθηκε τελευταία φορά πριν από περισσότερες από 7 ημέρες. Το ιστορικό τιμών διατηρείται. Για τα 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.
Το πλάνο ανάπαυσης αντιμετωπίζει την αναμονή στα σύνορα ως χρόνο που πέρασε στα σύνορα: μια μεγάλη ουρά μετράει ως το διάλειμμα, την ημερήσια ή εβδομαδιαία ανάπαυση που οφειλόταν (counts_as στη γραμμή waits[]), αντί να προστίθεται από πάνω. Το 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. Οι απαντήσεις που περιέχουν πρατήρια δεν αλλάζουν. Λεπτομέρειες: Κενές απαντήσεις.
Ακτίνα αναζήτησης. Το radius_km στο /api/v2/data/fuel-stations πλέον διατηρεί ένα δεκαδικό ψηφίο. Μια ακτίνα όπως 4.8 προηγουμένως περικοπτόταν σε 4 χωρίς ειδοποίηση, οπότε κάθε αναζήτηση κάλυπτε έως και το ένα τρίτο λιγότερη έκταση από την ζητούμενη και μπορούσε να επιστρέψει λιγότερα πρατήρια ή κανένα. Το anchor.radius_km δείχνει την ακτίνα που εφαρμόστηκε πραγματικά· οι ακέραιοι αριθμοί επιστρέφονται όπως πριν.
Ονόματα μαρκών. Η ίδια μάρκα γράφεται πλέον πάντα με τον ίδιο τρόπο στο brand — για παράδειγμα τα ORLEN και orlen επιστρέφονται ως Orlen, και το CircleK ως Circle K. Τα πρατήρια, οι τιμές, τα id και τα πεδία δεν αλλάζουν. Αν αντιστοιχίζετε μάρκες με ακριβή ορθογραφία (για λογότυπα ή φίλτρα), ελέγξτε τη λίστα σας με τα νέα ονόματα.
Το 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και παράκαμψη. - Πρόγραμμα ανάπαυσης οδηγού βάσει του Κανονισμού ΕΕ 561/2006: διαλείμματα (συμπεριλαμβανομένων των διαιρεμένων 15+30), ημερήσια και εβδομαδιαία ανάπαυση (συμπεριλαμβανομένης της μειωμένης), μόνος οδηγός ή πλήρωμα δύο οδηγών (
crew=2), με αφετηρία την τρέχουσα κατάσταση του οδηγού, αν την περάσετε. Κάθε στάση τοποθετείται σε πραγματικό χώρο στάθμευσης κατά μήκος της διαδρομής. Είναι βοήθημα σχεδιασμού, όχι καταγραφή ταχογράφου. - ETA με συνυπολογισμό των αναπαύσεων, των απαγορεύσεων κυκλοφορίας φορτηγών και των αναμονών στα σύνορα. Σχεδιασμός με
depart_atήarrive_at. - Εκτιμήσεις κόστους διοδίων ανά χώρα (EUR, ανά άξονες και κλάση εκπομπών)· οι χώρες χωρίς τιμολόγηση αναφέρονται στο
tolls.coverage_note. Επίσηςavoid(διόδια, πορθμεία, αυτοκινητόδρομοι, σύνορα, σήραγγες, χωματόδρομοι, ζώνες χαμηλών εκπομπών), έως 2 εναλλακτικές, ανάλυση ανά χώρα καιgeometryως polyline5, polyline6 ή GeoJSON.
Όριο: ξεχωριστό όριο για διαδρομές φορτηγών: 10 κλήσεις την ημέρα σε κάθε λογαριασμό, περισσότερες στα επί πληρωμή πλάνα, και το πρόσθετο Επιπλέον κλήσεις διαδρομών φορτηγών. Στο sandbox μπορείτε να εκτελείτε 10 διαδρομές φορτηγών την ημέρα, να δείτε το αποτέλεσμα στον χάρτη με το πλήρες πρόγραμμα διαδρομής και να το εξαγάγετε σε GPX, KML, GeoJSON, CSV, ημερολόγιο (.ics) ή ITN. Δείτε τη σελίδα του προϊόντος και την τεκμηρίωση αναφοράς.
Σύμφωνα με τους Όρους API, ένα Market είναι η χώρα των οποίων τα δεδομένα χρησιμοποιείτε, και το κλειδί σας καλύπτει τις εγκεκριμένες χώρες για τον λογαριασμό σας. Μέχρι τώρα, τα προϊόντα με συντεταγμένες (lat/lon — π.χ. Nearby Shops, Truck Parkings, Fuel Stations) απαντούσαν για οποιοδήποτε σημείο στην Ευρώπη. Από 13 Οκτωβρίου 2026, αυτό ελέγχεται κατά την εξυπηρέτηση του αιτήματός σας:
- Ένα αίτημα του οποίου το
lat/lonβρίσκεται σε χώρα που δεν είναι εγκεκριμένη για τον λογαριασμό σας επιστρέφει 403 μεerror.codemarket_not_allowed. Το μήνυμα αναφέρει τη χώρα και τη λίστα εγκεκριμένων χωρών σας. - Όταν η ακτίνα διασχίζει σύνορα, τα αποτελέσματα των οποίων το
country_codeβρίσκεται εκτός των εγκεκριμένων χωρών σας αφαιρούνται. Η απάντηση περιλαμβάνει τότεmarkets_filtered(πόσα αφαιρέθηκαν) καιmarkets_notice, και τοtotal_foundμετρά μόνο όσα λάβατε.
Αυτό ισχύει για λογαριασμούς των οποίων οι χώρες έχουν ελεγχθεί (κατάσταση approved ή partial). Τίποτα δεν αλλάζει στο αίτημα — καμία νέα παράμετρος, καμία νέα έκδοση. Αν η εφαρμογή σας χρειάζεται άλλη χώρα, προσθέστε την στην πύλη προγραμματιστών πριν από τις 13 Οκτωβρίου. Το market_not_allowed αναφέρεται μαζί με τους άλλους κωδικούς σφάλματος στην αναφορά.
Οι λογαριασμοί προγραμματιστών που είναι συνδεδεμένοι με λογαριασμό Nakordoni Partners με το ίδιο email μπορούν πλέον να υποβάλλουν ειδήσεις και να διαχειρίζονται τον στόλο NakBus τους (NakDriver / NakManager) από το partners.nakordoni.eu, με ρόλους ομάδας (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 γλώσσες ελέγχονταν ποτέ έναντι του πίνακα ετικετών, οπότε ό,τι βρισκόταν εκτός αυτής της λίστας έπεφτε στο προεπιλεγμένο λεξιλόγιο διεπαφής αντί για τη γλώσσα που ζητήθηκε. Ξεχωριστά, το lang=tr (ή αρκετοί άλλοι έγκυροι κωδικοί) απαντούσε με λίστες πρατηρίων στα ουκρανικά, επειδή μια εσωτερική προεπιλογή uk ενεργοποιούνταν κάθε φορά που η ζητούμενη γλώσσα δεν ήταν στην ίδια λίστα των 10 γλωσσών. Και τα δύο διορθώθηκαν: η γλώσσα που στέλνετε είναι πλέον η γλώσσα που λαμβάνετε, και στις 25.
Επίσης: το brand στο Nearby Fuel Stations δεν επιστρέφει πλέον την ακατέργαστη τιμή εισαγωγής OTHER για τα ~330 πρατήρια των οποίων τη μάρκα δεν γνωρίζουμε — είναι πλέον null, σύμφωνα με κάθε άλλο άγνωστο πεδίο της απάντησης.
Border AI Assistant (/api/v1/data/assistant) επέστρεφε 503 internal_error — «Assistant temporarily unavailable» — όταν το ίδιο κλειδί έκανε την ίδια ερώτηση δύο φορές μέσα σε πέντε λεπτά. Τίποτα δεν ήταν μη διαθέσιμο: στις περισσότερες από αυτές τις περιπτώσεις η απάντηση είχε ήδη υπολογιστεί και ήταν έτοιμη να επιστραφεί. Πλέον επιστρέφεται κανονικά, με ok: true και HTTP 200.
Όταν η επανάληψη φτάνει ενώ η πρώτη απάντηση γράφεται ακόμη, η κλήση επιστρέφει τώρα 429 με error.code ίσο με duplicate_request αντί για 503, ώστε μια πολιτική επαναλήψεων να μπορεί να ξεχωρίσει το «ρωτήστε ξανά σε λίγο» από μια πραγματική διακοπή. Και οι δύο περιπτώσεις προσμετρούνταν επίσης ως σφάλματα διακομιστή στο ποσοστό σφαλμάτων του λογαριασμού σας· πλέον δεν προσμετρούνται. Τίποτα στο αίτημα δεν αλλάζει — καμία παράμετρος, καμία έκδοση. Το duplicate_request αναφέρεται μαζί με τους υπόλοιπους κωδικούς σφάλματος στην τεκμηρίωση αναφοράς.
Truck Parking (/api/v2/data/truck-parkings) επέστρεφε εγγραφές με name ίσο με null και κενό address — κοντά στο Bensheim, 20 από 50. Πρόκειται για σημεία που διατηρούμε μόνο ως συντεταγμένη, χωρίς τίποτα να εμφανιστεί και χωρίς τίποτα να αντιστοιχιστεί με το δικό σας σύνολο 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. Καμία παράμετρος, καμία έκδοση, καμία άλλη αλλαγή πεδίου.
Μέχρι τώρα κάθε endpoint καυσίμων περιέγραφε την ίδια του την κάλυψη με μια λίστα γραμμένη στο χέρι: 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, DEF για το AdBlue, καθώς και αρκετά εμπορικά ονόματα premium ντίζελ και βενζινών. Η σειρά αναγνώρισης δεν άλλαξε και η αντιστοίχιση παραμένει ακριβής, επομένως κανένα όνομα που δούλευε πριν δεν σημαίνει σήμερα κάτι άλλο, ενώ ένα νέο όνομα μπορεί το πολύ να μετατρέψει μια κενή απάντηση σε απάντηση με τιμές. Ταυτόχρονα, η τεκμηρίωση αναφοράς και οι περιγραφές των endpoints διορθώθηκαν και στις 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 Νοεμβρίου δεν αλλάζει τίποτα.
Το sandbox του API επισημαίνει πλέον κάθε endpoint στη λίστα με την κλάση ορίου του (Βαρύ / Πρότυπος), δείχνει το κόστος ορίου για την επιλεγμένη έκδοση πριν εκτελέσετε οτιδήποτε και, μετά από μια κλήση, δείχνει πόσο θα κόστιζε η ίδια κλήση στο πραγματικό σας όριο — συμπεριλαμβανομένου του τύπου ceil(N ppids × M sub-products / 2) που χρησιμοποιείται για κλήσεις μορφής /multi.
Πρόκειται για προεπισκόπηση μόνο για ανάγνωση: οι ίδιες οι κλήσεις του sandbox αφαιρούνται από τον ξεχωριστό δοκιμαστικό προϋπολογισμό του sandbox, ποτέ από το πραγματικό σας όριο.
Από σήμερα, οτιδήποτε έχουμε ανακοινώσει δημόσια ότι αποσύρεται είναι κλειστό για λογαριασμούς προγραμματιστή που δημιουργήθηκαν κατά την ημερομηνία της ανακοίνωσης ή αργότερα. Αν ο λογαριασμός σας υπήρχε πριν από την ανακοίνωση, δεν αλλάζει τίποτα — διατηρείτε ολόκληρη την περίοδο χάριτος, μέχρι την ημερομηνία απόσυρσης που αναφέρεται στην καταχώριση που την ανακοίνωσε.
Γιατί υπάρχει αυτός ο κανόνας. Στις 24 Αυγούστου 2026 ανακοινώσαμε ότι το truck-bans v1 αποσύρεται στις 8 Σεπτεμβρίου 2026. Δύο λογαριασμοί που εγγράφηκαν λίγες ημέρες μετά από εκείνη την ανακοίνωση έχτισαν την ενσωμάτωσή τους πάνω στο v1 και έφτασαν λίγες ώρες πριν από ένα 410 χωρίς να τους έχει φτάσει ποτέ κανένα email μας: τόσο η ανακοίνωση όσο και η αποστολή των ειδοποιήσεων προηγούνταν της εγγραφής τους. Τίποτα στο 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). Οι λίστες destination με κόμματα σε v1 και v2 συνεχίζουν να λειτουργούν, αλλά πλέον υπόκεινται στην ίδια προθεσμία με το destination=all: και τα δύο σταματούν στις 2026-10-06 (έως τότε κεφαλίδες Deprecation/Sunset, μετά 400 destination_list_removed, που υποδεικνύει το /api/v4/ ως αντικατάσταση). Ο υπάρχων έλεγχος ορίου 10 στοιχείων στις λίστες με κόμματα παραμένει αμετάβλητος πριν από αυτή την ημερομηνία.
Το v4 παραμένει σε έναν προορισμό ανά κλήση — αυτό δεν άλλαξε σήμερα. Άλλαξε μόνο ο τρόπος που επικοινωνούνται τα v1/v2: το σφάλμα 400 για destination=all δεν προτείνει πλέον λίστα με κόμματα ως διαδρομή μετάβασης (θα έσβηνε την ίδια ημερομηνία), αλλά παραπέμπει απευθείας στο 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 γλώσσες του ιστότοπου και δηλώνει ρητά τον κανόνα ενός προορισμού στο v4 αντί να επιστρέφει στη διατύπωση των v1/v2.
Το /api/v4/data/border/{origin}/{destination}/{crossing_type} είναι ενεργό από σήμερα. Τρία πράγματα αλλάζουν σε σχέση με το v2 και μαζί εξηγούν γιατί πρόκειται για νέα έκδοση και όχι για διόρθωση.
1. Τέλος το destination=all. Τα δεδομένα μας αδειοδοτούνται ανά χώρα (Όροι Developer API, ενότητα 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 (Freight Transport έως 7,5 t). Ο διαχωρισμός αυτός υπάρχει πράγματι στο συνοριακό σημείο, αλλά κανένας ενσωματωτής δεν μπορεί να τον αξιοποιήσει: ζητώντας από το v2 τον κωδικό 9 στα σύνορα UA-PL επιστρέφονταν 21 από τις 70 διελεύσεις φορτηγών και τίποτα δεν το ανέφερε. Το v4 απαντά στο 9 με όλες τις λωρίδες φορτηγών και δέχεται το 8 ως συνώνυμο του 9. Κάθε γραμμή φέρει το δικό της crossing_type, ώστε μια ενοποιημένη απάντηση να παραμένει ελέγξιμη.
Στα v1 και v2, το destination=all εξακολουθεί να λειτουργεί έως τις 2026-10-06 και έως τότε φέρει κεφαλίδες Deprecation / Sunset. Από την ημερομηνία αυτή οι εκδόσεις αυτές απαντούν 400 και για το all — τα υπόλοιπα του v1 και του v2 μένουν ανέπαφα και παραμένουν διαθέσιμα. Η ίδια ημερομηνία ισχύει και για τις άλλες συντομεύσεις όλων των χωρών: travel-matrix χωρίς ?dest=, bus-carriers με ?ppid=all και fuel-grades χωρίς ?country=.
Το v3, που ανακοινώθηκε νωρίτερα σήμερα, αντικαθίσταται από το v4. Το v3 διέφερε από το v4 μόνο στο ότι εξακολουθούσε να δέχεται λίστα με κόμματα, και καμία ενσωμάτωση δεν χρησιμοποιεί αυτή τη μορφή. Τα URL του v3 συνεχίζουν να απαντούν, ώστε να μη σπάσει ό,τι έχει γραφτεί για αυτά, αλλά το v3 δεν τεκμηριώνεται και δεν θα αναπτυχθεί περαιτέρω — μεταβείτε στο v4.
Όλα τα υπόλοιπα στο v4 είναι ίδια με το v2: κατευθυντική σειρά διαδρομής, direction{from,to}, stale και ?max_age_min=.
Τα αριθμητικά αναγνωριστικά στο /border/{origin}/{destination}/{crossing_type} δεν είχαν δημοσιευτεί ποτέ ως πίνακας, οπότε οι ενσωματωτές τα ανασυνέθεταν από ζώνες ώρας και δείγματα URL. Βρίσκονται πλέον στην τεκμηρίωση, στην ενότητα Κωδικοί χωρών και τύπων οχήματος, και παράγονται από τους ίδιους πίνακες με τους οποίους ελέγχει το API — τα αναγνωριστικά χωρών με τα σύνορα που καλύπτει το καθένα και κάθε crossing_type με την ετικέτα που επιστρέφει το API.
Κατά τη δημοσίευσή τους διαπιστώσαμε ότι το sandbox και τα μεταδεδομένα των endpoint περιέγραφαν το 8 ως "truck<7.5t" και το 9 ως "truck". Αυτό είναι αντεστραμμένο: το API χαρακτηρίζει το 8 ως Freight Transport και το 9 ως Freight Transport έως 7,5 τόνους, και πάντα έτσι ήταν. Αν επιλέξατε κωδικό φορτηγού από την υπόδειξη της παραμέτρου, φιλτράρατε την αντίθετη λωρίδα από αυτήν που εννοούσατε. Διορθώθηκε παντού, και το v3 καταργεί εντελώς αυτή την επιλογή.
Οι Όροι API v1.1 αντικαθιστούν τους v1.0 πριν αυτοί τεθούν σε ισχύ και ισχύουν από τις 2026-10-06. Παρακαλούμε αποδεχτείτε τους στον πίνακα ελέγχου σας.
Η ενότητα 7 ορίζει πλέον τι είναι Αγορά: η χώρα της οποίας τα δεδομένα χρησιμοποιείτε — εκεί όπου βρίσκεται το σημείο ελέγχου ή το σύνορο που ζητάτε — και όχι η χώρα στην οποία ζουν οι χρήστες σας. Ο πίνακας ελέγχου μας ανέφερε και τα δύο σε διαφορετικά σημεία, ενώ στην πράξη ίσχυε πάντα το πρώτο.
Δύο αλλαγές υπέρ σας. Οι χώρες που έχουν ήδη εγκριθεί για τον λογαριασμό σας παραμένουν διαθέσιμες όσο εξετάζεται μια μεταγενέστερη αλλαγή (η προσθήκη χώρας δεν αναστέλλει πλέον όσες ήδη έχετε). Και αν δεν έχουμε απαντήσει σε μια δήλωση αγοράς εντός 5 εργάσιμων ημερών, ισχύουν τα πλήρη όρια του πλάνου σας μέχρι να απαντήσουμε.
Η ενότητα 10.3 αντιστοιχεί πλέον σε αυτό που πραγματικά ζητά ο πίνακας ελέγχου, ενώ η ενότητα 13.2 ορίζει μια βάση διαθεσιμότητας που μετράμε και μπορούμε να σας δείξουμε.
Τρία προϊόντα φέρουν πλέον ένα πρόσθετο πεδίο data_quality (high ή low) που δηλώνει αν μια μέτρηση είναι πραγματική παρατήρηση ή εκτίμηση μοντέλου χωρίς ζωντανή πηγή καταμέτρησης στο συγκεκριμένο σημείο διέλευσης: queue (στο snapshot ανώτατου επιπέδου και σε κάθε ιστορική γραμμή του data[] — απουσιάζει από τις γραμμές πρόβλεψης), update-info (στον φάκελο της απάντησης) και multi (και στα δύο υποαντικείμενα, queue και update_info, ανά σημείο ελέγχου). Δεν πρόκειται για νέο σήμα — η υποκείμενη σημαία υπήρχε ήδη εσωτερικά — αλλά δεν είχε εκτεθεί ποτέ, οπότε ένα πλήρως μοντελοποιημένο σημείο ελέγχου φαινόταν ίδιο με ένα άμεσα μετρημένο. Το is_realtime παραμένει σκόπιμα αμετάβλητο: εξακολουθεί να έχει τιμή true για μοντελοποιημένες γραμμές, και η αλλαγή αυτής της σημασίας θα ήταν breaking change επιπέδου 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, αλλά απαντώνται μόνο τα πρώτα 5 ID στο ?ppids=. Τα υπόλοιπα 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 και στείλτε μία κλήση ανά ομάδα στον συνήθη κύκλο ανανέωσής σας· για συχνή αναζήτηση μόνο του μήκους της ουράς και της φρεσκάδας των δεδομένων, το 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) εμφανίζονται χωρίς πρόθεμα. Τεκμηριώνονται 40 από τα 42 προϊόντα: τα δύο που δεν έχουν ακόμη κυκλοφορήσει (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.
Τρεις διορθώσεις ποιότητας απόκρισης από έλεγχο της πύλης (ticket #43).
Η κεφαλίδα X-API-Key γίνεται πλέον δεκτή παράλληλα με Authorization: Bearer και ?key=. Αν ο HTTP client σας στέλνει τα κλειδιά μέσω κεφαλίδας με όνομα X-API-Key, αυτό πλέον λειτουργεί — προηγουμένως αγνοούνταν σιωπηλά και η κλήση απορριπτόταν ως missing_api_key. Το Authorization: Bearer παραμένει η τεκμηριωμένη και συνιστώμενη μορφή.
Το μήνυμα σφάλματος για κλειδί που λείπει αναφέρει πλέον και τους τρεις τρόπους ταυτοποίησης (κεφαλίδα Bearer, κεφαλίδα X-API-Key ή ?key=) αντί να παραπέμπει μόνο στη σελίδα εγγραφής.
Ο κατάλογος checkpoints περιλαμβάνει πλέον το has_day_stats σε κάθε εγγραφή — μια προσθετική τιμή boolean που δηλώνει αν το API Best Time to Cross (day-stats) διαθέτει δεδομένα για το συγκεκριμένο σημείο διέλευσης. Τα 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. Επίσης, ένας κωδικός ISO-3 όπως το DEU δεν αντιστοιχίζεται πλέον σε όνομα χώρας στη σύνοψη, όπου παρήγαγε το παραπλανητικό “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 παραμένουν αμετάβλητες.
Το νέο endpoint 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 παρουσιάζει τα Kordon Online και Truck Bans με συνδέσμους Google Play. Συμπλήρωση μεταφράσεων: το ιστορικό χρεώσεων, τα σφάλματα σύνδεσης, οι σύνδεσμοι sandbox και το κουμπί επιλογής πλάνου είναι πλέον μεταφρασμένα σε όλες τις 25 γλώσσες.
Η απόκριση του fleet beacon (POST /api/v1/fleet_position.php) περιλαμβάνει πλέον έναν πίνακα messages που παραδίδει εκκρεμή μηνύματα από τον ιδιοκτήτη προς τον οδηγό. Νέα ζωντανή ροή JSON μόνο για ιδιοκτήτες (?ajax=live) και μια κάρτα "Μηνύματα προς οδηγούς" στον πίνακα ελέγχου στόλου. Νέα σελίδα πρόσκλησης οδηγού /{lang}/get-nakbus (25 γλώσσες).
Μεταφράστηκαν ο τίτλος, η περιγραφή (title, desc) του product_fleet_vehicles/live/history και οι παράμετροι fleet-history σε όλες τις 25 γλώσσες του developer portal.
Το /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 (γεωκωδικοποιούμε την πόλη για εσάς): /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 όπως τεκμηριώνεται, και η λειτουργία mode=nearest του προϊόντος fuel δέχεται επίσης lon. Και τα εννέα είναι διαθέσιμα στο sandbox.
Κάθε απαγόρευση στο /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 δείχνουν τώρα το παράδειγμα id_13 και στις 25 γλώσσες.
Το ανασχεδιασμένο περιβάλλον της πύλης (πάνω μπάρα, πλαϊνή μπάρα με εικονίδια, πίνακας KPI, διατάξεις με κάρτες) είναι πλέον η προεπιλογή για όλους τους συνδεδεμένους λογαριασμούς προγραμματιστών — νωρίτερα από την προγραμματισμένη κυκλοφορία στις 10 Αυγούστου. Χρησιμοποιήστε ?v=1 για να επιστρέψετε στην κλασική διάταξη οποιαδήποτε στιγμή.
Όλες οι σελίδες της πύλης προγραμματιστών — αρχική, τεκμηρίωση, πίνακας ελέγχου, AI Studio, δοκιμαστικό περιβάλλον, αιτήματα υποστήριξης, αιτήσεις, εξαγωγή, στόλος, ειδήσεις, ιστορικό αλλαγών και σελίδες λογαριασμού — δεν φορτώνουν πλέον κανένα διαφημιστικό script ή διαφημιστική θέση. Αυτό ισχύει σε ολόκληρη την πύλη, όχι μόνο στη σύνδεση και την εγγραφή όπως πριν.
Σχεδιάστε ολόκληρο το ταξίδι με συνοριακή διέλευση σε μία κλήση: το /api/v2/data/route-plan επιστρέφει τη διαδρομή, τα σημεία διέλευσης που βρίσκονται πραγματικά πάνω της με ζωντανή ουρά ή πρόβλεψη για την ώρα άφιξής σας, και τις στάσεις που κάνει πραγματικά ο οδηγός — ξεκούραση, φαγητό, ανεφοδιασμός — σε ένα ενιαίο χρονοδιάγραμμα.
Τα σύνορα είναι μέρος αυτού του χρονοδιαγράμματος. Μια μεγάλη ουρά μετράει ως το διάλειμμα που ούτως ή άλλως οφειλόταν και μηδενίζει τον χρόνο οδήγησης, οπότε τρεις ώρες αναμονής δεν παρουσιάζονται ποτέ ως τρεις ώρες συν ένα πλήρες σύνολο διαλειμμάτων που δεν έκανε κανείς. Τα επιβατικά ακολουθούν μοντέλο ασφαλούς οδήγησης· τα λεωφορεία και τα φορτηγά λαμβάνουν την υποχρεωτική ανάπαυση ΕΕ 561/2006, ενώ ο χρόνος εξυπηρέτησης των λεωφορείων είναι βαθμονομημένος σε πάνω από 1000 αδειοδοτημένα διεθνή δρομολόγια. Προσθέστε stop_places=1 για να πάρει κάθε στάση πραγματικό χώρο ανάπαυσης ή πρατήριο, και via=lat,lon για να περάσετε από άλλο σημείο διέλευσης.
Νέο στο μενού της πύλης: Παρουσίαση — μια ζωντανή, πάντα επίκαιρη παρουσίαση της πλατφόρμας δεδομένων nakordoni, προσαρμοσμένη στην αγορά σας (ασφάλειες, ταξίδια, εφοδιαστική, μεταφορείς, μέσα ενημέρωσης, πλοήγηση, καύσιμα, fintech, δημόσιος τομέας ή προσωπικά έργα). Δείχνει πραγματικούς όγκους της πλατφόρμας 30 ημερών, τη δική σας χρήση του API, στατιστικά χρόνου απόκρισης και ορίων, καθώς και πρόταση πακέτου όταν οι κλήσεις σας φτάνουν τα όρια της δωρεάν βαθμίδας. Επιλέξτε ή επιβεβαιώστε την αγορά (ή τις αγορές) σας στη σελίδα, στο προφίλ σας — ή κατά την εγγραφή. Ανοίγει αυτόματα στην πρώτη σας επίσκεψη· το αυτόματο άνοιγμα απενεργοποιείται από την ίδια τη σελίδα.
Αν ένας βοηθός έχει ενεργοποιημένη μια ροή αλλά η κλήση δεν μεταφέρει το πλαίσιο που χρειάζεται αυτή η ροή — για παράδειγμα queue χωρίς ppid— η ροή παραλείπεται πλέον πριν από οποιοδήποτε αίτημα και δεν χρεώνεται. Προηγουμένως καλούνταν έτσι κι αλλιώς, αποτύγχανε και κόστιζε παρ' όλα αυτά μία μονάδα. Το στούντιο δείχνει τι χρειάζεται κάθε ροή, υπολογίζει ξανά την τιμή καθώς συμπληρώνετε το πλαίσιο και σημειώνει τα αποτελέσματα ✓ εκτελέστηκε / ⊘ παραλείφθηκε, χωρίς χρέωση / ✕ απέτυχε· το API επιστρέφει data.feeds_skipped , που σας λέει ακριβώς ποια παράμετρο να περάσετε.
Οι απαντήσεις δεν αναφέρουν πλέον ροές, πηγές δεδομένων ή οτιδήποτε τεχνικό: μια ροή που λείπει είναι το πολύ μία απλή πρόταση προς τον τελικό χρήστη, ποτέ ένα εσωτερικό όνομα. Οι ροές με μόνο προαιρετικά φίλτρα (όπως το fuel περιορισμένο σε χώρα για την οποία δεν έχουμε δεδομένα) επιστρέφουν πλέον στο ευρύ σύνολο δεδομένων αντί να μην επιστρέφουν τίποτα.
Νέο: /{lang}/developers/studio. Φτιάξτε έναν βοηθό AI που απαντά από το δικό σας περιεχόμενο και τα δικά μας ζωντανά συνοριακά δεδομένα. Δώστε μας το markdown σας ή απλώς αναφέρετε τις σελίδες και τις κατεβάζουμε και τις ευρετηριάζουμε εμείς — εσείς συντηρείτε μόνο τα δικά σας αρχεία. Επιλέξτε ποιες ροές μας μπορεί να χρησιμοποιεί (ουρά, πρόγνωση, εναλλακτικές, ημερήσια στατιστικά, καύσιμα, απαγορεύσεις φορτηγών, εμπορικές Κυριακές, αργίες, κατάσταση δρόμων, μεταφορείς λεωφορείων, POI, νόμισμα), επιλέξτε βαθμίδα μοντέλου (γρήγορο / ισορροπημένο / pro — αυτή καθορίζει την τιμή), γράψτε τις δικές σας οδηγίες με σύμβολα κράτησης θέσης {{feed.slug}} που δηλώνουν ακριβώς πού καταλήγουν τα δεδομένα μας στην απάντηση, και προσθέστε μια δική σας καταληκτική πρόταση που προσαρτάται σε κάθε απάντηση. Έτοιμα πρότυπα: προσωπικός ταξιδιωτικός βοηθός, βοηθός εργασίας/εμπορευμάτων, βοηθός πωλήσεων ασφάλισης και Πράσινης Κάρτας.
Δοκιμάστε τον στο στούντιο (30 απαντήσεις/ημέρα, ξεχωριστά από το όριο του API σας) και μετά καλέστε τον στην παραγωγή στο GET /api/v2/data/assistant-custom?assistant_id=N&q=…. Τιμή ανά απάντηση = μονάδες της βαθμίδας μοντέλου + 1 μονάδα ανά ενεργοποιημένη ροή, που επιστρέφεται στο X-Devapi-Units. Το προϊόν είναι μόνο για v2 — μια διεύθυνση v1 επιστρέφει unsupported_version. Το υπάρχον προϊόν assistant παραμένει αμετάβλητο.
Κάθε βοηθός λειτουργεί υπό μια πολιτική περιεχομένου της πλατφόρμας που υπερισχύει των οδηγιών σας: καμία πλαστοπροσωπία αξιωματούχων, καμία βοήθεια για παράκαμψη συνοριακού ή τελωνειακού ελέγχου, κανένας επινοημένος αριθμός, καμία χυδαιολογία. Ελέγχονται τόσο οι οδηγίες όσο και οι απαντήσεις· οι αποκλεισμένες κλήσεις καταγράφονται.
Νέο: ένας πραγματικός διακομιστής MCP στη διεύθυνση https://nakordoni.eu/mcp, που εκθέτει ένα ασφαλές, μόνο για ανάγνωση υποσύνολο του API (status, checkpoints, border queue, live queue, forecast) ως εργαλεία MCP. Το ίδιο κλειδί API και η ίδια ποσόστωση με το REST API. Κάρτα διακομιστή στη διεύθυνση /.well-known/mcp/server-card.json. Δείτε την ενότητα Διακομιστής MCP στην τεκμηρίωση.
Η μετονομασία σε «Live Queue & Freshness API» που περιγράφεται παρακάτω δεν έφτασε στην πραγματικότητα στη σελίδα τεκμηρίωσης . Η σελίδα εμφανίζει τον τίτλο κάθε προϊόντος μέσω αναζήτησης μετάφρασης, η οποία καταφεύγει στον τίτλο του endpoint μόνο όταν δεν υπάρχει μετάφραση — και μετάφραση υπήρχε ήδη, παγωμένη στο παλιό όνομα, και στις 25 γλώσσες της διεπαφής. Πλέον υπερισχύει κάθε μελλοντικής ενημέρωσης του υποκείμενου τίτλου, μέχρι να ενημερωθεί και η ίδια.
Το κλειδί μετάφρασης μετονομάστηκε και στις 25 γλώσσες, ώστε η σελίδα τεκμηρίωσης να ταιριάζει. Καμία αλλαγή σε endpoint, παραμέτρους ή απόκριση — μόνο στο κείμενο του τίτλου.
Αν ρωτάτε συχνά για δεδομένα ζωντανής ουράς, ίσως ξοδεύετε βαρύ όριο χωρίς λόγο. Το /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, τα πεδία τάσης ή το ιστορικό.
Στο ίδιο το endpoint δεν άλλαξε τίποτα — μόνο στην τεκμηρίωσή του. Αναγραφόταν ως «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=.
Οι επιτυχείς αποκρίσεις είναι αμετάβλητες, byte προς byte — ίδια πεδία, ίδιες παράμετροι, ίδιο κόστος ορίου. Αν ο πελάτης σας διακλαδώνεται ήδη με βάση το ok, δεν χρειάζεται καμία αλλαγή. Αν αγνοούσε το ok και διάβαζε απευθείας το data , θα δει τώρα φακέλους σφάλματος σε κλήσεις που ούτως ή άλλως αποτύγχαναν πάντα.
Διορθώθηκε σφάλμα όπου το /multi μπορούσε να επιστρέψει λανθασμένο αριθμό ουράς για ορισμένα σημεία διέλευσης — κυρίως στα Βαλκάνια και στα σύνορα Ουγγαρίας–Σερβίας — κάθε φορά που η cache του ήταν κρύα. Η εφεδρική διαδρομή διάβαζε έναν πίνακα που, για αυτά τα σημεία, δεν περιέχει δεδομένα ουράς, και ανέφερε άσχετες τιμές ως αριθμό αυτοκινήτων. Μετρημένα παραδείγματα: σημείο με 12 αυτοκίνητα ανέφερε 6, ενώ αρκετά με πραγματικές ουρές ανέφεραν 0.
Τρεις αλλαγές που ίσως προσέξετε:
found: falseσημαίνει πλέον ότι πράγματι δεν υπάρχουν πρόσφατα δεδομένα ουράς. Προηγουμένως μπορούσατε να λάβετεfound: trueμε πλασματικόqueue_now: 0.wait_status,trend_percentκαιtrend_directionεπιστρέφονται πλέον και σε κρύα αιτήματα — προηγουμένως ήτανnull.- Το endpoint καταφεύγει στην εφεδρική διαδρομή και όταν το αποθηκευμένο στιγμιότυπό του είναι παλιό (πάνω από 24 ώρες), όχι μόνο όταν λείπει.
Καμία αλλαγή στις παραμέτρους αιτήματος, στο κόστος ορίου ή στη δομή της απόκρισης.
Διορθώθηκε ένα σφάλμα λόγω του οποίου κάθε κλήση /multi χρεωνόταν δύο φορές — μία με έναν γενικό έλεγχο 1 μονάδας και ξανά με τον δικό της τύπο μεταβλητού κόστους του endpoint (N PPID × υπο-προϊόντα). Μια κλήση κοστίζει πλέον ακριβώς ⌈(N×M)/2⌉ μονάδες όπως τεκμηριώνεται, χωρίς επιπλέον χρέωση.
Επίσης προστέθηκε ένα σήμα κλάσης ορίου (Standard/Heavy) σε κάθε προϊόν στη σελίδα τεκμηρίωσης, ώστε να φαίνεται με μια ματιά ποιο ημερήσιο όριο χρησιμοποιεί ένα endpoint.
Οι παράμετροι country και countries συγχωνεύτηκαν σε μία (1-15 κωδικοί χωρισμένοι με κόμμα). Νέα παράμετρος compare_to: σύγκριση ίδιων vs. διαφορετικών αργιών μεταξύ χωρών, συνδυάζεται με upcoming+days. Η lang δέχεται πλέον πολλές γλώσσες (προσθέτει ένα αντικείμενο names). Το days=0 ή η παράλειψή του σημαίνει πλέον χωρίς όριο στη λειτουργία upcoming.
Επίσημες αργίες ανά ευρωπαϊκή χώρα — ημερομηνίες, τοπικές ονομασίες και τύπος. Στηρίζεται στην ίδια υπηρεσία Nager.Date / OpenHolidaysAPI (με τοπικά υπολογισμένο ημερολόγιο για το Κοσσυφοπέδιο) που τροφοδοτεί τη σελίδα ημερολογίου αργιών του nakordoni.eu και τους ημερολογιακούς παράγοντες του συστήματος πρόβλεψης.
?country=PL&year=2026— πλήρης ετήσια λίστα αργιών για μία χώρα?upcoming=1&days=30— απλή λίστα των επερχόμενων αργιών σε πολλές χώρες- Χωρίς παραμέτρους — ευρετήριο ενός βασικού συνόλου χωρών με την επόμενη αργία για την καθεμία
Προστέθηκε το προϊόν currency — ισοτιμίες με βάση το EUR για PLN, CZK, HUF, USD, GBP, CHF, NOK και UAH, από την πηγή Frankfurter (ΕΚΤ) και αποθηκευμένες στην cache για 6 ώρες. Χωρίς παραμέτρους, επιστρέφει πάντα τον πλήρη πίνακα ισοτιμιών. Δείτε την τεκμηρίωση.
Ενσωματώστε τις ζωντανές ευρωπαϊκές απαγορεύσεις κυκλοφορίας φορτηγών στον δικό σας ιστότοπο — ένα δωρεάν widget iframe με 3 σχέδια (light, dark, board), 5 γλώσσες (en, uk, pl, de, ru), προαιρετικό φίλτρο ανά χώρα και ζωντανή κατάσταση «ενεργό τώρα». Δεν απαιτείται κλειδί API. Ρυθμίστε και αντιγράψτε τον κώδικα στο nakordoni.eu/en/for_truck_drivers/traffic_bans/widget. Προτιμάτε ακατέργαστα δεδομένα; Το προϊόν API truck-bans και η δημόσια ροή JSON παραμένουν διαθέσιμα.
border και διαδραστικό Sandbox
Τρεις προσθήκες, όλες συμβατές προς τα πίσω — το v1 παραμένει αμετάβλητο.
Έκδοση ανά endpoint. Υπάρχει πλέον ένα βασικό URL /api/v2/. Λειτουργεί ανά 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)
Κάθε checkpoint αποκτά επίσης ένα αντικείμενο direction {from,to} και ένα boolean stale, ενώ το ?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— μετρημένα αυτοκίνητα/λεπτό που διεκπεραιώνονται αυτή τη στιγμή σε σχέση με τον διαμορφωμένο βασικό ρυθμό του checkpoint. Πολλαπλασιαστικός, περιορισμένος σε 0.5x-1.5x.shift_change— η επίδραση της τοπικής αλλαγής βάρδιας των συνοριοφυλάκων στις 08:00/20:00 του checkpoint. Προσθετικός (λεπτά), όχι πολλαπλασιαστικός — εφαρμόζεται μόνο εντός +/-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
Στο πλαίσιο μιας επισκόπησης ασφάλειας/απορρήτου, τα ακόλουθα πεδία αφαιρέθηκαν — εξέθεταν εσωτερικές λεπτομέρειες υλοποίησης (την ταξινομία των ανάντη πηγών δεδομένων μας, αναγνωριστικά γραμμών βάσης δεδομένων, εσωτερικές σημειώσεις pipeline, αχρησιμοποίητα/νεκρά πεδία) χωρίς πραγματική αξία για το προϊόν:
idκαιcorrected— αφαιρέθηκαν από τα αντικείμενα γραμμών τουqueuesource(ακατέργαστο string, π.χ."line") — αφαιρέθηκε από ταqueue,multiκαιupdate-info. Τοupdate-infoκαι το μπλοκupdate_infoτουmultiεξακολουθούν να φέρουνsource_category/source_label_en(ένα μικρό δημόσιο λεξιλόγιο)· το μπλοκqueueτουqueueκαι τουmultiδεν φέρει πλέον κανένα πεδίο sourcetraffic_status— αφαιρέθηκε από τοborder· ήταν πάνταnullκαι δεν συμπληρώθηκε ποτέ από κανένα μέρος του συστήματος
Εάν η ενσωμάτωσή σας διαβάζει οποιοδήποτε από αυτά τα πεδία, ενημερώστε την — δείτε την τρέχουσα λίστα πεδίων στη σελίδα τεκμηρίωσης του σχετικού προϊόντος.
usage.used μπορεί πλέον να είναι κλασματικός αριθμός
Η ημερήσια χρήση ορίου (usage.used σε κάθε απόκριση) μπορεί πλέον να είναι δεκαδική τιμή (π.χ. 67.5) αντί για πάντα ακέραιος. Αυτό είναι παρενέργεια του ότι το queue-advanced χρεώνεται με κλασματικό ρυθμό — δείτε παρακάτω. Το usage.limit δεν επηρεάζεται και είναι πάντα ακέραιος. Εάν ο client σας ορίζει αυστηρά το usage.used ως ακέραιο, διευρύνετε τον τύπο ώστε να δέχεται δεκαδικό/float.
wait_status και trend_percent/trend_direction προστέθηκαν στα border, multi και queue-advanced
Αυτά τα τρία προϊόντα επιστρέφουν πλέον τα ίδια πεδία ζωντανής κατάστασης που εμφανίζει ο ιστότοπος: wait_status (green/yellow/red, με βάση το πρόσφατο ιστορικό αυτού του checkpoint) και trend_percent/trend_direction (up/up-slight/down/down-slight/stable, συγκρίνοντας τις τελευταίες 3 ώρες). Καθαρά προσθετικό.
queue: το wait_time συμπληρώνεται πλέον σε κάθε ιστορική γραμμή
Οι γραμμές data[] του /api/v1/data/queue είχαν προηγουμένως wait_time: null για τις περισσότερες πηγές — μόνο λίγες ανάντη ροές αναφέρουν απευθείας χρόνο αναμονής. Οι γραμμές χωρίς τιμή λαμβάνουν πλέον την τυπική εκτίμηση , επισημασμένη με ένα νέο boolean wait_time_estimated, ώστε να διακρίνετε μια πραγματικά αναφερόμενη τιμή από μια υπολογισμένη.
queue-advanced: χρέωση 1.5x, περιορισμένη απόκριση
Το queue-advanced κοστίζει πλέον 1.5 units ανά κλήση αντί για 1 (αντικατοπτρίζοντας τις επιπλέον αναζητήσεις κυκλοφορίας/καιρού/αναφορών οδηγών που εκτελεί) — δείτε το 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 ticket από τον πίνακά σας για να το ενεργοποιήσετε.
Το /api/v1/data/border υπολογίζει πλέον σωστά το wait_min για κάθε checkpoint στην απόκριση, όπως τα προϊόντα queue και multi. Προηγουμένως αυτό το πεδίο ήταν πάντα null.
Το /api/v1/data/forecast χρησιμοποιεί πλέον αξιόπιστα το μοντέλο ensemble v4 για οποιαδήποτε τιμή prediction_steps (προηγουμένως ορισμένοι μη τυπικοί ορίζοντες μπορούσαν σιωπηλά να επιστρέψουν σε παλαιότερο μοντέλο). Ο παράγοντας καιρού που τροφοδοτεί το ensemble διορθώθηκε επίσης και αντικατοπτρίζει πλέον πραγματικά τις ζωντανές συνθήκες (βροχή, χιόνι, άνεμος, ομίχλη) αντί να αναφέρει πάντα μη διαθέσιμο.
Οι εγκεκριμένοι προγραμματιστές μπορούν πλέον να κατεβάσουν ωριαία μέσα ιστορικά δεδομένα ουρών συνόρων για έως 5 checkpoint (κυλιόμενο παράθυρο έως 90 ημερών) σε μορφή CSV ή NDJSON από τη νέα καρτέλα Data export. Διατίθενται μόνο δημοσιευμένα και ελεγμένα ως προς την ποιότητα δεδομένα· οι χρονοσφραγίδες είναι σε UTC. Χρειάζεστε πρόσβαση; Ανοίξτε ένα Data ticket.
Δεν έχετε ακόμη ιστότοπο; Μπορείτε πλέον να δημιουργήσετε λογαριασμό προγραμματιστή περιγράφοντας πού και πώς σκοπεύετε να χρησιμοποιήσετε τα δεδομένα μας, αντί να υποχρεώνεστε να εισαγάγετε το URL μιας ζωντανής σελίδας. Προσθέστε το πραγματικό URL αργότερα από τον πίνακά σας (Account & data → Το έργο σας), μόλις ο ιστότοπος ή η εφαρμογή σας τεθεί σε λειτουργία — ένας ορατός σύνδεσμος προς το nakordoni.eu σε αυτήν τη σελίδα απαιτείται από τους Όρους μας.
Οι προγραμματιστές μπορούν πλέον να υποβάλλουν τις δικές τους συνοριακές ειδήσεις στη ροή ειδήσεων του Nakordoni. Εάν οι συντάκτες μας τις δημοσιεύσουν, λαμβάνετε ένα ευρετηριάσιμο dofollow backlink προς την υπηρεσία σας (υπογραφή εκδότη + γραμμή πηγής) και μεταφράζουμε το άρθρο και στις 24 γλώσσες δωρεάν.
Ένα άρθρο την εβδομάδα είναι δωρεάν· τα επιπλέον άρθρα αποτελούν πληρωμένη προσθήκη. Επιλέξτε 'ενδέχεται να επεξεργαστούμε ελαφρώς + να προσθέσουμε εσωτερικούς συνδέσμους' ή 'δημοσίευση ως έχει'. Υποβάλετε και παρακολουθήστε την κατάσταση ελέγχου στο Developers → Submit news.
Το Multi-Checkpoint API (/api/v1/data/multi) χρεώνει πλέον το όριο ως ⌈(N PPIDs × sub-products) / 2⌉ — το μισό κόστος των αντίστοιχων μεμονωμένων κλήσεων. Ένα αίτημα για 10 checkpoint με αμφότερα τα sub-products κοστίζει πλέον 10 units αντί για 20. Η κεφαλίδα X-Devapi-Units και το meta.units_consumed στην απόκριση αντικατοπτρίζουν το μειωμένο ποσό.
multi)
Ανακτήστε τη ζωντανή κατάσταση ουράς και τη φρεσκάδα δεδομένων για έως 20 checkpoint σε μία μόνο κλήση API — σχεδιασμένο για κατασκευαστές dashboard που αυτή τη στιγμή κάνουν polling πολλά PPID σε βρόχο.
Το όριο μετράται δίκαια ως N PPIDs × sub-products που ζητούνται, επομένως η συνολική χρήση είναι ταυτόσημη με τις μεμονωμένες κλήσεις — αλλά με μία μετάβαση μετ' επιστροφής αντί για πολλές. Τα μοτίβα τύπου 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, ηλικία δεδομένων και όνομα checkpointinclude=update-info— φρεσκάδα δεδομένων, ταξινόμηση πηγής, ηλικία σε δευτερόλεπτα/λεπτά- Έως 20 PPID ανά αίτημα· συνδυάστε αμφότερα τα sub-products σε μία κλήση για πλήρη δεδομένα dashboard
- Η απόκριση περιλαμβάνει το
meta.units_consumed, ώστε να παρακολουθείτε με ακρίβεια τη χρήση του ορίου
Η απόκριση του προϊόντος queue περιλαμβάνει πλέον ένα αντικείμενο snapshot ανώτατου επιπέδου με τα πιο πρόσφατα δεδομένα σε πραγματικό χρόνο και έναν υπολογισμένο προβλεπόμενο χρόνο αναμονής — τον ίδιο τύπο που χρησιμοποιείται στην ενότητα hero του 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 (ιστορικές καταχωρίσεις) παραμένει αμετάβλητος — πρόκειται για καθαρά προσθετική προσθήκη. Οι clients που δεν διαβάζουν το snapshot δεν επηρεάζονται.
border)
Υποβάλετε ερώτημα για όλα τα checkpoint σε ένα δεδομένο σύνορο + τύπο οχήματος σε μία κλήση, αντί να κάνετε ένα αίτημα ανά PPID.
GET /api/v1/data/border/{origin}/{destination}/{crossing_type}
- Υποστηρίζει μία χώρα προορισμού, μια λίστα χωρισμένη με κόμμα ή
allγια επέκταση σε κάθε παρακολουθούμενο γείτονα ταυτόχρονα. - Τα αποτελέσματα ταξινομούνται κατά
queue_nowαύξουσα (η μικρότερη ουρά πρώτη). - Πλήρως τοπικοποιημένο: προσθέστε
?lang=uk(ή οποιαδήποτε από τις 22 υποστηριζόμενες γλώσσες) για να λάβετε τα ονόματα των checkpoint σε αυτήν τη γλώσσα.
search)
Ανακαλύψτε τις τιμές PPID των checkpoint κατά όνομα, χωρίς να περιηγηθείτε στον πλήρη κατάλογο.
GET /api/v1/data/search?name=Krakovets,Shehyni&lang=en
- Δέχεται ένα μόνο όνομα ή μια λίστα χωρισμένη με κόμμα (έως 20).
- Αναζητά και στις 24 γλώσσες μετάφρασης — δώστε ένα όνομα στα ουκρανικά, πολωνικά, γερμανικά ή σε οποιαδήποτε υποστηριζόμενη γλώσσα και θα το εντοπίσει.
- Επιστρέφει όλα τα PPID σε αυτήν την τοποθεσία ομαδοποιημένα κατά τύπο οχήματος (αυτοκίνητο / λεωφορείο / πεζός / φορτηγό).
crossing_type
Το προϊόν alternatives δέχεται πλέον ?lang= και στις 22 υποστηριζόμενες γλώσσες (προηγουμένως μόνο 12).
Η νέα παράμετρος crossing_type σάς επιτρέπει να παρακάμψετε το φίλτρο τύπου οχήματος — π.χ. δώστε crossing_type=4 για να λάβετε εναλλακτικές για αυτοκίνητα ακόμη και όταν υποβάλλετε ερώτημα από PPID λεωφορείου.
Το πεδίο crossing_type_label στις αποκρίσεις των checkpoints, border και search μεταφράζεται πλέον στη ζητούμενη γλώσσα και στις 22 υποστηριζόμενες γλώσσες. Τα πεδία ονόματος χώρας (origin_name, destination_name) ακολουθούν την ίδια τοπική ρύθμιση.
Η πύλη Nakordoni Developer API είναι ενεργή στο /en/developers. Εγγραφείτε για ένα δωρεάν κλειδί Explorer (200 αιτήματα/ημέρα) για πρόσβαση σε δεδομένα ουρών συνόρων, προβλέψεις, τιμές καυσίμων, POI οδηγών και άλλα.
Διαθέσιμα προϊόντα κατά την κυκλοφορία: checkpoints, queue, stats, day-stats, forecast, alternatives, update_info, fuel, pois, truck_bans, trading_sundays, bus_carriers, road_conditions, assistant.
Αυτό το ιστορικό καλύπτει αλλαγές δημόσιου API. Εσωτερικές ενημερώσεις δεν περιλαμβάνονται.
Ενημερώθηκε