სიახლეების გამოგზავნა და NakBus-ის ავტოპარკი ახლა პარტნიორის დაფაზეა
Nakordoni Partners პანელში შესასვლელად გამოიყენეთ იგივე მონაცემები (ელფოსტა და პაროლი), რაც თქვენი დეველოპერის ანგარიშისთვის გაქვთ, და იქ მართეთ სიახლეები და თქვენი ავტობუსების ფლოტი (NakDriver / NakManager) გუნდური როლებით. თქვენი API გასაღებები, ენდფოინთები და აპები უცვლელია, ხოლო აქ არსებული გვერდები განაგრძობს მუშაობას. Nakordoni Partners-ის გახსნა

← ყველა ენდპოინტი

Bus Sun Side API Online

ავტობუსის რომელი მხარე იღებს მზეს ან ჩრდილს მგზავრობისას და რომელი ადგილებია საუკეთესო ჩრდილისთვის ან ხედისთვის. მგზავრობა გაივლება 5-წუთიანი ნაბიჯებით: მდებარეობა და მიმართულება მარშრუტიდან, მზის მდებარეობა იმ ადგილას და დროს, შემდეგ შეფასება თითოეული ადგილისთვის არჩეული ავტობუსის განლაგების მიხედვით. გამოიყენეთ მარშრუტი ჩვენი ლიცენზირებული ხაზების რეესტრიდან (route_id), ორი წერტილი (from/to) ან POST-ით გაგზავნეთ საკუთარი მარშრუტი (გაჩერებები ან polyline), რომ ასევე მიიღოთ ადგილების სქემა, მარშრუტის რუკა და დროის ხაზი სურათების სახით. შედეგები არის შეფასება გეომეტრიისა და მზის მდებარეობის მიხედვით; რეალური ჩრდილი ასევე დამოკიდებულია ფარდებზე, შენობებზე, რელიეფსა და ამინდზე.

GET https://nakordoni.eu/api/v2/data/bus-sun-side — კვოტის კლასი: heavy

პარამეტრიაღწერა
route_idმარშრუტის id ჩვენი ავტობუსის მარშრუტების რეესტრიდან (იგივე id-ები, რაც nakordoni.eu-ს ავტობუსის გვერდებზე). გამოიყენეთ route_id ან from+to.
dirdirect (ნაგულისხმევი) ან return.
dateმგზავრობის თარიღი YYYY-MM-DD (ნაგულისხმევად დღეს). მზის მდებარეობა თარიღზეა დამოკიდებული.
depგასვლის დრო HH:MM მარშრუტის ადგილობრივი დროით (ნაგულისხმევად: რეესტრის განრიგი).
fromთავისუფალი მარშრუტი: საწყისი წერტილი lat,lon (to-სთან ერთად).
toთავისუფალი მარშრუტი: საბოლოო წერტილი lat,lon (from-თან ერთად).
departთავისუფალი მარშრუტი: გასვლა YYYY-MM-DDTHH:MM, საწყისი წერტილის ადგილობრივი დრო.
langადგილების სახელებისა და ტექსტების ენა, 25 ენა (en, uk, pl, de, …). ნაგულისხმევად en.
bus_modelავტობუსის მოდელის id bus-sun-catalog-იდან (ნაგულისხმევად standard_coach). ქვემოთ მოცემული ნებისმიერი ველი გადაფარავს მოდელს.
rowsSeat rows, 8-20.
layoutადგილების განლაგება: 2+2, 2+1 ან 1+2 (გასასვლელის მარცხნივ+მარჯვნივ).
door_sideright (კონტინენტური ევროპა) ან left.
windshieldlarge ან normal — რამდენ მზეს იღებენ პირველი რიგები საქარე მინიდან.
rear_windownone, small ან large — მზე ბოლო რიგებზე.
window_heightstandard ან panoramic (მაღალი გვერდითი ფანჯრები).
decksingle, upper ან lower (ორსართულიანი ავტობუსები).
mid_door1 ან 0 — არის შუა კარი (იქ ადგილები ამოიღება).
timeline0 = დროის ხაზი არ შევა (15-წუთიანი სტრიქონები).
track0 = დროიანი ტრეკის წერტილები არ შევა.
weather1 (ნაგულისხმევი) ან 0. 1-ით გამოიყენება ამინდის პროგნოზი მგზავრობის გასწვრივ, როცა მგზავრობა მომდევნო 3 დღეშია (72 h); შემდგომი მგზავრობები და weather=0 იყენებს მოწმენდილ ცას.
animation1 (default) or 0. With 0, the animation block (sun and coach position every 5 minutes) is left out. POST body: animation true|false.

