This is a php client library for the deutsche bahn timetable API. The deutsche bahn is the biggest railway company in Germany and published in November 2015 the open data project which provides the data source. This project provides a client and wrapper classes for interaction with the API.
At this state, there are only data available which belongs the long distance trains.
- Station search
- Departure Board
- Arrivals board
- Train route
To install the client we recommended use composer.
Install composer
curl -sS https://getcomposer.org/installer | php
Require the libary
php composer.phar require ddreher/db-api-client
Connect the composer autoloader
require 'vendor/autoload.php';
Use the client
$client = new DBClient([
'authKey' => 'PutYourAPIKeyHere',
]);
$client->request(...);
This example will shows how to list all departing trains from Frankfurt (Main) Hauptbahnhof. The api returns the next 20 trains departing in the period between the submitted time and two hours.
$client = new DBClient([
'authKey' => 'PutYourAPIKeyHere',
]);
foreach($client->request(StationBoard::create('008000105', new \DateTime(), StationBoard::DEPARTURE)) as $trainBoard)
{
var_dump($trainBoard);
}
For train station in Germany you can also use the short station id (e.g. remove the 008 and all leading 0), for Frankfurt (Main) Hauptbahnhof it will be 105. You can also determine the station id from the API, while searching train stations (see the example examples/findStation.php). All examples are available in the examples folder.
To obtain an API key, please read the instructions at http://data.deutschebahn.com/apis/fahrplan.
- One of the biggest issues is that all times from the API are published without timezone information. This is relevant for trains who's crossing multiple timezones.
The API data from deutsche bahn are published under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.
This library is published unter the MIT license.