HERE Routing API

The Routing API from HERE — 3 operation(s) for routing.

Operations 5

GET /routes Routes #
POST /routes Calculate routes via POST #
GET /routes/{routeHandle} Get route by handle via GET #
POST /routes/{routeHandle} Get route by handle via POST #
POST /import Calculate a route from a sequence of trace points #

Documentation

📖
Documentation
https://docs.here.com/identity-and-access-management/docs
📖
APIReference
https://docs.here.com/identity-and-access-management/reference
📖
Documentation
https://docs.here.com/data-api/docs
📖
APIReference
https://docs.here.com/data-api/reference
📖
Documentation
https://docs.here.com/usage/docs
📖
APIReference
https://docs.here.com/usage/reference
📖
Documentation
https://docs.here.com/destination-weather/docs
📖
APIReference
https://docs.here.com/destination-weather/reference
📖
Documentation
https://docs.here.com/ev-products/docs
📖
APIReference
https://docs.here.com/ev-products/reference
📖
Documentation
https://docs.here.com/fuel-prices/docs
📖
APIReference
https://docs.here.com/fuel-prices/reference
📖
Documentation
https://docs.here.com/geocoding-and-search/docs
📖
APIReference
https://docs.here.com/geocoding-and-search/reference
📖
Documentation
https://docs.here.com/routing/docs
📖
APIReference
https://docs.here.com/routing/reference
📖
Documentation
https://docs.here.com/positioning/docs
📖
APIReference
https://docs.here.com/positioning/reference
📖
Documentation
https://docs.here.com/indoor-map/docs
📖
APIReference
https://docs.here.com/indoor-map/reference
📖
Documentation
https://docs.here.com/transit/docs
📖
APIReference
https://docs.here.com/transit/reference
📖
Documentation
https://docs.here.com/map-attributes/docs
📖
APIReference
https://docs.here.com/map-attributes/reference
📖
Documentation
https://docs.here.com/map-rendering/docs
📖
APIReference
https://docs.here.com/map-rendering/reference
📖
Documentation
https://docs.here.com/workspace/docs
📖
APIReference
https://docs.here.com/workspace/reference
📖
Documentation
https://docs.here.com/tour-planning/docs
📖
APIReference
https://docs.here.com/tour-planning/reference
📖
Documentation
https://docs.here.com/tracking/docs
📖
APIReference
https://docs.here.com/tracking/reference
📖
Documentation
https://docs.here.com/traffic-api/docs
📖
APIReference
https://docs.here.com/traffic-api/reference
📖
Documentation
https://docs.here.com/wego-pro/docs
📖
APIReference
https://docs.here.com/wego-pro/reference

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/here-routing-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

here-routing-api-openapi.yml Raw ↑
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