db-vendo-client/docs/openapi.yaml
2025-02-13 23:33:45 +00:00

2468 lines
70 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.3
info:
title: db-vendo-client
description: Schema for db-vendo-client/hafas-rest-api's Friendy Public Transport Format REST API
contact:
url: https://github.com/public-transport/db-vendo-client
version: '6'
paths:
/stops/{id}:
get:
summary: Finds a stop/station by ID.
description: Uses [`hafasClient.stop()`](https://github.com/public-transport/hafas-client/blob/6/docs/stop.md) to **find a stop/station by ID**.
externalDocs:
description: '`hafasClient.stop()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/stop.md
parameters:
- name: id
in: path
description: stop/station ID
required: true
schema:
type: string
- name: linesOfStops
in: query
description: Parse & expose lines at each stop/station?
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: The stop, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/stop.md).
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
/stops/{id}/departures:
get:
summary: Fetches departures at a stop/station.
description: Uses [`hafasClient.departures()`](https://github.com/public-transport/hafas-client/blob/6/docs/departures.md) to **query departures at a stop/station**.
externalDocs:
description: '`hafasClient.departures()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/departures.md
parameters:
- name: id
in: path
description: stop/station ID to show departures for
required: true
schema:
type: string
- name: when
in: query
description: 'Date & time to get departures for. Default: *now*'
schema:
type: string
format: date-time
- name: direction
in: query
description: not supported
schema:
type: string
- name: duration
in: query
description: Show departures for how many minutes?
schema:
type: integer
default: 10
- name: results
in: query
description: 'Max. number of departures. Default: *whatever HAFAS wants'
schema:
type: integer
- name: linesOfStops
in: query
description: not supported
schema:
type: boolean
default: false
- name: remarks
in: query
description: Parse & return hints & warnings?
schema:
type: boolean
default: true
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: products
in: query
description: Filter by profile-specific products (e.g. regional transport only).
schema:
$ref: '#/components/schemas/ProfileSpecificProducts'
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An object with an array of departures, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/departures.md).
content:
application/json:
schema:
type: object
properties:
departures:
type: array
items:
$ref: '#/components/schemas/Alternative'
realtimeDataUpdatedAt:
type: integer
required:
- departures
/stops/{id}/arrivals:
get:
summary: Fetches arrivals at a stop/station.
description: Works like `/stops/{id}/departures`, except that it uses [`hafasClient.arrivals()`](https://github.com/public-transport/hafas-client/blob/6/docs/arrivals.md) to **query arrivals at a stop/station**.
externalDocs:
description: '`hafasClient.arrivals()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/arrivals.md
parameters:
- name: id
in: path
description: stop/station ID to show arrivals for
required: true
schema:
type: string
- name: when
in: query
description: 'Date & time to get departures for. Default: *now*'
schema:
type: string
format: date-time
- name: direction
in: query
description: not supported
schema:
type: string
- name: duration
in: query
description: Show departures for how many minutes?
schema:
type: integer
default: 10
- name: results
in: query
description: 'Max. number of departures. Default: *whatever HAFAS wants*'
schema:
type: integer
- name: linesOfStops
in: query
description: not supported
schema:
type: boolean
default: false
- name: remarks
in: query
description: Parse & return hints & warnings?
schema:
type: boolean
default: true
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: products
in: query
description: Filter by profile-specific products (e.g. regional transport only).
schema:
$ref: '#/components/schemas/ProfileSpecificProducts'
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An object with an array of arrivals, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/arrivals.md).
content:
application/json:
schema:
type: object
properties:
arrivals:
type: array
items:
$ref: '#/components/schemas/Alternative'
realtimeDataUpdatedAt:
type: integer
required:
- arrivals
/journeys:
get:
summary: Finds journeys from A to B.
description: Uses [`hafasClient.journeys()`](https://github.com/public-transport/hafas-client/blob/6/docs/journeys.md) to **find journeys from A (`from`) to B (`to`)**.
externalDocs:
description: '`hafasClient.journeys()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/journeys.md
parameters:
- name: from
in: query
schema:
type: string
description: '"from" as stop/station ID (e.g. from=8010159 for Halle (Saale) Hbf)'
- name: from.id
in: query
schema:
type: string
description: '"from" as POI (e.g. from.id=991561765&from.latitude=51.48364&from.longitude=11.98084 for Halle+(Saale),+Stadtpark+Halle+(Grünanlagen))'
- name: from.address
in: query
schema:
type: string
description: '"from" as an address (e.g. from.latitude=51.25639&from.longitude=7.46685&from.address=Hansestadt+Breckerfeld,+Hansering+3 for Hansestadt Breckerfeld, Hansering 3)'
- name: from.latitude
in: query
schema:
type: number
- name: from.longitude
in: query
schema:
type: number
- name: to
in: query
schema:
type: string
description: '"to" as stop/station ID'
- name: to.id
in: query
schema:
type: string
description: '"to" as POI'
- name: to.address
in: query
schema:
type: string
description: '"to" as an address'
- name: to.latitude
in: query
schema:
type: number
- name: to.longitude
in: query
schema:
type: number
- name: departure
in: query
description: 'Compute journeys departing at this date/time. Mutually exclusive with `arrival`. Default: *now*'
schema:
type: string
format: date-time
- name: arrival
in: query
description: 'Compute journeys arriving at this date/time. Mutually exclusive with `departure`. Default: *now*'
schema:
type: string
format: date-time
- name: earlierThan
in: query
description: Compute journeys "before" an `ealierRef`.
schema:
type: string
- name: laterThan
in: query
description: Compute journeys "after" an `laterRef`.
schema:
type: string
- name: results
in: query
description: Max. number of journeys.
schema:
type: integer
default: 3
- name: stopovers
in: query
description: Fetch & parse stopovers on the way?
schema:
type: boolean
default: false
- name: transfers
in: query
description: 'Maximum number of transfers. Default: *let HAFAS decide*'
schema:
type: integer
- name: transferTime
in: query
description: Minimum time in minutes for a single transfer.
schema:
type: integer
default: 0
- name: accessibility
in: query
description: not supported
schema:
type: string
- name: bike
in: query
description: Compute only bike-friendly journeys?
schema:
type: boolean
default: false
- name: startWithWalking
in: query
description: not supported
schema:
type: boolean
default: true
- name: walkingSpeed
in: query
description: not supported
schema:
type: string
default: normal
enum:
- slow
- normal
- fast
- name: tickets
in: query
description: Return information about available tickets? only supported for /journeys/{ref}
schema:
type: boolean
default: false
- name: polylines
in: query
description: Fetch & parse a shape for each journey leg? only supported for /journeys/{ref}
schema:
type: boolean
default: false
- name: subStops
in: query
description: not supported
schema:
type: boolean
default: true
- name: entrances
in: query
description: not supported
schema:
type: boolean
default: true
- name: remarks
in: query
description: Parse & return hints & warnings?
schema:
type: boolean
default: true
- name: scheduledDays
in: query
description: Parse & return dates each journey is valid on?
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: loyaltyCard
in: query
description: 'Type of loyalty card in use. Default: *none*'
schema:
type: string
enum:
- bahncard-1st-25
- bahncard-2nd-25
- bahncard-1st-50
- bahncard-2nd-50
- bahncard-1st-100
- bahncard-2nd-100
- vorteilscard
- halbtaxabo
- generalabonnement-1st
- generalabonnement-2nd
- nl-40
- at-klimaticket
- name: firstClass
in: query
description: Search for first-class options?
schema:
type: boolean
default: 'false'
- name: age
in: query
description: 'Age of traveller Default: *adult*'
schema:
type: integer
- name: products
in: query
description: Filter by profile-specific products (e.g. regional transport only).
schema:
$ref: '#/components/schemas/ProfileSpecificProducts'
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An object with an array of journeys, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/journeys.md).
content:
application/json:
schema:
type: object
properties:
journeys:
type: array
items:
$ref: '#/components/schemas/Journey'
realtimeDataUpdatedAt:
type: integer
earlierRef:
type: string
laterRef:
type: string
required:
- journeys
/trips/{id}:
get:
summary: Fetches a trip by ID.
description: Uses [`hafasClient.trip()`](https://github.com/public-transport/hafas-client/blob/6/docs/trip.md) to **fetch a trip by ID**.
externalDocs:
description: '`hafasClient.trip()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/trip.md
parameters:
- name: id
in: path
description: trip ID
required: true
schema:
type: string
- name: stopovers
in: query
description: Fetch & parse stopovers on the way?
schema:
type: boolean
default: true
- name: remarks
in: query
description: Parse & return hints & warnings?
schema:
type: boolean
default: true
- name: polyline
in: query
description: Fetch & parse the geographic shape of the trip? (does not work for RIS trip ids from boards of db profile)
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An object with the trip, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/trip.md).
content:
application/json:
schema:
type: object
properties:
trip:
$ref: '#/components/schemas/Trip'
realtimeDataUpdatedAt:
type: integer
required:
- trip
/locations/nearby:
get:
summary: Finds stops/stations & POIs close to a geolocation.
description: Uses [`hafasClient.nearby()`](https://github.com/public-transport/hafas-client/blob/6/docs/nearby.md) to **find stops/stations & POIs close to the given geolocation**.
externalDocs:
description: '`hafasClient.nearby()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/nearby.md
parameters:
- name: location
in: query
schema:
$ref: '#/components/schemas/Location'
- name: results
in: query
description: maximum number of results
schema:
type: integer
default: 8
- name: distance
in: query
description: 'maximum walking distance in meters Default: '
schema:
type: integer
- name: stops
in: query
description: Return stops/stations?
schema:
type: boolean
default: true
- name: poi
in: query
description: Return points of interest?
schema:
type: boolean
default: false
- name: linesOfStops
in: query
description: not supported
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An array of locations, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/nearby.md).
content:
application/json:
schema:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
/locations:
get:
summary: Finds stops/stations, POIs and addresses matching a query.
description: Uses [`hafasClient.locations()`](https://github.com/public-transport/hafas-client/blob/6/docs/locations.md) to **find stops/stations, POIs and addresses matching `query`**.
externalDocs:
description: '`hafasClient.locations()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/locations.md
parameters:
- name: query
in: query
description: The term to search for.
required: true
schema:
type: string
- name: fuzzy
in: query
description: Find more than exact matches?
schema:
type: boolean
default: true
- name: results
in: query
description: How many stations shall be shown?
schema:
type: integer
default: 10
- name: stops
in: query
description: Show stops/stations?
schema:
type: boolean
default: true
- name: addresses
in: query
description: Show addresses?
schema:
type: boolean
default: true
- name: poi
in: query
description: Show points of interest?
schema:
type: boolean
default: true
- name: linesOfStops
in: query
description: Parse & return lines of each stop/station?
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An array of locations, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/locations.md).
content:
application/json:
schema:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
/journeys/{ref}:
get:
summary: Fetches up-to-date realtime data for a journey computed before.
description: |-
Uses [`hafasClient.refreshJourney()`](https://github.com/public-transport/hafas-client/blob/6/docs/refresh-journey.md) to **"refresh" a journey, using its `refreshToken`**.
The journey will be the same (equal `from`, `to`, `via`, date/time & vehicles used), but you can get up-to-date realtime data, like delays & cancellations.
externalDocs:
description: '`hafasClient.refreshJourney()` documentation'
url: https://github.com/public-transport/hafas-client/blob/6/docs/refresh-journey.md
parameters:
- name: ref
in: path
description: The journey's `refreshToken`.
required: true
schema:
type: string
- name: stopovers
in: query
description: Fetch & parse stopovers on the way?
schema:
type: boolean
default: false
- name: tickets
in: query
description: Return information about available tickets? mutually exclusive with polylines
schema:
type: boolean
default: false
- name: polylines
in: query
description: Fetch & parse a shape for each journey leg? mutually exclusive with tickets
schema:
type: boolean
default: false
- name: subStops
in: query
description: not supported
schema:
type: boolean
default: true
- name: entrances
in: query
description: not supported
schema:
type: boolean
default: true
- name: remarks
in: query
description: Parse & return hints & warnings?
schema:
type: boolean
default: true
- name: scheduledDays
in: query
description: Parse & return dates the journey is valid on?
schema:
type: boolean
default: false
- name: language
in: query
description: Language of the results.
schema:
type: string
default: en
- name: pretty
in: query
description: Pretty-print JSON responses?
schema:
type: boolean
responses:
2XX:
description: An object with the up-to-date journey, in the [`hafas-client` format](https://github.com/public-transport/hafas-client/blob/6/docs/refresh-journey.md).
content:
application/json:
schema:
type: object
properties:
journey:
$ref: '#/components/schemas/Journey'
realtimeDataUpdatedAt:
type: integer
required:
- journey
components:
schemas:
ProductType:
description: |-
A ProductType relates to how a means of transport "works" in local context.
Example: Even though S-Bahn and U-Bahn in Berlin are both trains, they have different operators, service patterns,
stations and look different. Therefore, they are two distinct products subway and suburban.
type: object
properties:
id:
type: string
mode:
enum:
- aircraft
- bicycle
- bus
- car
- gondola
- taxi
- train
- walking
- watercraft
type: string
name:
type: string
short:
type: string
bitmasks:
type: array
items:
type: number
default:
type: boolean
Profile:
description: |-
A profile is a specific customisation for each endpoint.
It parses data from the API differently, add additional information, or enable non-default methods.
type: object
properties:
locale:
type: string
timezone:
type: string
endpoint:
type: string
products:
type: array
items:
$ref: '#/components/schemas/ProductType'
trip:
type: boolean
radar:
type: boolean
refreshJourney:
type: boolean
journeysFromTrip:
type: boolean
reachableFrom:
type: boolean
journeysWalkingSpeed:
type: boolean
tripsByName:
type: boolean
remarks:
type: boolean
remarksGetPolyline:
type: boolean
lines:
type: boolean
Location:
description: A location object is used by other items to indicate their locations.
type: object
properties:
type:
type: string
enum:
- location
id:
type: string
name:
type: string
poi:
type: boolean
address:
type: string
longitude:
type: number
latitude:
type: number
altitude:
type: number
distance:
type: number
Products:
description: Each public transportation network exposes its products as boolean properties. See {@link ProductType}
type: object
additionalProperties:
type: boolean
Facilities:
type: object
additionalProperties:
type: string
ReisezentrumOpeningHours:
type: object
properties:
Mo:
type: string
Di:
type: string
Mi:
type: string
Do:
type: string
Fr:
type: string
Sa:
type: string
So:
type: string
Station:
description: |-
A station is a larger building or area that can be identified by a name.
It is usually represented by a single node on a public transport map.
Whereas a stop usually specifies a location, a station often is a broader area
that may span across multiple levels or buildings.
type: object
properties:
type:
type: string
enum:
- station
id:
type: string
name:
type: string
station:
$ref: '#/components/schemas/Station'
location:
$ref: '#/components/schemas/Location'
products:
$ref: '#/components/schemas/Products'
lines:
type: array
items:
$ref: '#/components/schemas/Line'
isMeta:
type: boolean
regions:
description: region ids
type: array
items:
type: string
facilities:
$ref: '#/components/schemas/Facilities'
reisezentrumOpeningHours:
$ref: '#/components/schemas/ReisezentrumOpeningHours'
stops:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
entrances:
type: array
items:
$ref: '#/components/schemas/Location'
transitAuthority:
type: string
distance:
type: number
Ids:
description: Ids of a Stop, i.e. dhid as 'DELFI Haltestellen ID'
type: object
additionalProperties:
type: string
Stop:
description: |-
A stop is a single small point or structure at which vehicles stop.
A stop always belongs to a station. It may for example be a sign, a basic shelter or a railway platform.
type: object
properties:
type:
type: string
enum:
- stop
id:
type: string
name:
type: string
location:
$ref: '#/components/schemas/Location'
station:
$ref: '#/components/schemas/Station'
products:
$ref: '#/components/schemas/Products'
lines:
type: array
items:
$ref: '#/components/schemas/Line'
isMeta:
type: boolean
reisezentrumOpeningHours:
$ref: '#/components/schemas/ReisezentrumOpeningHours'
ids:
$ref: '#/components/schemas/Ids'
loadFactor:
type: string
entrances:
type: array
items:
$ref: '#/components/schemas/Location'
transitAuthority:
type: string
distance:
type: number
Region:
description: A region is a group of stations, for example a metropolitan area or a geographical or cultural region.
type: object
properties:
type:
type: string
enum:
- region
id:
type: string
name:
type: string
stations:
description: station ids
type: array
items:
type: string
Line:
type: object
properties:
type:
type: string
enum:
- line
id:
type: string
name:
type: string
adminCode:
type: string
fahrtNr:
type: string
additionalName:
type: string
product:
type: string
public:
type: boolean
mode:
enum:
- aircraft
- bicycle
- bus
- car
- gondola
- taxi
- train
- walking
- watercraft
type: string
routes:
description: routes ids
type: array
items:
type: string
operator:
$ref: '#/components/schemas/Operator'
express:
type: boolean
metro:
type: boolean
night:
type: boolean
nr:
type: number
symbol:
type: string
directions:
type: array
items:
type: string
productName:
type: string
RealtimeDataUpdatedAt:
type: object
properties:
realtimeDataUpdatedAt:
type: number
Route:
description: A route represents a single set of stations, of a single line.
type: object
properties:
type:
type: string
enum:
- route
id:
type: string
line:
type: string
mode:
enum:
- aircraft
- bicycle
- bus
- car
- gondola
- taxi
- train
- walking
- watercraft
type: string
stops:
description: stop ids
type: array
items:
type: string
Cycle:
type: object
properties:
min:
type: number
max:
type: number
nr:
type: number
ArrivalDeparture:
type: object
properties:
arrival:
type: number
departure:
type: number
Schedule:
description: |-
There are many ways to format schedules of public transport routes.
This one tries to balance the amount of data and consumability.
It is specifically geared towards urban public transport, with frequent trains and homogenous travels.
type: object
properties:
type:
type: string
enum:
- schedule
id:
type: string
route:
type: string
mode:
enum:
- aircraft
- bicycle
- bus
- car
- gondola
- taxi
- train
- walking
- watercraft
type: string
sequence:
type: array
items:
$ref: '#/components/schemas/ArrivalDeparture'
starts:
description: array of Unix timestamps
type: array
items:
type: string
Operator:
type: object
properties:
type:
type: string
enum:
- operator
id:
type: string
name:
type: string
Hint:
type: object
properties:
type:
enum:
- foreign-id
- hint
- local-fare-zone
- status
- stop-dhid
- stop-website
- transit-authority
type: string
code:
type: string
summary:
type: string
text:
type: string
tripId:
type: string
Status:
type: object
properties:
type:
enum:
- foreign-id
- hint
- local-fare-zone
- status
- stop-dhid
- stop-website
- transit-authority
type: string
code:
type: string
summary:
type: string
text:
type: string
tripId:
type: string
IcoCrd:
type: object
properties:
x:
type: number
'y':
type: number
type:
type: string
Edge:
type: object
properties:
fromLocation:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
toLocation:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
icon:
type: object
properties: {}
additionalProperties: true
dir:
type: number
icoCrd:
$ref: '#/components/schemas/IcoCrd'
Event:
type: object
properties:
fromLocation:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
toLocation:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
start:
type: string
end:
type: string
sections:
type: array
items:
type: string
Warning:
type: object
properties:
type:
enum:
- status
- warning
type: string
id:
type: string
icon:
type: object
properties: {}
additionalProperties: true
summary:
type: string
text:
type: string
category:
type: string
priority:
type: number
products:
$ref: '#/components/schemas/Products'
edges:
type: array
items:
$ref: '#/components/schemas/Edge'
events:
type: array
items:
$ref: '#/components/schemas/Event'
validFrom:
type: string
validUntil:
type: string
modified:
type: string
company:
type: string
categories:
type: array
items:
type: number
affectedLines:
type: array
items:
$ref: '#/components/schemas/Line'
fromStops:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
toStops:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
Geometry:
type: object
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
items:
type: number
Feature:
type: object
properties:
type:
type: string
enum:
- Feature
properties:
anyOf:
- type: object
properties: {}
additionalProperties: true
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
geometry:
$ref: '#/components/schemas/Geometry'
FeatureCollection:
type: object
properties:
type:
type: string
enum:
- FeatureCollection
features:
type: array
items:
$ref: '#/components/schemas/Feature'
PrognosisType:
enum:
- calculated
- prognosed
type: string
StopOver:
description: A stopover represents a vehicle stopping at a stop/station at a specific time.
type: object
properties:
stop:
anyOf:
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
departure:
description: null, if last stopOver of trip
type: string
departureDelay:
type: number
prognosedDeparture:
type: string
plannedDeparture:
type: string
departurePlatform:
type: string
prognosedDeparturePlatform:
type: string
plannedDeparturePlatform:
type: string
arrival:
description: null, if first stopOver of trip
type: string
arrivalDelay:
type: number
prognosedArrival:
type: string
plannedArrival:
type: string
arrivalPlatform:
type: string
prognosedArrivalPlatform:
type: string
plannedArrivalPlatform:
type: string
remarks:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Hint'
- $ref: '#/components/schemas/Status'
- $ref: '#/components/schemas/Warning'
passBy:
type: boolean
cancelled:
type: boolean
departurePrognosisType:
$ref: '#/components/schemas/PrognosisType'
arrivalPrognosisType:
$ref: '#/components/schemas/PrognosisType'
additional:
type: boolean
Trip:
description: Trip a vehicle stopping at a set of stops at specific times
type: object
properties:
id:
type: string
origin:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
destination:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
departure:
type: string
plannedDeparture:
type: string
prognosedArrival:
type: string
departureDelay:
type: number
departurePlatform:
type: string
prognosedDeparturePlatform:
type: string
plannedDeparturePlatform:
type: string
arrival:
type: string
plannedArrival:
type: string
prognosedDeparture:
type: string
arrivalDelay:
type: number
arrivalPlatform:
type: string
prognosedArrivalPlatform:
type: string
plannedArrivalPlatform:
type: string
stopovers:
type: array
items:
$ref: '#/components/schemas/StopOver'
schedule:
type: number
price:
$ref: '#/components/schemas/Price'
operator:
type: number
direction:
type: string
line:
$ref: '#/components/schemas/Line'
cancelled:
type: boolean
walking:
type: boolean
loadFactor:
type: string
distance:
type: number
public:
type: boolean
transfer:
type: boolean
cycle:
$ref: '#/components/schemas/Cycle'
alternatives:
type: array
items:
$ref: '#/components/schemas/Alternative'
polyline:
$ref: '#/components/schemas/FeatureCollection'
remarks:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Hint'
- $ref: '#/components/schemas/Status'
- $ref: '#/components/schemas/Warning'
currentLocation:
$ref: '#/components/schemas/Location'
departurePrognosisType:
$ref: '#/components/schemas/PrognosisType'
arrivalPrognosisType:
$ref: '#/components/schemas/PrognosisType'
checkin:
type: boolean
scheduledDays:
$ref: '#/components/schemas/ScheduledDays'
TripWithRealtimeData:
type: object
properties:
trip:
$ref: '#/components/schemas/Trip'
realtimeDataUpdatedAt:
type: number
TripsWithRealtimeData:
type: object
properties:
trips:
type: array
items:
$ref: '#/components/schemas/Trip'
realtimeDataUpdatedAt:
type: number
WarningsWithRealtimeData:
type: object
properties:
remarks:
type: array
items:
$ref: '#/components/schemas/Warning'
realtimeDataUpdatedAt:
type: number
LinesWithRealtimeData:
type: object
properties:
lines:
type: array
items:
$ref: '#/components/schemas/Line'
realtimeDataUpdatedAt:
type: number
Price:
type: object
properties:
amount:
type: number
currency:
type: string
hint:
type: string
Alternative:
type: object
properties:
tripId:
type: string
direction:
type: string
location:
$ref: '#/components/schemas/Location'
line:
$ref: '#/components/schemas/Line'
stop:
anyOf:
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
when:
type: string
plannedWhen:
type: string
prognosedWhen:
type: string
delay:
type: number
platform:
type: string
plannedPlatform:
type: string
prognosedPlatform:
type: string
remarks:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Hint'
- $ref: '#/components/schemas/Status'
- $ref: '#/components/schemas/Warning'
cancelled:
type: boolean
loadFactor:
type: string
provenance:
type: string
previousStopovers:
type: array
items:
$ref: '#/components/schemas/StopOver'
nextStopovers:
type: array
items:
$ref: '#/components/schemas/StopOver'
frames:
type: array
items:
$ref: '#/components/schemas/Frame'
polyline:
$ref: '#/components/schemas/FeatureCollection'
currentTripPosition:
$ref: '#/components/schemas/Location'
origin:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
destination:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
prognosisType:
$ref: '#/components/schemas/PrognosisType'
Departures:
type: object
properties:
departures:
type: array
items:
$ref: '#/components/schemas/Alternative'
realtimeDataUpdatedAt:
type: number
Arrivals:
type: object
properties:
arrivals:
type: array
items:
$ref: '#/components/schemas/Alternative'
realtimeDataUpdatedAt:
type: number
Leg:
description: Leg of journey
type: object
properties:
tripId:
type: string
origin:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
destination:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
departure:
type: string
plannedDeparture:
type: string
prognosedArrival:
type: string
departureDelay:
type: number
departurePlatform:
type: string
prognosedDeparturePlatform:
type: string
plannedDeparturePlatform:
type: string
arrival:
type: string
plannedArrival:
type: string
prognosedDeparture:
type: string
arrivalDelay:
type: number
arrivalPlatform:
type: string
prognosedArrivalPlatform:
type: string
plannedArrivalPlatform:
type: string
stopovers:
type: array
items:
$ref: '#/components/schemas/StopOver'
schedule:
type: number
price:
$ref: '#/components/schemas/Price'
operator:
type: number
direction:
type: string
line:
$ref: '#/components/schemas/Line'
reachable:
type: boolean
cancelled:
type: boolean
walking:
type: boolean
loadFactor:
type: string
distance:
type: number
public:
type: boolean
transfer:
type: boolean
cycle:
$ref: '#/components/schemas/Cycle'
alternatives:
type: array
items:
$ref: '#/components/schemas/Alternative'
polyline:
$ref: '#/components/schemas/FeatureCollection'
remarks:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Hint'
- $ref: '#/components/schemas/Status'
- $ref: '#/components/schemas/Warning'
currentLocation:
$ref: '#/components/schemas/Location'
departurePrognosisType:
$ref: '#/components/schemas/PrognosisType'
arrivalPrognosisType:
$ref: '#/components/schemas/PrognosisType'
checkin:
type: boolean
ScheduledDays:
type: object
additionalProperties:
type: boolean
Journey:
description: |-
A journey is a computed set of directions to get from A to B at a specific time.
It would typically be the result of a route planning algorithm.
type: object
properties:
type:
type: string
enum:
- journey
legs:
type: array
items:
$ref: '#/components/schemas/Leg'
refreshToken:
type: string
remarks:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Hint'
- $ref: '#/components/schemas/Status'
- $ref: '#/components/schemas/Warning'
price:
$ref: '#/components/schemas/Price'
cycle:
$ref: '#/components/schemas/Cycle'
scheduledDays:
$ref: '#/components/schemas/ScheduledDays'
Journeys:
type: object
properties:
earlierRef:
type: string
laterRef:
type: string
journeys:
type: array
items:
$ref: '#/components/schemas/Journey'
realtimeDataUpdatedAt:
type: number
JourneyWithRealtimeData:
type: object
properties:
journey:
$ref: '#/components/schemas/Journey'
realtimeDataUpdatedAt:
type: number
Duration:
type: object
properties:
duration:
type: number
stations:
type: array
items:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Station'
- $ref: '#/components/schemas/Stop'
DurationsWithRealtimeData:
type: object
properties:
reachable:
type: array
items:
$ref: '#/components/schemas/Duration'
realtimeDataUpdatedAt:
type: number
Frame:
type: object
properties:
origin:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Stop'
destination:
anyOf:
- $ref: '#/components/schemas/Location'
- $ref: '#/components/schemas/Stop'
t:
type: number
Movement:
type: object
properties:
direction:
type: string
tripId:
type: string
line:
$ref: '#/components/schemas/Line'
location:
$ref: '#/components/schemas/Location'
nextStopovers:
type: array
items:
$ref: '#/components/schemas/StopOver'
frames:
type: array
items:
$ref: '#/components/schemas/Frame'
polyline:
$ref: '#/components/schemas/FeatureCollection'
Radar:
type: object
properties:
movements:
type: array
items:
$ref: '#/components/schemas/Movement'
realtimeDataUpdatedAt:
type: number
ServerInfo:
type: object
properties:
hciVersion:
type: string
timetableStart:
type: string
timetableEnd:
type: string
serverTime:
type: string
realtimeDataUpdatedAt:
type: number
JourneysOptionsCommon:
type: object
properties:
departure:
description: departure date, undefined corresponds to Date.Now
default: undefined
type: string
format: date-time
arrival:
description: arrival date, departure and arrival are mutually exclusive.
default: undefined
type: string
format: date-time
earlierThan:
description: earlierThan, use {@link Journeys#earlierRef}, earlierThan and departure/arrival are mutually exclusive.
default: undefined
type: string
laterThan:
description: laterThan, use {@link Journeys#laterRef}, laterThan and departure/arrival are mutually exclusive.
default: undefined
type: string
results:
description: how many search results?
default: 3
type: number
via:
description: let journeys pass this station
default: undefined
type: string
stopovers:
description: return stations on the way?
default: false
type: boolean
transfers:
description: 'Maximum nr of transfers. Default: Let HAFAS decide.'
default: 10
type: number
transferTime:
description: minimum time for a single transfer in minutes
default: 10
type: number
accessibility:
description: '''none'', ''partial'' or ''complete'''
default: none
type: string
bike:
description: only bike-friendly journeys
default: false
type: boolean
products:
$ref: '#/components/schemas/Products'
tickets:
description: return tickets? only available with some profiles
default: false
type: boolean
polylines:
description: return a shape for each leg?
default: false
type: boolean
subStops:
description: parse & expose sub-stops of stations?
default: false
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
remarks:
description: parse & expose hints & warnings?
default: true
type: boolean
walkingSpeed:
description: '''slow'', ''normal'', ''fast'''
default: slow
type: string
startWithWalking:
description: start with walking
default: false
type: boolean
language:
description: language to get results in
default: en
type: string
scheduledDays:
description: parse which days each journey is valid on
default: false
type: boolean
when:
type: string
format: date-time
LoyaltyCard:
type: object
properties:
type:
type: string
discount:
type: number
class:
type: number
AgeGroup:
enum:
- B
- E
- K
- S
- 'Y'
type: string
RoutingMode:
enum:
- FULL
- HYBRID
- INFOS
- 'OFF'
- REALTIME
- SERVER_DEFAULT
type: string
JourneysOptionsDbProfile:
description: JourneysOptions specific to Db Profile
type: object
properties:
firstClass:
description: firstClass
default: false
type: boolean
ageGroup:
$ref: '#/components/schemas/AgeGroup'
description: ageGroup
default: none
age:
description: age
default: none
type: number
loyaltyCard:
$ref: '#/components/schemas/LoyaltyCard'
description: LoyaltyCard
default: none
routingMode:
$ref: '#/components/schemas/RoutingMode'
description: RoutingMode
default: none
JourneysOptions:
allOf:
- $ref: '#/components/schemas/JourneysOptionsCommon'
- $ref: '#/components/schemas/JourneysOptionsDbProfile'
JourneysFromTripOptions:
type: object
properties:
stopovers:
description: return stations on the way?
default: false
type: boolean
transferTime:
description: minimum time for a single transfer in minutes
default: 0
type: number
accessibility:
description: '''none'', ''partial'' or ''complete'''
default: '''none'''
type: string
tickets:
description: return tickets? only available with some profiles
default: false
type: boolean
polylines:
description: return leg shapes?
default: false
type: boolean
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
remarks:
description: parse & expose hints & warnings?
default: true
type: boolean
products:
$ref: '#/components/schemas/Products'
description: products
default: undefined
LocationsOptions:
type: object
properties:
fuzzy:
description: find only exact matches?
default: true
type: boolean
results:
description: how many search results?
default: 10
type: number
stops:
description: return stops/stations?
default: true
type: boolean
addresses:
description: return addresses
default: false
type: boolean
poi:
description: points of interest
default: true
type: boolean
subStops:
description: parse & expose sub-stops of stations?
default: false
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
linesOfStops:
description: parse & expose lines at each stop/station?
default: false
type: boolean
language:
description: Language of the results
default: en
type: string
TripOptions:
type: object
properties:
stopovers:
description: return stations on the way?
default: true
type: boolean
polyline:
description: return a shape for the trip?
default: false
type: boolean
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
remarks:
description: parse & expose hints & warnings?
default: true
type: boolean
scheduledDays:
description: parse which days each journey is valid on
default: false
type: boolean
language:
description: Language of the results
default: en
type: string
StopOptions:
type: object
properties:
linesOfStops:
description: parse & expose lines at the stop/station?
default: false
type: boolean
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
remarks:
description: parse & expose hints & warnings?
default: true
type: boolean
language:
description: Language of the results
default: en
type: string
DeparturesArrivalsOptions:
type: object
properties:
when:
description: departure date, undefined corresponds to Date.Now
default: undefined
type: string
format: date-time
direction:
description: only show departures heading to this station, only supported for `dbweb` profile
default: undefined
type: string
line:
description: filter by line ID
default: undefined
type: string
duration:
description: show departures for the next n minutes
default: 120
type: number
results:
description: max. number of results; `null` means "whatever HAFAS wants"
default: 10
type: number
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
linesOfStops:
description: parse & expose lines at the stop/station?
default: false
type: boolean
remarks:
description: parse & expose hints & warnings?
default: false
type: boolean
stopovers:
description: fetch & parse previous/next stopovers?
default: false
type: boolean
includeRelatedStations:
description: departures at related stations
default: true
type: boolean
products:
$ref: '#/components/schemas/Products'
description: products
default: undefined
language:
description: language
default: en
type: string
RefreshJourneyOptions:
type: object
properties:
stopovers:
description: return stations on the way?
default: false
type: boolean
polylines:
description: return a shape for each leg? mutually exclusive with tickets
default: false
type: boolean
tickets:
description: return tickets? mutually exclusive with polylines
default: false
type: boolean
subStops:
description: not supported
default: true
type: boolean
entrances:
description: not supported
default: true
type: boolean
remarks:
description: parse & expose hints & warnings?
default: true
type: boolean
scheduledDays:
description: parse & expose dates the journey is valid on?
default: false
type: boolean
language:
description: language
default: en
type: string
NearByOptions:
type: object
properties:
results:
description: maximum number of results
default: 8
type: number
distance:
description: maximum walking distance in meters
default: undefined
type: number
poi:
description: return points of interest?
default: false
type: boolean
stops:
description: return stops/stations?
default: true
type: boolean
products:
$ref: '#/components/schemas/Products'
description: products
default: undefined
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
linesOfStops:
description: parse & expose lines at each stop/station?
default: false
type: boolean
language:
description: language
default: en
type: string
ReachableFromOptions:
type: object
properties:
when:
description: when
default: undefined
type: string
format: date-time
maxTransfers:
description: maximum of transfers
default: 5
type: number
maxDuration:
description: maximum travel duration in minutes, pass `null` for infinite
default: 20
type: number
products:
$ref: '#/components/schemas/Products'
description: products
default: undefined
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
polylines:
description: return leg shapes?
default: false
type: boolean
BoundingBox:
type: object
properties:
north:
type: number
west:
type: number
south:
type: number
east:
type: number
RadarOptions:
type: object
properties:
results:
description: maximum number of vehicles
default: 256
type: number
frames:
description: nr of frames to compute
default: 3
type: number
products:
$ref: '#/components/schemas/Products'
description: optionally an object of booleans
default: null
duration:
description: compute frames for the next n seconds
default: 20
type: number
subStops:
description: parse & expose sub-stops of stations?
default: true
type: boolean
entrances:
description: parse & expose entrances of stops/stations?
default: true
type: boolean
polylines:
description: return a shape for the trip?
default: false
type: boolean
when:
description: when
default: undefined
type: string
format: date-time
Filter:
type: object
properties:
type:
type: string
mode:
type: string
value:
type: string
TripsByNameOptions:
type: object
properties:
when:
description: departure date, undefined corresponds to Date.Now
default: undefined
type: string
format: date-time
fromWhen:
type: string
format: date-time
untilWhen:
type: string
format: date-time
onlyCurrentlyRunning:
type: boolean
products:
$ref: '#/components/schemas/Products'
currentlyStoppingAt:
type: string
lineName:
type: string
operatorNames:
type: array
items:
type: string
additionalFilters:
type: array
items:
$ref: '#/components/schemas/Filter'
RemarksOptions:
type: object
properties:
from:
anyOf:
- type: string
format: date-time
- type: number
to:
anyOf:
- type: string
format: date-time
- type: number
results:
description: maximum number of remarks
default: 100
type: number
products:
$ref: '#/components/schemas/Products'
polylines:
description: return leg shapes? (not supported by all endpoints)
default: false
type: boolean
language:
description: Language of the results
default: en
type: string
LinesOptions:
type: object
properties:
language:
description: Language of the results
default: en
type: string
ServerOptions:
type: object
properties:
versionInfo:
description: versionInfo
default: true
type: boolean
language:
description: Language of the results
default: en
type: string
HafasClient:
type: object
properties:
journeys:
description: Retrieves journeys
type: object
refreshJourney:
description: refreshes a Journey
type: object
trip:
description: Refetch information about a trip
type: object
departures:
description: Retrieves departures
type: object
arrivals:
description: Retrieves arrivals
type: object
journeysFromTrip:
description: Retrieves journeys from trip id to station
type: object
locations:
description: Retrieves locations or stops
type: object
stop:
description: Retrieves information about a stop
type: object
nearby:
description: Retrieves nearby stops from location
type: object
reachableFrom:
description: Retrieves stations reachable within a certain time from a location
type: object
radar:
description: Retrieves all vehicles currently in an area.
type: object
tripsByName:
description: Retrieves trips by name.
type: object
remarks:
description: Fetches all remarks known to the HAFAS endpoint
type: object
lines:
description: Fetches all lines known to the HAFAS endpoint
type: object
serverInfo:
description: Fetches meta information from the HAFAS endpoint
type: object
ProfileSpecificProducts:
type: object
properties:
nationalExpress:
description: Include InterCityExpress (ICE)?
type: boolean
default: true
national:
description: Include InterCity & EuroCity (IC/EC)?
type: boolean
default: true
regionalExpress:
description: Include InterRegio, FlixTrain, Westbahn etc.?
type: boolean
default: true
regional:
description: Include Regio (RB)?
type: boolean
default: true
suburban:
description: Include S-Bahn (S)?
type: boolean
default: true
bus:
description: Include Bus (B)?
type: boolean
default: true
ferry:
description: Include Ferry (F)?
type: boolean
default: true
subway:
description: Include U-Bahn (U)?
type: boolean
default: true
tram:
description: Include Tram (T)?
type: boolean
default: true
taxi:
description: Include Group Taxi (Taxi)?
type: boolean
default: true
externalDocs:
description: human-readable docs
url: https://github.com/public-transport/db-vendo-client/blob/main/docs/api.md