The "breadcrumbs" element is always present, on top of the page.
It shows you where you are on the lab.
It enables you to reach any page on the lab.
The query parameters of planner-v1 (OTP 1) next to those of planner-v2-1 and planner-v2-1-preset (OTP 2.10). Both v2-1 recipes share every parameter but the modes: three slots for planner-v2-1, one modePreset for the preset recipe.
What a planner-v1 call has to rename, split or drop. * accepted by planner-v1 but not part of its documentation.
| planner-v1 (OTP 1) | planner-v2-1 (OTP 2) | What changes | |
|---|---|---|---|
mode | accessModedirectModeegressModetransportModespreset: modePresettransportModes | split | The one bag of modes is split: three street mode slots (one value each) plus the set of transit modes. Values are lowercase and renamed: WALK → foot, BICYCLE → bicycle, BICYCLE_RENT → bike_rental, BICYCLE_PARK → bike_park, CAR → car (direct only), CAR_PARK → car_park, SCOOTER → scooter_rental; BUS, RAIL, TRAM → bus, rail, tram, SUBWAY / METRO → metro. TRANSIT has no counterpart: omit transportModes for every transit mode. With the preset recipe one modePreset replaces the three slots. |
numItineraries | numTripPatterns | renamed | Default goes from 3 to 4. A maximum: OTP 2 may return fewer, or more when several trips are equally good. With the preset recipe it is a budget split between the transit queries of the preset. |
wheelchair | wheelchairAccessible | renamed | Same values (true|false, on|off), default still false. |
maxTransfers | maximumTransfersmaximumAdditionalTransfers | renamed | Default goes from 2 (OTP 1 engine default) to 12. maximumAdditionalTransfers (default 5) is new: the limit on top of the best itinerary found. |
minTransferTime | transferSlack | renamed | Still seconds, on top of the walking time between the stops. Default goes from 0 (OTP 1 engine default) to 120. |
boardSlack | boardSlackDefaultboardSlackListboardSlackBusboardSlackRailboardSlackMetroboardSlackTram | renamed | Still seconds, default 0. Can now be overridden per transit mode, with boardSlackList (JSON) or one parameter per mode. |
alightSlack | alightSlackDefaultalightSlackListalightSlackBusalightSlackRailalightSlackMetroalightSlackTram | renamed | Still seconds, default 0. Can now be overridden per transit mode, with alightSlackList (JSON) or one parameter per mode. |
bannedRoutes | bannedLines | renamed | The id format changes to the OTP 2 Line id, <feedId>:<type>:<agency>:<id> (ie stibmivb:gr:stibmivb:71), as returned by the planner and the GraphQL endpoints. whiteListedLines is the new opposite. |
startTransitTripIdstartTransitStopId | fromServiceJourneyIdfromServiceDatefromStopLocationIdfromAimedDepartureTime | split | Depart on board. Ids go from <agencyId>_<id> (ie tec_gt:tec:12345) to <feedId>:<type>:<agency>:<id>. fromServiceDate and fromStopLocationId are required with fromServiceJourneyId; fromPlace, date/time/datetime and searchWindow are then ignored, arriveBy and pageCursor are a 400. |
maxWalkDistance | maxAccessEgressDurationFootmaxDirectDurationFoot | replaced | No distance limit in OTP 2: the limits are durations (ISO 8601, ie PT20M), per street mode, and can only lower the server defaults (PT45M access/egress, PT4H direct). To walk less rather than cap it, raise walkReluctance. |
fromNametoName | no counterpart | removed | Not supported: the place names of the response come from OTP 2. Keep the labels client side. |
Nothing to migrate: all optional, the defaults behave like a plain planner-v1 call.
| planner-v2-1 (OTP 2) | What it is for | |
|---|---|---|
| Where | passThroughPoints | Points the transit part must pass through, in order. |
| When | searchWindowtimetableViewpageCursor | The search window in minutes, timetable vs earliest arrival comparison, and paging: pageCursor replaces re-querying with a later time. |
| Who | whiteListedAgencieswhiteListedLinesbannedServiceJourneysbannedRentalNetworkswhiteListedRentalNetworks | Whitelists next to the bans, and the rental networks (a traveller's subscriptions). |
| Transfers | transferPenaltyrelaxTransitGroupPriorityRatiorelaxTransitGroupPriorityConstant | Transfer cost, and keeping competing operators in the results. |
| Realtime | ignoreRealtimeUpdatesincludePlannedCancellationsincludeRealtimeCancellations | All default to false. |
| Bike | bikeSpeedbicycleOptimisationMethodtriangleFactorsSafetytriangleFactorsSlopetriangleFactorsTimeuseBikeRentalAvailabilityInformation | useBikeRentalAvailabilityInformation defaults to true (a recipe default). |
| Street limits | maxDirectDurationForModemaxAccessEgressDurationForMode | Plus one parameter per street mode (maxDirectDurationBicycle, maxAccessEgressDurationCarPark, …); …Foot is listed above as the maxWalkDistance replacement. Performance parameters: they can only lower the server defaults. |
| Debug | itineraryFiltersDebug | listAll keeps the itineraries the filter chain would drop, tagged with the filter. |
These go through unchanged. No default value changed among them; the ones that did are renamed too, see the first table (numItineraries, maxTransfers, minTransferTime).
| Parameter | Default OTP 1 | Default OTP 2 | Note |
|---|---|---|---|
fromPlace | Same lat,lon. No longer required when the trip starts on board (fromServiceJourneyId). | ||
toPlace | |||
arriveBy | A 400 together with fromServiceJourneyId. | ||
date | |||
time | |||
datetime | Still takes precedence over date + time. | ||
locale | |||
bannedAgencies | Same values: delijn, nmbssncb, stibmivb, tec. | ||
walkSpeed | 1.33 | 1.33 | |
walkReluctance | 2 | 2 | planner-v1 documents an integer between 1 and 10; OTP 2 takes any number, 10 to 20 is already a strong "walk less". |
waitReluctance | 1 | 1 | planner-v1 documents an integer between 1 and 10; OTP 2 takes any number. |