პასუხის ველები — პასუხის კონვერტის data ობიექტის შიგნით. [] აღნიშნავს სიას, ამიტომ data.items[].name არის თითოეული ელემენტის ველი name. ველი არის null, არ არსებობს ან ცარიელი სიაა, როცა მნიშვნელობა არ გვაქვს — შემავსებელს არასოდეს ვდებთ.

ველიაღწერა
data.date / data.tzTravel date and the time zone of the times in the answer.
data.routeid, num, from, to, dir, dep, arr, km (registry route) — or the stops you sent (POST).
data.basisHow the timed path was built: timetable (registry or your stop times), router (our road route between points) or geometry (your polyline).
data.busThe bus profile used: model, layout, rows, door_side, windshield, rear_window, window_height, deck, mid_door.
data.summarytrip_min, daylight_min, night_min and minutes with the sun on the left, right, ahead and behind (weather-weighted when a forecast was used).
data.recommendshade_side, sun_side, shade_pct, best_shade_seats[], best_sun_seats[], confidence (high | medium | low), reason_key; tip_key hot_sun_side when the sunny side is forecast at 28 °C or more. reason_key mostly_cloudy (shade_side any) when the forecast is mostly cloud or rain.
data.recommend_clearThe same recommendation for a clear sky (no weather).
data.weather_changes_answertrue when the forecast changes the shade side compared with recommend_clear.
data.weatherused, window_h (72), covered_pct, sunny_min, cloudy_min, rain_min, max_temp, note_key (forecast_used | partly_forecast | mostly_cloudy | rain_expected | clear_sky_only).
data.zonesfront / middle / back: left and right sun exposure 0-100 and rows [first, last] of that part.
data.seatslayout, rows, cols[], grid[][]: every seat — id (e.g. 4C), side, pos (window | aisle), exp (sun exposure 0-100), door (true next to a door).
data.timeline[]One row per 15 min: t, lat, lon, hd (heading), az / el (sun azimuth / elevation), side (left | right | ahead | behind | none), w (sun strength); wx {code, f, temp, precip} when a forecast was used.
data.track[]Track points [lat, lon, sun side] for drawing the route (leave out with track=0).
data.inputPOST only: how your route was read — source, timed_by, stops, points, legs_routed, legs_straight, timezone.
data.imagesPOST only: seat_map, route_map, timeline — each {url, format, expires_at}; url = https://api.nakordoni.dev/images/<random name>.<png | webp | jpg> (body format, default png). Files are kept 12 hours. format svg: PNG files plus the seat map as inline SVG (seat_map.svg).
data.embed_htmlPOST only: a self-contained HTML figure with the seat map (inline SVG) to paste into a page; null with embed_html=false.

სცადეთ კოდის გარეშე: მზიანი მხარის დამგეგმავი ამ API-ს უშვებს ნებისმიერ მარშრუტზე ან თქვენს მოგზაურობაზე და აჩვენებს ადგილების სქემას, რუკას, ქრონოლოგიას, სურათებს და გამოძახების კოდს. დამგეგმავის გახსნა →

Your route (POST)

გაგზავნეთ საკუთარი მარშრუტი JSON სხეულად POST-ით იმავე URL-ზე. პასუხს აქვს იგივე ველები, რაც GET-ს, პლუს input (როგორ იქნა წაკითხული მარშრუტი), images (ადგილების სქემა, მარშრუტის რუკა და დროის ხაზი) და embed_html.

გეომეტრიის გარეშე გაჩერებები ერთდება ჩვენი საგზაო მარშრუტიზატორით; მონაკვეთი, რომლის მარშრუტიზაციაც შეუძლებელია, იხაზება სწორ ხაზად და ითვლება input.legs_straight-ში. დროები: მინიმუმ ორი გაჩერება დროით, ან route.depart route.duration_min-თან ან route.speed_kmh-თან ერთად. მგზავრობა შეიძლება გაგრძელდეს 72 h-მდე.

