API – tablice odjazdów

To jest dokumentacja dla wersji 2 API. Dokumentacja dla przestarzałej wersji 1.

Informacje o najbliższych odjazdach z przystanku komunikacji miejskiej.

  • Endpoint: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}?limit={limit}&format=json|cbor (wartość parametru {stopNumber} można uzyskać korzystając z API dla przystanków – pole number)
  • Parametr limit (opcjonalny) określa liczbę zwracanych kursów. Domyślna wartość to 10. Wartość 0 oznacza zwrócenie odjazdów na najbliższe 22 godziny, co może skutkować dłuższym czasem odpowiedzi serwera.
  • Typ danych: application/json (domyślnie) lub application/cbor (gdy format=cbor)
  • Częstotliwość aktualizacji: co ok. 10 sekund

Struktura danych

{
  "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 – obiekt zawierający informacje o przystanku
    • string name – nazwa przystanku
    • string number – numer przystanku
  • array departures – tablica zawierająca listę najbliższych odjazdów z przystanku
    • object line – obiekt zawierający informacje o linii komunikacji miejskiej
      • int id – identyfikator linii (niezmienny)
      • string number – oznaczenie (numer) linii (może ulegać zmianom)
      • string type – typ linii:
        • DAY – linia dzienna
        • NIGHT – linia nocna
      • string subtype – podtyp linii:
        • NORMAL – linia zwykła
        • SEMI_FAST – linia przyspieszona
        • FAST – linia pospieszna
        • REPLACEMENT – linia zastępcza
        • ADDITIONAL – linia dodatkowa
        • SPECIAL – linia specjalna
        • TOURIST – linia turystyczna
      • string vehicle_type – rodzaj trakcji:
        • SKM – pociąg SKM
        • TRAM – tramwaj
        • BUS – autobus
      • bool on_demand – wartość true, jeśli linia funkcjonuje w ramach systemu transportu na żądanie
      • bool disruption – wartość true, jeśli na linii występują zakłócenia
      • object|null disruption_url – obiekt zawierający odnośniki do opisów zakłóceń (wartość null, jeśli wartość pola disruption jest równa false)
        • string pl – odnośnik do szczegółowego opisu zakłóceń w języku polskim
        • string en – odnośnik do szczegółowego opisu zakłóceń w języku angielskim
        • string de – odnośnik do szczegółowego opisu zakłóceń w języku niemieckim
        • string uk – odnośnik do szczegółowego opisu zakłóceń w języku ukraińskim
    • object trip – obiekt zawierający informacje o kursie
      • string service – oznaczenie zadania (brygady)
      • string|null gtfs_id – identyfikator kursu w statycznym rozkładzie jazdy GTFS (wartość null, gdy brak możliwości dopasowania)
      • string start_date – data początkowa, stanowiąca punkt odniesienia dla kursu
      • object headsign – obiekt zawierający nazwę kierunku
        • string short – krótka nazwa kierunku (nazwa przystanku docelowego)
        • string long – długa nazwa kierunku (oprócz nazwy przystanku docelowego może zawierać dodatkowe informacje)
      • int direction_id – identyfikator kierunku (0 oznacza kierunek TAM, a 1 – kierunek POWRÓT)
      • int route_variant_number – numer trasy danej linii, na której realizowany jest kurs
      • string accessibility – informacja o rodzaju pojazdu zaplanowanym dla kursu:
        • HIGH_FLOOR – zaplanowany pojazd wysokopodłogowy
        • LOW_FLOOR – zaplanowany pojazd niskopodłogowy
        • LOW_FLOOR_POSSIBLE – możliwy pojazd niskopodłogowy
      • object|null note – obiekt zawierający dodatkowy opis kursu (wartość null, jeśli brak opisu)
        • string pl – dodatkowy opis w języku polskim
        • string en – dodatkowy opis w języku angielskim
        • string de – dodatkowy opis w języku niemieckim
        • string uk – dodatkowy opis w języku ukraińskim
    • object departure_time – obiekt zawierający informacje o czasie odjazdu
      • string scheduled – zaplanowany czas odjazdu wynikający z rozkładu jazdy
      • string estimated – przewidywany czas odjazdu oszacowany na podstawie punktualności pojazdu; w przypadku kursów, dla których niedostępne są informacje o punktualności, wartość pola estimated jest równa wartości pola scheduled
      • bool departing_now – wartość true, jeśli do przewidywanego czasu odjazdu pozostało poniżej 30 sekund lub pojazd znajduje się obecnie w obrębie przystanku (na tablicach przystankowych taki kurs oznaczany jest symbolem >>>)
      • bool real_time – wartość true, jeśli dla danego kursu dostępne są informacje aktualizowane na żywo
      • bool canceled – wartość true, jeśli dany kurs został odwołany
    • bool request_stop – wartość true, jeśli dla danego kursu przystanek jest przystankiem na żądanie
    • object|null vehicle – obiekt zawierający informacje o pojeździe (wartość null, jeśli dla danego kursu nie są dostępne informacje aktualizowane na żywo)
      • int id – identyfikator pojazdu
      • string number – numer taborowy pojazdu
      • string|null model – nazwa modelu pojazdu
      • bool|null low_floor – wartość true, jeśli pojazd jest niskopodłogowy
      • object|null ticket_machine – obiekt zawierający informację o zamontowanym w pojeździe biletomacie (wartość null, jeśli w pojeździe nie został zainstalowany biletomat)
        • bool cards – biletomat z możliwością płacenia kartami
        • bool coins – biletomat z możliwością płacenia monetami
      • bool stuck – wartość true, jeśli pojazd nie porusza się (utknął) – możliwe powody to m.in. zator drogowy bądź awaria pojazdu
  • Dodane array messages – tablica zawierająca komunikaty tekstowe dla tablic przystankowych
  • string updated_at – moment ostatniej aktualizacji danych

Informacje ogólne

  1. Dane udostępniane są bezpłatnie na licencji CC0 1.0, do wykorzystania w dowolnym celu, a ich użycie nie wymaga wcześniejszego zgłoszenia.
  2. Zarząd Dróg i Transportu Miejskiego w Szczecinie nie gwarantuje, że udostępniane dane są prawidłowe i kompletne. Nie ponosi również odpowiedzialności za szkody lub niewłaściwe decyzje podjęte na ich podstawie.
  3. W produkcie korzystającym z danych (aplikacja, strona internetowa, publikacja itp.) prosimy o podanie źródła danych, tj. Zarząd Dróg i Transportu Miejskiego w Szczecinie lub – w formie skróconej – ZDiTM Szczecin, ale nie jest to wymóg prawny.
  4. W produkcie korzystającym z danych (aplikacja, strona internetowa, publikacja itp.) prosimy o – jeżeli jest to możliwe – umieszczenie odsyłacza do niniejszej strony lub do strony głównej, ale nie jest to wymóg prawny.
  5. Klient powinien rozpoznawać i honorować nagłówki HTTP Cache-Control i ETag.
  6. Liczba żądań do API jest limitowana. Limit jest wspólny dla wszystkich endpointów i wynosi 100 żądań na minutę na adres IP. Nagłówek X-RateLimit-Remaining zawiera liczbę żądań pozostałych w ramach dostępnego limitu. Po wyczerpaniu limitu zwracany jest kod odpowiedzi HTTP 429. Nagłówek odpowiedzi X-RateLimit-Reset zawiera wówczas uniksowy timestamp równy czasowi zresetowania limitu, a nagłówek Retry-After zawiera liczbę sekund pozostałych do zresetowania limitu.
  7. Jeżeli to możliwe, prosimy o umieszczenie w nagłówku User-Agent żądania informacji o podmiocie korzystającym z danych (np. nazwa aplikacji, strony internetowej, adres URL).
  8. W przypadku nadmiernego obciążania serwera ZDiTM Szczecin zastrzega sobie prawo do częściowego lub całkowitego zablokowania dostępu do API.

Migracja z wersji 1

  1. Endpoint zmieniono na: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}.
  2. Nastąpiła całkowita zmiana struktury odpowiedzi – zapoznaj się z dokumentacją.
  3. Obsługiwany jest dodatkowo format CBOR (application/cbor) poprzez parametr format=cbor.