openapi: 3.0.0
servers:
  - url: https://api.tomtom.com
info:
  contact:
    name: Contact Us
    url: https://developer.tomtom.com/contact-us
    x-twitter: TomTom
  description: |-
    Routing consists of the following service:
    <b>Calculate Route</b>
    Calculates a route between an origin and a destination, passing through waypoints (if specified). Additional routing parameters like traffic, avoidance conditions, departure/arrival time etc. can be taken into account.
    <b>Calculate Reachable Range</b>
    Calculates a set of locations that can be reached from the origin point, subject to the available fuel or energy budget that is specified in the request.
  title: Routing
  version: 1.0.0
  x-apisguru-categories:
    - location
  x-logo:
    url: https://twitter.com/TomTom/profile_image?size=original
  x-origin:
    - converter:
        url: https://github.com/lucybot/api-spec-converter
        version: 2.7.31
      format: openapi
      url: https://developer.tomtom.com/system/files/swagger_models/routing_api.yaml
      version: "3.0"
  x-providerName: tomtom.com
  x-serviceName: routing
security:
  - api_key: []
paths:
  "/routing/{versionNumber}/calculateReachableRange/{origin}/{contentType}":
    get:
      description: Calculates a set of locations that can be reached from the origin point.
      parameters:
        - $ref: "#/components/parameters/versionNumber"
        - $ref: "#/components/parameters/origin"
        - $ref: "#/components/parameters/contentType"
        - $ref: "#/components/parameters/fuelBudgetInLiters"
        - $ref: "#/components/parameters/energyBudgetInkWh"
        - $ref: "#/components/parameters/timeBudgetInSec"
        - $ref: "#/components/parameters/callback"
        - $ref: "#/components/parameters/report"
        - $ref: "#/components/parameters/departAt"
        - $ref: "#/components/parameters/arriveAt"
        - $ref: "#/components/parameters/routeType"
        - $ref: "#/components/parameters/traffic"
        - $ref: "#/components/parameters/avoidInCalculateReachableRange"
        - $ref: "#/components/parameters/travelMode"
        - $ref: "#/components/parameters/hilliness"
        - $ref: "#/components/parameters/windingness"
        - $ref: "#/components/parameters/vehicleMaxSpeed"
        - $ref: "#/components/parameters/vehicleWeight"
        - $ref: "#/components/parameters/vehicleAxleWeight"
        - $ref: "#/components/parameters/vehicleLength"
        - $ref: "#/components/parameters/vehicleWidth"
        - $ref: "#/components/parameters/vehicleHeight"
        - $ref: "#/components/parameters/vehicleCommercial"
        - $ref: "#/components/parameters/vehicleLoadType"
        - $ref: "#/components/parameters/constantSpeedConsumptionInLitersPerHundredkm"
        - $ref: "#/components/parameters/currentFuelInLiters"
        - $ref: "#/components/parameters/auxiliaryPowerInLitersPerHour"
        - $ref: "#/components/parameters/fuelEnergyDensityInMJoulesPerLiter"
        - $ref: "#/components/parameters/accelerationEfficiency"
        - $ref: "#/components/parameters/decelerationEfficiency"
        - $ref: "#/components/parameters/uphillEfficiency"
        - $ref: "#/components/parameters/downhillEfficiency"
        - description: Engine type of the vehicle.
          example: electric
          in: query
          name: vehicleEngineType
          schema:
            default: combustion
            enum:
              - combustion
              - electric
            type: string
        - description: Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs.
          example: 50,8.2:130,21.3
          in: query
          name: constantSpeedConsumptionInkWhPerHundredkm
          schema:
            pattern: ^((\d+\.?\d*,\d+\.?\d*):?)+$
            type: string
      responses:
        "200":
          description: "OK: a range was calculated and the body of the response contains the polygon description and further data."
        "400":
          description: "Bad request: one or more parameters were incorrectly specified or are mutually exclusive, or the origin point specified in the request is not near enough to a road."
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "408":
          $ref: "#/components/responses/408"
        "414":
          $ref: "#/components/responses/414"
        "500":
          $ref: "#/components/responses/500"
        "502":
          $ref: "#/components/responses/502"
        "503":
          $ref: "#/components/responses/503"
        "504":
          $ref: "#/components/responses/504"
        "596":
          $ref: "#/components/responses/596"
      summary: Reachable Range
      tags:
        - Routing
    post:
      description: "Calculates a set of locations that can be reached from the origin point. POST method handles additionally parameters: <em>supportingPoints</em>, <em>allowVignette</em>, <em>avoidVignette</em>, <em>avoidAreas</em>."
      parameters:
        - $ref: "#/components/parameters/versionNumber"
        - $ref: "#/components/parameters/origin"
        - $ref: "#/components/parameters/contentType"
        - $ref: "#/components/parameters/fuelBudgetInLiters"
        - $ref: "#/components/parameters/energyBudgetInkWh"
        - $ref: "#/components/parameters/timeBudgetInSec"
        - $ref: "#/components/parameters/callback"
        - $ref: "#/components/parameters/report"
        - $ref: "#/components/parameters/departAt"
        - $ref: "#/components/parameters/arriveAt"
        - $ref: "#/components/parameters/routeType"
        - $ref: "#/components/parameters/traffic"
        - $ref: "#/components/parameters/avoidInCalculateReachableRange"
        - $ref: "#/components/parameters/travelMode"
        - $ref: "#/components/parameters/hilliness"
        - $ref: "#/components/parameters/windingness"
        - $ref: "#/components/parameters/vehicleMaxSpeed"
        - $ref: "#/components/parameters/vehicleWeight"
        - $ref: "#/components/parameters/vehicleAxleWeight"
        - $ref: "#/components/parameters/vehicleLength"
        - $ref: "#/components/parameters/vehicleWidth"
        - $ref: "#/components/parameters/vehicleHeight"
        - $ref: "#/components/parameters/vehicleCommercial"
        - $ref: "#/components/parameters/vehicleLoadType"
        - $ref: "#/components/parameters/constantSpeedConsumptionInLitersPerHundredkm"
        - $ref: "#/components/parameters/currentFuelInLiters"
        - $ref: "#/components/parameters/auxiliaryPowerInLitersPerHour"
        - $ref: "#/components/parameters/fuelEnergyDensityInMJoulesPerLiter"
        - $ref: "#/components/parameters/accelerationEfficiency"
        - $ref: "#/components/parameters/decelerationEfficiency"
        - $ref: "#/components/parameters/uphillEfficiency"
        - $ref: "#/components/parameters/downhillEfficiency"
        - description: Engine type of the vehicle.
          example: electric
          in: query
          name: vehicleEngineType
          schema:
            default: combustion
            enum:
              - combustion
              - electric
            type: string
        - description: Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs.
          example: 50,8.2:130,21.3
          in: query
          name: constantSpeedConsumptionInkWhPerHundredkm
          schema:
            pattern: ^((\d+\.?\d*,\d+\.?\d*):?)+$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/calculateReachableRangePostDataParameters"
          application/xml:
            schema:
              $ref: "#/components/schemas/calculateReachableRangePostDataParameters"
      responses:
        "200":
          description: "OK: a range was calculated and the body of the response contains the polygon description and further data."
        "400":
          description: "Bad request: one or more parameters were incorrectly specified or are mutually exclusive, or the origin point specified in the request is not near enough to a road."
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "408":
          $ref: "#/components/responses/408"
        "414":
          $ref: "#/components/responses/414"
        "500":
          $ref: "#/components/responses/500"
        "502":
          $ref: "#/components/responses/502"
        "503":
          $ref: "#/components/responses/503"
        "504":
          $ref: "#/components/responses/504"
        "596":
          $ref: "#/components/responses/596"
      summary: Reachable Range
      tags:
        - Routing
  "/routing/{versionNumber}/calculateRoute/{locations}/{contentType}":
    get:
      description: Calculates a route between an origin and a destination.
      parameters:
        - $ref: "#/components/parameters/versionNumber"
        - $ref: "#/components/parameters/locations"
        - $ref: "#/components/parameters/contentType"
        - $ref: "#/components/parameters/maxAlternatives"
        - $ref: "#/components/parameters/alternativeType"
        - $ref: "#/components/parameters/minDeviationDistance"
        - $ref: "#/components/parameters/minDeviationTime"
        - $ref: "#/components/parameters/instructionsType"
        - $ref: "#/components/parameters/language"
        - $ref: "#/components/parameters/computeBestOrder"
        - $ref: "#/components/parameters/routeRepresentation"
        - $ref: "#/components/parameters/computeTravelTimeFor"
        - $ref: "#/components/parameters/vehicleHeading"
        - $ref: "#/components/parameters/sectionType"
        - $ref: "#/components/parameters/callback"
        - $ref: "#/components/parameters/report"
        - $ref: "#/components/parameters/departAt"
        - $ref: "#/components/parameters/arriveAt"
        - $ref: "#/components/parameters/routeType"
        - $ref: "#/components/parameters/traffic"
        - $ref: "#/components/parameters/avoid"
        - $ref: "#/components/parameters/travelMode"
        - $ref: "#/components/parameters/hilliness"
        - $ref: "#/components/parameters/windingness"
        - $ref: "#/components/parameters/vehicleMaxSpeed"
        - $ref: "#/components/parameters/vehicleWeight"
        - $ref: "#/components/parameters/vehicleAxleWeight"
        - $ref: "#/components/parameters/vehicleLength"
        - $ref: "#/components/parameters/vehicleWidth"
        - $ref: "#/components/parameters/vehicleHeight"
        - $ref: "#/components/parameters/vehicleCommercial"
        - $ref: "#/components/parameters/vehicleLoadType"
        - $ref: "#/components/parameters/vehicleEngineType"
        - $ref: "#/components/parameters/constantSpeedConsumptionInLitersPerHundredkm"
        - $ref: "#/components/parameters/currentFuelInLiters"
        - $ref: "#/components/parameters/auxiliaryPowerInLitersPerHour"
        - $ref: "#/components/parameters/fuelEnergyDensityInMJoulesPerLiter"
        - $ref: "#/components/parameters/accelerationEfficiency"
        - $ref: "#/components/parameters/decelerationEfficiency"
        - $ref: "#/components/parameters/uphillEfficiency"
        - $ref: "#/components/parameters/downhillEfficiency"
        - $ref: "#/components/parameters/constantSpeedConsumptionInkWhPerHundredkm"
      responses:
        "200":
          description: "OK: a route was calculated and the body of the response contains the route description and any other requested data."
        "400":
          description: "Bad request: one or more parameters were incorrectly specified, are mutually exclusive, the points in the request are not connected by the road network or the points in the request are not near enough to a road."
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "408":
          $ref: "#/components/responses/408"
        "414":
          $ref: "#/components/responses/414"
        "500":
          $ref: "#/components/responses/500"
        "502":
          $ref: "#/components/responses/502"
        "503":
          $ref: "#/components/responses/503"
        "504":
          $ref: "#/components/responses/504"
        "596":
          $ref: "#/components/responses/596"
      summary: Calculate Route
      tags:
        - Routing
    post:
      description: "Calculates a route between an origin and a destination. POST method handles additionally parameters: <em>supportingPoints</em>, <em>allowVignette</em>, <em>avoidVignette</em>, <em>avoidAreas</em>."
      parameters:
        - $ref: "#/components/parameters/versionNumber"
        - $ref: "#/components/parameters/locations"
        - $ref: "#/components/parameters/contentType"
        - $ref: "#/components/parameters/maxAlternatives"
        - $ref: "#/components/parameters/alternativeType"
        - $ref: "#/components/parameters/minDeviationDistance"
        - $ref: "#/components/parameters/minDeviationTime"
        - $ref: "#/components/parameters/instructionsType"
        - $ref: "#/components/parameters/language"
        - $ref: "#/components/parameters/computeBestOrder"
        - $ref: "#/components/parameters/routeRepresentation"
        - $ref: "#/components/parameters/computeTravelTimeFor"
        - $ref: "#/components/parameters/vehicleHeading"
        - $ref: "#/components/parameters/sectionType"
        - $ref: "#/components/parameters/callback"
        - $ref: "#/components/parameters/report"
        - $ref: "#/components/parameters/departAt"
        - $ref: "#/components/parameters/arriveAt"
        - $ref: "#/components/parameters/routeType"
        - $ref: "#/components/parameters/traffic"
        - $ref: "#/components/parameters/avoid"
        - $ref: "#/components/parameters/travelMode"
        - $ref: "#/components/parameters/hilliness"
        - $ref: "#/components/parameters/windingness"
        - $ref: "#/components/parameters/vehicleMaxSpeed"
        - $ref: "#/components/parameters/vehicleWeight"
        - $ref: "#/components/parameters/vehicleAxleWeight"
        - $ref: "#/components/parameters/vehicleLength"
        - $ref: "#/components/parameters/vehicleWidth"
        - $ref: "#/components/parameters/vehicleHeight"
        - $ref: "#/components/parameters/vehicleCommercial"
        - $ref: "#/components/parameters/vehicleLoadType"
        - $ref: "#/components/parameters/vehicleEngineType"
        - $ref: "#/components/parameters/constantSpeedConsumptionInLitersPerHundredkm"
        - $ref: "#/components/parameters/currentFuelInLiters"
        - $ref: "#/components/parameters/auxiliaryPowerInLitersPerHour"
        - $ref: "#/components/parameters/fuelEnergyDensityInMJoulesPerLiter"
        - $ref: "#/components/parameters/accelerationEfficiency"
        - $ref: "#/components/parameters/decelerationEfficiency"
        - $ref: "#/components/parameters/uphillEfficiency"
        - $ref: "#/components/parameters/downhillEfficiency"
        - $ref: "#/components/parameters/constantSpeedConsumptionInkWhPerHundredkm"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/calculateRoutePostDataParameters"
          application/xml:
            schema:
              $ref: "#/components/schemas/calculateRoutePostDataParameters"
      responses:
        "200":
          description: "OK: a route was calculated and the body of the response contains the route description and any other requested data."
        "400":
          description: "Bad request: one or more parameters were incorrectly specified, are mutually exclusive, the points in the request are not connected by the road network or the points in the request are not near enough to a road."
        "403":
          $ref: "#/components/responses/403"
        "404":
          $ref: "#/components/responses/404"
        "405":
          $ref: "#/components/responses/405"
        "408":
          $ref: "#/components/responses/408"
        "414":
          $ref: "#/components/responses/414"
        "500":
          $ref: "#/components/responses/500"
        "502":
          $ref: "#/components/responses/502"
        "503":
          $ref: "#/components/responses/503"
        "504":
          $ref: "#/components/responses/504"
        "596":
          $ref: "#/components/responses/596"
      summary: Calculate Route
      tags:
        - Routing
