Xəbər göndərmə və NakBus donanması artıq tərəfdaş panelindədir
Nakordoni Partners panelinə daxil olmaq üçün developer hesabınızla eyni giriş məlumatlarından (e-poçt və parol) istifadə edin və orada xəbərləri və avtobus parkınızı (NakDriver / NakManager) komanda rolları ilə idarə edin. API açarlarınız, endpoint-lər və tətbiqləriniz dəyişməyib, buradakı səhifələr isə işləməyə davam edir. Nakordoni Partners-i aç

← Bütün son nöqtələr

Bus Sun Side API Online

Səfər zamanı avtobusun hansı tərəfi günəş və ya kölgə alır və kölgə və ya mənzərə üçün hansı oturacaqlar ən yaxşısıdır. Səfər 5 dəqiqəlik addımlarla keçilir: marşrutdan mövqe və istiqamət, həmin yerdə və vaxtda günəşin mövqeyi, sonra seçilmiş avtobus düzülüşü üzrə hər oturacaq üçün təxmin. Lisenziyalı reyslər reyestrimizdən marşrut (route_id), iki nöqtə (from/to) istifadə edin və ya oturacaq sxemi, marşrut xəritəsi və zaman xəttini şəkil kimi də almaq üçün öz marşrutunuzu POST ilə göndərin (dayanacaqlar və ya polyline). Nəticələr həndəsə və günəşin mövqeyinə əsaslanan təxmindir; real kölgə həm də pərdələrdən, binalardan, relyefdən və havadan asılıdır.

GET https://nakordoni.eu/api/v2/data/bus-sun-side — kvota sinfi: heavy

ParametrTəsvir
route_idAvtobus marşrutları reyestrimizdən marşrut id-si (nakordoni.eu avtobus səhifələrindəki id-lərlə eyni). route_id və ya from+to istifadə edin.
dirdirect (standart) və ya return.
dateSəfər tarixi YYYY-MM-DD (standart bu gün). Günəşin mövqeyi tarixdən asılıdır.
depMarşrutun yerli vaxtı ilə yola düşmə vaxtı HH:MM (standart: reyestrdəki cədvəl).
fromSərbəst marşrut: başlanğıc nöqtəsi lat,lon (to ilə birlikdə).
toSərbəst marşrut: son nöqtə lat,lon (from ilə birlikdə).
departSərbəst marşrut: yola düşmə YYYY-MM-DDTHH:MM, başlanğıc nöqtəsinin yerli vaxtı.
langYer adlarının və mətnlərin dili, 25 dil (en, uk, pl, de, …). Standart en.
bus_modelbus-sun-catalog-dan avtobus modeli id-si (standart standard_coach). Aşağıdakı istənilən sahə modeli əvəz edir.
rowsSeat rows, 8-20.
layoutOturacaq düzülüşü: 2+2, 2+1 və ya 1+2 (keçidin sol+sağ tərəfi).
door_sideright (kontinental Avropa) və ya left.
windshieldlarge və ya normal — ön sıralar qabaq şüşədən nə qədər günəş alır.
rear_windownone, small və ya large — son sıralarda günəş.
window_heightstandard və ya panoramic (hündür yan pəncərələr).
decksingle, upper və ya lower (ikimərtəbəli avtobuslar).
mid_door1 və ya 0 — orta qapı var (oradakı oturacaqları çıxarır).
timeline0 = zaman xətti daxil edilmir (15 dəqiqəlik sətirlər).
track0 = vaxtlı trek nöqtələri daxil edilmir.
weather1 (standart) və ya 0. 1 ilə, səfər növbəti 3 gün (72 h) ərzindədirsə, səfər boyunca hava proqnozundan istifadə olunur; sonrakı səfərlər və weather=0 açıq səmadan istifadə edir.
animation1 (default) or 0. With 0, the animation block (sun and coach position every 5 minutes) is left out. POST body: animation true|false.

Cavab sahələri — cavab zərfindəki data obyektinin içində. [] siyahını bildirir, yəni data.items[].name hər elementin name sahəsidir. Dəyəri olmayan sahə null olur, ümumiyyətlə görünmür və ya boş siyahı qaytarır — heç vaxt doldurucu qoymuruq.

SahəTəsvir
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.

Kodsuz sınayın: günəşli tərəf planlaşdırıcısı bu API-ni istənilən marşrut və ya öz səfəriniz üçün işə salır və oturacaq sxemini, xəritəni, xronologiyanı, şəkilləri və sorğunun kodunu göstərir. Planlaşdırıcını aç →

Your route (POST)

Öz marşrutunuzu JSON gövdəsi kimi POST ilə eyni URL-ə göndərin. Cavabda GET ilə eyni sahələr, üstəlik input (marşrutun necə oxunduğu), images (oturacaq sxemi, marşrut xəritəsi və zaman xətti) və embed_html olur.

Həndəsəsiz dayanacaqlar yol marşrutlaşdırıcımızla birləşdirilir; marşrutlaşdırıla bilməyən hissə düz xətt kimi çəkilir və input.legs_straight-da sayılır. Vaxtlar: vaxtı göstərilmiş ən azı iki dayanacaq və ya route.duration_min ya da route.speed_kmh ilə route.depart. Səfər 72 h-a qədər davam edə bilər.

