API — табло відправлень

Це документація для версії 2 API. Документація для застарілої версії 1.

Інформація про найближчі відправлення з зупинки громадського транспорту (віртуальне табло).

  • Endpoint: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}?limit={limit}&format=json|cbor (значення параметра {stopNumber} можна отримати через API для зупинок — поле number)
  • Параметр limit (необов’язковий) визначає кількість рейсів, що повертаються. Значення за замовчуванням — 10. Значення 0 повертає відправлення на найближчі 22 години, що може призвести до довшого часу відповіді сервера.
  • Формат даних: application/json (за замовчуванням) або application/cbor (коли format=cbor)
  • Частота оновлення: приблизно кожні 10 секунд

Структура даних

{
  "data": {
    "stop": {
      "name": "Brama Portowa",
      "number": "10822"
    },
    "departures": [
      {
        "line": {
          "id": 8,
          "number": "8",
          "type": "DAY",
          "subtype": "NORMAL",
          "vehicle_type": "TRAM",
          "on_demand": false,
          "disruption": false,
          "disruption_url": null
        },
        "trip": {
          "service": "008-02",
          "gtfs_id": "482487_POWS",
          "start_date": "2026-06-23",
          "headsign": {
            "short": "Gumieńce",
            "long": "Gumieńce"
          },
          "direction_id": 1,
          "route_variant_number": 12,
          "accessibility": "LOW_FLOOR",
          "note": null
        },
        "departure_time": {
          "scheduled": "2026-06-23T12:01:00.000000Z",
          "estimated": "2026-06-23T12:00:51.000000Z",
          "departing_now": true,
          "real_time": true,
          "canceled": false
        },
        "request_stop": false,
        "vehicle": {
          "id": 654,
          "number": "822",
          "model": "Pesa Swing 120NaS2",
          "low_floor": true,
          "ticket_machine": {
            "cards": false,
            "coins": true
          },
          "stuck": false
        }
      },

      ...

    ],
    "messages": [
      "Autobusy linii 53, 60 skierowane objazdem z pominięciem ul. Derdowskiego.",
      "Linia 52 skrócona do przystanku SKM Port Centralny, Kanał Parnicki nieprzejezdny."
    ],
    "updated_at": "2026-06-23T12:01:10.657534Z"
  }
}
  • object stop — об’єкт, що містить інформацію про зупинку
    • string name — назва зупинки
    • string number — номер зупинки
  • array departures — масив, що містить список найближчих відправлень із зупинки
    • object line — об’єкт з інформацією про маршрут
      • int id — унікальний ідентифікатор маршруту (незмінний)
      • string number — позначення маршруту (номер) (може змінюватися)
      • string type — тип маршруту:
        • DAY — денний маршрут
        • NIGHT — нічний маршрут
      • string subtype — підтип маршруту:
        • NORMAL — звичайний маршрут
        • SEMI_FAST — напівшвидкісний маршрут
        • FAST — швидкісний маршрут
        • REPLACEMENT — заміщаючий маршрут
        • ADDITIONAL — додатковий маршрут
        • SPECIAL — спеціальний маршрут
        • TOURIST — туристичний маршрут
      • string vehicle_type — тип рухомого складу:
        • SKM — потяг SKM
        • TRAM — трамвай
        • BUS — автобус
      • bool on_demandtrue, якщо маршрут працює за системою «за викликом»
      • bool disruptiontrue, якщо на маршруті є порушення руху
      • object|null disruption_url — об’єкт, що містить посилання на описи порушень (null, якщо значення disruption дорівнює false)
        • string pl — посилання на детальний опис порушення польською мовою
        • string en — посилання на детальний опис порушення англійською мовою
        • string de — посилання на детальний опис порушення німецькою мовою
        • string uk — посилання на детальний опис порушення українською мовою
    • object trip — об’єкт, що містить інформацію про рейс
      • string service — позначення рейсу (зміни)
      • string|null gtfs_id — ідентифікатор рейсу у статичному GTFS-розкладі (null, якщо неможливо зіставити)
      • string start_date — початкова дата, що є точкою відліку для рейсу
      • object headsign — об’єкт, що містить назву напрямку рейсу
        • string short — коротка назва напрямку (назва кінцевої зупинки)
        • string long — довга назва напрямку (окрім назви кінцевої зупинки може містити додаткову інформацію)
      • int direction_id — ідентифікатор напрямку (0 означає напрямок «туди», а 1 — напрямок «назад»)
      • int route_variant_number — номер варіанта маршруту, на якому виконується рейс
      • string accessibility — інформація про тип транспортного засобу, запланованого для рейсу:
        • HIGH_FLOOR — запланований високопідлоговий транспортний засіб
        • LOW_FLOOR — запланований низькопідлоговий транспортний засіб
        • LOW_FLOOR_POSSIBLE — можливий низькопідлоговий транспортний засіб
      • object|null note — об’єкт, що містить додатковий опис рейсу (null, якщо опис відсутній)
        • string pl — додатковий опис польською мовою
        • string en — додатковий опис англійською мовою
        • string de — додатковий опис німецькою мовою
        • string uk — додатковий опис українською мовою
    • object departure_time — об’єкт, що містить інформацію про час відправлення
      • string scheduled — запланований час відправлення згідно з розкладом
      • string estimated — прогнозований час відправлення, розрахований на основі пунктуальності транспортного засобу; для рейсів, для яких відсутня інформація про пунктуальність, значення estimated дорівнює значенню scheduled
      • bool departing_nowtrue, якщо до прогнозованого часу відправлення залишається менше ніж 30 секунд або транспортний засіб наразі перебуває в межах зупинки (на табло зупинки такий рейс позначається символом >>>)
      • bool real_timetrue, якщо для цього рейсу доступна інформація, що оновлюється в режимі реального часу
      • bool canceledtrue, якщо цей рейс скасовано
    • bool request_stoptrue, якщо зупинка для цього рейсу є зупинкою на вимогу
    • object|null vehicle — об’єкт, що містить інформацію про транспортний засіб (null, якщо для цього рейсу немає даних, що оновлюються в режимі реального часу)
      • int id — ідентифікатор транспортного засобу
      • string number — бортовий номер транспортного засобу
      • string|null model — назва моделі транспортного засобу
      • bool|null low_floortrue, якщо транспортний засіб низькопідлоговий
      • object|null ticket_machine — об’єкт, що містить інформацію про квитковий автомат, встановлений у транспортному засобі (null, якщо в транспортному засобі не встановлено квитковий автомат)
        • bool cards — квитковий автомат підтримує оплату карткою
        • bool coins — квитковий автомат підтримує оплату монетами
      • bool stucktrue, якщо транспортний засіб не рухається (застряг); можливі причини включають, зокрема, затор на дорозі або поломку транспортного засобу
  • Додано array messages — масив, що містить текстові повідомлення для табло зупинок
  • string updated_at — мітка часу останнього оновлення даних

