Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Here Routing API
license:
name: HERE Documentation License
url: https://legal.here.com/en-gb/terms/documentation-license
termsOfService: https://legal.here.com/en-gb/terms
version: '1.0'
description: 'Operations tagged Routing across 2 of this provider''s published API definitions: here-public-transit-v8-openapi.yml, here-routing-v8-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://transit.hereapi.com/v8
description: All Public Transit services, namely Routing, Next Departures, and Station Search.
- url: https://router.hereapi.com/v8
description: Production server for the HERE Routing Service
security:
- Bearer: []
- ApiKey: []
tags:
- name: Routing
paths:
/routes:
get:
operationId: Public Transit API v8 getRoutes
summary: Routes
servers:
- url: https://transit.router.hereapi.com/v8
description: Public Transit Routing service only.
- url: https://transit.hereapi.com/v8
description: All Public Transit services, namely Routing, Next Departures, and Station Search.
tags:
- Routing
description: 'Lists public transit routes.
The service supports several use cases as follows:
* define routes based on arrival or departure times.
* filter specific transit modes, such as rail and metro only.
* plan routes hours or days in advance.
* set a maximum distance for the walk to the nearest transit stop/station or the speed of the walk.
* define how many changes or transfers the journey may include.
* request turn-by-turn navigation.
* request route polyline in order to view the route over a map.'
parameters:
- $ref: '#/components/parameters/origin'
- $ref: '#/components/parameters/destination'
- $ref: '#/components/parameters/lang'
- $ref: '#/components/parameters/units'
- $ref: '#/components/parameters/departureTime'
- $ref: '#/components/parameters/arrivalTime'
- $ref: '#/components/parameters/alternatives'
- $ref: '#/components/parameters/changes'
- $ref: '#/components/parameters/transitModes'
- $ref: '#/components/parameters/pedestrianSpeed'
- $ref: '#/components/parameters/pedestrianMaxDistance'
- $ref: '#/components/parameters/accessibility'
- $ref: '#/components/parameters/transitReturn'
- $ref: '#/components/parameters/xRequestId'
responses:
'200':
description: API response in case of success
content:
application/json:
schema:
$ref: '#/components/schemas/TransitRouteResponse'
headers:
X-Correlation-Id:
$ref: '#/components/headers/X-Correlation-Id'
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
'400':
$ref: '#/components/responses/400ErrorResponseWithRequestID'
'401':
$ref: '#/components/responses/401ErrorResponseWithRequestID'
'403':
$ref: '#/components/responses/403ErrorResponseWithRequestID'
'500':
$ref: '#/components/responses/500ErrorResponseWithRequestID'
'502':
$ref: '#/components/responses/502ErrorResponseWithRequestID'
'503':
$ref: '#/components/responses/503ErrorResponseWithRequestID'
'504':
$ref: '#/components/responses/504ErrorResponseWithRequestID'
parameters:
- $ref: '#/components/parameters/transportMode'
- $ref: '#/components/parameters/origin_2'
- $ref: '#/components/parameters/destination_2'
- $ref: '#/components/parameters/via'
- $ref: '#/components/parameters/departureTimeWithAny'
- $ref: '#/components/parameters/arrivalTime'
- $ref: '#/components/parameters/routingMode'
- $ref: '#/components/parameters/alternatives_2'
- $ref: '#/components/parameters/avoid'
- $ref: '#/components/parameters/allow'
- $ref: '#/components/parameters/exclude'
- $ref: '#/components/parameters/units_2'
- $ref: '#/components/parameters/lang_2'
- $ref: '#/components/parameters/return'
- $ref: '#/components/parameters/spans'
- $ref: '#/components/parameters/truck'
- $ref: '#/components/parameters/vehicle'
- $ref: '#/components/parameters/consumptionModel'
- $ref: '#/components/parameters/ev'
- $ref: '#/components/parameters/fuel'
- $ref: '#/components/parameters/driver'
- $ref: '#/components/parameters/pedestrianSpeed_2'
- $ref: '#/components/parameters/scooter'
- $ref: '#/components/parameters/currency'
- $ref: '#/components/parameters/customizations'
- $ref: '#/components/parameters/taxi'
- $ref: '#/components/parameters/tolls'
- $ref: '#/components/parameters/maxSpeedOnSegment'
- $ref: '#/components/parameters/traffic'
- $ref: '#/components/parameters/networkRestrictedTruck'
- $ref: '#/components/parameters/billingTag'
- $ref: '#/components/parameters/xRequestId'
post:
operationId: Routing API v8 calculateRoutesPost
summary: Calculate routes via POST
tags:
- Routing
description: 'Calculates a route using a generic vehicle/pedestrian mode, e.g. car, truck, pedestrian, etc...
At the moment, only selected parameters are permitted in the POST body,
particularly those that may be restricted in the query string due to request size limitations.
See the request body section below for details. All other parameters must be provided in the query string.
If a parameter is provided in both the query string and the POST body, their values are merged.
Post body size limit is 10MiB.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CalculateRoutesPostParameters'
examples:
avoid:
$ref: '#/components/examples/calculateRoutesPostAvoidExample'
exclude:
$ref: '#/components/examples/calculateRoutesPostExcludeExample'
ev:
$ref: '#/components/examples/calculateRoutesPostEvExample'
maxSpeedOnSegment:
$ref: '#/components/examples/calculateRoutesPostMaxSpeedOnSegmentExample'
networkRestrictedTruck:
$ref: '#/components/examples/calculateRoutesPostNetworkRestrictedTruckExample'
responses:
'200':
$ref: '#/components/responses/RoutesResponseOk'
'400':
$ref: '#/components/responses/InvalidRoutesRequestResponse'
'401':
$ref: '#/components/responses/401ErrorResponseWithRequestID'
'403':
$ref: '#/components/responses/Routing403ErrorResponse'
'500':
$ref: '#/components/responses/InternalServerErrorRoutesResponse'
servers:
- url: https://transit.hereapi.com/v8
description: All Public Transit services, namely Routing, Next Departures, and Station Search.
/routes/{routeHandle}:
parameters:
- $ref: '#/components/parameters/routeHandle'
- $ref: '#/components/parameters/transportMode'
- $ref: '#/components/parameters/routeHandleOrigin'
- $ref: '#/components/parameters/departureTimeWithAny'
- $ref: '#/components/parameters/avoid'
- $ref: '#/components/parameters/allow'
- $ref: '#/components/parameters/exclude'
- $ref: '#/components/parameters/units_2'
- $ref: '#/components/parameters/lang_2'
- $ref: '#/components/parameters/return'
- $ref: '#/components/parameters/spans'
- $ref: '#/components/parameters/truck'
- $ref: '#/components/parameters/vehicle'
- $ref: '#/components/parameters/consumptionModel'
- $ref: '#/components/parameters/evRouteHandle'
- $ref: '#/components/parameters/fuel'
- $ref: '#/components/parameters/pedestrianSpeed_2'
- $ref: '#/components/parameters/scooter'
- $ref: '#/components/parameters/currency'
- $ref: '#/components/parameters/rerouting'
- $ref: '#/components/parameters/taxi'
- $ref: '#/components/parameters/tolls'
- $ref: '#/components/parameters/maxSpeedOnSegment'
- $ref: '#/components/parameters/traffic'
- $ref: '#/components/parameters/networkRestrictedTruck'
- $ref: '#/components/parameters/billingTag'
- $ref: '#/components/parameters/xRequestId'
get:
operationId: Routing API v8 getRoutesByHandle
summary: Get route by handle via GET
tags:
- Routing
description: 'Decodes and returns a route from a previously calculated route handle.
**Disclaimer: A route handle is not suitable for persistent route storage! It can be
invalidated at any time.**
A route handle encodes a previously calculated route. A route can be decoded from a handle
as long as the service uses the same map data and encoding that were used when retrieving the handle.
Thus it is suitable for caching routes compactly. It can be used to retrieve updated traffic
information or other data along the route. However, a user should be prepared to recalculate
the route when decoding the handle fails.
All parameters of the `/routes` endpoint are supported, except for `destination`, `via`,
`alternatives` and `routingMode`. See also the `return` parameter of `/routes` endpoint.
The `origin` parameter can be provided to update the start of the previously calculated
route.
The `transportMode` parameter does not have to match the transport mode previously used for
route calculation. However, when using a different transport mode, the request may fail,
e.g. when the route has road segments forbidden for the provided transport mode.
Please refer to the Developer Guide for more information and examples.'
responses:
'200':
$ref: '#/components/responses/RoutesResponseOk'
'400':
$ref: '#/components/responses/InvalidRoutesRequestResponse'
'401':
$ref: '#/components/responses/401ErrorResponseWithRequestID'
'403':
$ref: '#/components/responses/Routing403ErrorResponse'
'500':
$ref: '#/components/responses/InternalServerErrorRoutesResponse'
post:
operationId: Routing API v8 getRoutesByHandlePost
summary: Get route by handle via POST
tags:
- Routing
description: 'Decodes and returns a route from a previously calculated route handle.
**Disclaimer: A route handle is not suitable for persistent route storage! It can be
invalidated at any time.**
A route handle encodes a previously calculated route. A route can be decoded from a handle
as long as the service uses the same map data and encoding that were used when retrieving the handle.
Thus it is suitable for caching routes compactly. It can be used to retrieve updated traffic
information or other data along the route. However, a user should be prepared to recalculate
the route when decoding the handle fails.
All parameters of the `/routes` endpoint are supported, except for `destination`, `via`,
`alternatives` and `routingMode`. See also the `return` parameter of `/routes` endpoint.
The `origin` parameter can be provided to update the start of the previously calculated
route.
The `transportMode` parameter does not have to match the transport mode previously used for
route calculation. However, when using a different transport mode, the request may fail,
e.g. when the route has road segments forbidden for the provided transport mode.
Only selected parameters are permitted in the POST body. See the request body section below for details.
If a parameter is provided in both the query string and the POST body, their values are merged.
Post body size limit is 10MiB.
Please refer to the Developer Guide for more information and examples.'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetRoutesByHandlePostParameters'
examples:
avoid:
$ref: '#/components/examples/calculateRoutesPostAvoidExample'
exclude:
$ref: '#/components/examples/calculateRoutesPostExcludeExample'
maxSpeedOnSegment:
$ref: '#/components/examples/calculateRoutesPostMaxSpeedOnSegmentExample'
networkRestrictedTruck:
$ref: '#/components/examples/calculateRoutesPostNetworkRestrictedTruckExample'
responses:
'200':
$ref: '#/components/responses/RoutesResponseOk'
'400':
$ref: '#/components/responses/InvalidRoutesRequestResponse'
'401':
$ref: '#/components/responses/401ErrorResponseWithRequestID'
'403':
$ref: '#/components/responses/Routing403ErrorResponse'
'500':
$ref: '#/components/responses/InternalServerErrorRoutesResponse'
servers:
- url: https://router.hereapi.com/v8
description: Production server for the HERE Routing Service
/import:
post:
operationId: Routing API v8 importRoute
summary: Calculate a route from a sequence of trace points
tags:
- Routing
description: 'Creates a route from a sequence of trace points.
Post body size limit is 10MiB.
For best results, use 1Hz GPS data or any points that have a spacing of a few meters between them.
For traces with less frequent points, the Route Import service will attempt to create an approximate reconstruction.
In some situations, when consecutive points are too far apart (more than about 30 kilometers of on-road distance), they could be considered unreachable and one of them could fail to be matched.'
parameters:
- $ref: '#/components/parameters/transportMode'
- $ref: '#/components/parameters/departureTimeWithAny'
- $ref: '#/components/parameters/avoid'
- $ref: '#/components/parameters/allow'
- $ref: '#/components/parameters/exclude'
- $ref: '#/components/parameters/units_2'
- $ref: '#/components/parameters/lang_2'
- $ref: '#/components/parameters/return'
- $ref: '#/components/parameters/spans'
- $ref: '#/components/parameters/truck'
- $ref: '#/components/parameters/vehicle'
- $ref: '#/components/parameters/consumptionModel'
- $ref: '#/components/parameters/evRouteImport'
- $ref: '#/components/parameters/fuel'
- $ref: '#/components/parameters/scooter'
- $ref: '#/components/parameters/taxi'
- $ref: '#/components/parameters/billingTag'
- $ref: '#/components/parameters/xRequestId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MatchTrace'
responses:
'200':
$ref: '#/components/responses/RoutesResponseOk'
'400':
$ref: '#/components/responses/InvalidRoutesRequestResponse'
'401':
$ref: '#/components/responses/401ErrorResponseWithRequestID'
'403':
$ref: '#/components/responses/Routing403ErrorResponse'
'429':
$ref: '#/components/responses/Routing429ErrorResponse'
'500':
$ref: '#/components/responses/InternalServerErrorRoutesResponse'
servers:
- url: https://router.hereapi.com/v8
description: Production server for the HERE Routing Service
components:
parameters:
pedestrianMaxDistance:
name: pedestrian[maxDistance]
description: Maximum allowed walking distance in meters (e.g. when looking for nearest stations).
in: query
schema:
type: integer
minimum: 0
maximum: 6000
default: 2000
transitModes:
name: modes
description: "Transit mode filter used to determine which modes of transit to include in the response.\nBy default, all supported transit modes are permitted.\n\nSupported modes: `highSpeedTrain` `intercityTrain` `interRegionalTrain` `regionalTrain` `cityTrain`\n`bus` `ferry` `subway` `lightRail` `privateBus` `inclined` `aerial` `busRapid` `monorail`\n`flight`\n\nThis parameter also support an exclusion list: It's sufficient to specify each mode to exclude by prefixing it with `-`.\nMixing of inclusive and exclusive transit modes is not allowed.\n\nexamples:\n * `subway,bus`. Returns only subways and busses.\n * `-subway,-bus`. Returns all modes except subways and busses.\n"
in: query
schema:
$ref: '#/components/schemas/TransitModesFilter'
style: form
explode: false
departureTime:
name: departureTime
description: 'Specifies the time of departure as defined by either `date-time` or `full-date` `T` `partial-time` in `RFC 3339`, section 5.6 (for example, `2019-06-24T01:23:45`).
The requested time is converted to the local time at origin. When the optional timezone offset is
not specified, time is assumed to be local. If neither `departureTime` or `arrivalTime` are specified, current time at departure location will be used.
All `Time` values in the response are returned in the timezone of each location.
'
in: query
allowReserved: true
required: false
schema:
$ref: '#/components/schemas/Time'
changes:
name: changes
description: 'Maximum number of changes or transfers allowed in a route. Unlimited number of changes is permitted when not set.
'
in: query
schema:
type: integer
minimum: 0
maximum: 6
transitReturn:
name: return
description: "Defines which section attributes are included.\n\n * `intermediate` - List of intermediate stops within a section of the route. If\n enabled, the response includes `intermediateStops` attribute. Each intermediate stop includes\n stop/station names, WGS-84 geocoordinates, and the departure times at the stops.\n * `fares` - List of fares/tickets to cover a section of the route.\n\n **NOTE**: Fares information support will be available soon.\n * `polyline` - Polyline for the route in\n [Flexible Polyline](https://github.com/heremaps/flexible-polyline/blob/master/README.md)\n Encoding.\n * `actions` - Actions (such as maneuvers or tasks) that must be taken to complete the section.\n * `travelSummary` - Include summary for the travel portion of the section.\n * `incidents` - Include a list of all incidents applicable to each section.\n * `bookingLinks` - Include a list of links to book a ride for a section of the route.\n * `nextDepartures` - Return the next departures for the transit section.\n * `sourceFeedMapping` - Include a list of source feed data that matches the data of the section.\n * `serviceTimes` - Include service times for the transit section.\n \n **NOTE:** serviceTimes is an experimental feature and may not return accurate results for all routes.\n"
in: query
schema:
type: array
uniqueItems: true
items:
type: string
enum:
- intermediate
- fares
- polyline
- actions
- travelSummary
- incidents
- bookingLinks
- nextDepartures
- sourceFeedMapping
- serviceTimes
style: form
explode: false
destination:
name: destination
description: "Trip destination WGS-84 compliant coordinates.\n\nFormat: `{lat},{lng}[;placeName={name}]`\n\nThe optional `placeName` parameter can be used to customize the\n name of the destination place and will affect the generated actions descriptions.\n\n"
in: query
required: true
schema:
$ref: '#/components/schemas/LocationString'
units:
name: units
description: 'Units of measurement used, for example, in guidance instructions. The default is `metric`.
If `imperial` units are requested and the requested language is `en-US`, then
United States customary units (miles and feet) will be used.
If `imperial` units are requested and a language other than `en-US` is requested then
imperial (miles and yards) units will be used.
'
in: query
schema:
$ref: '#/components/schemas/Units'
arrivalTime:
name: arrivalTime
description: 'Specifies the time of arrival as defined by either `date-time` or `full-date` `T` `partial-time` in `RFC 3339`, section 5.6 (for example, `2019-06-24T01:23:45`).
The requested time is converted to the local time at destination. When the optional timezone offset is
not specified, time is assumed to be local.
All `Time` values in the response are returned in the timezone of each location.
Note : The following features do not support the arrivalTime parameter:
* EV Routing
* Route Handle
* Route Import
'
in: query
allowReserved: true
required: false
schema:
$ref: '#/components/schemas/Time'
origin:
name: origin
description: "Trip origin WGS-84 compliant coordinates.\n\nFormat: `{lat},{lng}[;placeName={name}]`\n\nThe optional `placeName` parameter can be used to customize\n the name of the origin place and will affect the generated actions descriptions.\n\n"
in: query
required: true
schema:
$ref: '#/components/schemas/LocationString'
alternatives:
name: alternatives
description: 'Number of alternative routes to return aside from the optimal route. By default, `alternatives=0` is assumed and only one optimal route is returned. In cases where also a pedestrian route is available it will be also returned. This may lead to two routes being returned in total (one transit route and one pedestrian route) even though only one is expected when `alternatives=0` is given.
'
in: query
required: false
schema:
type: integer
minimum: 0
maximum: 5
default: 0
pedestrianSpeed:
name: pedestrian[speed]
description: 'Walking speed in meters per second. Influences the duration of walking segments from origin to a station, from a station to destination and in-between the stations (e.g. if transfer is needed).
'
in: query
schema:
$ref: '#/components/schemas/PedestrianSpeed'
xRequestId:
name: X-Request-ID
in: header
description: User-provided token that can be used to trace a request or a group of requests sent to the service.
schema:
type: string
lang:
name: lang
description: 'Specifies the list of preferred languages of the response.
The first supported language from the list will be used for the response.
The value should comply with the [IETF BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
'
in: query
schema:
type: array
items:
type: string
default:
- en-US
style: form
explode: false
example:
- zh-tw
- en-gb
- en-us
accessibility:
name: accessibility
description: "Defines accessibility requirements for routes.\n\n * `wheelchair` - Select only wheelchair accessible vehicles and stations.\n"
in: query
schema:
type: array
uniqueItems: true
items:
type: string
enum:
- wheelchair
style: form
explode: false
rerouting:
name: rerouting
description: 'Rerouting parameters allow to request a new route calculation based on the route handle.
All attributes are optional.
'
in: query
required: false
explode: true
style: deepObject
schema:
$ref: '#/components/schemas/Rerouting'
vehicle:
name: vehicle
description: 'Vehicle-specific parameters.
'
in: query
required: false
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/Vehicle'
allow:
name: allow
description: Explicitly allow features that require users to opt in.
in: query
required: false
explode: true
style: deepObject
schema:
$ref: '#/components/schemas/Allow'
billingTag:
name: billingTag
in: query
description: 'A list of up to six billing tags, separated by the `+` sign.
This parameter provides a way to track your platform usage.
For details, refer to the Cost Management Developer Guide section on [Billing Tags](https://docs.here.com/usage/docs/tutorial-billing-tags)
'
schema:
type: string
pattern: ^(?![_-])[A-Za-z0-9_-]{4,16}(?<![_-])(\+(?![_-])[A-Za-z0-9_-]{4,16}(?<![_-])){0,5}$
example: ABCD+EFGH
taxi:
name: taxi
description: "Taxi-specific parameters.\n * `allowDriveThroughTaxiRoads`: Specifies if a vehicle is allowed to drive through\n taxi-only roads and lanes. Even if this option is set to `false`, the vehicle is still\n allowed on taxi-only roads at the start of the route and at the destination.\n"
in: query
required: false
style: deepObject
explode: true
schema:
$ref: '#/components/schemas/Taxi'
departureTimeWithAny:
name: departureTime
description: 'Specifies the time of departure as defined by either `date-time` or `full-date` `T`
`partial-time` in `RFC 3339`, section 5.6 (for example, `2019-06-24T01:23:45`).
The requested time is converted to local time at origin. When the optional timezone offset
is not specified, time is assumed to be local. The special value `any` can be used to
indicate that time should not be taken into account during routing. If neither
`departureTime` or `arrivalTime` are specified, current time at departure place will be
used. All time values in the response are returned in the timezone of each location.
**Note**: Only long-term traffic incidents will be used if `departureTime=any` and
`traffic[mode]=default` or no `traffic[mode]` are specified.
'
in: query
allowReserved: true
required: false
schema:
$ref: '#/components/schemas/TimeWithAny'
driver:
name: driver
description: 'Driver parameters to be used for calculating routes with automatically added
rest stops.
'
in: query
allowReserved: true
required: false
explode: true
style: deepObject
schema:
$ref: '#/components/schemas/Driver'
routeHandleOrigin:
name: origin
description: "A location defining the origin of the trip. The origin has to be located along the\npreviously calculated route.\n\nFor a description of the format and options for this parameter, please refer to the description of\nthe `origin` parameter in `Calculate routes via GET`.\n\nThis parameter supports the same options as the `origin` parameter in `Calculate routes via GET`,\nwith the following exceptions:\n\n## Notes\n\n* `minCourseDistance`: While this parameter can be provided for compatibility reasons,\n it will not affect the result of a getRoutesByHandle request.\n"
in: query
allowReserved: true
required: false
schema:
$ref: '#/components/schemas/Waypoint'
examples:
coordinate:
value: 51.611571,11.351608
summary: A simple WGS84 coordinate
side:
value: 52.531052,13.384872;sideOfStreetHint=52.530941,13.384939;matchSideOfStreet=always
summary: Populating sideOfStreetHint in addition to location to avoid ending on the wrong side of the street
course:
value: 51.611571,11.351608;course=170;radius=20
summary: Setting course/radius an uncertain GPS coordinate of a moving vehicle
name:
value: 52.510319,13.285616;nameHint=Kaiserdamm
summary: Setting nameHint to avoid matching to the wrong location
displayLocation:
value: 52.52697,13.42500;displayLocation=52.51885,13.46237
summary: This coordinate is the location of the POI as shown by the pin on a map.
destination_2:
name: destination
description: "A location defining the destination of the trip.\n\nFor a description of the format and options for this parameter, please refer to the description of\nthe `origin` parameter.\n\n`destination` supports the same options as the `origin` parameter, with the following exceptions:\n\n## Additional waypoint options:\n\n* `stopDuration`: desired duration for the stop, in seconds. The section arriving at this\n via waypoint will have a `wait` post action reflecting the stopping time. The\n subsequent section will start at the arrival time of the former section + stop\n duration.\n"
in: query
allowReserved: true
required: true
schema:
$ref: '#/components/schemas/Waypoint'
examples:
coordinate:
value: 51.611571,11.351608
summary: A simple WGS84 coordinate
side:
value: 52.531052,13.384872;sideOfStreetHint=52.530941,13.384939;matchSideOfStreet=always
summary: Populating sideOfStreetHint in addition to location to avoid ending on the wrong side of the street
course:
value: 51.611571,11.351608;course=170;radius=20;minCourseDistance=500
summary: Setting course/radius/minCourseDistance an uncertain GPS coordinate of a moving vehicle
name:
value: 52.510319,13.285616;nameHint=Kaiserdamm
summary: Setting nameHint to avoid matching to the wrong location
duration:
value: 51.611571,11.351608!stopDuration=600
summary: Addition a stopDuration for an intermediate stop
displayLocation:
value: 52.52697,13.42500;displayLocation=52.51885,13.46237
summary: This coordinate is the location of the POI as shown by the pin on a map.
units_2:
name: units
description: 'Units of measurement used in guidance instructions. The default is `metric`.
'
in: query
required: false
schema:
$ref: '#/components/schemas/Units'
via:
name: via
description: "A location defining a via waypoint.\n\nA via waypoint is a location between origin and destination. There are two types of via waypoints:\n* `passThrough=false` (default) : The route will stop at the via waypoint, creating a new route section.\n* `passThrough=true` : The route will pass through the via waypoint.\n\nMultiple waypoints can be specified by using multiple via parameters like\n`via=...&via=...`, in which case the route will traverse these waypoints sequentially in\nthe order specified in the request.\n\nFor a description of the format and options for this parameter, please refer to the description of\nthe `origin` parameter.\n`via` supports the same options as the `origin` parameter, with the following exceptions:\n\n## Additional waypoint options:\n* `stopDuration`: desired duration for the stop, in seconds. Must be less than 50000.\n* `passThrough`: boolean. Default value is `false`.\n Setting to `true` asks the router to avoid the following during route calculation:\n + Introducing a stop at the waypoint.\n + Splitting the route into sections.\n + Changing the direction of travel.\n\n The following scenarios are not supported for `passThrough` parameter:\n + Setting both `stopDuration` to a value greater than 0 and `passThrough=true`.\n\n* `charging`: Structured string denoting a user-planned charging stop.\n\n Format: `charging=(power=<value>;current=<value>;voltage=<value>;supplyType=<value>;minDuration=<value>;maxDuration=<value>)`.\n\n The properties `power`, `current`, `voltage` and `supplyType` denote the characteristics of the chosen compatible connector at the station. These are all required.\n `minDuration` and `maxDuration` set the time bounds for the charging time. At least one of them is required. For most use cases we recommend to provide at least `minDuration`.\n The following are the specifications for the properties:\n + `power`: value in kW, type: number. Rated power of the connector.\n + `voltage`: value in V, type: number. Rated voltage of the connector.\n + `current`: value in A, type: number. Rated current of t
# --- truncated at 32 KB (502 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/here/refs/heads/main/openapi/here-routing-api-openapi.yml