Skip to content
derhuerstPublic

About

A clean REST API wrapping around the Deutsche Bahn API.

Topics

Resources

Stars

124 stars

Watchers

9 watching

Forks

Repository files navigation

db-rest

This API is not operational anymore. You may try running your own instance or switching to an alternative:

Why not to use this API?

Low rate limits

The underlying APIs seem to have a much lower rate limit than before, i.e. you should not use this service to send many requests in an automated manner. Instead, you may:

Use GTFS and GTFS-RT and other datasets

GTFS and GTFS-RT are file format/feed specifications for scheduled timetables and realtime updates like delays, respectively. They enable you to download datasets for entire transport associations, regions or even countries in one go, for local querying (e.g. with MOTIS and motis-fptf-client or OTP) and analysis (e.g. with gtfs-via-postgres and print-gtfs-rt-cli). For Germany, GTFS and GTFS-RT feeds are provided by DELFI e.V. Refined, publicly available feeds based on these and other sources can be obtained via Transitous or from gtfs.de. I.e. by using these you do not need to make any excessive API requests, however, the data quality and coverage of these feeds will currently in many cases still be inferior to what is provided by Deutsche Bahn.

If you're just interested in stops/autocompletion:

Use other APIs

Run your own instance of this API

It may help to distribute the load by running your own instance of db-rest/db-vendo-client. Both provide Dockerfiles/Docker images for easy setup of the REST API server. db-rest additionally includes a caching layer (if configured correctly), serves the OpenAPI specification, and does some more plumbing.

Using this API

A clean REST API wrapping around the Deutsche Bahn HAFAS API. It is deployed at v6.db.transport.rest.

API Documentation

Important

The DB HAFAS API is currently not available, and it seems like it has been shut off permanently.

This wrapper API now uses db-vendo-client as a backend, which covers most of the use cases, notably except for /stops/reachable-from and /radar. Please also note some further limitations and caveats in the readme and documentation of db-vendo-client.

Also, the new underlying APIs seem to have a much lower rate limit than the old HAFAS API. ⚠️ Hence, please check if you can obtain the data needed for your use case in a more efficient manner, e.g. by using the available GTFS feeds.

db-rest architecture diagram

API status dependency status ISC-licensed support me via GitHub Sponsors chat with me on Twitter

installing & running

access to Redis

It is recommended that you let bvg-rest cache HAFAS responses within a Redis cache. To use this feature, set $REDIS_URL (e.g. to redis://localhost:6379/1 when running Redis locally).

via Docker

A Docker image is available as docker.io/derhuerst/db-rest:6.

docker run -d -p 3000:3000 docker.io/derhuerst/db-rest:6

Note: The Docker image does not contain the Redis server.

manually

git clone https://github.com/derhuerst/db-rest.git
cd db-rest
git checkout 6
npm install

export HOSTNAME='my-vbb-rest-api.example.org'
npm run build

redis-server &
npm start

To keep the API running permanently, use tools like forever or systemd.

Related Projects

  • DB-Adapter-v6 – A Java API client for db-rest.
  • vbb-rest – A clean REST API wrapping around the VBB API.
  • bvg-rest – A clean REST API wrapping around the BVG API.
  • hvv-rest – A clean REST API wrapping around the HVV API.
  • hafas-rest-api – Expose a HAFAS client via an HTTP REST API.
  • hafas-client – JavaScript client for HAFAS public transport APIs.

Contributing

If you have a question, found a bug or want to propose a feature, have a look at the issues page.

About

A clean REST API wrapping around the Deutsche Bahn API.

Topics

Resources

Stars

124 stars

Watchers

9 watching

Forks

Packages

Used by

Contributors

Languages