Загальна інформація

  1. Дані надаються безкоштовно за ліцензією CC0 1.0, для будь‑якого використання без попереднього погодження.
  2. Zarząd Dróg i Transportu Miejskiego w Szczecinie (Управління доріг і міського транспорту в Щецині) не гарантує правильність чи повноту даних і не несе відповідальності за можливі збитки чи помилкові рішення на їх основі.
  3. У продуктах (додатках, веб‑сайтах, публікаціях тощо) рекомендується вказувати джерело даних як «Zarząd Dróg i Transportu Miejskiego w Szczecinie» або скорочено «ZDiTM Szczecin» (не є обов’язковим).
  4. За можливості бажано додати посилання на цю сторінку або на головну сторінку ZDiTM Szczecin (не є юридично обов’язковим).
  5. Клієнти повинні розпізнавати й дотримуватися HTTP‑заголовки Cache-Control та ETag.
  6. Кількість запитів до API обмежена: 100 запитів на хвилину з однієї IP‑адреси для всіх endpointів. Заголовок X-RateLimit-Remaining показує кількість залишкових запитів. Після вичерпання ліміту повертається код HTTP 429. У відповідному заголовку X-RateLimit-Reset вказано Unix‑мітку часу скидання ліміту, а Retry-After — кількість секунд до скидання.
  7. Якщо можливо, додайте в заголовок User-Agent інформацію про організацію чи додаток, що використовує дані (наприклад, назву або URL).
  8. У разі надмірного навантаження на сервер ZDiTM Szczecin залишає за собою право частково або повністю блокувати доступ до API.

Міграція з версії 1

  1. Endpoint змінено на: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}.
  2. Структуру відповіді повністю змінено — будь ласка, ознайомтеся з документацією.
  3. Додатково підтримується формат CBOR (application/cbor) через параметр format=cbor.