@golemio/pid
Version:
Golemio PID Module
1,047 lines (1,007 loc) • 184 kB
YAML
openapi: 3.0.3
info:
title: 🚋 Public Transport
description: >-
<p>
This is a placeholder description that is automatically replaced in the build process, see <a href="https://gitlab.com/operator-ict/golemio/code/vp/output-gateway/-/blob/development/docs/openapi-header.yaml" target="_blank">/vp/output-gateway/docs/openapi-header.yaml</a>.
</p>
version: 1.0.0
contact:
name: Golemio Prague Data Platform
email: golemio@operatorict.cz
url: https://golemio.cz
servers:
- url: https://api.golemio.cz
description: Main (production) server
- url: https://rabin.golemio.cz
description: Test (development) server
tags:
- name: 🧾 GTFS Static (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> General Transit Feed Specification data about the city's public transportation schedules in form of an API.
- name: 🗺 GTFS Realtime (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> Protobuf feeds of GTFS Realtime data. The feeds are updated every 20 seconds. Proto definitions can be found at [gtfs-realtime-OVapi.proto](https://gitlab.com/operator-ict/golemio/code/ovapi-gtfs-realtime-bindings/-/blob/master/src/gtfs-realtime-OVapi.proto). You can inspect the data in human-readable form using the [GTFS Realtime Inspector](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/tree/master/toolkit/gtfs-realtime-inspector).
- name: 🛤 PID Realtime Positions (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> Realtime positions of vehicles in custom GeoJSON format.
- name: 🚏 PID Departure Boards (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
- name: 🚏 PID Departure Boards (v3)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> <img src="https://img.shields.io/badge/stability-experimental-orange" alt="golemioapi-stability-badge" />
- name: 🚏 PID Departure Boards (v3) - internal
description: Endpoints for internal use
- name: 🚏 PID Departure Boards (v4)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" /> <img src="https://img.shields.io/badge/stability-experimental-orange" alt="golemioapi-stability-badge" />
- name: 🗓️ Public GTFS Static Lookup (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
- name: 🕐 Public Vehicle Positions (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
- name: 🕒 Public Departures (v2)
description: <img src="https://img.shields.io/badge/opendata-available-green" alt="golemioapi-opendata-badge" />
- name: ⚠ JIS (v1) - internal
description: Endpoints for internal use
paths:
/v2/gtfs/services:
get:
summary: GET GTFS Services
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: date
in: query
description: Filter services by specific date in format (YYYY-MM-DD).
required: false
schema:
type: string
example: 2019-01-01
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
format: int64
example: 10
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/GTFSService"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/routes:
get:
summary: GET All GTFS Routes
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
format: int64
example: 10
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/GTFSRoute"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/routes/{id}:
get:
summary: GET GTFS Route
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: id
in: path
required: true
schema:
type: string
example: "L991"
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
$ref: "#/components/schemas/GTFSRoute"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/trips:
get:
summary: GET All GTFS Trips
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: stopId
in: query
description: Filter trips that include specific stop.
required: false
schema:
type: string
example: "U953Z102P"
- name: date
in: query
description: Filter trips by specific date.
required: false
schema:
type: string
example: "2018-01-01"
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
format: int64
example: 10
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/GTFSTrip"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/trips/{id}:
get:
summary: GET GTFS Trip
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: id
in: path
required: true
schema:
type: string
example: "991_1151_190107"
- name: includeShapes
in: query
description: Enrich trip response object with shapes.
required: false
schema:
type: boolean
example: true
- name: includeStops
in: query
description: Enrich trip response object with stops.
required: false
schema:
type: boolean
example: true
- name: includeStopTimes
in: query
description: Enrich trip response object with stops times.
required: false
schema:
type: boolean
example: true
- name: includeService
in: query
description: Enrich trip response object with service.
required: false
schema:
type: boolean
example: true
- name: includeRoute
in: query
description: Enrich trip response object with routes.
required: false
schema:
type: boolean
example: true
- name: date
in: query
description: Filter trips by specific date in format (YYYY-MM-DD).
required: false
schema:
type: string
example: "2019-01-01"
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/GTFSTrip"
- type: object
properties:
stop_times:
type: array
items:
$ref: "#/components/schemas/GTFSStopTime"
- type: object
properties:
shapes:
type: array
items:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/GTFSShape"
- type: object
properties:
service:
$ref: "#/components/schemas/GTFSService"
- type: object
properties:
route:
$ref: "#/components/schemas/GTFSRoute"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/shapes/{id}:
get:
summary: GET GTFS Shape
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: id
in: path
required: true
schema:
type: string
example: "L991V2"
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: object
properties:
type:
type: string
example: "FeatureCollection"
features:
type: array
items:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/GTFSShape"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/stops:
get:
summary: GET All GTFS Stops
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: names
in: query
description: Name of station. Use with square brackets `names[]=NAME1&names[]=NAME2`.
required: false
schema:
type: string
example: "Prosecká"
- name: ids
in: query
description: Get stops by stop_id. Use with square brackets `ids[]`.
required: false
schema:
type: string
example: "U476Z103P"
- name: aswIds
in: query
description: Get stops by ASW, use `_` instead of `/` or encode the slash sign with `%2F`. Use with square brackets `aswId[]`.
required: false
schema:
type: string
example: "1833_12"
- name: cisIds
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
example: 12345
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
format: int64
example: 10
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: object
properties:
type:
type: string
example: "FeatureCollection"
features:
type: array
items:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/GTFSStop"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/stops/{id}:
get:
summary: GET GTFS Stop
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: id
in: path
required: true
schema:
type: string
example: "U476Z104P"
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/GTFSStop"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/gtfs/stoptimes/{id}:
get:
summary: GET GTFS Stop times
description: ""
tags:
- 🧾 GTFS Static (v2)
parameters:
- name: id
in: path
description: ""
required: true
schema:
type: string
example: "U118Z101P"
- name: date
in: query
description: Filter stop times by specific date in format (YYYY-MM-DD).
required: false
schema:
type: string
example: "2019-01-01"
- name: from
in: query
description: Filter stop times by time departure in format (H:mm:ss).
required: false
schema:
type: string
example: "07:12:33"
- name: to
in: query
description: Filter stop times by time arrival in format (H:mm:ss).
required: false
schema:
type: string
example: "12:12:33"
- name: includeStop
in: query
description: Enrich stop times response object with stop.
required: false
schema:
type: boolean
example: true
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000 (default value).
required: false
schema:
type: number
format: int64
example: 10
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=14400, stale-while-revalidate=60
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/GTFSStopTime"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions:
get:
summary: GET All Vehicle Positions
description: |
Positions in one the following states are included by default:
- `at_stop` - The position is tracking and the closest anchor point or metro rail track segment is a stop.
- `on_track` - The position is tracking, but is neither `at_stop` nor `off_track`.
Using the `includeNotTracking` parameter, positions in one the following states can be additionally included:
- `after_track` - The position is not tracking and the trip's last known position is tracking. For metro positions, this can also mean that it is tracking, the vehicle is 200+ meters from the closest metro rail track segment of its track and the vehicle's message attributes `tm` and `odch` or higher than the arrival to the final stop. For other positions from TCP sources (DPP buses and trams), this can also mean that it is tracking and the vehicle sent a message while at the final stop or sent a message with the `tjr` attribute higher than the arrival to the final stop.
- `after_track_delayed` - The same as `after_track`, but the position always has defined delay (not null) if possible to deduct from GTFS static data and origin timestamp. Essentially, it means the vehicle is `at_stop` at the very last stop of the trip. The delay is also propagated to the next trip of the vehicle, unlike the `after_track` state.
- `before_track` - The position is not tracking and either the trip's previous position is not known, or the previous position's state is `at_stop` or `on_track`.
- `before_track_delayed` - The position has a delay prediction based on the vehicle's previous trip.
- `canceled` - The position is canceled.
- `off_track` - The position is tracking and the vehicle is 200+ meters from the closest anchor point or metro rail track segment of its track. For metro positions, it is additionally required that the vehicle's message attributes `tm` and `odch` or less than or equal to the arrival to the final stop.
Using the `includeNotPublic` parameter, positions in the following state can be additionally included:
- `not_public` - The position belongs to a non-public trip (trip without run schedule).
The following states also exist internally but are excluded from the API output:
- `duplicate` - The position is not tracking, the trip's last known position is tracking and there is another position with identical `origin_timestamp`.
- `invisible` - The position is not tracking and either:
- the trip's previous position is not known or the previous position's state is `at_stop` or `on_track`, and the vehicle is on its way from the garage;
- or the trip's last known position is tracking and the vehicle is on its way to the garage.
- `mismatched` - The position does not make sense (e.g. it was sent late and thus has a mismatched stop sequence).
- `unknown` - The position is not yet processed (or was determined to never be processed) or has been invalidated (e.g. due to a vehicle repeating some part of the trip).
tags:
- 🛤 PID Realtime Positions (v2)
parameters:
- name: limit
in: query
description: Limits number of retrieved items. The maximum is 10000.
required: false
schema:
type: number
format: int64
example: 10
default: 100
- name: offset
in: query
description: Number of the first items that are skipped.
required: false
schema:
type: number
format: int64
example: 0
- name: includeNotTracking
in: query
description: Enrich result dataset with not tracking trip (those trips not being on track - before and after trip)
schema:
type: boolean
example: true
- name: includeNotPublic
in: query
description: Enrich result dataset with not public trips (trips without run schedule)
schema:
type: boolean
default: false
example: true
- name: cisTripNumber
in: query
description: Filter result by CIS trip number
required: false
schema:
type: number
example: 1020
- name: preferredTimezone
in: query
description: Preferred timezone offset by given Country/City (use encoded slash sign with `%2F` or use `_` sign)
required: false
schema:
type: string
example: "Europe_Prague"
- name: routeId
in: query
description: Filter result by route id
required: false
schema:
type: string
example: "L301"
- name: routeShortName
in: query
description: Filter result by short name
required: false
schema:
type: string
example: "381"
- name: updatedSince
in: query
description: Limit results to the ones updated after (timestamp greater than)
required: false
schema:
type: string
example: "2020-04-07T06:32:29.000Z"
- in: header
name: Accept-Encoding
description: Indicate the content encoding (usually a compression algorithm) that the client can understand. See [mdn](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding) for more details. Note that for this endpoint, if no value is given, gzip compression will be used by default (the `identity` value can be used to opt out of the default compression).
required: false
schema:
oneOf:
- type: string
enum:
- gzip
- identity
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=5, stale-while-revalidate=5
x-last-modified:
description: Timestamp of the latest resource update. Use it as `?updatedSince` query parameter to obtain only newer data than this value.
schema:
type: string
example: "2024-06-03T09:16:16.973Z"
content:
application/json:
schema:
type: object
properties:
type:
type: string
example: "FeatureCollection"
features:
type: array
items:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/VehiclepositionCompound"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions/{gtfsTripId}:
get:
summary: GET Vehicle Position
description: ""
tags:
- 🛤 PID Realtime Positions (v2)
parameters:
- name: gtfsTripId
in: path
description: "Filter result by trip id (gtfs_trip_id)"
required: true
schema:
type: string
example: "115_107_180501"
- name: includeNotTracking
in: query
description: Enrich result dataset with not tracking trip (last tracked vehicle after its trip)
required: false
schema:
type: boolean
example: true
- name: includePositions
in: query
description: Enrich result dataset with positions
required: false
schema:
type: boolean
example: true
- name: preferredTimezone
in: query
description: Preferred timezone offset by given Country/City (use encoded slash sign by %2F or use _ sign)
required: false
schema:
type: string
example: "Europe_Prague"
- in: header
name: Accept-Encoding
description: Indicate the content encoding (usually a compression algorithm) that the client can understand. See [mdn](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding) for more details. Note that for this endpoint, if no value is given, gzip compression will be used by default (the `identity` value can be used to opt out of the default compression).
required: false
schema:
oneOf:
- type: string
enum:
- gzip
- identity
responses:
"200":
description: successful operation
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=5, stale-while-revalidate=5
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/FeaturePoint"
- type: object
properties:
properties:
$ref: "#/components/schemas/VehiclepositionCompound"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions/gtfsrt/trip_updates.pb:
get:
summary: GET GTFS-RT Trip Updates Feed
description: ""
tags:
- 🗺 GTFS Realtime (v2)
responses:
"200":
description: successful operation
headers:
Cache-Control:
$ref: "#/components/headers/CacheControlNoCache"
Last-Modified:
$ref: "#/components/headers/LastModified"
content:
application/octet-stream:
schema:
type: string
format: binary
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions/gtfsrt/vehicle_positions.pb:
get:
summary: GET GTFS-RT Vehicle Positions Feed
description: ""
tags:
- 🗺 GTFS Realtime (v2)
responses:
"200":
description: successful operation
headers:
Cache-Control:
$ref: "#/components/headers/CacheControlNoCache"
Last-Modified:
$ref: "#/components/headers/LastModified"
content:
application/octet-stream:
schema:
type: string
format: binary
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions/gtfsrt/pid_feed.pb:
get:
summary: GET GTFS-RT PID Feed (trip updates and vehicle positions, combined)
description: ""
tags:
- 🗺 GTFS Realtime (v2)
responses:
"200":
description: successful operation
headers:
Cache-Control:
$ref: "#/components/headers/CacheControlNoCache"
Last-Modified:
$ref: "#/components/headers/LastModified"
content:
application/octet-stream:
schema:
type: string
format: binary
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/vehiclepositions/gtfsrt/alerts.pb:
get:
summary: GET GTFS-RT Service Alerts Feed
description: ""
tags:
- 🗺 GTFS Realtime (v2)
responses:
"200":
description: successful operation
headers:
Cache-Control:
$ref: "#/components/headers/CacheControlNoCache"
Last-Modified:
$ref: "#/components/headers/LastModified"
content:
application/octet-stream:
schema:
type: string
format: binary
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/pid/departureboards:
get:
summary: GET Departure Boards
description: >-
You have to use query parameters `ids`, `cisIds`, `aswIds` or `names` in array format - eg. `ids[]=1&ids[]=3`.
**At least one of these IDs is required.** The maximum is 100 stops combined in one request.
tags:
- 🚏 PID Departure Boards (v2)
parameters:
- $ref: "#/components/parameters/DepartureBoardsIds"
- $ref: "#/components/parameters/DepartureBoardsAswIds"
- $ref: "#/components/parameters/DepartureBoardsCisIds"
- $ref: "#/components/parameters/DepartureBoardsNames"
- $ref: "#/components/parameters/DepartureBoardsMinutesBefore"
- $ref: "#/components/parameters/DepartureBoardsMinutesAfter"
- $ref: "#/components/parameters/DepartureBoardsTimeFrom"
- $ref: "#/components/parameters/DepartureBoardsIncludeMetroTrains"
- $ref: "#/components/parameters/DepartureBoardsAirCondition"
- $ref: "#/components/parameters/DepartureBoardsPreferredTimezone"
- name: mode
in: query
description: >-
Valid entries: `departures` (default), `arrivals`, `mixed`. Set how to handle behaviour in end stops. `departures` (default) returns all connections that depart from selected stops (does not return connections for which it is the final stop). `arrivals` returns all connections that arrive into the stops (does not return connections for which it is the first stop). `mixed` returns everything. Use `arrivals` to create dedicated arrival boards. Use `departures` for all other cases. Using `mixed` is not recomended as departures of adjoined routes will be returned twice.
required: false
schema:
type: string
example: "departures"
- $ref: "#/components/parameters/DepartureBoardsOrder"
- $ref: "#/components/parameters/DepartureBoardsFilter"
- $ref: "#/components/parameters/DepartureBoardsSkip"
- $ref: "#/components/parameters/DepartureBoardsLimit"
- $ref: "#/components/parameters/DepartureBoardsTotal"
- $ref: "#/components/parameters/DepartureBoardsOffset"
- $ref: "#/components/parameters/DepartureBoardsAppendHeadsignsLimit"
responses:
"200":
description: Can return empty data in departures property (empty array []) if no departures were found
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=5, stale-while-revalidate=5
X-Golemio-Preset-Metadata:
description: Preset metadata indicating air condition possibility (1=possible, 0=not possible)
schema:
type: string
example: airConditionPossible=1
content:
application/json:
schema:
$ref: "#/components/schemas/PIDDepartureBoard"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v2/pid/departureboards/xml:
get:
summary: "[DEPRECATED] GET Departure Boards (legacy MPVnet XML)"
description: |
**DEPRECATED.** Legacy MPVnet XML for ROPID information panels that cannot consume JSON.
For new integrations use `/v2/pid/departureboards` (JSON).
UTF-8, no `<?xml ...?>` prologue. Only `mode=departures` is supported (others return 400).
Same query parameters and identifier rules as the JSON endpoint
(`ids` / `cisIds` / `aswIds` / `names`, at least one required, max 100 stops).
See the example response below for the exact attribute set.
deprecated: true
tags:
- 🚏 PID Departure Boards (v2)
parameters:
- $ref: "#/components/parameters/DepartureBoardsIds"
- $ref: "#/components/parameters/DepartureBoardsAswIds"
- $ref: "#/components/parameters/DepartureBoardsCisIds"
- $ref: "#/components/parameters/DepartureBoardsNames"
- $ref: "#/components/parameters/DepartureBoardsMinutesBefore"
- $ref: "#/components/parameters/DepartureBoardsMinutesAfter"
- $ref: "#/components/parameters/DepartureBoardsTimeFrom"
- $ref: "#/components/parameters/DepartureBoardsIncludeMetroTrains"
- $ref: "#/components/parameters/DepartureBoardsAirCondition"
- $ref: "#/components/parameters/DepartureBoardsPreferredTimezone"
- name: mode
in: query
description: >-
Only `departures` is supported for this XML endpoint; other values return 400.
Valid entries: `departures` (default), `arrivals`, `mixed`.
required: false
schema:
type: string
example: "departures"
- $ref: "#/components/parameters/DepartureBoardsOrder"
- $ref: "#/components/parameters/DepartureBoardsFilter"
- $ref: "#/components/parameters/DepartureBoardsSkip"
- $ref: "#/components/parameters/DepartureBoardsLimit"
- $ref: "#/components/parameters/DepartureBoardsTotal"
- $ref: "#/components/parameters/DepartureBoardsOffset"
- $ref: "#/components/parameters/DepartureBoardsAppendHeadsignsLimit"
responses:
"200":
description: |
Single-line MPVnet XML response. Example body
```xml
<TBL cas="2026-03-20T15:30:00" text="Odjezdy poskytuje Golemio">
<t id="458/1,458/2" zast="Smíchovské nádraží" zobraz_stan="True" stan="A,B">
<o stan="A" lin="129" alias="129" spoj="" smer="Baně"
odj="2026-03-20T15:31:00+01:00" sled="true" zpoz="0" np="true" nad="false" dd="3"/>
<o stan="A" lin="5" alias="5" spoj="" smer="Slivenec"
odj="2026-03-20T15:31:00+01:00" sled="true" zpoz="2" np="false" nad="false"
pz="Plzeňka" dd="2"/>
<o stan="B" lin="B" alias="B" spoj="" smer="Černý Most"
odj="2026-03-20T15:32:00+01:00" sled="true" zpoz="1" np="true" nad="false"
pz="Radlická" dd="1"/>
<o stan="A" lin="X22" alias="X22" spoj="" smer="Nádraží Hostivař"
odj="2026-03-20T15:33:00+01:00" sled="false" zpoz="0" np="false" nad="true"
info="nejede" dd="7"/>
<i stan="A">Výluka tramvají na Smíchově.</i>
</t>
</TBL>
```
headers:
Cache-Control:
description: Cache control directive for caching proxies
schema:
type: string
example: public, s-maxage=5, stale-while-revalidate=5
content:
text/xml; charset=utf-8:
schema:
type: string
"400":
$ref: "#/components/responses/BadRequestError"
"401":
$ref: "#/components/responses/UnauthorizedError"
"404":
description: Not found
/v3/pid/transferboards:
get:
tags:
- 🚏 PID Departure Boards (v3)
summary: GET Transfer Boards
description: |
⚠️ Note: This endpoint is experimental and may be subject to change.
Tested and optimized for train transfers only (as in transfering from a train to other all kinds of transport).
parameters:
- name: cisId
in: query
description: CIS identifier of the stop. A list of CIS IDs can be found in [Prague Open data](https://opendata.praha.eu/datasets/https%3A%2F%2Fapi.opendata.praha.eu%2Flod%2Fcatalog%2F6ac8381f-ea19-4ea9-8949-92076809dc5a).
required: true
schema:
type: number
example: 5454956 # Praha-Uhříněves
- name: tripNumber
in: query
description: Trip number of the vehicle in which the transfer is planned. Use to filter out transfers for a specific trip. Represents the numeric part of the GTFS `trip_short_name` (Os 2547 -> 2547).
required: false
schema:
type: number
example: 2547
- name: timeFrom
in: query
description: Set initial timestamp for time interval given by `minutesBefore` (hardcoded to 0) and `minutesAfter` (hardcoded to 60). Use to simulate query time different from now. Use ISO 8601 time format and URL encoded symbols - `%3A` for `:`, `%2B` for `.`, `%2F` for `+`. Time zone is set to `Europe/Prague`. Applicable range is -6 hours +2 days f