---
title: "One to many routing
Computes the minimal duration from one place to many or vice versa.
The order in the response array corresponds to the order of coordinates of the \\`many\\` parameter in the query."
method: GET
path: "/api/experimental/one-to-many-intermodal"
tags: ["routing"]
---

# One to many routing
Computes the minimal duration from one place to many or vice versa.
The order in the response array corresponds to the order of coordinates of the \`many\` parameter in the query.

`GET /api/experimental/one-to-many-intermodal`

## Query parameters

- `one` string, required
- `many` string[], required
- `time` string, date-time
- `maxTravelTime` integer
- `maxMatchingDistance` number
- `arriveBy` boolean
- `maxTransfers` integer
- `minTransferTime` integer
- `additionalTransferTime` integer
- `transferTimeFactor` number
- `useRoutedTransfers` boolean
- `pedestrianProfile` 'FOOT' | 'WHEELCHAIR' — Different accessibility profiles for pedestrians.
- `pedestrianSpeed` number — Average speed for pedestrian routing in meters per second
- `cyclingSpeed` number — Average speed for bike routing in meters per second
- `vehicleHeight` number — Vehicle height for HGV routing in meters
- `vehicleWidth` number — Vehicle width for HGV routing in meters
- `vehicleLength` number — Vehicle length for HGV routing in meters
- `vehicleWeight` number — Vehicle gross weight for HGV routing in tons
- `vehicleHazmat` boolean — Whether the vehicle carries hazardous materials for HGV routing
- `vehicleHazmatWater` boolean — Whether the vehicle carries hazardous materials dangerous to water for HGV routing
- `vehicleAxleCount` integer — Axle count for HGV routing
- `vehicleAxleLoad` number — Maximum axle load for HGV routing in tons
- `vehicleTrailer` boolean — Whether the vehicle has a trailer for HGV routing
- `vehicleTopSpeed` integer — Vehicle top speed for HGV routing in km/h
- `vehicleLezAccess` boolean — Whether the vehicle is allowed to use low-emission zones for HGV routing
- `elevationCosts` 'NONE' | 'LOW' | 'HIGH' — Different elevation cost profiles for street routing. Using a elevation cost profile will prefer routes with a smaller incline and smaller difference in elevation, even if the routed way is longer. - `NONE`: Ignore elevation data for routing. This is the default behavior - `LOW`: Add a low penalty for inclines. This will favor longer paths, if the elevation increase and incline are smaller. - `HIGH`: Add a high penalty for inclines. This will favor even longer paths, if the elevation increase and incline are smaller.
- `transitModes` Mode[]
- `preTransitModes` Mode[]
- `postTransitModes` Mode[]
- `directMode` 'WALK' | 'BIKE' | 'RENTAL' | 'CAR' | 'HGV' | 'CAR_PARKING' | 'CAR_DROPOFF' | 'ODM' | 'RIDE_SHARING' | 'FLEX' | 'DEBUG_BUS_ROUTE' | 'DEBUG_RAILWAY_ROUTE' | 'DEBUG_FERRY_ROUTE' | 'TRANSIT' | 'TRAM' | 'SUBWAY' | 'FERRY' | 'AIRPLANE' | 'BUS' | 'COACH' | 'RAIL' | 'HIGHSPEED_RAIL' | 'LONG_DISTANCE' | 'NIGHT_RAIL' | 'REGIONAL_FAST_RAIL' | 'REGIONAL_RAIL' | 'SUBURBAN' | 'FUNICULAR' | 'AERIAL_LIFT' | 'OTHER' | 'AREAL_LIFT' | 'METRO' | 'CABLE_CAR' — # Street modes - `WALK` - `BIKE` - `RENTAL` Experimental. Expect unannounced breaking changes (without version bumps) for all parameters and returned structs. - `CAR` - `HGV` Heavy goods vehicles (only supported for direct connections) - `CAR_PARKING` Experimental. Expect unannounced breaking changes (without version bumps) for all parameters and returned structs. - `CAR_DROPOFF` Experimental. Expect unannounced breaking changes (without version bumps) for all perameters and returned structs. - `ODM` on-demand taxis from the Prima+ÖV Project - `RIDE_SHARING` ride sharing from the Prima+ÖV Project - `FLEX` flexible transports # Transit modes - `TRANSIT`: translates to `TRAM,FERRY,AIRPLANE,BUS,COACH,RAIL,ODM,RIDE_SHARING,FUNICULAR,AERIAL_LIFT,OTHER` - `TRAM`: trams - `SUBWAY`: subway trains (Paris Metro, London Underground, but also NYC Subway, Hamburger Hochbahn, and other non-underground services) - `FERRY`: ferries - `AIRPLANE`: airline flights - `BUS`: short distance buses (does not include `COACH`) - `COACH`: long distance buses (does not include `BUS`) - `RAIL`: translates to `HIGHSPEED_RAIL,LONG_DISTANCE,NIGHT_RAIL,REGIONAL_RAIL,SUBURBAN,SUBWAY` - `HIGHSPEED_RAIL`: long distance high speed trains (e.g. TGV) - `LONG_DISTANCE`: long distance inter city trains - `NIGHT_RAIL`: long distance night trains - `REGIONAL_FAST_RAIL`: deprecated, `REGIONAL_RAIL` will be used - `REGIONAL_RAIL`: regional train - `SUBURBAN`: suburban trains (e.g. S-Bahn, RER, Elizabeth Line, ...) - `ODM`: demand responsive transport - `RIDE_SHARING`: ride sharing - `FUNICULAR`: Funicular. Any rail system designed for steep inclines. - `AERIAL_LIFT`: Aerial lift, suspended cable car (e.g., gondola lift, aerial tramway). Cable transport where cabins, cars, gondolas or open chairs are suspended by means of one or more cables. - `AREAL_LIFT`: deprecated - `METRO`: deprecated - `CABLE_CAR`: deprecated
- `maxPreTransitTime` integer
- `maxPostTransitTime` integer
- `maxDirectTime` integer
- `withDistance` boolean
- `requireBikeTransport` boolean
- `requireCarTransport` boolean
- `noCompulsoryReservation` boolean

## Response `200`

A list of durations.
If no path was found, the object is empty.

- OneToManyIntermodalResponse — Object containing the optimal street and transit durations for One-to-Many routing
  - `street_durations` Duration[] — Fastest durations for street routing The order of the items corresponds to the order of the `many` locations If no street routed connection is found, the corresponding `Duration` will be empty
    - `duration` number — duration in seconds if a path was found, otherwise missing
    - `distance` number — distance in meters if a path was found and distance computation was requested, otherwise missing
  - `transit_durations` ParetoSet[] — Pareto optimal solutions The order of the items corresponds to the order of the `many` locations If no connection using transits is found, the corresponding `ParetoSet` will be empty
    - ParetoSetEntry[] — Pareto set of optimal transit solutions
      - `duration` number, required — duration in seconds for the the best solution using `transfer` transfers Notice that the resolution is currently in minutes, because of implementation details
      - `transfers` integer, required — The minimal number of transfers required to arrive within `duration` seconds transfers=0: Direct transit connecion without any transfers transfers=1: Transit connection with 1 transfer

## Other responses

- `400` — Bad Request
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/motis-project/apis/motis-api.md) · [All operations](https://skmtc.net/motis-project/apis/motis-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/motis-project/motis-api/versions/947bd5a43e8d/schema)