Body fieldაღწერა
route.stops2-200 გაჩერება რიგის მიხედვით: {lat, lon, name?, arr?, dep?, day?}. arr / dep არის ადგილობრივი დრო HH:MM; day = დღეები route.date-ის შემდეგ (შუაღამეზე გადასული დრო ავტომატურად გადადის).
route.geometryთქვენი გზა: GeoJSON LineString, MultiLineString, Feature ან FeatureCollection ([lon, lat] რიგი), ან დაშიფრული polyline სტრიქონი. 5000 წერტილამდე. stops-თან ერთად გაჩერებები იძლევა დროებს, გეომეტრია კი — გზას.
route.polyline_precision5 (ნაგულისხმევი) ან 6, დაშიფრული polyline-ისთვის.
route.dateპირველი გაჩერების დროის YYYY-MM-DD (ნაგულისხმევად დღეს).
route.departგასვლა YYYY-MM-DDTHH:MM, როცა გაჩერებებს დრო არ აქვთ ან მხოლოდ გეომეტრიას აგზავნით.
route.duration_minმგზავრობის ხანგრძლივობა წუთებში, depart-თან ერთად (სხვა შემთხვევაში დრო გამოითვლება speed_kmh-დან).
route.speed_kmhსაშუალო სიჩქარე depart-თან ერთად, ნაგულისხმევად 65.
route.timezoneგაგზავნილი დროების IANA დროის სარტყელი (ნაგულისხმევად: პირველი წერტილის ქვეყნის სარტყელი).
busავტობუსი: bus_model კატალოგიდან და/ან seats, rows, layout, door_side, windshield, rear_window, window_height, deck, mid_door — იგივე ველები, რაც GET-ის პარამეტრები. ნაგულისხმევად standard_coach.
imagesრომელი სურათები შეიქმნას: ნებისმიერი seat_map, route_map, timeline-დან (ნაგულისხმევად სამივე); [] = არცერთი.
formatpng (ნაგულისხმევი), webp ან jpg: თითოეული სურათის URL-ის ფაილის ტიპი. svg: PNG ფაილები, ხოლო ადგილების სქემა ასევე ბრუნდება ჩაშენებული SVG-ის სახით (seat_map.svg).
themelight (default) or dark.
langსურათების წარწერებისა და ტექსტების ენა, 25 ენა (ნაგულისხმევად en).
widthსურათის სიგანე px-ში, 240-1600 (ნაგულისხმევად: ბუნებრივი ზომა).
embed_htmltrue (ნაგულისხმევი) = დააბრუნოს embed_html-იც; false = null.
timeline / trackfalse = ეს სია პასუხში არ შევა.
weathertrue (ნაგულისხმევი) ან false: გამოიყენოს ამინდის პროგნოზი მგზავრობის გასწვრივ (მომდევნო 3 დღე); false = მხოლოდ მოწმენდილი ცა. ასევე მიიღება 1 და 0.

არასწორი ან გამოტოვებული ველი იძლევა HTTP 400-ს, სადაც error.field შეიცავს მის გზას, მაგალითად route.stops[2].lat ან bus.seats.

curl -X POST "https://nakordoni.eu/api/v2/data/bus-sun-side" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "route": {
        "stops": [
            {
                "name": "Poznań Dworzec Autobusowy",
                "lat": 52.4011,
                "lon": 16.911,
                "dep": "08:00"
            },
            {
                "name": "Konin",
                "lat": 52.223,
                "lon": 18.2511,
                "arr": "09:20",
                "dep": "09:25"
            },
            {
                "name": "Łódź Kaliska",
                "lat": 51.7573,
                "lon": 19.4306,
                "arr": "10:55",
                "dep": "11:05"
            },
            {
                "name": "Warszawa Zachodnia",
                "lat": 52.219,
                "lon": 20.965,
                "arr": "13:10"
            }
        ],
        "date": "2026-06-21",
        "timezone": "Europe/Warsaw"
    },
    "bus": {
        "bus_model": "minibus"
    },
    "images": [
        "seat_map",
        "route_map",
        "timeline"
    ],
    "format": "png",
    "theme": "light",
    "lang": "en",
    "weather": true
}'
const res = await fetch('https://nakordoni.eu/api/v2/data/bus-sun-side', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer NKD-DEV-XXXX-XXXX-XXXX', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    route: { stops: [
      { name: 'Poznań', lat: 52.4011, lon: 16.911, dep: '08:00' },
      { name: 'Warszawa', lat: 52.219, lon: 20.965, arr: '11:30' } ],
      date: '2026-06-21', timezone: 'Europe/Warsaw' },
    bus: { bus_model: 'comfort_coach_2_1' },
    images: ['seat_map'], format: 'svg', lang: 'pl'
  })
});
const { data } = await res.json();
console.log(data.recommend.shade_side, data.recommend.best_shade_seats);
document.querySelector('#seats').innerHTML = data.embed_html;   // or <img src="data.images.seat_map.url">

Images and embed_html

თითოეულ სურათს აქვს საკუთარი URL შემთხვევითი ფაილის სახელით (.png, .webp ან .jpg). URL-ებს გასაღები არ სჭირდება და მოქმედებს 12 საათი (expires_at); დააკოპირეთ ფაილები, თუ უფრო დიდხანს გჭირდებათ. embed_html არის დამოუკიდებელი figure ადგილების სქემით ჩაშენებული SVG-ის სახით და nakordoni.eu-ს წყაროს მითითების სტრიქონით; ჩვენებისას შეინარჩუნეთ მითითება.

ქვემოთ: სურათები ზემოთ მოცემული მაგალითის სხეულისთვის (მიკროავტობუსი, პოზნანი – ვარშავა, 21 ივნისი).