Body fieldTəsvir
route.stopsArdıcıllıqla 2-200 dayanacaq: {lat, lon, name?, arr?, dep?, day?}. arr / dep yerli vaxtdır HH:MM; day = route.date-dən sonrakı günlər (gecəyarısını keçən vaxtlar avtomatik keçirilir).
route.geometryYolunuz: GeoJSON LineString, MultiLineString, Feature və ya FeatureCollection ([lon, lat] sırası) və ya kodlanmış polyline sətri. 5000 nöqtəyə qədər. stops ilə birlikdə dayanacaqlar vaxtları, həndəsə isə yolu verir.
route.polyline_precisionKodlanmış polyline üçün 5 (standart) və ya 6.
route.dateBirinci dayanacaq vaxtının YYYY-MM-DD tarixi (standart bu gün).
route.departDayanacaqların vaxtı olmadıqda və ya yalnız həndəsə göndərdikdə yola düşmə YYYY-MM-DDTHH:MM.
route.duration_minDəqiqə ilə səfər müddəti, depart ilə birlikdə (əks halda vaxt speed_kmh-dən hesablanır).
route.speed_kmhdepart ilə birlikdə orta sürət, standart 65.
route.timezoneGöndərdiyiniz vaxtların IANA saat qurşağı (standart: birinci nöqtənin ölkəsinin qurşağı).
busAvtobus: katalogdan bus_model və/və ya seats, rows, layout, door_side, windshield, rear_window, window_height, deck, mid_door — GET parametrləri ilə eyni sahələr. Standart standard_coach.
imagesHansı şəkillər yaradılsın: seat_map, route_map, timeline-dan istənilən (standart hər üçü); [] = heç biri.
formatpng (standart), webp və ya jpg: hər şəkil URL-nin fayl növü. svg: PNG fayllar, oturacaq sxemi isə əlavə olaraq daxili SVG kimi qaytarılır (seat_map.svg).
themelight (default) or dark.
langŞəkil etiketlərinin və mətnlərin dili, 25 dil (standart en).
widthŞəkil eni px ilə, 240-1600 (standart: təbii ölçü).
embed_htmltrue (standart) = embed_html də qaytarılır; false = null.
timeline / trackfalse = həmin siyahı cavaba daxil edilmir.
weathertrue (standart) və ya false: səfər boyunca hava proqnozundan istifadə et (növbəti 3 gün); false = yalnız açıq səma. 1 və 0 da qəbul edilir.

Səhv və ya çatışmayan sahə HTTP 400 qaytarır, error.field isə onun yolunu göstərir, məsələn route.stops[2].lat və ya 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

Hər şəklin təsadüfi fayl adı olan öz URL-i var (.png, .webp və ya .jpg). URL-lər açar tələb etmir və 12 saat etibarlıdır (expires_at); daha uzun müddət lazımdırsa, faylları kopyalayın. embed_html oturacaq sxemini daxili SVG kimi və nakordoni.eu mənbə sətrini ehtiva edən müstəqil figure-dur; göstərərkən mənbə sətrini saxlayın.

Aşağıda: yuxarıdakı nümunə gövdə üçün şəkillər (mikroavtobus, Poznan – Varşava, 21 iyun).

Oturacaq sxemi: hər oturacaq üçün kölgə və günəş
seat_map
Günəşin tərəfinə görə rənglənmiş marşrut xəritəsi
route_map
Zaman xətti: günəş nə vaxt hansı tərəfdədir
timeline

Bus catalogue

bus_model bu ümumi nəqliyyat siniflərindən birini qəbul edir (konkret markaları deyil). Göndərdiyiniz istənilən avtobus sahəsi modeli əvəz edir; seats layout üzrə rows-a çevrilir. Eyni siyahı bus-sun-catalog vasitəsilə JSON kimi mövcuddur.

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 ilə (standart; POST gövdəsində "weather": true) cavab növbəti 3 gün (72 h) üçün səfər boyunca saatlıq hava proqnozundan istifadə edir; səfərin sonrakı hissələri üçün açıq səma götürülür. Bu halda summary.sun_*_min proqnoza görə çəkilir, hər timeline sətri wx {code, f, temp, precip} alır, weather {used, window_h, covered_pct, sunny_min, cloudy_min, rain_min, max_temp, note_key} isə səfərin nə qədərini proqnozun əhatə etdiyini göstərir. recommend_clear açıq səma üçün cavabdır; proqnoz kölgə tərəfini dəyişəndə weather_changes_answer true olur. Proqnoz əsasən buludlu və ya yağışlı olduqda recommend.reason_key mostly_cloudy, shade_side isə any olur. recommend.tip_key hot_sun_side günəşli tərəfdə 28 °C və ya daha çox proqnozlaşdırıldığını bildirir.

Quota and accuracy

GET, həmçinin "images": [] ilə POST ağır sinfin 1 vahidi sayılır; şəkil yaradan POST 2 sayılır. bus-sun-catalog ucuz çağırışdır. Eyni POST gövdəsi saxlanmış cavabı 6 saata qədər qaytarır (hava proqnozu istifadə olunubsa, 1 saat).

Nəticə marşrut həndəsəsi və günəşin mövqeyinə əsaslanan təxmindir. Pərdələr, tündləşdirilmiş şüşələr, binalar, ağaclar, relyef və dəyişdirilmiş marşrut bizə məlum deyil. Bulud və yağış yalnız növbəti 3 gündəki səfərlər üçün hava proqnozundan gəlir; sonrakı səfərlər üçün açıq səma fərz edilir. Günəş alçaqda olduqda, səfər qısa olduqda, marşrut tez-tez döndükdə və ya proqnoz əsasən buludlu olduqda confidence daha aşağı olur.

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"
🔑 Bu endpoint-i sandbox-da canlı sınamaq üçün tərtibatçı kimi daxil olun — hər məhsul üçün gündə 10 pulsuz sınaq çağırışı. Giriş

Yeniləndi