Where Am I now ?

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.

OTP1 → OTP2 Breaking changes

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.

Changed parameters

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
accessModedirectModeegressModetransportModes
preset:
modePresettransportModes
splitThe 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
renamedDefault 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
renamedSame values (true|false, on|off), default still false.
maxTransfers
maximumTransfersmaximumAdditionalTransfers
renamedDefault 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
renamedStill seconds, on top of the walking time between the stops. Default goes from 0 (OTP 1 engine default) to 120.
boardSlack
boardSlackDefaultboardSlackListboardSlackBusboardSlackRailboardSlackMetroboardSlackTram
renamedStill seconds, default 0. Can now be overridden per transit mode, with boardSlackList (JSON) or one parameter per mode.
alightSlack
alightSlackDefaultalightSlackListalightSlackBusalightSlackRailalightSlackMetroalightSlackTram
renamedStill seconds, default 0. Can now be overridden per transit mode, with alightSlackList (JSON) or one parameter per mode.
bannedRoutes
*
bannedLines
renamedThe 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
splitDepart 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
replacedNo 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
removedNot supported: the place names of the response come from OTP 2. Keep the labels client side.

Parameters that only exist in OTP 2

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.

Same name in OTP 1 and OTP 2

These go through unchanged. No default value changed among them; the ones that did are renamed too, see the first table (numItineraries, maxTransfers, minTransferTime).