ადგილების სქემა: ჩრდილი და მზე თითოეული ადგილისთვის
seat_map
მარშრუტის რუკა, შეფერილი მზის მხარის მიხედვით
route_map
დროის ხაზი: როდის რომელ მხარესაა მზე
timeline

Bus catalogue

bus_model იღებს ამ ზოგადი სატრანსპორტო კლასებიდან ერთ-ერთს (არა კონკრეტულ მარკებს). ავტობუსის ნებისმიერი გაგზავნილი ველი გადაფარავს მოდელს; seats გარდაიქმნება rows-ად layout-ის მიხედვით. იგივე სია ხელმისაწვდომია JSON-ად bus-sun-catalog-იდან.

bus_modellayoutrowsdoor_sidewindshieldrear_windowwindow_heightdeckmid_doortypical_seats
standard_coach
Standard touring coach (12-13 m, 2+2)
2+213rightlargesmallstandardsingletrue49-53
panoramic_coach
Coach with panoramic (tall) side windows, 2+2
2+213rightlargesmallpanoramicsingletrue49-53
midi_coach
Midi coach (9-10 m, 2+2)
2+29rightlargesmallstandardsinglefalse33-37
comfort_coach_2_1
Comfort coach with 2+1 seating
2+112rightlargesmallstandardsingletrue33-36
minibus
Minibus (7-8 m, 2+1)
2+16rightnormallargestandardsinglefalse16-20
double_deck_upper
Double-deck coach, upper deck
2+215rightlargesmallpanoramicupperfalse56-64 on the upper deck
double_deck_lower
Double-deck coach, lower deck
2+25rightnormalnonestandardlowertrue12-20 on the lower deck

Allowed values: layout 2+2 | 2+1 | 1+2 · rows {"min":4,"max":20,"custom_min":8} · door_side right | left · windshield large | normal · rear_window none | small | large · window_height standard | panoramic · deck single | upper | lower · mid_door true | false

Weather

weather=1-ით (ნაგულისხმევი; POST-ის სხეულში "weather": true) პასუხი იყენებს ამინდის საათობრივ პროგნოზს მგზავრობის გასწვრივ მომდევნო 3 დღისთვის (72 h); მგზავრობის შემდგომი ნაწილებისთვის გამოიყენება მოწმენდილი ცა. ამ შემთხვევაში summary.sun_*_min იწონება პროგნოზის მიხედვით, timeline-ის თითოეული სტრიქონი იღებს wx {code, f, temp, precip}-ს, ხოლო weather {used, window_h, covered_pct, sunny_min, cloudy_min, rain_min, max_temp, note_key} აჩვენებს, მგზავრობის რა ნაწილს ფარავდა პროგნოზი. recommend_clear არის პასუხი მოწმენდილი ცისთვის; weather_changes_answer არის true, როცა პროგნოზი ცვლის ჩრდილის მხარეს. როცა პროგნოზი ძირითადად ღრუბლიანი ან წვიმიანია, recommend.reason_key არის mostly_cloudy, ხოლო shade_side — any. recommend.tip_key hot_sun_side ნიშნავს, რომ მზიან მხარეს პროგნოზირებულია 28 °C ან მეტი.

Quota and accuracy

GET, ასევე POST "images": []-ით, ითვლება მძიმე კლასის 1 ერთეულად; POST, რომელიც ქმნის სურათებს, ითვლება 2-ად. bus-sun-catalog იაფი გამოძახებაა. იგივე POST სხეული აბრუნებს შენახულ პასუხს 6 საათამდე (1 საათი, თუ გამოყენებული იყო ამინდის პროგნოზი).

შედეგი არის შეფასება მარშრუტის გეომეტრიისა და მზის მდებარეობის მიხედვით. ფარდები, დაბურული მინები, შენობები, ხეები, რელიეფი და შეცვლილი მარშრუტი ჩვენთვის უცნობია. ღრუბლები და წვიმა მოდის ამინდის პროგნოზიდან მხოლოდ მომდევნო 3 დღის მგზავრობებისთვის; შემდგომი მგზავრობებისთვის იგულისხმება მოწმენდილი ცა. confidence დაბალია, როცა მზე დაბლაა, მგზავრობა მოკლეა, მარშრუტი ხშირად უხვევს ან პროგნოზი ძირითადად ღრუბლიანია.

curl "https://nakordoni.eu/api/v2/data/bus-sun-side?route_id=521&dir=direct&date=2026-06-21&bus_model=standard_coach&lang=en" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX"
🔑 შედით დეველოპერად, რომ ეს endpoint sandbox-ში ცოცხლად სცადოთ — დღეში 10 უფასო სატესტო გამოძახება თითო პროდუქტზე. შესვლა

განახლდა