Learn R Programming

nsapi

The Dutch National Railway service (NS; Nederlandse Spoorwegen) has an API where we can query for travel advise, see the current trains on a given station, see if there is any delays or work on the tracks and NS also provides a list with geolocation of all the stations.

The goal of nsapi is to make it easy to gather data from the NS API. The package returns data frames for every response.

Installation

You can NOT YET install the released version of nsapi from CRAN with:

install.packages("nsapi")

But you can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("RMHogervorst/nsapi")

Example

This is a basic example which shows you how you get travel information:

library(nsapi)
treinplanner <- get_travel_advise(
  fromStation = "Leiden Centraal", 
  toStation = "Utrecht Centraal",
  departure = TRUE,
  yearCard = TRUE,
  previousAdvises = 1, 
  nextAdvises = 1)
treinplanner
#>   Melding AantalOverstappen GeplandeReisTijd ActueleReisTijd
#> 1      NA                 1             0:55            0:58
#> 2      NA                 0             0:42            0:42
#> 3      NA                 1             1:00            1:00
#> 4      NA                 0             0:42            0:42
#>   VertrekVertraging AankomstVertraging Optimaal GeplandeVertrekTijd
#> 1              <NA>             +3 min    FALSE 2018-08-10 21:05:00
#> 2              <NA>               <NA>     TRUE 2018-08-10 21:22:00
#> 3              <NA>               <NA>    FALSE 2018-08-10 21:30:00
#> 4              <NA>               <NA>    FALSE 2018-08-10 21:52:00
#>    ActueleVertrekTijd GeplandeAankomstTijd ActueleAankomstTijd
#> 1 2018-08-10 21:05:00  2018-08-10 22:00:00 2018-08-10 22:03:00
#> 2 2018-08-10 21:22:00  2018-08-10 22:04:00 2018-08-10 22:04:00
#> 3 2018-08-10 21:30:00  2018-08-10 22:30:00 2018-08-10 22:30:00
#> 4 2018-08-10 21:52:00  2018-08-10 22:34:00 2018-08-10 22:34:00
#>         Status     ReisDeel
#> 1    VERTRAAGD c("NS", ....
#> 2 VOLGENS-PLAN NS, Inte....
#> 3 VOLGENS-PLAN c("NS", ....
#> 4 VOLGENS-PLAN NS, Inte....

FAQ

  1. What Can I do with the package?
  • You can access the departures from a station, disruptions (planned and unplanned), get travel advise (between stations) and a list of all stations (in the Netherlands and some outside.). In the vignette I’ve described how to use the functions.
  1. I’m getting a curl timeout!
  • Yes… That happens, sometimes. The NS website does not always return errors but just times you out once in a while. Take a deep breath, retry.
  1. Error Bad request or HTTP 400
  • Your username and password might not be set properly
  1. How do I set a password and username?
  • See Authentication in the vignette

Metadata

The package is MIT licensed although the information from NS is probably proprietary

codecoverage <- covr::package_coverage(path = ".",type = "tests")
print(codecoverage)
#> nsapi Coverage: 18.87%
#> R/api_calls_authentification.R: 4.84%
#> R/utils.R: 24.67%

Copy Link

Version

Install

install.packages('nsapi')

Monthly Downloads

24

Version

0.1.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Roel M Hogervorst

Last Published

August 11th, 2018

Functions in nsapi (0.1.1)

get_stationlist

Get a complete list of all the stations
check_ns_api_keys

Are the username and password set?
datetime

Translate date and time into datetime stamp to use in api call
get_departures

Get up to date departures from a station
get_disruptions_station

Get disruptions and engineering work
get_travel_advise

Get travel advise from one station to another station
nsapi

NSapi package