The public endpoint is vbb.transport.rest
. This API returns data in the Friendly Public Transport Format. Use vbb-client
to talk to this API from JavaScript.
In December of 2016, VBB changed all station ids, e.g. 9012103
-> 900000012103
. This API accepts both by trying to translate old ids into new ones, using vbb-translate-ids
. Unfortunately they only use the the new ids for static data (of stations), but not for POIs and in their API. As they announced to fully migrate to the new ids in September, please us them from now on.
Note: During development and test runs using this API, please send an X-Identifier
header (e.g. my-module-testing
) to let me know the request is not from a production system. For all other requests, a hash of the client IP will be logged. (To do this with vbb-client
, pass an identifier
key in the query object.)
GET /stations?query=…
GET /stations
GET /stations/nearby
GET /stations/:id
GET /stations/:id/departures
GET /lines
GET /lines/:id
GET /shapes/:id
GET /journeys
GET /locations
GET /maps/:type
GET /logos/:type
GET /radar
Passes all parameters into vbb-stations-autocomplete
.
query
: Required.completion
:true
/false
– Default istrue
fuzzy
:true
/false
– Default isfalse
Content-Type
: application/json
curl 'https://vbb.transport.rest/stations?query=jungfernheide'
# note the typo
curl 'https://vbb.transport.rest/stations?query=mehrigndamm&fuzzy=true'
Passes all parameters into vbb-stations
.
id
: Filter by ID.name
: Filter by name.coordinates.latitude
: Filter by latitude.coordinates.longitude
: Filter by longitude.weight
: Filter by weight.
Content-Type
: application/json
curl 'https://vbb.transport.rest/stations?weight=9120&coordinates.latitude=52.493575'
Dumps full.json
from vbb-stations
.
Content-Type
: application/json
curl 'https://vbb.transport.rest/stations/all'
latitude
: Required.longitude
: Required.results
: How many stations shall be shown? Default:8
.distance
: Maximum distance in meters. Default:null
.stations
: Show stations around. Default:true
.poi
: Show points of interest around. Default:false
.
Content-Type
: application/json
curl 'https://vbb.transport.rest/stations/nearby?latitude=52.52725&longitude=13.4123'
Content-Type
: application/json
curl 'https://vbb.transport.rest/stations/900000013102'
Returns departures at a station. To maintain backwards compatibility, this route has two modes of operation (see below).
Note: As stated in the Friendly Public Transport Format, the returned departure
and arrival
times include the current delay.
Content-Type
: application/json
If you provide a station ID with the nextStation
parameter, vbb-departures-in-direction
will be used to filter by direction. Only departures with this station as their next stop will be returned.
You may then add these parameters:
when
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now.results
: The number of results. Lower means faster. Default:10
.maxQueries
: The maximum number of queries against VBB. Default:10
.
If you do not use nextStation
, departures(…)
from vbb-hafas
will be used to get departures in all directions.
You may then add these parameters:
when
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now.duration
: Show departures for the nextn
minutes. Default:10
.
# at U Kottbusser Tor, in direction U Görlitzer Bahnhof
curl 'https://vbb.transport.rest/stations/900000013102/departures?nextStation=900000014101&results=3'
# at U Kottbusser Tor, without direction
curl 'https://vbb.transport.rest/stations/900000013102/departures?when=tomorrow%206pm'
variants
: Wether to return stations of the line. Default:false
.
Passes all parameters into vbb-lines
:
id
: Filter by ID.name
: Filter by name.operator
: Filter by operator id. Seeagency.txt
.mode
: Filter by mode of transport as in Friendly Public Transport Format.product
: Seevbb-util
.
Content-Type
: application/x-ndjson
curl 'https://vbb.transport.rest/lines?operator=796&variants=true'
Content-Type
: application/json
curl 'https://vbb.transport.rest/lines/531'
Content-Type
: application/json
Output from require('vbb-shapes')(id)
.
curl 'https://vbb.transport.rest/shapes/1269'
Output from require('vbb-hafas').journeys(…)
. Start location and end location must be either in station format or in POI/address format (you can mix them).
Note: As stated in the Friendly Public Transport Format, the returned departure
and arrival
times include the current delay.
from
: Required. Station ID (e.g.900000023201
).to
: Required. Station ID (e.g.900000023201
).
from.latitude
/to.latitude
: Required. Latitude (e.g.52.543333
).from.longitude
/to.longitude
: Required. Longitude (e.g.13.351686
).from.name
/to.name
: Name of the locality (e.g.ATZE Musiktheater
).from.id
/to.id
: POI ID (e.g.9980720
).
-
when
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now. -
results
: Maximum number of results. Default:5
. -
via
: Station ID. Default:null
. -
passedStations
: Return stations on the way? Default:false
. -
transfers
: Maximum number of transfers. Default:5
. -
transferTime
: Minimum time in minutes for a single transfer. Default:0
. -
accessibility
: Possible values:partial
,complete
. Default:none
. -
bike
: Return only bike-friendly journeys. Default:false
. -
tickets
: Return information about available tickets. Default:false
. -
suburban
: Include S-Bahn trains? Default:true
. -
subway
: Include U-Bahn trains? Default:true
. -
tram
: Include trams? Default:true
. -
bus
: Include buses? Default:true
. -
ferry
: Include ferries? Default:true
. -
express
: Include IC/ICE/EC trains? Default:true
. -
regional
: Include RE/RB/ODEG trains? Default:true
.
Content-Type
: application/json
curl 'https://vbb.transport.rest/journeys?from=900000017104&to=900000017101'
curl 'https://vbb.transport.rest/journeys?from=900000023201&to.name=ATZE%20Musiktheater&to.latitude=52.543333&to.longitude=13.351686'
curl 'https://vbb.transport.rest/journeys?from=…&to=…&results=3&bus=false&tickets=true'
Output from require('vbb-hafas').journeyPart(…)
.
lineName
: Required. Line name of the part's mode of transport, e.g.RE7
.when
: A UNIX timestamp or anything parsable byparse-messy-time
. Default: now.
Content-Type
: application/json
# this won't work, get a new ref from /journeys first
curl 'https://vbb.transport.rest/journeys/parts/1|32082|1|86|26062017?lineName=RE7'
Output from require('vbb-hafas').locations(…)
query
: Required. (e.g.Alexanderplatz
)results
: How many stations shall be shown? Default:10
.stations
: Show stations? Default:true
.poi
: Show points of interest? Default:true
.addresses
: Show addresses? Default:true
.
Content-Type
: application/json
curl 'https://vbb.transport.rest/locations?query=Alexanderplatz'
curl 'https://vbb.transport.rest/locations?query=Pestalozzistra%C3%9Fe%2082%2C%20Berlin&poi=false&stations=false'
Redirects to PDF public transport maps. type
may be one of these:
type |
Description |
---|---|
bvg |
Day, Berlin ABC, S-Bahn & U-Bahn |
bvg-tram |
Day & Night, Berlin ABC, Trams |
bvg-night |
Night, Berlin ABC, S-Bahn & U-Bahn |
bvg-refugees |
Day, Berlin-ABC, S-Bahn & U-Bahn, Translations |
vbb |
Day, Berlin & Brandenburg, RE & RB trains |
brb |
Day, Brandenburg an der Havel |
cb |
Day & Night, Cottbus |
cb-night |
Night, Cottbus |
ff |
Day, Frankfurt Oder |
p |
Day, Potsdam |
p-night |
Night, Potsdam |
curl -L -o bvg-tram-map.pdf 'https://vbb.transport.rest/maps/bvg-tram'
Serves the logos from derhuers/vbb-logos#v2
.
curl -L -o tram.svg 'https://vbb.transport.rest/logos/tram.svg'
north
: Required. Northern latitude.west
: Required. Western longtidue.south
: Required. Southern latitude.east
: Required. Eastern longtidue.results
: How many vehicles shall be shown? Default:256
.duration
: Compute frames for how many seconds? Default:30
.frames
: Number of frames to compute. Default:3
.
Content-Type
: application/json
curl 'https://vbb.transport.rest/radar?north=52.52411&west=13.41002&south=52.51942&east=13.41709'