Query the Dutch railways about your routes, getting info on delays and more. See below for the syntax and example output.
Assuming you already are inside a virtualenv:
pip install nsapi
Create a new virtualenv (if you are not already in one) and install the necessary packages:
git clone https://github.com/aquatix/ns-api.git cd ns-api mkvirtualenv ns-api pip install -r requirements.txt
Development in Docker
Git clone this repository, use vscode & docker to remote open in a dev container as explained in this howto.
As part of ns-notifications
Alternatively, follow the installation instructions of ns-notifications,
which makes extensive use of this library to serve notifications to for
example a smartphone. The requirements of both packages can be installed
in the same
ns-notifications one mentioned in the project;
ns-api will be installed through pip from
Also take a look at nsmaps
Bart Römgens created a fascinating contour map called nsmaps based on ns-api. It visualises Dutch railways travel information with OpenLayer 3 contour maps to show how long it takes to get somewhere in the Netherlands by train and bicycle.
NS API key
The library uses the reisinformatie API. Here you can try the API for yourself (and look up station names, but the library has the get_stations() function for this too).
The API portal also provides statistics on usage and errors.