ParameterDefault OTP 1Default OTP 2Note
fromPlaceSame lat,lon. No longer required when the trip starts on board (fromServiceJourneyId).
toPlace
arriveByA 400 together with fromServiceJourneyId.
date
time
datetimeStill takes precedence over date + time.
locale
bannedAgenciesSame values: delijn, nmbssncb, stibmivb, tec.
walkSpeed1.331.33
walkReluctance22planner-v1 documents an integer between 1 and 10; OTP 2 takes any number, 10 to 20 is already a strong "walk less".
waitReluctance11planner-v1 documents an integer between 1 and 10; OTP 2 takes any number.
Command Palette
?
LabData/en/data
ApidateAPI params in:BMC v1BMC v2OTP 1ApidateTimeAPI params in:BMC v1BMC v2OTP 1OTP 2OTP 2.10
LabDataGtfs/en/data/gtfs
LabDataGtfs RT/en/data/gtfs-rt
LabDataGbfs/en/data/gbfs
LabDataRedis/en/data/redis
LabPlanMigrating to OTP2OTP1 → OTP2 TL;DR/en/planner/migrating-to-otp2/tldr
LabMigrating to OTP2OTP1 → OTP2 TL;DRplanner-v2-1/en/planner/migrating-to-otp2/tldr
LabMigrating to OTP2OTP1 → OTP2 TL;DRplanner-v2-1-preset/en/planner/migrating-to-otp2/tldr
LabDataGtfsAgencies/en/data/gtfs/feed/agencies/
LabDataGtfsRoutes/en/data/gtfs/feed/routes/
LabDataGtfsTrips/en/data/gtfs/feed/trips/
LabDataGtfsStops/en/data/gtfs/feed/stops/
LabDataGtfsTrip Patterns/en/data/gtfs/trip-patterns
LabDataGtfsGtfs Archives/en/data/gtfs/archives
LabDataGtfs RTAlerts/en/data/gtfs-rt/feed/alerts
LabDataGtfs RTTrip Updates/en/data/gtfs-rt/feed/trip-updates
LabDataGbfsAgencies/en/data/gbfs/agencies
LabDataGbfsStations/en/data/gbfs/stations
LabDataGbfsStation Statuses/en/data/gbfs/station-statuses
LabDataGbfsFree Floating Bikes/en/data/gbfs/free-floating-bikes
LabDataGbfsMap/en/data/gbfs/map
LabDataRedisredisCacher/gtfsRtAlertsDeLijn/en/data/redis/redisCacher/gtfsRtAlertsDeLijn
LabDataRedisredisCacher/gtfsRtAlertsEurostar/en/data/redis/redisCacher/gtfsRtAlertsEurostar
LabDataRedisredisCacher/gtfsRtAlertsNmbsSncb/en/data/redis/redisCacher/gtfsRtAlertsNmbsSncb
LabDataRedisredisCacher/gtfsRtAlertsStibMivb/en/data/redis/redisCacher/gtfsRtAlertsStibMivb
LabDataRedisredisCacher/gtfsRtAlertsTec/en/data/redis/redisCacher/gtfsRtAlertsTec
LabDataRedisredisCacher/gtfsRtAlertsTecRaw/en/data/redis/redisCacher/gtfsRtAlertsTecRaw
LabDataRedisredisCacher/gtfsRtTripUpdatesDeLijn/en/data/redis/redisCacher/gtfsRtTripUpdatesDeLijn
LabDataRedisredisCacher/gtfsRtTripUpdatesEurostar/en/data/redis/redisCacher/gtfsRtTripUpdatesEurostar
LabDataRedisredisCacher/gtfsRtTripUpdatesNmbsSncb/en/data/redis/redisCacher/gtfsRtTripUpdatesNmbsSncb
LabDataRedisredisCacher/gtfsRtTripUpdatesStibMivb/en/data/redis/redisCacher/gtfsRtTripUpdatesStibMivb
LabDataRedisredisCacher/gtfsRtTripUpdatesTec/en/data/redis/redisCacher/gtfsRtTripUpdatesTec
LabDataRedisredisCacher/gtfsRtTripUpdatesDeLijnRaw/en/data/redis/redisCacher/gtfsRtTripUpdatesDeLijnRaw
LabDataRedisredisCacher/gtfsRtTripUpdatesEurostarRaw/en/data/redis/redisCacher/gtfsRtTripUpdatesEurostarRaw
LabDataRedisredisCacher/gtfsRtTripUpdatesNmbsSncbRaw/en/data/redis/redisCacher/gtfsRtTripUpdatesNmbsSncbRaw
LabDataRedisredisCacher/gtfsRtTripUpdatesTecRaw/en/data/redis/redisCacher/gtfsRtTripUpdatesTecRaw
LabDataRedisredisCacher/pointsByLinesStibMivb/en/data/redis/redisCacher/pointsByLinesStibMivb
LabDataRedisredisCacher/waitingTimesStibMivb/en/data/redis/redisCacher/waitingTimesStibMivb
LabSearch/en/search
LabPlan/en/planner-home
LabPlanPlanner v1/en/planner-tec-app
LabPlanPlanner v2/en/planner-v2-bmc
LabPlanOTP 1/en/planner
LabPlanOTP 2/en/planner-v2
LabPlanOTP 2.10/en/planner-otp-2-10
LabPlanPlanner v2.1/en/planner-v2-1
LabPlanPlanner v2.1 preset/en/planner-v2-1-preset
LabPlanMigrating to OTP2/en/planner/migrating-to-otp2
LabPlanMigrating to OTP2Get started/en/planner/migrating-to-otp2
LabMigrating to OTP2Get startedHow the engine thinks/en/planner/migrating-to-otp2
LabMigrating to OTP2Get startedTwo recipes/en/planner/migrating-to-otp2
LabMigrating to OTP2Get startedOn these pages/en/planner/migrating-to-otp2
LabPlanMigrating to OTP2OTP1 → OTP2 Breaking changes/en/planner/migrating-to-otp2/breaking-changes
LabMigrating to OTP2OTP1 → OTP2 Breaking changesChanged parameters/en/planner/migrating-to-otp2/breaking-changes
LabMigrating to OTP2OTP1 → OTP2 Breaking changesOTP2 only/en/planner/migrating-to-otp2/breaking-changes
LabMigrating to OTP2OTP1 → OTP2 Breaking changesSame name/en/planner/migrating-to-otp2/breaking-changes
LabPlanMigrating to OTP2Mode selection UX/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UXSettings/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UXUser preferences/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UXRestrict modes/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UX1 Monomodal presets/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UX2 Multimodal presets/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UX3 Simple select, progressive reveal/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UX4 Rent and park toggles/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UX5 Rent or park switches/en/planner/migrating-to-otp2/mode-ux
LabMigrating to OTP2Mode selection UXPros & cons/en/planner/migrating-to-otp2/mode-ux
LabPlanMigrating to OTP2Query matrix/en/planner/migrating-to-otp2/query-matrix
LabPlanMigrating to OTP2Coverage review/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewStreet modes/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewTransit-vs-street filter/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewUnset slots/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewTransit modes/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewWho: operators, lines/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewWhere: places/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewWhen: time/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewTraveller profile/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewIntents check/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewPreset recipe/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewOne cursor, many queries/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewBudget per shape/en/planner/migrating-to-otp2/coverage-review
LabMigrating to OTP2Coverage reviewRecommendations/en/planner/migrating-to-otp2/coverage-review
LabMap/en/map
LabMapMap Base/en/map/base-light
LabMapMap Transit/en/map/transit-light
LabMapMap Transit (via proxy)/en/map/transit-light-proxy
LabDeparture/en/departure
LabDoc/en/doc
LabDocPlanner Cases Library/en/doc/planner-lib
LabDocUi/Ux/en/doc/user-interface
LabDocUi/UxPlanner/en/doc/user-interface/planner/
LabUi/UxPlannerInstant | Duration | Distance/en/doc/user-interface/planner/
LabUi/UxPlannerItinerary Time Overview/en/doc/user-interface/planner/
LabUi/UxPlannerLeg Overview/en/doc/user-interface/planner/
LabUi/UxPlannerItinerary Overview/en/doc/user-interface/planner/
LabUi/UxPlannerLeg Detail/en/doc/user-interface/planner/
LabDocUi/UxDeparture/en/doc/user-interface/departure
LabDocUi/UxInput/en/doc/user-interface/input/
LabHelp/en/help
ApifromPlaceAPI params in:BMC v1BMC v2OTP 1OTP 2OTP 2.10ApitoPlaceAPI params in:BMC v1BMC v2OTP 1OTP 2OTP 2.10ApiarriveByAPI params in:BMC v1BMC v2OTP 1OTP 2OTP 2.10ApitimeAPI params in:BMC v1BMC v2OTP 1ApibannedAgenciesAPI params in:BMC v1OTP 1OTP 2OTP 2.10ApibannedRoutesAPI params in:BMC v1OTP 1ApiwalkSpeedAPI params in:BMC v1OTP 1OTP 2OTP 2.10ApiwheelchairAPI params in:BMC v1BMC v2OTP 1ApinumItinerariesAPI params in:BMC v1BMC v2OTP 1ApimodeAPI params in:BMC v1BMC v2OTP 1ApialightSlackAPI params in:BMC v1BMC v2OTP 1ApiboardSlackAPI params in:BMC v1BMC v2OTP 1ApilocaleAPI params in:BMC v1OTP 1ApishowIntermediateStopsAPI params in:BMC v1OTP 1ApimaxWalkDistanceAPI params in:BMC v1OTP 1ApistartTransitStopIdAPI params in:BMC v1OTP 1ApistartTransitTripIdAPI params in:BMC v1OTP 1ApiwaitReluctanceAPI params in:BMC v1OTP 1OTP 2OTP 2.10ApiwalkReluctanceAPI params in:BMC v1OTP 1OTP 2OTP 2.10ApiroutingProfileAPI params in:BMC v2ApipageCursorsAPI params in:BMC v2ApibannedStopsAPI params in:OTP 1ApibannedStopsHardAPI params in:OTP 1ApibannedTripsAPI params in:OTP 1ApibatchAPI params in:OTP 1ApibikeBoardCostAPI params in:OTP 1ApibikeSpeedAPI params in:OTP 1OTP 2OTP 2.10ApibikeSwitchCostAPI params in:OTP 1ApidisableAlertFilteringAPI params in:OTP 1ApidisableRemainingWeightHeuristicAPI params in:OTP 1ApigeoidElevationAPI params in:OTP 1ApiignoreRealtimeUpdatesAPI params in:OTP 1OTP 2OTP 2.10ApiintermediatePlacesAPI params in:OTP 1ApimaxHoursAPI params in:OTP 1ApimaxPreTransitTimeAPI params in:OTP 1ApimaxTransfersAPI params in:OTP 1ApiminTransferTimeAPI params in:OTP 1ApinonpreferredTransferPenaltyAPI params in:OTP 1ApioptimizeAPI params in:OTP 1ApiotherThanPreferredRoutesPenaltyAPI params in:OTP 1ApipreferredAgenciesAPI params in:OTP 1ApipreferredRoutesAPI params in:OTP 1ApireverseOptimizeOnTheFlyAPI params in:OTP 1ApitransferPenaltyAPI params in:OTP 1OTP 2OTP 2.10ApitriangleSafetyFactorAPI params in:OTP 1ApitriangleSlopeFactorAPI params in:OTP 1ApitriangleTimeFactorAPI params in:OTP 1ApiunpreferredAgenciesAPI params in:OTP 1ApiunpreferredRoutesAPI params in:OTP 1ApiuseRequestedDateTimeInMaxHoursAPI params in:OTP 1ApiwaitAtBeginningFactorAPI params in:OTP 1ApiwalkBoardCostAPI params in:OTP 1ApitimetableViewAPI params in:OTP 2OTP 2.10ApinumTripPatternsAPI params in:OTP 2OTP 2.10ApimaximumTransfersAPI params in:OTP 2OTP 2.10ApimaximumAdditionalTransfersAPI params in:OTP 2OTP 2.10ApisearchWindowAPI params in:OTP 2OTP 2.10ApiincludePlannedCancellationsAPI params in:OTP 2OTP 2.10ApiincludeRealtimeCancellationsAPI params in:OTP 2OTP 2.10ApitransferSlackAPI params in:OTP 2OTP 2.10ApiboardSlackDefaultAPI params in:OTP 2OTP 2.10ApiboardSlackListAPI params in:OTP 2OTP 2.10ApialightSlackDefaultAPI params in:OTP 2OTP 2.10ApialightSlackListAPI params in:OTP 2OTP 2.10ApibicycleOptimisationMethodAPI params in:OTP 2OTP 2.10ApitransportModesAPI params in:OTP 2OTP 2.10ApiegressModeAPI params in:OTP 2OTP 2.10ApidirectModeAPI params in:OTP 2OTP 2.10ApiaccessModeAPI params in:OTP 2OTP 2.10ApiitineraryFiltersDebugAPI params in:OTP 2OTP 2.10ApipageCursorAPI params in:OTP 2OTP 2.10ApiwheelchairAccessibleAPI params in:OTP 2OTP 2.10ApitriangleFactorsSafetyAPI params in:OTP 2OTP 2.10ApitriangleFactorsSlopeAPI params in:OTP 2OTP 2.10ApitriangleFactorsTimeAPI params in:OTP 2OTP 2.10ApiuseBikeRentalAvailabilityInformationAPI params in:OTP 2OTP 2.10ApimaxDirectDurationForModeAPI params in:OTP 2OTP 2.10ApifiltersAPI params in:OTP 2OTP 2.10ApirelaxTransitGroupPriorityAPI params in:OTP 2OTP 2.10ApifromServiceJourneyIdAPI params in:ApifromServiceDateAPI params in:ApifromStopLocationIdAPI params in:ApifromAimedDepartureTimeAPI params in:ApiwhiteListedAgenciesAPI params in:ApibannedLinesAPI params in:ApiwhiteListedLinesAPI params in:ApibannedServiceJourneysAPI params in:ApibannedRentalNetworksAPI params in:ApiwhiteListedRentalNetworksAPI params in:ApipassThroughPointsAPI params in:ApirelaxTransitGroupPriorityRatioAPI params in:ApirelaxTransitGroupPriorityConstantAPI params in:ApimaxAccessEgressDurationForModeAPI params in:ApimodePresetAPI params in:
DocOTP 1Full Open API Documentation
DocOTP 2Full Open API Documentation
DocOTP 2.10Full Open API Documentation
DocPlanner v1Full Open API Documentation
DocPlanner v2Full Open API Documentation
DocPlanner v2.1Full Open API Documentation
DocPlanner v2.1 presetFull Open API Documentation