Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
332 lines (217 sloc) 12.1 KB

Berlin & Brandenburg Public Transport API

This API returns data in the Friendly Public Transport Format 1.0.1.

The public endpoint is 2.vbb.transport.rest. Use vbb-client@3 to talk to this API from JavaScript. VBB has blocked our API servers' IP addresses, so we can't provide a public endpoint for now. If you use JavaScript to process the data, use vbb-hafas directly, otherwise host your vbb-rest instance for now.

all routes

GET /stations?query=…

Passes all parameters into vbb-stations-autocomplete.

  • query: Required.
  • completion: true/false – Default is true
  • fuzzy: true/false – Default is false

Content-Type: application/json

examples

curl 'https://your-api-endpoint/stations?query=jungfernheide'
# note the typo
curl 'https://your-api-endpoint/stations?query=mehrigndamm&fuzzy=true'

GET /stations

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

examples

curl 'https://your-api-endpoint/stations?weight=9120&coordinates.latitude=52.493575'

GET /stations/all

Dumps full.json from vbb-stations.

Content-Type: application/json

examples

curl 'https://your-api-endpoint/stations/all'

GET /stations/nearby

  • 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

examples

curl 'https://your-api-endpoint/stations/nearby?latitude=52.52725&longitude=13.4123'

GET /stations/:id

Content-Type: application/json

examples

curl 'https://your-api-endpoint/stations/900000013102'

GET /stations/:id/departures

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 1.0.1, the returned departure and arrival times include the current delay.

Content-Type: application/json

with nextStation

If you provide a station ID with the nextStation parameter, hafas-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 by parse-messy-time. Default: now.
  • results: The number of results. Lower means faster. Default: 10.
  • maxQueries: The maximum number of queries against VBB. Default: 10.

without nextStation

If you do not use nextStation, departures(…) from vbb-hafas (which uses departures(…) from hafas-client) will be used to get departures in all directions.

You may then add these parameters:

examples

# at U Kottbusser Tor, in direction U Görlitzer Bahnhof
curl 'https://your-api-endpoint/stations/900000013102/departures?nextStation=900000014101&results=3'
# at U Kottbusser Tor, without direction
curl 'https://your-api-endpoint/stations/900000013102/departures?when=tomorrow%206pm'

GET /lines

Passes all parameters into vbb-lines:

Content-Type: application/x-ndjson

examples

curl 'https://your-api-endpoint/lines?operator=796&variants=true'

GET /lines/:id

Content-Type: application/json

examples

curl 'https://your-api-endpoint/lines/531'

GET /shapes/:id

Content-Type: application/json

Output from require('vbb-shapes')(id).

examples

curl 'https://your-api-endpoint/shapes/1269'

GET /journeys

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 1.0.1, the returned departure and arrival times include the current delay.

station format

  • from: Required. Station ID (e.g. 900000023201).
  • to: Required. Station ID (e.g. 900000023201).

POI format

  • 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: Required. POI ID (e.g. 9980720).

address format

  • from.latitude/to.latitude: Required. Latitude (e.g. 52.543333).
  • from.longitude/to.longitude: Required. Longitude (e.g. 13.351686).
  • from.address/to.address: Required. Address (e.g. Voltastr. 17).

other parameters

  • when: A UNIX timestamp or anything parsable by parse-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.

  • transferInfo: Try to add transfer information from vbb-change-positions to journey legs? more details 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

examples

curl 'https://your-api-endpoint/journeys?from=900000017104&to=900000017101'
curl 'https://your-api-endpoint/journeys?from=900000023201&to.name=ATZE%20Musiktheater&to.latitude=52.543333&to.longitude=13.351686'
curl 'https://your-api-endpoint/journeys?from=…&to=…&results=3&bus=false&tickets=true'

GET /journeys/legs/:ref

Output from require('hafas-client').journeyLeg(…).

  • lineName: Required. Line name of the part's mode of transport, e.g. RE7.
  • when: A UNIX timestamp or anything parsable by parse-messy-time. Default: now.

Content-Type: application/json

examples

# this won't work, get a new ref from /journeys first
curl 'https://your-api-endpoint/journeys/legs/1|32082|1|86|26062017?lineName=RE7'

GET /locations

Output from require('hafas-client').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

examples

curl 'https://your-api-endpoint/locations?query=Alexanderplatz'
curl 'https://your-api-endpoint/locations?query=Pestalozzistra%C3%9Fe%2082%2C%20Berlin&poi=false&stations=false'

GET /radar

  • 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

examples

curl 'https://your-api-endpoint/radar?north=52.52411&west=13.41002&south=52.51942&east=13.41709'

GET /maps/:type

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

examples

curl -L -o bvg-tram-map.pdf 'https://your-api-endpoint/maps/bvg-tram'

GET /logos/:type

Serves the logos from derhuers/vbb-logos#v2.

examples

curl -L -o tram.svg 'https://your-api-endpoint/logos/tram.svg'