Resources

The resources use a data model that is supported by a set of client-side libraries that are made available on the files and libraries page.

name path methods description
BikeRental
  • /otp/routers/{ignoreRouterId}/bike_rental
  • GET
GraphInspectorTileResource
  • /otp/routers/{ignoreRouterId}/inspector/layers
  • /otp/routers/{ignoreRouterId}/inspector/tile/{layer}/{z}/{x}/{y}.{ext}
  • GET
  • GET
Slippy map tile API for rendering various graph information for inspection/debugging purpose (bike safety factor, connectivity...).

One can easily add a new layer by adding the following kind of code to a leaflet map:

   var bikesafety = new L.TileLayer(
      'http://localhost:8080/otp/routers/default/inspector/tile/bike-safety/{z}/{x}/{y}.png',
      { maxZoom : 22 });
   var map = L.map(...);
   L.control.layers(null, { "Bike safety": bikesafety }).addTo(map);
 

Tile rendering goes through TileRendererManager which select the appropriate renderer for the given layer.

GraphInspectorVectorTileResource
  • /otp/routers/{ignoreRouterId}/inspector/vectortile/{layers}/tilejson.json
  • /otp/routers/{ignoreRouterId}/inspector/vectortile/{layers}/{z}/{x}/{y}.pbf
  • GET
  • GET
Slippy map vector tile API for rendering various graph information for inspection/debugging purposes.
IndexAPI
  • /otp/routers/{ignoreRouterId}/index/feeds
  • /otp/routers/{ignoreRouterId}/index/patterns
  • /otp/routers/{ignoreRouterId}/index/routes
  • /otp/routers/{ignoreRouterId}/index/services
  • /otp/routers/{ignoreRouterId}/index/stops
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}
  • /otp/routers/{ignoreRouterId}/index/feeds/{feedId}
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}
  • /otp/routers/{ignoreRouterId}/index/services/{serviceId}
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/alerts
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/geometry
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/semanticHash
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/stops
  • /otp/routers/{ignoreRouterId}/index/patterns/{patternId}/trips
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/alerts
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/patterns
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/stops
  • /otp/routers/{ignoreRouterId}/index/routes/{routeId}/trips
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/alerts
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/patterns
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/routes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/stoptimes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/transfers
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/alerts
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/geometry
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/semanticHash
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/stops
  • /otp/routers/{ignoreRouterId}/index/trips/{tripId}/stoptimes
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}/alerts
  • /otp/routers/{ignoreRouterId}/index/agencies/{feedId}/{agencyId}/routes
  • /otp/routers/{ignoreRouterId}/index/stops/{stopId}/stoptimes/{date}
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
PlannerResource
  • /otp/routers/{ignoreRouterId}/plan
  • GET
This is the primary entry point for the trip planning web service. All parameters are passed in the query string. These parameters are defined as fields in the abstract RoutingResource superclass, which also has methods for building routing requests from query parameters. This allows multiple web services to have the same set of query parameters. In order for inheritance to work, the REST resources are request-scoped (constructed at each request) rather than singleton-scoped (a single instance existing for the lifetime of the OTP server).
Routers
  • /otp/routers
  • /otp/routers/{ignoreRouterId}
  • GET
  • GET
This REST API endpoint returns some meta-info about a router. OTP2 does no longer support remotely loading, reloading, and evicting graphs on a running server (Supported in OTP1).

The HTTP verbs are used as follows:

GET - see the registered routerIds(there is just one: default) with the graph.

The HTTP request URLs are of the form /otp/routers/{routerId}. The {routerId} is kept to be backward compatible, but the value is ignored. There is only one router, the "default" and that is returned - even if you specify something else.

ServerInfo
  • /otp
  • GET
UpdaterStatusResource
  • /otp/routers/{ignoreRouterId}/updaters
  • /otp/routers/{ignoreRouterId}/updaters/{updaterId}
  • GET
  • GET
Report the status of the graph updaters via a web service.