Жаңалық жіберу және 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-і (nakordoni.eu автобус беттеріндегі id-лермен бірдей). 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_modelbus-sun-catalog ішіндегі автобус моделінің id-і (әдепкі 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.stopsРетімен 2-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_kmhdepart-пен бірге орташа жылдамдық, әдепкі 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 — орындар сызбасы кірістірілген SVG ретінде және nakordoni.eu дереккөз жолы бар дербес figure; көрсеткенде дереккөз жолын сақтаңыз.

Төменде: жоғарыдағы мысал денесі үшін суреттер (шағын автобус, Познань – Варшава, 21 маусым).

Орындар сызбасы: әр орын үшін көлеңке мен күн
seat_map
Күн жағы бойынша боялған маршрут картасы
route_map
Уақыт шкаласы: күн қашан қай жақта
timeline

Bus catalogue

bus_model осы жалпы көлік сыныптарының бірін қабылдайды (нақты маркаларды емес). Жіберілген кез келген автобус өрісі модельді қайта анықтайды; seats layout бойынша rows-қа айналады. Сол тізім bus-sun-catalog арқылы JSON түрінде қолжетімді.

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, сондай-ақ "images": [] бар POST ауыр сыныптың 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 тегін сынақ шақыру. Кіру

Жаңартылды