components:
  parameters:
    accelerationEfficiency:
      description: Specifies the efficiency of converting chemical energy stored in fuel to kinetic energy when the vehicle accelerates (i.e. KineticEnergyGained/ChemicalEnergyConsumed).
      in: query
      name: accelerationEfficiency
      schema:
        format: float
        type: number
    alternativeType:
      description: Determines whether the alternative routes to be calculated should be better with respect to the planning criteria provided than the reference route.
      in: query
      name: alternativeType
      schema:
        default: anyRoute
        enum:
          - anyRoute
          - betterRoute
        type: string
    arriveAt:
      description: The date and time of arrival at the destination point. It must be specified as a dateTime.
      in: query
      name: arriveAt
      schema:
        format: dateTime
        type: string
    auxiliaryPowerInLitersPerHour:
      description: Specifies the amount of fuel consumed for sustaining auxiliary systems of the vehicle, in liters per hour.
      in: query
      name: auxiliaryPowerInLitersPerHour
      schema:
        format: float
        type: number
    auxiliaryPowerInkW:
      description: Specifies the amount of power consumed by auxiliary systems, in kilowatts (kW).
      in: query
      name: auxiliaryPowerInkW
      schema:
        format: float
        type: number
    avoid:
      description: |-
        Specifies whether the routing engine should try to avoid specific types of road segment when calculating the route. Can be specified multiple times.
        Possible values:
          - tollRoads
          - motorways
          - ferries
          - unpavedRoads
          - carpools
          - alreadyUsedRoads
      example: unpavedRoads
      in: query
      name: avoid
      schema:
        type: string
    avoidInCalculateReachableRange:
      description: |-
        Specifies whether the routing engine should try to avoid specific types of road segment when calculating the route. Can be specified multiple times.
        Possible values:
          - tollRoads
          - motorways
          - ferries
          - unpavedRoads
          - carpools
      example: unpavedRoads
      in: query
      name: avoid
      schema:
        type: string
    callback:
      description: Specifies the jsonp callback method.
      in: query
      name: callback
      schema:
        default: callback
        type: string
    computeBestOrder:
      description: Re-order the route waypoints to reduce the route length.
      in: query
      name: computeBestOrder
      schema:
        default: false
        type: boolean
    computeTravelTimeFor:
      description: Specifies whether to return additional travel times using different types of traffic information (none, historic, live) as well as the default best-estimate travel time.
      in: query
      name: computeTravelTimeFor
      schema:
        default: none
        enum:
          - none
          - all
        type: string
    constantSpeedConsumptionInLitersPerHundredkm:
      description: Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs.
      in: query
      name: constantSpeedConsumptionInLitersPerHundredkm
      schema:
        pattern: ^((\d+\.?\d*,\d+\.?\d*):?)+$
        type: string
    constantSpeedConsumptionInkWhPerHundredkm:
      description: Specifies the speed-dependent component of consumption. Provided as an unordered list of speed/consumption-rate pairs.
      in: query
      name: constantSpeedConsumptionInkWhPerHundredkm
      schema:
        pattern: ^((\d+\.?\d*,\d+\.?\d*):?)+$
        type: string
    contentType:
      description: The content type of the response structure. If the content type is jsonp, a callback method can be specified in the query parameters.
      in: path
      name: contentType
      required: true
      schema:
        default: xml
        enum:
          - xml
          - json
          - jsonp
        type: string
    currentChargeInkWh:
      description: Specifies the current electric energy supply in kilowatt hours (kWh).
      in: query
      name: currentChargeInkWh
      schema:
        format: float
        minimum: 0
        type: number
    currentFuelInLiters:
      description: Specifies the current supply of fuel in liters.
      in: query
      name: currentFuelInLiters
      schema:
        format: float
        type: number
    decelerationEfficiency:
      description: Specifies the efficiency of converting kinetic energy to saved (not consumed) fuel when the vehicle decelerates (i.e. ChemicalEnergySaved/KineticEnergyLost).
      in: query
      name: decelerationEfficiency
      schema:
        format: float
        type: number
    departAt:
      description: The date and time of departure from the origin point. Departure times apart from <i>now</i> must be specified as a dateTime.
      in: query
      name: departAt
      schema:
        default: now
        type: string
    downhillEfficiency:
      description: Specifies the efficiency of converting potential energy to saved (not consumed) fuel when the vehicle loses elevation (i.e. ChemicalEnergySaved/PotentialEnergyLost).
      in: query
      name: downhillEfficiency
      schema:
        format: float
        type: number
    energyBudgetInkWh:
      description: Electric energy budget in kilowatt hours (kWh). Determines the maximum vehicle range using the specified Electric Consumption Model.
      example: 43
      in: query
      name: energyBudgetInkWh
      schema:
        format: float
        minimum: 0
        type: number
    fuelBudgetInLiters:
      description: Fuel budget in liters. Determines the maximum vehicle range using the specified Combustion Consumption Model.
      in: query
      name: fuelBudgetInLiters
      schema:
        format: float
        minimum: 0
        type: number
    fuelEnergyDensityInMJoulesPerLiter:
      description: Specifies the amount of chemical energy stored in one liter of fuel in megajoules (MJ).
      in: query
      name: fuelEnergyDensityInMJoulesPerLiter
      schema:
        format: float
        type: number
    hilliness:
      description: Degree of hilliness for calculating a thrilling route.
      in: query
      name: hilliness
      schema:
        default: normal
        enum:
          - low
          - normal
          - high
        type: string
    instructionsType:
      description: If specified, guidance instructions will be returned (if available).
      in: query
      name: instructionsType
      schema:
        enum:
          - coded
          - text
          - tagged
        type: string
    language:
      description: The language parameter determines the language of the guidance messages.
      in: query
      name: language
      schema:
        default: en-GB
        type: string
    locations:
      description: Locations through which the calculated route must pass.
      example: 52.50931,13.42936:52.50274,13.43872
      in: path
      name: locations
      required: true
      schema:
        type: string
    maxAlternatives:
      description: Number of alternative routes to be calculated.
      in: query
      name: maxAlternatives
      schema:
        default: 0
        maximum: 5
        minimum: 0
        type: integer
    maxChargeInkWh:
      description: Specifies the maximum electric energy supply in kilowatt hours (kWh) that may be stored in the vehicle's battery.
      in: query
      name: maxChargeInkWh
      schema:
        format: float
        type: number
    minDeviationDistance:
      description: All alternative routes will follow the reference route for the specified minimum number of meters starting from the origin point.
      in: query
      name: minDeviationDistance
      schema:
        default: 0
        type: integer
    minDeviationTime:
      description: All alternative routes will follow the reference route for the specified minimum number of seconds starting from the origin point.
      in: query
      name: minDeviationTime
      schema:
        default: 0
        type: integer
    origin:
      description: Point from which the range calculation should start.
      example: 52.50931,13.42936
      in: path
      name: origin
      required: true
      schema:
        type: string
    report:
      description: Specifies which data should be reported for diagnosis purposes.
      in: query
      name: report
      schema:
        enum:
          - effectiveSettings
        type: string
    routeRepresentation:
      description: Specifies the representation of the set of routes provided as a response.
      in: query
      name: routeRepresentation
      schema:
        default: polyline
        enum:
          - polyline
          - none
        type: string
    routeType:
      description: The type of route requested.
      in: query
      name: routeType
      schema:
        default: fastest
        enum:
          - fastest
          - shortest
          - eco
          - thrilling
        type: string
    sectionType:
      description: |-
        Specifies which section types are explicitly reported in the route response. Can be specified multiple times.
          - carTrain, ferry, tunnel or motorway
          - pedestrian
          - tollRoad
          - tollVignette
          - country
          - travelMode
          - traffic
      in: query
      name: sectionType
      schema:
        default: travelMode
        type: string
    timeBudgetInSec:
      description: Time budget in seconds. Determines the maximum vehicle range using the specified driving time. The consumption parameters in the request will only affect eco-routes, and thereby indirectly the driving time.
      in: query
      name: timeBudgetInSec
      schema:
        format: float
        minimum: 0
        type: number
    traffic:
      description: Determines whether current traffic is used in route calculations. Note that information on historic road speeds is always used.
      in: query
      name: traffic
      schema:
        default: true
        type: boolean
    travelMode:
      description: The mode of travel for the requested route.
      in: query
      name: travelMode
      schema:
        default: car
        enum:
          - car
          - truck
          - taxi
          - bus
          - van
          - motorcycle
          - bicycle
          - pedestrian
        type: string
    uphillEfficiency:
      description: Specifies the efficiency of converting chemical energy stored in fuel to potential energy when the vehicle gains elevation (i.e. PotentialEnergyGained/ChemicalEnergyConsumed).
      in: query
      name: uphillEfficiency
      schema:
        format: float
        type: number
    vehicleAxleWeight:
      description: Weight per axle of the vehicle in kg.
      in: query
      name: vehicleAxleWeight
      schema:
        default: 0
        type: integer
    vehicleCommercial:
      description: Indicates that the vehicle is used for commercial purposes. This means it may not be allowed on certain roads.
      in: query
      name: vehicleCommercial
      schema:
        default: false
        type: boolean
    vehicleEngineType:
      description: Engine type of the vehicle.
      in: query
      name: vehicleEngineType
      schema:
        default: combustion
        enum:
          - combustion
          - electric
        type: string
    vehicleHeading:
      description: The directional heading of the vehicle in degrees. Entered in degrees, measured clockwise from north (so north is 0, east is 90, etc.).
      in: query
      name: vehicleHeading
      schema:
        maximum: 359
        minimum: 0
        type: integer
    vehicleHeight:
      description: Height of the vehicle in meters.
      in: query
      name: vehicleHeight
      schema:
        default: 0
        format: float
        type: number
    vehicleLength:
      description: Length of the vehicle in meters.
      in: query
      name: vehicleLength
      schema:
        default: 0
        format: float
        type: number
    vehicleLoadType:
      description: |-
        Indicates what kinds of hazardous materials the vehicle is carrying (if any). This means it may not be allowed on certain roads.
        Use these for routing in the US:

          - <i>USHazmatClass1</i> Explosives
          - <i>USHazmatClass2</i> Compressed gas
          - <i>USHazmatClass3</i> Flammable liquids
          - <i>USHazmatClass4</i> Flammable solids
          - <i>USHazmatClass5</i> Oxidizers
          - <i>USHazmatClass6</i> Poisons
          - <i>USHazmatClass7</i> Radioactive
          - <i>USHazmatClass8</i> Corrosives
          - <i>USHazmatClass9</i> Miscellaneous

        Use these for routing in all other countries:

          - <i>otherHazmatExplosive</i> Explosives
          - <i>otherHazmatGeneral</i> Miscellaneous
          - <i>otherHazmatHarmfulToWater</i> Harmful to water

        vehicleLoadType can be specified multiple times. This parameter is currently only considered for <b>travelMode</b>=<i>truck</i>.
      in: query
      name: vehicleLoadType
      schema:
        type: string
    vehicleMaxSpeed:
      description: Maximum speed of the vehicle in km/hour.
      in: query
      name: vehicleMaxSpeed
      schema:
        default: 0
        type: integer
    vehicleWeight:
      description: Weight of the vehicle in kilograms.
      in: query
      name: vehicleWeight
      schema:
        default: 0
        type: integer
    vehicleWidth:
      description: Width of the vehicle in meters.
      in: query
      name: vehicleWidth
      schema:
        default: 0
        format: float
        type: number
    versionNumber:
      description: Service version number. The current value is 1.
      in: path
      name: versionNumber
      required: true
      schema:
        enum:
          - 1
        type: integer
    windingness:
      description: Amount that a thrilling route should wind.
      in: query
      name: windingness
      schema:
        default: normal
        enum:
          - low
          - normal
          - high
        type: string
  responses:
    "403":
      description: |-
        Permission, capacity, or authentication issues:
          - Forbidden
          - Not authorized
          - Account inactive
          - Account over queries per second limit
          - Account over rate limit
          - Rate limit exceeded
    "404":
      description: "Not Found: the requested resource could not be found, but it may be available again in the future."
    "405":
      description: "Method Not Allowed: the client used a HTTP method other than GET or POST."
    "408":
      description: Request timeout.
    "414":
      description: Requested uri is too long.
    "500":
      description: An error occurred while processing the request. Please try again later.
    "502":
      description: Internal network connectivity issue.
    "503":
      description: Service currently unavailable.
    "504":
      description: Internal network connectivity issue or a request that has taken too long to complete.
    "596":
      description: Service not found.
  schemas:
    calculateReachableRangePostDataParameters:
      example:
        avoidAreas:
          rectangles:
            - northEastCorner:
                latitude: 48.90309
                longitude: 2.41115
              southWestCorner:
                latitude: 48.81851
                longitude: 2.26593
        avoidVignette:
          - AUS
          - CHE
        supportingPoints:
          - latitude: 52.5093
            longitude: 13.42936
          - latitude: 52.50844
            longitude: 13.42859
      properties:
        allowVignette:
          items:
            type: string
          type: array
          xml:
            name: allowVignette
        avoidAreas:
          properties:
            rectangles:
              items:
                properties:
                  northEastCorner:
                    properties:
                      latitude:
                        type: string
                        xml:
                          attribute: true
                      longitude:
                        type: string
                        xml:
                          attribute: true
                    type: object
                  southWestCorner:
                    properties:
                      latitude:
                        type: string
                        xml:
                          attribute: true
                      longitude:
                        type: string
                        xml:
                          attribute: true
                    type: object
                type: object
                xml:
                  name: rectangle
              type: array
              xml:
                name: rectangles
                wrapped: true
          type: object
        avoidVignette:
          items:
            type: string
          type: array
          xml:
            name: avoidVignette
      type: object
      xml:
        name: postData
    calculateRoutePostDataParameters:
      example:
        avoidAreas:
          rectangles:
            - northEastCorner:
                latitude: 48.90309
                longitude: 2.41115
              southWestCorner:
                latitude: 48.81851
                longitude: 2.26593
        avoidVignette:
          - AUS
          - CHE
        supportingPoints:
          - latitude: 52.5093
            longitude: 13.42936
          - latitude: 52.50844
            longitude: 13.42859
      properties:
        allowVignette:
          items:
            type: string
          type: array
          xml:
            name: allowVignette
        avoidAreas:
          properties:
            rectangles:
              items:
                properties:
                  northEastCorner:
                    properties:
                      latitude:
                        type: string
                        xml:
                          attribute: true
                      longitude:
                        type: string
                        xml:
                          attribute: true
                    type: object
                  southWestCorner:
                    properties:
                      latitude:
                        type: string
                        xml:
                          attribute: true
                      longitude:
                        type: string
                        xml:
                          attribute: true
                    type: object
                type: object
                xml:
                  name: rectangle
              type: array
              xml:
                name: rectangles
                wrapped: true
          type: object
        avoidVignette:
          items:
            type: string
          type: array
          xml:
            name: avoidVignette
        supportingPoints:
          items:
            properties:
              latitude:
                type: string
                xml:
                  attribute: true
              longitude:
                type: string
                xml:
                  attribute: true
            xml:
              name: supportingPoint
          type: array
          xml:
            name: supportingPoints
            wrapped: true
      type: object
      xml:
        name: postData
  securitySchemes:
    api_key:
      in: query
      name: key
      type: apiKey
