vbb-stations ๐
May 11, 2026 ยท View on GitHub
A collection of all stations of the Berlin Brandenburg public transport service (VBB), computed from open GTFS data.
Installing
npm install vbb-stations
Usage
The npm package contains Friendly Public Transport Format 1.2.1 stations and stops. weight is the sum of all arrivals & departures at a station, weighted by mode of transport.
[
{
type: 'station',
id: 'de:11000:900009101',
name: 'U Amrumer Str.',
location: {
type: 'location',
latitude: 52.542202,
longitude: 13.349534
},
weight: 2474,
}
]
You can filter all stations by id or any property (lodash's get will be used).
import {stations} from 'vbb-stations'
console.log(stations('de:11000:900009101')) // query a single station
console.log(stations({ // filter by property
weight: 2474,
'location.latitude': 52.542202
}))
full.json contains all stops of each station and unshortened names.
import fullStations from 'vbb-stations/full.json' with {type: 'json'}
console.log(fullStations['de:11000:900009101'])
One entry looks like this:
{
type: 'station',
id: 'de:11000:900009101',
name: 'U Amrumer Str. (Berlin)',
location: {
type: 'location',
latitude: 52.542202,
longitude: 13.349534
},
weight: 2474,
stops: [
{
type: 'stop',
id: 'de:11000:900009101::1',
name: 'U Amrumer Str. (Berlin)',
station: 'de:11000:900009101',
location: {
type: 'location',
latitude: 52.542202,
longitude: 13.349534
}
},
// โฆ
{
type: 'stop',
id: 'de:11000:900009101::2',
name: 'U Amrumer Str. (Berlin)',
station: 'de:11000:900009101',
location: {
type: 'location',
latitude: 52.542202,
longitude: 13.349534
}
}
]
}
names.json contains only shortened names.
import stationNames from 'vbb-stations/names.json' with {type: 'json'}
stationNames['de:11000:900009101'] // U Amrumer Str.
API
stations([pattern])
pattern can be one of the following:
- a station ID, like
de:11000:900009101 'all'- an object like
{weight: 42, name: 'Alt Pinnow'}, with each property being mandatory
Contributing
If you have a question, found a bug or want to propose a feature, have a look at the issues page.