db-prices
JavaScript module for finding the cheapest railway connections using the Deutsche Bahn Sparpreise API.

Installation
npm install db-prices
Usage
prices() returns a Promise that will resolve with a list of offers.
const prices = require('db-prices')
prices(from, to, [date], [opt]).then(…)
from and to must be station IDs like '8000105'.
date must be a Date object; if empty, the current datetime will be used.
With opt, you can override the default options, which look like this:
{
class: 2,
noICETrains: false,
transferTime: 0,
duration: 1440,
preferFastRoutes: true
travellers: [{
bc: 0,
typ: "E",
alter: 30
}],
}
Response
The result will be a list of Friendly Public Transport Format journey objects.
With from = '8000105', to = '8011160' and date = new Date('2016-08-17T00:00:00.000Z'), the result looked like this:
[
{
type: 'journey',
id: '0',
origin: {
type: 'station',
id: '8000105',
name: 'Frankfurt(Main)Hbf'
},
destination: {
type: 'station',
id: '8098160',
name: 'Berlin Hbf (tief)'
},
legs: [{
origin: {
type: 'station',
id: '8000105',
name: 'Frankfurt(Main)Hbf'
},
start: '2017-06-05T08:53:00.000Z',
departurePlatform: '13',
destination: {
type: 'station',
id: '8098160',
name: 'Berlin Hbf (tief)'
},
end: '2017-06-05T13:17:00.000Z',
arrivalPlatform: '7',
line: {
type: 'line',
id: 'ice-1537',
name: 'ICE 1537',
product: 'ICE'
}
}],
price: {
currency: 'EUR',
amount: 126,
discount: false,
name: 'Flexpreis',
description: 'Fully flexible (not bound to a specific train / not dependent on the connection indicated on the selected route). Exchanges and refunds free of charge; on or after the first day of validity subject to a fee.'
},
nightTrain: false
}
]
Similar Projects
Contributing
If you found a bug, want to propose a feature or feel the urge to complain about your life, feel free to visit the issues page.
Cheers to Jannis R for contributing.