API – departure boards

This is the documentation for version 2 of the API. Documentation for the deprecated version 1.

Information on the next departures from a public transport stop (virtual display).

  • Endpoint: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}?limit={limit}&format=json|cbor (the {stopNumber} parameter can be obtained via the Stops API – the number field)
  • The limit parameter (optional) specifies the number of trips returned. The default value is 10. A value of 0 returns departures for the next 22 hours, which may result in a longer server response time.
  • Data type: application/json (default) or application/cbor (when format=cbor)
  • Update frequency: approx. every 10 seconds

Data structure

{
  "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 – object containing information about the stop
    • string name – name of the stop
    • string number – stop number
  • array departures – array containing a list of upcoming departures from the stop
    • object line – object containing information about the line
      • int id – line identifier (immutable)
      • string number – line designation (number) (may change)
      • string type – line type:
        • DAY – day service
        • NIGHT – night service
      • string subtype – line subtype:
        • NORMAL – regular service
        • SEMI_FAST – semi-fast service
        • FAST – fast service
        • REPLACEMENT – replacement service
        • ADDITIONAL – additional service
        • SPECIAL – special service
        • TOURIST – tourist service
      • string vehicle_type – vehicle type:
        • SKM – SKM train
        • TRAM – tram
        • BUS – bus
      • bool on_demandtrue if the line operates as part of the on-demand service
      • bool disruptiontrue if there are disruptions on the line
      • object|null disruption_url – object containing links to disruption descriptions (null if the value of disruption is false)
        • string pl – link to the detailed disruption description in Polish
        • string en – link to the detailed disruption description in English
        • string de – link to the detailed disruption description in German
        • string uk – link to the detailed disruption description in Ukrainian
    • object trip – object containing information about the trip
      • string service – duty code (shift)
      • string|null gtfs_id – identifier of the trip in the static GTFS timetable (null if no match can be found)
      • string start_date – start date serving as the reference point for the trip
      • object headsign – object containing the trip headsign
        • string short – short headsign (destination stop name)
        • string long – long headsign (in addition to the destination stop name, it may contain extra information)
      • int direction_id – direction identifier (0 denotes the outbound direction, and 1 denotes the return direction)
      • int route_variant_number – route variant number of the line on which the trip is operated
      • string accessibility – information about the type of vehicle planned for the trip:
        • HIGH_FLOOR – planned high-floor vehicle
        • LOW_FLOOR – planned low-floor vehicle
        • LOW_FLOOR_POSSIBLE – possible low-floor vehicle
      • object|null note – object containing an additional description of the trip (null if no description is available)
        • string pl – additional description in Polish
        • string en – additional description in English
        • string de – additional description in German
        • string uk – additional description in Ukrainian
    • object departure_time – object containing information about the departure time
      • string scheduled – scheduled departure time according to the timetable
      • string estimated – estimated departure time calculated on the basis of the vehicle’s punctuality; for trips for which punctuality information is unavailable, the value of estimated is equal to the value of scheduled
      • bool departing_nowtrue if less than 30 seconds remain until the estimated departure time or the vehicle is currently within the stop area (on stop boards, such a trip is marked with the symbol >>>)
      • bool real_timetrue if live-updated information is available for the given trip
      • bool canceledtrue if the given trip has been cancelled
    • bool request_stoptrue if the stop is a request stop for the given trip
    • object|null vehicle – object containing information about the vehicle (null if live-updated information is not available for the given trip)
      • int id – vehicle identifier
      • string number – fleet number of the vehicle
      • string|null model – vehicle model name
      • bool|null low_floortrue if the vehicle is low-floor
      • object|null ticket_machine – object containing information about the ticket machine installed in the vehicle (null if no ticket machine is installed in the vehicle)
        • bool cards – accepts payment by card
        • bool coins – accepts payment by coins
      • bool stucktrue if the vehicle is not moving (stuck); possible reasons include, among others, traffic congestion or a vehicle breakdown
  • Added array messages – array containing text messages for stop boards
  • string updated_at – timestamp of the last data update

General information

  1. The data are provided free of charge under the CC0 1.0 licence, for use in any context, with no prior notification required.
  2. Zarząd Dróg i Transportu Miejskiego w Szczecinie (Roads and Public Transport Authority in Szczecin) does not guarantee the accuracy or completeness of the data and accepts no liability for any loss or decisions made on the basis of this information.
  3. In any product using the data (application, website, publication, etc.), please cite the data source as Zarząd Dróg i Transportu Miejskiego w Szczecinie, or in abbreviated form, ZDiTM Szczecin; although not legally required, this is appreciated.
  4. Where possible, please include a link to this page or to the ZDiTM Szczecin homepage in any product using the data; this is also not a legal obligation.
  5. Clients should recognise and honour the HTTP headers Cache-Control and ETag.
  6. API requests are rate‑limited: 100 requests per minute per IP address across all endpoints. The X-RateLimit-Remaining header shows the number of remaining requests. Once the limit is reached, an HTTP 429 response is returned. The X-RateLimit-Reset header then contains a Unix timestamp for when the limit resets, and the Retry-After header shows the number of seconds until reset.
  7. If possible, please include in your User-Agent header information identifying the entity using the data (e.g. the name of your application, website, or its URL).
  8. In the event of excessive server load, ZDiTM Szczecin reserves the right to partially or fully block access to the API.

Migration from version 1

  1. Endpoint changed to: GET https://www.zditm.szczecin.pl/api/v2/departure-boards/{stopNumber}.
  2. The response structure has been completely changed – please refer to the documentation.
  3. CBOR format (application/cbor) is additionally supported via the format=cbor parameter.