openapi: 3.1.0
servers:
  - url: 'https://api.tomtom.com'
info:
  version: 1.0.0
  title: Map Display API
paths:
  '/map/1/tile/{layer}/{style}/{zoom}/{X}/{Y}.pbf':
    get:
      tags:
        - Vector
      summary: Tile V1
      description: The Map Display API Vector service delivers vector tiles which are representations of square sections of map data.
      parameters:
        - name: layer
          in: path
          description: Layer of tile to be rendered.
          required: true
          schema:
            type: string
            enum:
              - basic
              - hybrid
              - labels
          example: basic
        - name: style
          in: path
          description: Style of tile to be rendered.
          required: true
          schema:
            type: string
            enum:
              - main
          example: main
        - name: zoom
          in: path
          description: Zoom level of tile to be rendered.
          required: true
          schema:
            type: integer
            enum:
              - 0
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
              - 8
              - 9
              - 10
              - 11
              - 12
              - 13
              - 14
              - 15
              - 16
              - 17
              - 18
              - 19
              - 20
              - 21
              - 22
          example: 0
        - name: X
          in: path
          description: x coordinate of tile on zoom grid.
          required: true
          schema:
            type: integer
          example: 0
        - name: Y
          in: path
          description: y coordinate of tile on zoom grid.
          required: true
          schema:
            type: integer
          example: 0
        - name: view
          in: query
          description: Geopolitical view. Determines rendering of disputed areas. See the <a href="/maps-api/maps-api-documentation-vector/tile">documentation</a> for an explanation of how this works in live services.
          required: false
          schema:
            type: string
            enum:
              - Unified
              - IL
              - IN
          example: Unified
        - name: language
          in: query
          description: |-
            Language to be used for labels in the Response. The default is NGT: Neutral Ground Truth, which uses each place's local official language and script (where available). See the <a href="/maps-api/maps-api-documentation-vector/tile">documentation</a> for a full list of options.
          schema:
            type: string
            default: NGT
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: |-
            <b>Bad Request</b>: Usually the result of malformed syntax:
              - The given combination of layer, style, and query parameters is not supported.
              - Zoom n is out of range 0 <= zoom <= 22: the requested zoom level is out of the possible range.
              - X n is out of range [0,m]: the requested x coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - Y n is out of range [0,m]: the requested y coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - The requested view is not supported.
        '403':
          description: |-
            <b>Forbidden</b>: 
              - The supplied API Key is not valid for this Request.
              - The requested view is not available in your country.
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom
            Map Display API Vector Tile service.
        '503':
          description: <b>Service currently unavailable</b>.
  '/map/2/tile/{layer}/{zoom}/{X}/{Y}.pbf':
    get:
      tags:
        - Vector
      summary: Tile V2
      description: The Map Display API Vector service delivers vector tiles which are representations of square sections of map data.
      parameters:
        - name: layer
          in: path
          description: Layer of tile to be rendered.
          required: true
          schema:
            type: string
            enum:
              - basic
              - hybrid
              - labels
          example: basic
        - name: zoom
          in: path
          description: Zoom level of tile to be rendered.
          required: true
          schema:
            type: integer
            enum:
              - 0
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
              - 8
              - 9
              - 10
              - 11
              - 12
              - 13
              - 14
              - 15
              - 16
              - 17
              - 18
              - 19
              - 20
              - 21
              - 22
          example: 0
        - name: X
          in: path
          description: x coordinate of a tile on a zoom grid.

          required: true
          schema:
            type: integer
          example: 0
        - name: Y
          in: path
          description: y coordinate of a tile on a zoom grid.

          required: true
          schema:
            type: integer
          example: 0
        - name: view
          in: query
          description: Geopolitical view. Determines the rendering of disputed areas. See the <a href="/maps-api/maps-api-documentation-vector/tile">documentation</a> for an explanation of how this works in live services.

          required: false
          schema:
            type: string
            enum:
              - Unified
              - IL
              - IN
          example: Unified
        - name: include
          in: query
          description: |-
            List of additional data types to be included in the tile.
            Values must be placed between '[' and ']' and separated by a ','.
            Actual supported values:
              - road_restrictions - includes road restriction-related data based on the provided vehicle profile.
          required: false
          schema:
            type: string
          example: "[road_restrictions]"
        - name: vehicleWeight
          in: query
          description: Weight of the vehicle in kilograms.
          required: false
          schema:
            type: integer
          example: 2000
        - name: vehicleAxleWeight
          in: query
          description: Weight per axle of the vehicle in kilograms.
          required: false
          schema:
            type: integer
          example: 1000
        - name: numberOfAxles
          in: query
          description: Number of vehicle axles.
          required: false
          schema:
            type: integer
          example: 2
        - name: vehicleLength
          in: query
          description: Length of the vehicle in meters.
          required: false
          schema:
            type: number
          example: 2.5
        - name: vehicleWidth
          in: query
          description: Width of the vehicle in meters.
          required: false
          schema:
            type: number
          example: 2.5
        - name: vehicleHeight
          in: query
          description: Height of the vehicle in meters.
          required: false
          schema:
            type: number
          example: 2.5
        - name: generalLoadType
          in: query
          description: |-
            List of the vehicle general load types.
            Values must be placed between `[` and `]` and separated by a `,`.
            Actual supported values:
              - General_Hazardous_Materials
              - Explosive_Materials
              - Goods_Harmful_To_Water
          required: false
          schema:
            type: string
          example: "[General_Hazardous_Materials]"
        - name: dangerousGoodsLoadType
          in: query
          description: |-
            List of the vehicle dangerous goods load types.
            Values must be placed between `[` and `]` and separated by a `,`.
            Actual supported values:
              - Explosives
              - Gases
              - Flammable_Liquids
              - Flammable_Solids
              - Oxidizing_And_Organic_Substance
              - Toxic_And_Infectious_Substance
              - Radioactive_Material
              - Corrosives
              - Miscellaneous_Dangerous_Goods
          required: false
          schema:
            type: string
          example: "[Explosives]"
        - name: adrCategory
          in: query
          description: |-
            Vehicle ADR category.
          required: false
          schema:
            type: string
            enum:
              - B
              - C
              - D
              - E
          example: B
        - name: commercialVehicle
          in: query
          description: |-
            Indicates a commercial vehicle.
          required: false
          schema:
            type: boolean
            enum:
              - false
              - true
          example: true
        - name: travelMode
          in: query
          description: |-
            Travel mode to be included in restriction data.
          required: false
          schema:
            type: string
            enum:
              - Car
              - Truck
              - Taxi
              - Bus
              - Van
              - Motorcycle
              - Bicycle
              - Pedestrian
              - Other
          example: Taxi
        - name: emissionClass
          in: query
          description: |-
            List of the emission classes.
            Values must be placed between `[` and `]` and separated by a `,`.
            Actual supported values:
              - EmissionClass0
              - EmissionClass1
              - EmissionClass2
              - EmissionClass3
              - EmissionClass4
              - EmissionClass5
              - EmissionClass6
              - EmissionClass7
              - EmissionClass8
              - EmissionClass9
              - EmissionClass10
          required: false
          schema:
            type: string
          example: "[EmissionClass5]"
        - name: engineType
          in: query
          description: |-
            List of the engine types.
            Values must be placed between `[` and `]` and separated by a `,`.
            Actual supported values:
              - LPG
              - CNG
              - LNG
              - Diesel
              - Petrol
              - Hydrogen
              - Electric
              - Hybrid
              - Plugin_Hybrid
          required: false
          schema:
            type: string
          example: "[Diesel]"
        - name: travelModeProfile
          in: query
          description: |-
            Combination of vehicle-related parameters with travelMode in the short version.
            <br />
            Instead of passing all parameters separately, it can be provided in a single, comma-separated parameter.
            <br />
            &lt;travelMode&gt;,&lt;vehicleWeight&gt;,&lt;vehicleAxleWeight&gt;,&lt;numberOfAxles&gt;,&lt;vehicleLength&gt;,&lt;vehicleWidth&gt;,&lt;vehicleHeight&gt;,&lt;generalLoadType&gt;,&lt;dangerousGoodsLoadType&gt;,&lt;adrCategory&gt;,&lt;commercialVehicle&gt;,&lt;emissionClass&gt;,&lt;engineType&gt;
            <br />
            - &lt;travelMode&gt; - Travel mode to be included in the restriction data.
              Travel mode Mapping:
              - 0 - Car
              - 1 - Truck
              - 2 - Taxi
              - 3 - Bus
              - 4 - Van
              - 5 - Motorcycle
              - 6 - Bicycle
              - 7 - Pedestrian
              - 8 - Other
            - &lt;vehicleWeight&gt; - Weight of the vehicle in kilograms.
            - &lt;vehicleAxleWeight&gt; - Weight per axle of the vehicle in kilograms.
            - &lt;numberOfAxles&gt; - Number of vehicle axles.
            - &lt;vehicleLength&gt; - Length of the vehicle in meters.
            - &lt;vehicleWidth&gt; - Width of the vehicle in meters.
            - &lt;vehicleHeight&gt; - Height of the vehicle in meters.
            - &lt;generalLoadType&gt; - List of the vehicle general load types.
              Values must be placed between `[` and `]` and separated by a `,`.
              General load type mapping:
              - 0 - General_Hazardous_Materials
              - 1 - Explosive_Materials
              - 2 - Goods_Harmful_To_Water
            - &lt;dangerousGoodsLoadType&gt; - List of the vehicle dangerous goods load types.
              Values must be placed between `[` and `]` and separated by a `,`.
              Vehicle dangerous goods load type mapping:
              - 0 - Explosives
              - 1 - Gases
              - 2 - Flammable_Liquids
              - 3 - Flammable_Solids
              - 4 - Oxidizing_And_Organic_Substance
              - 5 - Toxic_And_Infectious_Substance
              - 6 - Radioactive_Material
              - 7 - Corrosives
              - 8 - Miscellaneous_Dangerous_Goods
            - &lt;adrCategory&gt; - Vehicle ADR category.
              Vehicle ADR category possible values:
              - B
              - C
              - D
              - E
            - &lt;commercialVehicle&gt; - Indicates a commercial vehicle.
              Commercial vehicle possible values:
              - 0
              - 1
            - &lt;emissionClass&gt; - List of the emission classes.
              Values must be placed between `[` and `]` and separated by a `,`.
              Emission class mapping:
              - 0 - EmissionClass0
              - 1 - EmissionClass1
              - 2 - EmissionClass2
              - 3 - EmissionClass3
              - 4 - EmissionClass4
              - 5 - EmissionClass5
              - 6 - EmissionClass6
              - 7 - EmissionClass7
              - 8 - EmissionClass8
              - 9 - EmissionClass9
              - 10 - EmissionClass10
            - &lt;engineType&gt; - List of the engine types.
              Values must be placed between `[` and `]` and separated by a `,`.
              Engine type mapping:
              - 0 - LPG
              - 1 - CNG
              - 2 - LNG
              - 3 - Diesel
              - 4 - Petrol
              - 5 - Hydrogen
              - 6 - Electric
              - 7 - Hybrid
              - 8 - Plugin_Hybrid
            <br />
            0,1500,,,5.5,,2.2,,,,,, means Car, weight 1500kg, length 5.5m, height 2.2
            <br />
            1,,,3,,3.1,,,,,,, means Truck, 3 axles, width 3.1m
          required: false
          schema:
            type: string
          example: 0,1500,,,5.5,,2.2,,,,,,
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: |-
            <b>Bad Request</b>: Usually the result of malformed syntax:
              - The given combination of layer, style, and query parameters is not supported.
              - Zoom n is out of range 0 <= zoom <= 22: the requested zoom level is out of the possible range.
              - X n is out of range [0,m]: the requested x coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - Y n is out of range [0,m]: the requested y coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - The requested view is not supported.
        '403':
          description: |-
            <b>Forbidden</b>: 
              - The supplied API Key is not valid for this request.

              - The requested view is not available in your country.
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom
            Map Display API Vector Tile service.
        '503':
          description: <b>Service currently unavailable</b>.
  '/map/{versionNumber}/{resourceType}/{resourceVersion}/{resourceVariant}/metadata.{format}':
    get:
      tags:
        - Vector
      summary: Map styles metadata
      description: This retrieves a list of resources of a selected type.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - $ref: '#/components/parameters/resourceType'
        - name: resourceVersion
          in: path
          description: Version of the requested resource.
          required: true
          schema:
            type: string
        - name: resourceVariant
          in: path
          description: Variant of the requested resource. Can only be used when <strong>resourceVersion</strong> is provided.
          required: true
          schema:
            type: string
        - name: format
          in: path
          description: The requested Response format.
          required: true
          schema:
            type: string
            enum:
              - json
              - jsonp
              - xml
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: >-
            <b>Bad Request:</b> Received by the interface, but there was an exception while processing it. Possible causes include:
              - One or more of the required parameters are missing.
              - An unsupported or unrecognized parameter value.
              
            This code is returned if the parameters of the Request were malformed. A detailed exception explanation is returned in the Response in the "form of service exception" report.
        '403':
          description: <b>Forbidden:</b> The supplied API Key is not valid for this Request.
        '404':
          description: <b>Not found:</b> The requested resource could not be found.
        '500':
          description: <b>Internal Server Error:</b> There is a problem with the service.
  '/map/{versionNumber}/{resourceType}/{resourceVersion}/{resourceVariant}/{resourceName}':
    get:
      tags:
        - Vector
      summary: Map styles resources
      description: This retrieves a selected resource.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - $ref: '#/components/parameters/resourceType'
        - name: resourceVersion
          in: path
          description: The version of the requested resource. Available versions can be listed using the Metadata method.
          required: true
          schema:
            type: string
        - name: resourceVariant
          in: path
          description: The variant of the requested resource. Available variants can be listed using the Metadata method.
          required: true
          schema:
            type: string
        - name: resourceName
          in: path
          description: The requested resource name (with an extension if applicable). Available resources can be listed using the Metadata method.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: >-
            <b>Bad Request:</b> Received by the interface, but there was an exception while processing it. Possible causes include:
              - One or more of the required parameters are missing.
              - An unsupported or unrecognized parameter value.
              
            This code is returned if the parameters of the Request were malformed. A detailed exception explanation is returned in the Response in the "form of service exception" report.
        '403':
          description: <b>Forbidden:</b> The supplied API Key is not valid for this Request.
        '404':
          description: <b>Not found:</b> The requested resource could not be found.
        '500':
          description: <b>Internal Server Error:</b> There is a problem with the service.
  '/map/{versionNumber}/tile/{layer}/{style}/{zoom}/{X}/{Y}.{format}':
    get:
      tags:
        - Raster
      summary: Map Tile
      description: The Map Display API Raster service delivers raster map tiles, which are representations of square sections of map data.

      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - name: layer
          in: path
          description: Layer of tile to be rendered. <em>Hybrid</em> and <em>labels</em> are intended for layering with other data and are only available in <em>png</em> format.
          required: true
          schema:
            type: string
            enum:
              - basic
              - hybrid
              - labels
          example: basic
        - name: style
          in: path
          required: true
          description: Style of tile to be rendered.
          schema:
            type: string
            enum:
              - main
              - night
          example: main
        - name: zoom
          in: path
          description: Zoom level of tile to be rendered.
          required: true
          schema:
            type: integer
            enum:
              - 0
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
              - 8
              - 9
              - 10
              - 11
              - 12
              - 13
              - 14
              - 15
              - 16
              - 17
              - 18
              - 19
              - 20
              - 21
              - 22
          example: 0
        - name: X
          in: path
          required: true
          description: x coordinate of tile on zoom grid.
          schema:
            type: integer
          example: 0
        - name: Y
          in: path
          required: true
          description: y coordinate of tile on zoom grid.
          schema:
            type: integer
          example: 0
        - name: format
          in: path
          required: true
          description: Format of the Response.
          schema:
            type: string
            enum:
              - jpg
              - png
          example: png
        - name: tileSize
          in: query
          required: false
          description: Tile dimensions in pixels. <em>512</em> is only available for the <em>main</em> style and <em>basic</em> or <em>labels</em> layers.
          schema:
            type: integer
            enum:
              - 256
              - 512
            default: 256
        - name: view
          in: query
          required: false
          description: Geopolitical view. Determines the rendering of disputed areas. See the <a href="/maps-sdk-web/functional-examples#geopolitical-views" target="_blank">documentation</a> for an explanation of how this works in live services.
          schema:
            type: string
            enum:
              - Unified
              - IN
          example: Unified
        - name: language
          in: query
          description: |-
            Language to be used for labels in the Response. The default is NGT (Neutral Ground Truth), which uses the local official language and script (where available) of each place. See the <a href="/maps-api/maps-api-documentation-raster/raster-tile"  target="_blank">documentation</a> for a full list of options.
          schema:
            type: string
            default: NGT
      responses:
        '200':
          description: <b>OK</b>
        '302':
          description: '<b>Found</b>: URL redirection.'
        '400':
          description: |-
            <b>Bad Request</b>: Usually the result of malformed syntax:
              - The given combination of layer, style, and query parameters is not supported.
              - Zoom n is out of range 0 <= zoom < 19: the requested zoom level is out of the possible range.
              - X n is out of range [0,m]: the requested x coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - Y n is out of range [0,m]: the requested y coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - The requested view is not supported.
        '403':
          description: |-
            <b>Forbidden</b>:
              - The supplied API key is not valid for this Request.
              - The requested view is not available in the country where the request was sent from.
        '410':
          description: '<b>Gone</b>: Request for unsupported format.'
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom
            Map Display API Raster Tile service.
  '/map/1/tile/{layer}/{style}/{zoom}/{X}/{Y}.{format}':
    get:
      tags:
        - Raster
      summary: Satellite Tile
      description: The Map Display API Raster Service delivers raster satellite image tiles, which are representations of square sections of map data.
      parameters:
        - name: layer
          in: path
          required: true
          description: Layer of the tile.
          schema:
            type: string
            enum:
              - sat
          example: sat
        - name: style
          in: path
          required: true
          description: Style of the tile to be requested.
          schema:
            type: string
            enum:
              - main
          example: main
        - name: zoom
          in: path
          description: 'Zoom level of the tile to be rendered.'
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 19
        - name: X
          in: path
          required: true
          description: x coordinate of the tile on the zoom grid.
          schema:
            type: integer
          example: 0
        - name: Y
          in: path
          required: true
          description: y coordinate of the tile on the zoom grid.
          schema:
            type: integer
          example: 0
        - name: format
          in: path
          required: true
          description: Format of the response.
          schema:
            type: string
            enum:
              - jpg
          example: jpg
      responses:
        '200':
          description: <b>OK</b>
        '302':
          description: '<b>Found</b>: URL redirection.'
        '400':
          description: |-
            <b>Bad Request</b>: Usually the result of malformed syntax:
              - Invalid format value.
              - Zoom n is out of range 0 <= zoom < 20: the requested zoom level is out of the possible range.
              - X n is out of range [0,m]: the requested x coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - Y n is out of range [0,m]: the requested y coordinate is out of the possible range (the value of m will vary depending on zoom level).
        '403':
          description: |-
            <b>Forbidden</b>:
              - The supplied API Key is not valid for this request.
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom
            Map Display API Satellite Tile service.
  '/map/1/tile/{layer}/{type}/{zoom}/{X}/{Y}.{format}':
    get:
      tags:
        - Raster
      summary: Hillshade Tile
      description: The Map Display API Raster Service delivers raster hillshade image tiles, which are representations of square sections of map data.
      parameters:
        - name: layer
          in: path
          required: true
          description: Layer of the tile.
          schema:
            type: string
            enum:
              - hill
          example: hill
        - name: type
          in: path
          required: true
          description: Type of the tile to be requested.
          schema:
            type: string
            enum:
              - main
          example: main
        - name: zoom
          in: path
          description: 'Zoom level of the tile to be rendered.'
          required: true
          schema:
            type: integer
            minimum: 0
            maximum: 13
          example: 8
        - name: X
          in: path
          required: true
          description: x coordinate of the tile on the zoom grid.
          schema:
            type: integer
          example: 0
        - name: Y
          in: path
          required: true
          description: y coordinate of the tile on the zoom grid.
          schema:
            type: integer
          example: 0
        - name: format
          in: path
          required: true
          description: Format of the response.
          schema:
            type: string
            enum:
              - png
          example: png
      responses:
        '200':
          description: <b>OK</b>
        '302':
          description: '<b>Found</b>: URL redirection.'
        '400':
          description: |-
            <b>Bad Request</b>: Usually the result of malformed syntax:
              - Invalid format value.
              - Zoom n is out of range 0 <= zoom < 13: the requested zoom level is out of the possible range.
              - X n is out of range [0,m]: the requested x coordinate is out of the possible range (the value of m will vary depending on zoom level).
              - Y n is out of range [0,m]: the requested y coordinate is out of the possible range (the value of m will vary depending on zoom level).
        '403':
          description: |-
            <b>Forbidden</b>:
              - The supplied API Key is not valid for this request.
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom
            Map Display API Hillshade Tile service.
  '/map/{versionNumber}/wms//':
    get:
      operationId: GetCapabilities
      tags:
        - WMS / WMTS
      summary: GetCapabilities
      description: |-
        The GetCapabilities call is part of TomTom's implementation of version 1.1.1
        of the Web Map Service (WMS). It provides descriptions of the other calls
        that are available in the implementation.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - name: service
          in: query
          required: true
          schema:
            type: string
            enum:
              - WMS
        - name: request
          in: query
          required: true
          schema:
            type: string
            enum:
              - GetCapabilities
        - name: version
          in: query
          description: WMS service version.
          required: false
          schema:
            type: string
            enum:
              - 1.1.1
      responses:
        '200':
          description: <b>OK</b>
        '202':
          description: |-
            <b>Accepted</b>: Received by the interface, but there is a WMS exception in
            processing it. Possible causes include:
              - one or more required parameters is missing
              - unsupported or unrecognized parameter value
              - malformed bounding box requested
              - invalid map dimensions requested
              
            This code is returned if the parameters of the Request were malformed.
            The Response includes a detailed explanation in the Service Exception Report.
        '401':
          description: '<b>Unauthorized</b>: Supplied API key is not valid for the Request.'
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom WMS
            service.
  '/map/{versionNumber}/wms/':
    get:
      operationId: GetMap
      tags:
        - WMS / WMTS
      summary: GetMap
      description: |-
        The GetMap call implements the Web Map Service 1.1.1 standard
        to access TomTom Raster Map tiles. This service is described
        in the Response to the GetCapabilities API call.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - name: request
          in: query
          description: Request type.
          required: true
          schema:
            type: string
            enum:
              - GetMap
        - name: srs
          in: query
          description: |-
            Projection used in describing the <b>bbox</b> EPSG:3857 is
            recommended, particularly at higher zoom levels. (Note that
            EPSG:3857 is functionally equivalent to EPSG:900913/EPSG:3785)
          required: true
          schema:
            type: string
            enum:
              - 'EPSG:3857'
              - 'EPSG:4326'
          example: 'EPSG:4326'
        - name: bbox
          in: query
          description: |-
            Bounding box in the projection stated in <b>srs</b>
            (minLon,minLat,maxLon,maxLat).
          required: true
          schema:
            type: string
            pattern: '^(-?\d+\.?\d*, *){3}(-?\d+\.?\d*)$'
          example: -0.489,51.28,0.236,51.686
        - name: width
          in: query
          description: 'Width of the resulting image, in pixels Maximum value is 2048.'
          required: true
          schema:
            type: integer
          example: 512
        - name: height
          in: query
          description: 'Height of the resulting image, in pixels Maximum value is 2048.'
          required: true
          schema:
            type: integer
          example: 512
        - name: format
          in: query
          description: Image format to be returned.
          required: true
          schema:
            type: string
            enum:
              - image/jpeg
              - image/png
          example: image/png
        - name: layers
          in: query
          description: Map layers requested Currently only the basic layer is available.
          required: true
          schema:
            type: string
            enum:
              - basic
        - name: styles
          in: query
          description: |-
            Map styles to be returned. Currently, no styles are available. This
            parameter is present for forward compatibility; it must be used and
            left blank.
          required: false
          allowEmptyValue: true
          schema:
            type: string
            enum:
              - ''
        - name: service
          in: query
          description: Service type.
          required: false
          schema:
            type: string
            enum:
              - WMS
        - name: version
          in: query
          description: WMS service version.
          required: true
          schema:
            type: string
            enum:
              - 1.1.1
      responses:
        '200':
          description: <b>OK</b>
        '202':
          description: |-
            <b>Accepted</b>: Received by the interface, but there is a WMS exception in
            processing it. Possible causes include:
              - one or more required parameters is missing
              - unsupported or unrecognized parameter value
              - malformed bounding box requested
              - invalid map dimensions requested
              
            This code is returned if the parameters of the Request were malformed.
            The Response includes a detailed explanation in the Service Exception Report.
        '401':
          description: '<b>Unauthorized</b>: Supplied API key is not valid for the Request.'
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom WMS
            service.
  '/map/{versionNumber}/wmts/{key}/{wmtsVersion}/WMTSCapabilities.xml':
    get:
      tags:
        - WMS / WMTS
      summary: WMTS
      security: []
      description: |-
        The WMTS GetCapabilities call implements version 1.0.0 of
        the <a href="http://www.opengeospatial.org/standards/wmts" target="_blank">Web Map Tile Service (WMTS)</a>
        standard. It returns metadata that allows compatible calling systems to construct
        calls to TomTom's raster map tile service. See the
        <a href="/maps-api/maps-api-documentation-raster/wmts" target="_blank">documentation</a>
        for more information on WMTS.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - name: key
          in: path
          description: Your API key for calling this service.
          required: true
          schema:
            type: string
        - name: wmtsVersion
          in: path
          required: true
          schema:
            type: string
            enum:
              - 1.0.0
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: '<b>Bad Request</b>: Probably malformed syntax.'
        '401':
          description: '<b>Unauthorized</b>: Supplied API key is not valid for this Request.'
        '500':
          description: '<b>Internal Server Error</b>: There is a problem with the TomTom WMTS service.'
  '/map/2/copyrights':
    get:
      tags:
        - Copyrights
      summary: Map Copyrights
      description: |-
        The Copyrights API returns copyright information for the  Display API services.
        The response body will contain copyrights in a plain text format.
      responses:
        '200':
          description: <b>OK</b>
        '304':
          description: <b>Not Modified</b>
        '400':
          description: |-
            <b>Malformed Request</b>: malformed syntax. Possible causes include:
              - requested syntax is not available
        '403':
          description: '<b>Forbidden</b>: Supplied API key is not valid for this Request.'
        '410':
          description: '<b>Gone</b>: Request for unsupported format.'
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom Copyrights
            API service.
  '/map/{versionNumber}/staticimage':
    get:
      tags:
        - Raster
      summary: Static Image
      description: |-
        The Static Image service renders a rectangular raster image
        in the style, size, and zoom level specified. The image can be requested
        using either a center point plus width and height or a bounding box.
      parameters:
        - $ref: '#/components/parameters/versionNumber'
        - name: layer
          in: query
          description: |-
            Layer of the image to be rendered. <em>Hybrid</em> and <em>labels</em>
            are intended for layering with other data and are only available in <em>png</em> format.
          required: false
          schema:
            type: string
            enum:
              - basic
              - hybrid
              - labels
            default: basic
          example: basic
        - name: style
          in: query
          description: Map style to be returned.
          required: false
          schema:
            type: string
            enum:
              - main
              - night
            default: main
          example: main
        - name: format
          in: query
          description: Image format to be returned.
          required: false
          schema:
            type: string
            enum:
              - png
              - jpg
              - jpeg
            default: png
          example: png
        - name: zoom
          in: query
          description: Zoom level of map image to be returned.
          required: false
          schema:
            type: integer
            enum:
              - 0
              - 1
              - 2
              - 3
              - 4
              - 5
              - 6
              - 7
              - 8
              - 9
              - 10
              - 11
              - 12
              - 13
              - 14
              - 15
              - 16
              - 17
              - 18
              - 19
              - 20
              - 21
              - 22
            default: 12
        - name: center
          in: query
          description: |-
            Coordinates for the center point of the image.
            Must be used with the <strong>width</strong> and
            <strong>height</strong> parameters; cannot be used with <strong>bbox</strong>.
            Uses EPSG:3857 projection (functionally equivalent to EPSG:900910).
          required: false
          schema:
            type: string
            pattern: '^-*\d+\.*\d*, *-*\d+\.*\d*$'
          example: 4.899886, 52.379031
        - name: width
          in: query
          description: Width of the resulting image in pixels. Width must be a positive integer between 1 and 8192.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 8192
            default: 512
          example: 512
        - name: height
          in: query
          description: Height of the resulting image in pixels. Height must be a positive integer between 1 and 8192.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 8192
            default: 512
          example: 512
        - name: bbox
          in: query
          description: |-
            Bounding box for the image, using EPSG:3857 projection (functionally equivalent to EPSG:900910).
            Values <strong>must</strong> be in the order of minLon, minLat, maxLon, maxLat.
            MaxLat must be greater than minLat. Longitude values can be on both sides of the 180th meridian.
            Cannot be used with <strong>center</strong>, <strong>width</strong>, or <strong>height</strong> parameters.
          required: false
          schema:
            type: string
            pattern: '^(-*\d+\.*\d*,){3}(-*\d+\.*\d*)$'
        - name: view
          in: query
          description: Geopolitical view. Determines rendering of disputed areas. See the <a href="/maps-api/maps-api-documentation-raster/raster-tile">documentation</a> for an explanation of how this works in live services.
          required: false
          schema:
            type: string
            enum:
              - Unified
              - IN
          example: Unified
      responses:
        '200':
          description: <b>OK</b>
        '400':
          description: |-
            <b>Bad Request</b>: Received by the interface, but there is an error
            in the Request, such as:
              - one or more of the required parameters is missing
              - unsupported or unrecognized parameter value
              - two or more mutually exclusive parameters are used in the same query (e.g. mixing center/width/height and bbox.)
              - minimum latitude is greater than maximum latitude in a bbox call
              - layer containing alpha channel is requested in format not supporting the alpha channel

            This code is returned if the required parameters of the Request were
            malformed. A detailed exception explanation is returned in a
            Response in form of Service Exception Report.
        '403':
          description: |-
            <b>Forbidden</b>:
              - Supplied API key is not valid for the Request.
              - The requested view is not available in the country where the Request was sent from.
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the Static Map
            Service.
        '503':
          description: <b>Service currently unavailable.</b>
  '/map/2/copyrights/caption.json':
    get:
      tags:
        - Copyrights
      summary: Map Service Copyrights
      description: |-
        This API returns copyright captions for the map service.
        For the map service copyright request, the response body will contain a copyrights caption in JSON format.
      responses:
        '200':
          description: <b>OK</b>
        '304':
          description: <b>Not Modified</b>
        '400':
          description: |-
            <b>Malformed Request</b>: malformed syntax. Possible causes include:
              - requested syntax is not available
        '403':
          description: '<b>Forbidden</b>: Supplied API Key is not valid for this Request.'
        '410':
          description: '<b>Gone</b>: Request for unsupported format.'
        '500':
          description: |-
            <b>Internal Server Error</b>: There is a problem with the TomTom Copyrights
            API service.
security:
  - api_key: []
components:
  parameters:
    versionNumber:
      name: versionNumber
      in: path
      description: Version of the service to call. The current version is 1.
      required: true
      schema:
        type: integer
        enum:
          - 1
    resourceType:
      name: resourceType
      in: path
      description: The type of the requested resource.
      required: true
      schema:
        type: string
        enum:
          - style
          - sprite
          - glyph
  securitySchemes:
    api_key:
      type: apiKey
      in: query
      name: key
