---
title: "Street routing from one to many places or many to one.
The order in the response array corresponds to the order of coordinates of the \\`many\\` parameter in the query."
method: GET
path: "/api/v1/one-to-many"
tags: ["routing"]
---

# Street routing from one to many places or many to one.
The order in the response array corresponds to the order of coordinates of the \`many\` parameter in the query.

`GET /api/v1/one-to-many`

## Query parameters

- `one` string, required
- `many` string[], required
- `mode` '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', required — # 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
- `max` number, required
- `maxMatchingDistance` number, required
- `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.
- `arriveBy` boolean, required
- `withDistance` boolean

## Response `200`

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

- Duration[]
  - `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

## 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/revisions/947bd5a43e8d/schema)
