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
ExternalGeocoderResource
  • /otp/geocode
  • GET
Maybe the internal geocoder resource should just chain to defined external geocoders?
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.
IndexAPI
  • /otp/routers/{routerId}/index/feeds
  • /otp/routers/{routerId}/index/patterns
  • /otp/routers/{routerId}/index/routes
  • /otp/routers/{routerId}/index/services
  • /otp/routers/{routerId}/index/stops
  • /otp/routers/{routerId}/index/agencies/{feedId}
  • /otp/routers/{routerId}/index/feeds/{feedId}
  • /otp/routers/{routerId}/index/patterns/{patternId}
  • /otp/routers/{routerId}/index/routes/{routeId}
  • /otp/routers/{routerId}/index/services/{serviceId}
  • /otp/routers/{routerId}/index/stops/{stopId}
  • /otp/routers/{routerId}/index/trips/{tripId}
  • /otp/routers/{routerId}/index/agencies/{feedId}/{agencyId}
  • /otp/routers/{routerId}/index/patterns/{patternId}/alerts
  • /otp/routers/{routerId}/index/patterns/{patternId}/geometry
  • /otp/routers/{routerId}/index/patterns/{patternId}/semanticHash
  • /otp/routers/{routerId}/index/patterns/{patternId}/stops
  • /otp/routers/{routerId}/index/patterns/{patternId}/trips
  • /otp/routers/{routerId}/index/routes/{routeId}/alerts
  • /otp/routers/{routerId}/index/routes/{routeId}/patterns
  • /otp/routers/{routerId}/index/routes/{routeId}/stops
  • /otp/routers/{routerId}/index/routes/{routeId}/trips
  • /otp/routers/{routerId}/index/stops/{stopId}/alerts
  • /otp/routers/{routerId}/index/stops/{stopId}/patterns
  • /otp/routers/{routerId}/index/stops/{stopId}/routes
  • /otp/routers/{routerId}/index/stops/{stopId}/stoptimes
  • /otp/routers/{routerId}/index/stops/{stopId}/transfers
  • /otp/routers/{routerId}/index/trips/{tripId}/alerts
  • /otp/routers/{routerId}/index/trips/{tripId}/geometry
  • /otp/routers/{routerId}/index/trips/{tripId}/semanticHash
  • /otp/routers/{routerId}/index/trips/{tripId}/stops
  • /otp/routers/{routerId}/index/trips/{tripId}/stoptimes
  • /otp/routers/{routerId}/index/agencies/{feedId}/{agencyId}/alerts
  • /otp/routers/{routerId}/index/agencies/{feedId}/{agencyId}/routes
  • /otp/routers/{routerId}/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
MunicoderServer
  • /otp/municoder
  • 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.

Data Types

JSON

type description
ApiAbsoluteDirection An absolute cardinal or intermediate direction.
ApiAgency
ApiAlert
ApiFeedInfo
ApiItinerary An Itinerary is one complete way of getting from the start location to the end location.
ApiLeg One leg of a trip -- that is, a temporally continuous piece of the journey that takes place on a particular vehicle (or on foot).
ApiPatternDetail
ApiPatternShort
ApiPlace A Place is where a journey starts or ends, or a transit stop along the way.
ApiRealTimeState The real-time state of a trip
ApiRelativeDirection Represents a turn direction, relative to the current heading. CIRCLE_CLOCKWISE and CIRCLE_CLOCKWISE are used to represent traffic circles.
ApiRoute
ApiRouteShort
ApiRouterInfo
ApiRouterList
ApiStop
ApiStopShort
ApiStopTimesInPattern
ApiSystemNotice A system notice is used to tag elements with system information.

One use-case is to run a routing search in debug-filter-mode and instead of removing itineraries from the result, the itineraries could be tagged instead. These notices are meant for system testers and developers and should not be used for end user notification or alerts.

ApiTransfer Represents a transfer from a stop
ApiTrip
ApiTripPlan A TripPlan is a set of ways to get from point A to point B at time T.
ApiTripSearchMetadata Meta-data about the trip search performed.
ApiTripShort
ApiTripTimeShort
ApiVertexType Represent type of vertex, used in Place aka from, to in API for easier client side localization
ApiWalkStep Represents one instruction in walking directions. Three examples from New York City:

Turn onto Broadway from W 57th St (coming from 7th Ave):
distance = 100 (say)
walkDirection = RIGHT
streetName = Broadway
everything else null/false

Now, turn from Broadway onto Central Park S via Columbus Circle
distance = 200 (say)
walkDirection = CIRCLE_COUNTERCLOCKWISE
streetName = Central Park S
exit = 1 (first exit)
immediately everything else false

Instead, go through the circle to continue on Broadway
distance = 100 (say)
walkDirection = CIRCLE_COUNTERCLOCKWISE
streetName = Broadway
exit = 3
stayOn = true
everything else false

BikeRentalStation
BikeRentalStationList
Coordinate
CoordinateArrayListSequence An instance of CoordinateSequence that can be efficiently extended
CoordinateSequence
CoordinateSequenceFactory
DebugOutput Holds information to be included in the REST Response for debugging and profiling purposes.
ElevationMetadata Contains elevation-specific metadata to be included in the response Created by demory on 2/16/17.
EncodedPolylineBean A list of coordinates encoded as a string. See Encoded polyline algorithm format
Envelope
Fare

Fare is a set of fares for different classes of users.

FareComponent

FareComponent is a sequence of routes for a particular fare.

FareType
FeedScopedId
GeocoderResult
GeocoderResults
Geometry
GeometryFactory
InspectorLayer
InspectorLayersList
MavenVersion
Message The purpose of Messages is to read supply Message.properties to underlying calling code... The ENUM's enumerated values should be named to reflect the property names inside of Message.properties
Money Fare support is very, very preliminary.
PackedCoordinateSequence A CoordinateSequence implementation based on a packed arrays. In this implementation, Coordinates returned by #toArray and #get are copies of the internal values. To change the actual values, use the provided setters.

For efficiency, created Coordinate arrays are cached using a soft reference. The cache is cleared each time the coordinate sequence contents are modified through a setter method. 2009-11-25 - bdferris - This class copied from JTS (LGPL-licensed) to add Serializable to the class so that we can serialize it with our graphs

PlannerError This API response element represents an error in trip planning.
Point
PrecisionModel
RealTimeState The real-time state of a trip
Serializable2DPackedCoordinateSequenceFactory
ServerInfo
TransitTimingOutput Holds information to be included in the REST Response for debugging and profiling purposes of a single transit routing search.
TravelOption This class is used to send to client which Travel Options are possible on this server This options are used in client "Travel by" drop down. Each travel option consist of two variables: - value is a value which is sent to the server if this is chosen ("TRANSIT, WALK", "CAR", etc.) - name is a name with which client can nicely name this option even if specific value changes ("TRANSIT", "PARKRIDE", "TRANSIT_BICYCLE", etc.) Travel options are created from org.opentripplanner.routing.graph.Graph transitModes variable and based if park & ride, bike & ride, bike sharing is supported. List itself is created in TravelOptionsMaker#makeOptions(HashSet, boolean, boolean, boolean)
TripPlannerResponse Represents a trip planner response, will be serialized into XML or JSON by Jersey
TripTimeShort
Type
WrappedCurrency A Bean wrapper class for java.util.Currency