Stadia Maps Roads API

The Roads API from Stadia Maps — 1 operation(s) for roads.

Operations 1

POST /nearest_roads/v1 Find the nearest roads to the set of input locations. #

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/stadia-maps-roads-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

stadia-maps-roads-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Confidently create beautiful maps for all your users with our tools. Choose your style from our library or build your own. With a rich palette of choices to fit any context and support for dozens of languages and scripts, you can deliver a quality experience for your customers no matter what part of the globe they call home. '
  version: 7.1.0
  title: Stadia Maps Roads API
  contact:
    name: Stadia Maps Support
    url: https://www.stadiamaps.com
    email: support@stadiamaps.com
servers:
- url: https://api.stadiamaps.com
- url: https://api-eu.stadiamaps.com
tags:
- name: Roads
paths:
  /nearest_roads/v1:
    post:
      tags:
      - Roads
      operationId: nearest-roads
      summary: Find the nearest roads to the set of input locations.
      description: The nearest roads API allows you query for detailed information about streets and intersections near the input locations.
      security:
      - ApiKeyAuth: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/nearestRoadsRequest'
      responses:
        '200':
          description: A list of streets and intersections that match the query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nearestRoadsResponse'
        '400':
          description: Bad request; more details will be included
components:
  schemas:
    speeds:
      type: object
      properties:
        predicted:
          type: boolean
          description: Does this edge have predicted (historical) speed records?
        constrained_flow:
          type: integer
          description: Speed when there is no traffic, in kph.
        free_flow:
          type: integer
          description: Speed when there is heavy traffic, in kph.
        type:
          type: string
          enum:
          - classified
          - tagged
          description: The type of speed which is used when setting default speeds. When `tagged`, the explicit `max_speed` tags from OpenStreetMap are being used. When `classified`, the values are being inferred from the highway classification.
        default:
          type: integer
          description: 'The default speed used for calculations. NOTE: Values greater than 250 are used for special cases and should not be treated as literal.'
    access:
      type: object
      properties:
        golf_cart:
          type: boolean
        wheelchair:
          type: boolean
        taxi:
          type: boolean
        HOV:
          type: boolean
        truck:
          type: boolean
        emergency:
          type: boolean
        pedestrian:
          type: boolean
        car:
          type: boolean
        bus:
          type: boolean
        bicycle:
          type: boolean
        motorcycle:
          type: boolean
        moped:
          type: boolean
    autoCostingOptions:
      allOf:
      - $ref: '#/components/schemas/baseCostingOptions'
      - type: object
        properties:
          height:
            type: number
            format: double
            description: The height of the automobile (in meters).
            default: 1.9
          width:
            type: number
            format: double
            description: The width of the automobile (in meters).
            default: 1.6
          toll_booth_cost:
            type: integer
            description: The estimated cost (in seconds) when a toll booth is encountered.
            default: 15
          toll_booth_penalty:
            type: integer
            description: A penalty (in seconds) applied to the route cost when a toll booth is encountered. This penalty can be used to reduce the likelihood of suggesting a route with toll booths unless absolutely necessary.
            default: 0
          ferry_cost:
            type: integer
            description: The estimated cost (in seconds) when a ferry is encountered.
            default: 300
          use_highways:
            type: number
            format: double
            description: A measure of willingness to take highways. Values near 0 attempt to avoid highways, and values near 1 will favour them. Note that as some routes may be impossible without highways, 0 does not guarantee avoidance of them.
            default: 0.5
            minimum: 0
            maximum: 1
          use_tolls:
            type: number
            format: double
            description: A measure of willingness to take toll roads. Values near 0 attempt to avoid tolls, and values near 1 will favour them. Note that as some routes may be impossible without tolls, 0 does not guarantee avoidance of them.
            default: 0.5
            minimum: 0
            maximum: 1
          use_tracks:
            $ref: '#/components/schemas/useTracksCostingOption'
          top_speed:
            type: integer
            description: The top speed (in kph) that the vehicle is capable of travelling.
            default: 140
            minimum: 10
            maximum: 252
          shortest:
            type: boolean
            description: If true changes the cost metric to be quasi-shortest (pure distance-based) costing. This will disable ALL other costing factors.
            default: false
          ignore_closures:
            type: boolean
            description: If true, ignores all known closures. This option cannot be set if `location.search_filter.exclude_closures` is also specified.
            default: false
          include_hov2:
            type: boolean
            description: If true, indicates the desire to include HOV roads with a 2-occupant requirement in the route when advantageous.
            default: false
          include_hov3:
            type: boolean
            description: If true, indicates the desire to include HOV roads with a 3-occupant requirement in the route when advantageous.
            default: false
          include_hot:
            type: boolean
            description: If true, indicates the desire to include toll roads which require the driver to pay a toll if the occupant requirement isn't met
            default: false
          alley_factor:
            type: number
            format: double
            description: A factor that multiplies the cost when alleys are encountered.
            default: 1
    geoAttributes:
      type: object
      properties:
        curvature:
          type: integer
          description: Curvature factor.
        max_down_slope:
          type: number
          format: float
          description: The maximum downward slope. Uses 1 degree precision for slopes to -16 degrees, and 4 degree precision afterwards (up to a max of -76 degrees).
        max_up_slope:
          type: number
          format: float
          description: The maximum upward slope. Uses 1 degree precision for slopes to 16 degrees, and 4 degree precision afterwards (up to a max of 76 degrees).
        weighted_grade:
          type: number
          format: float
          description: The weighted estimate of the grade.
        length:
          type: integer
          description: The length of the edge, in meters.
    locateEdgeInfo:
      type: object
      properties:
        mean_elevation:
          type: number
          format: float
          description: The mean elevation, in meters, relative to sea level.
        shape:
          type: string
          description: An encoded polyline (https://developers.google.com/maps/documentation/utilities/polylinealgorithm). Note that the polyline is always encoded with 6 digits of precision, whereas most implementations default to 5.
        names:
          type: array
          items:
            type: string
          description: A list of names that the edge goes by.
        bike_network:
          $ref: '#/components/schemas/bikeNetwork'
        way_id:
          type: integer
          description: The OSM way ID associated with this edge.
      required:
      - way_id
      - shape
    directionsOptions:
      type: object
      properties:
        units:
          $ref: '#/components/schemas/distanceUnit'
        language:
          $ref: '#/components/schemas/valhallaLanguages'
        directions_type:
          type: string
          enum:
          - none
          - maneuvers
          - instructions
          default: instructions
          description: The level of directional narrative to include. Locations and times will always be returned, but narrative generation verbosity can be controlled with this parameter.
    useFerryCostingOption:
      type: number
      format: double
      description: A measure of willingness to take ferries. Values near 0 attempt to avoid ferries, and values near 1 will favour them. Note that as some routes may be impossible without ferries, 0 does not guarantee avoidance of them.
      default: 0.5
      minimum: 0
      maximum: 1
    nodeId:
      type: object
      properties:
        id:
          type: integer
          format: int64
        value:
          type: integer
          format: int64
        tile_id:
          type: integer
          format: int64
        level:
          type: integer
    valhallaLanguages:
      type: string
      enum:
      - bg-BG
      - ca-ES
      - cs-CZ
      - da-DK
      - de-DE
      - el-GR
      - en-GB
      - en-US-x-pirate
      - en-US
      - es-ES
      - et-EE
      - fi-FI
      - fr-FR
      - hi-IN
      - hu-HU
      - it-IT
      - ja-JP
      - nb-NO
      - nl-NL
      - pl-PL
      - pt-BR
      - pt-PT
      - ro-RO
      - ru-RU
      - sk-SK
      - sl-SI
      - sv-SE
      - tr-TR
      - uk-UA
      default: en-US
    requestId:
      type: string
      description: An identifier to disambiguate requests (echoed by the server).
      example: kesklinn
    useTracksCostingOption:
      type: number
      format: double
      description: A measure of willingness to take track roads. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without track roads, 0 does not guarantee avoidance of them. The default value is 0 for automobiles, busses, and trucks; and 0.5 for all other costing modes.
      minimum: 0
      maximum: 1
    nodeType:
      type: string
      enum:
      - street_intersection
      - gate
      - bollard
      - toll_booth
      - multi_use_transit_stop
      - bike_share
      - parking
      - motor_way_junction
      - border_control
    distanceUnit:
      type: string
      enum:
      - km
      - mi
      default: km
    coordinate:
      type: object
      properties:
        lat:
          type: number
          format: double
          description: The latitude of a point in the shape.
          example: 59.436884
          minimum: -90
          maximum: 90
        lon:
          type: number
          format: double
          description: The longitude of a point in the shape.
          example: 24.742595
          minimum: -180
          maximum: 180
      required:
      - lat
      - lon
    locateEdge:
      type: object
      properties:
        edge_id:
          $ref: '#/components/schemas/nodeId'
        way_id:
          type: integer
          description: The OSM way ID associated with this edge (absent in verbose response; see the edge info).
        correlated_lat:
          type: number
          format: double
        correlated_lon:
          type: number
          format: double
        percent_along:
          type: number
          format: double
        side_of_street:
          type: string
          enum:
          - left
          - right
          - neither
        linear_reference:
          type: string
          description: A base64-encoded [OpenLR location reference](https://www.openlr-association.com/fileadmin/user_upload/openlr-whitepaper_v1.5.pdf), for a graph edge of the road network matched by the query.
        outbound_reach:
          type: integer
        heading:
          type: number
          format: float
        inbound_reach:
          type: integer
        distance:
          type: number
          format: float
        predicted_speeds:
          type: array
          items:
            type: integer
          description: Predicted speed information based on historical data. If available, this will include 2016 entries. Each entry represents 5 minutes, where the first entry represents midnight on Monday, the second entry represents 00:05 on Monday, etc.
        edge_info:
          $ref: '#/components/schemas/locateEdgeInfo'
        edge:
          $ref: '#/components/schemas/locateDetailedEdge'
        warnings:
          type: array
          items:
            type: string
      required:
      - correlated_lat
      - correlated_lon
      - side_of_street
      - percent_along
    locateNode:
      allOf:
      - $ref: '#/components/schemas/coordinate'
      - type: object
        properties:
          traffic_signal:
            type: boolean
          type:
            $ref: '#/components/schemas/nodeType'
          node_id:
            $ref: '#/components/schemas/nodeId'
          access:
            $ref: '#/components/schemas/access'
          edge_count:
            type: integer
          administrative:
            $ref: '#/components/schemas/administrative'
          intersection_type:
            type: string
            enum:
            - regular
            - false
            - dead-end
            - fork
          density:
            type: integer
          local_edge_count:
            type: integer
          mode_change:
            type: boolean
    costingModel:
      type: string
      enum:
      - auto
      - bus
      - taxi
      - truck
      - bicycle
      - bikeshare
      - motor_scooter
      - motorcycle
      - pedestrian
      - low_speed_vehicle
      description: 'A model which influences the routing based on the type of travel. The costing model affects parameters ranging from which roads are legally accessible to preferences based on comfort or speed.

        See https://valhalla.github.io/valhalla/api/turn-by-turn/api-reference/#costing-models for in-depth descriptions of each costing model.'
    truckCostingOptions:
      allOf:
      - $ref: '#/components/schemas/autoCostingOptions'
      - type: object
        properties:
          height:
            type: number
            format: double
            description: The height of the truck (in meters).
            default: 4.11
          width:
            type: number
            format: double
            description: The width of the truck (in meters).
            default: 2.6
          length:
            type: number
            format: double
            description: The length of the truck (in meters).
            default: 21.64
          weight:
            type: number
            format: double
            description: The weight of the truck (in tonnes).
            default: 21.77
          axle_load:
            type: number
            format: double
            description: The axle load of the truck (in tonnes).
            default: 9.07
          hazmat:
            type: boolean
            description: Whether or not the truck is carrying hazardous materials.
            default: false
    bicycleCostingOptions:
      allOf:
      - $ref: '#/components/schemas/baseCostingOptions'
      - type: object
        properties:
          bicycle_type:
            type: string
            enum:
            - Road
            - Hybrid
            - Cross
            - Mountain
            default: Hybrid
            description: 'The type of bicycle:

              * Road: has narrow tires and is generally lightweight and designed for speed on paved surfaces * Hybrid or City: designed for city riding or casual riding on roads and paths with good surfaces * Cross: similar to a road bike, but has wider tires so it can handle rougher surfaces * Mountain: able to handle most surfaces, but generally heavier and slower on paved surfaces'
          cycling_speed:
            type: integer
            description: "The average comfortable travel speed (in kph) along smooth, flat roads. The costing will vary the speed based on the surface, bicycle type, elevation change, etc. This value should be the average sustainable cruising speed the cyclist can maintain over the entire route.\nThe default speeds are as follows based on bicycle type:\n  * Road - 25kph\n  * Cross - 20kph\n  * Hybrid - 18kph\n  * Mountain - 16kph"
          use_roads:
            type: number
            format: double
            description: A measure of willingness to use roads alongside other vehicles. Values near 0 attempt to avoid roads and stay on cycleways, and values near 1 indicate the cyclist is more comfortable on roads.
            default: 0.5
            minimum: 0
            maximum: 1
          use_hills:
            $ref: '#/components/schemas/useHillsCostingOption'
          avoid_bad_surfaces:
            type: number
            format: double
            description: A measure of how much the cyclist wants to avoid roads with poor surfaces relative to the type of bicycle being ridden. When 0, there is no penalization of roads with poorer surfaces, and only bicycle speed is taken into account. As the value approaches 1, roads with poor surfaces relative to the bicycle type receive a heaver penalty, so they will only be taken if they significantly reduce travel time. When the value is 1, all bad surfaces are completely avoided from the route, including the start and end points.
            default: 0.25
            minimum: 0
            maximum: 1
          bss_return_cost:
            type: integer
            description: The estimated cost (in seconds) to return a bicycle in `bikeshare` mode.
            default: 120
          bss_return_penalty:
            type: integer
            description: A penalty (in seconds) to return a bicycle in `bikeshare` mode.
            default: 0
    locateDetailedEdge:
      type: object
      properties:
        sidewalk_left:
          type: boolean
          description: Is there a sidewalk to the left of the edge?
        sidewalk_right:
          type: boolean
          description: Is there a sidewalk to the right of the edge?
        lane_count:
          type: integer
        stop_sign:
          type: boolean
          description: Is there a stop sign at end of the directed edge?
        sac_scale:
          type: string
          enum:
          - none
          - hiking
          - mountain hiking
          - demanding mountain hiking
          - alpine hiking
          - demanding alpine hiking
          - difficult alpine hiking
        yield_sign:
          type: boolean
          description: Is there a yield sign at end of the directed edge?
        not_thru:
          type: boolean
          description: Does the edge lead to a "no-through" region?
        forward:
          type: boolean
          description: Is the edge info forward? If false, then reverse is implied.
        end_node:
          $ref: '#/components/schemas/nodeId'
        truck_route:
          type: boolean
          description: Is the edge part of a truck route/network?
        speeds:
          $ref: '#/components/schemas/speeds'
        bike_network:
          type: boolean
          description: Is the edge part of a bicycle network?
        round_about:
          type: boolean
          description: Is the edge part of a roundabout?
        traffic_signal:
          type: boolean
          description: Is there a traffic signal at the end of the directed edge?
        access_restriction:
          type: boolean
          description: Is there a general restriction or access condition?
        destination_only:
          type: boolean
          description: Is the edge destination only? If so, it will not be routed through.
        geo_attributes:
          $ref: '#/components/schemas/geoAttributes'
        start_restriction:
          $ref: '#/components/schemas/restrictions'
        cycle_lane:
          type: string
          description: Indication of the type of cycle lane (if any) present along an edge.
          enum:
          - none
          - shared
          - dedicated
          - separated
        end_restriction:
          $ref: '#/components/schemas/restrictions'
        seasonal:
          type: boolean
          description: Is access seasonal (ex. no access in winter)?
        country_crossing:
          type: boolean
          description: Does the edge cross into a new country?
        part_of_complex_restriction:
          type: boolean
          description: Is the edge part of a complex restriction?
        has_sign:
          type: boolean
          description: Do exit signs exist for the edge?
        access:
          $ref: '#/components/schemas/restrictions'
        bridge:
          type: boolean
          description: Is the edge part of a bridge?
        classification:
          $ref: '#/components/schemas/highwayClassification'
        toll:
          type: boolean
          description: Is the edge a toll road?
        tunnel:
          type: boolean
          description: Is the edge a tunnel?
    motorScooterCostingOptions:
      allOf:
      - $ref: '#/components/schemas/autoCostingOptions'
      - type: object
        properties:
          use_primary:
            type: number
            format: double
            description: A measure of willingness to use primary roads. Values near 0 attempt to avoid primary roads and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.
            default: 0.5
            minimum: 0
            maximum: 1
          use_hills:
            type: number
            format: double
            description: A measure of willingness to take tackle hills. Values near 0 attempt to avoid hills and steeper grades even if it means a longer route, and values near 1 indicates that the rider does not fear them. Note that as some routes may be impossible without hills, 0 does not guarantee avoidance of them.
            default: 0.5
            minimum: 0
            maximum: 1
    bikeNetwork:
      type: object
      properties:
        mountain:
          type: boolean
        local:
          type: boolean
        regional:
          type: boolean
        national:
          type: boolean
    motorcycleCostingOptions:
      allOf:
      - $ref: '#/components/schemas/autoCostingOptions'
      - type: object
        properties:
          use_highways:
            type: number
            format: double
            description: A measure of willingness to use highways. Values near 0 attempt to avoid highways and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.
            default: 1
            minimum: 0
            maximum: 1
          use_trails:
            type: number
            format: double
            description: A measure of the rider's sense of adventure. Values near 0 attempt to avoid highways and stay on roads with potentially unsuitable terrain (trails, tracks, unclassified, or bad surfaces), and values near 1 will tend to avoid major roads and route on secondary roads.
            default: 0
            minimum: 0
            maximum: 1
    costingOptions:
      type: object
      properties:
        auto:
          $ref: '#/components/schemas/autoCostingOptions'
        bus:
          $ref: '#/components/schemas/autoCostingOptions'
        taxi:
          $ref: '#/components/schemas/autoCostingOptions'
        truck:
          $ref: '#/components/schemas/truckCostingOptions'
        bicycle:
          $ref: '#/components/schemas/bicycleCostingOptions'
        motor_scooter:
          $ref: '#/components/schemas/motorScooterCostingOptions'
        motorcycle:
          $ref: '#/components/schemas/motorcycleCostingOptions'
        pedestrian:
          $ref: '#/components/schemas/pedestrianCostingOptions'
        low_speed_vehicle:
          $ref: '#/components/schemas/lowSpeedVehicleCostingOptions'
    nearestRoadsResponse:
      type: array
      items:
        $ref: '#/components/schemas/locateObject'
      example:
      - input_lon: 24.742595
        input_lat: 59.436884
        nodes: []
        edges:
        - predicted_speeds: []
          linear_reference: KxGYOypEIXriAAAcABo6Uow=
          edge_info:
            speed_limit: 0
            shape: '{zvjpBwtden@zG`H~EdG'
            names:
            - Rataskaevu
            bike_network:
              mountain: false
              local: false
              regional: false
              national: false
            mean_elevation: 36
            way_id: 4853850
          edge_id:
            id: 1800
            value: 60404861586
            tile_id: 860498
            level: 2
          edge:
            sidewalk_left: false
            sidewalk_right: false
            lane_count: 1
            not_thru: false
            forward: false
            bike_network: false
            round_about: false
            access:
              truck: true
              pedestrian: true
              wheelchair: true
              taxi: true
              HOV: true
              emergency: false
              motorcycle: true
              car: true
              moped: true
              bus: true
              bicycle: true
              golf_cart: true
            bridge: false
            tunnel: false
            destination_only: false
            seasonal: false
            classification:
              internal: false
              link: false
              surface: paved
              use: living_street
              classification: service_other
            toll: false
            has_sign: false
            country_crossing: false
            part_of_complex_restriction: false
            cycle_lane: none
            end_restriction:
              truck: false
              pedestrian: false
              wheelchair: false
              taxi: false
              HOV: false
              emergency: false
              motorcycle: false
              car: false
              moped: false
              bus: false
              bicycle: false
            geo_attributes:
              curvature: 5
              max_down_slope: -7
              max_up_slope: 0
              weighted_grade: -6.67
              length: 32
            start_restriction:
              truck: false
              pedestrian: false
              wheelchair: false
              taxi: false
              HOV: false
              emergency: false
              motorcycle: false
              car: false
              moped: false
              bus: false
              bicycle: false
            traffic_signal: false
            access_restriction: false
            truck_route: false
            speeds:
              predicted: false
              constrained_flow: 0
              free_flow: 0
              type: classified
              default: 20
            end_node:
              id: 2895
              value: 97146964626
              tile_id: 860498
              level: 2
          inbound_reach: 50
          distance: 2.2
          percent_along: 0.54802
          side_of_street: neither
          outbound_reach: 50
          correlated_lon: 24.74263
          live_speed: {}
          correlated_lat: 59.436875
        - predicted_speeds: []
          linear_reference: KxGYSCpELHryAP/l/+k6QnM=
          edge_info:
            speed_limit: 0
            shape: '{zvjpBwtden@zG`H~EdG'
            names:
            - Rataskaevu
            bike_network:
              mountain: false
              local: false
              regional: false
              national: false
            mean_elevation: 36
            way_id: 4853850
          edge_id:
            id: 7368
            value: 247235938962
            tile_id: 860498
            level: 2
          edge:
            sidewalk_left: false
            sidewalk_right: false
            lane_count: 1
            not_thru: false
            forward: true
            bike_network: false
            round_about: false
            access:
              truck: true
              pedestrian: true
              wheelchair: true
              taxi: true
              HOV: true
              emergency: false
              motorcycle: true
              car: true
              moped: true
              bus: true
              bicycle: true
            bridge: false
            tunnel: false
            destination_only: false
            seasonal: false
            classification:
              internal: false
              link: false
              surface: paved
              use: living_street
              classification: service_other
            toll: false
            has_sign: false
            country_crossing: false
            part_of_complex_restriction: false
            cycle_lane: none
            end_restriction:
              truck: false
              pedestrian: false
              wheelchair: false
              taxi: false
              HOV: false
              emergency: false
              motorcycle: false
              car: false
              moped: false
              bus: false
              bicycle: false
            geo_attributes:
              curvature: 5
              max_down_slope: 0
              max_up_slope: 7
              weighted_grade: 6.67
              length: 32
            start_restriction:
              truck: false
              pedestrian: false
              wheelchair: false
              taxi: false
              HOV: false
              emergency: false
              motorcycle: false
              car: false
              moped: false
              bus: false
              bicycle: false
            traffic_signal: false
            access_restriction: false
            truck_route: false
            speeds:
              predicted: false
              constrained_flow: 0
              free_flow: 0
              type: classified
              default: 20
            end_node:
              id: 819
              value: 27487963794
              tile_id: 860498
              level: 2
          inbound_reach: 50
          distance: 2.2
          percent_along: 0.45198
          side_of_street: neither
          outbound_reach: 50
          correlated_lon: 24.74263
          live_speed: {}
          correlated_lat: 59.436875
    highwayClassification:
      type: object
      properties:
        internal:
          type: boolean
          description: Is the edge internal to an intersection?
        link:
          type: boolean
          description: Is the edge a ramp or turn channel?
        surface:
          type: string
          description: A representation of the smoothness of the highway. This is used for costing and access checks based on the vehicle type.
          enum:
          - paved_smooth
          - paved
          - paved_rough
          - compacted
          - dirt
          - gravel
          - path
          - impassable
        use:
          type: string
          enum:
          - road
          - ramp
          - turn_channel
          - track
          - driveway
          - alley
          - parking_aisle
          - emergency_access
          - drive_through
          - culdesac
          - living_street
          - service_road
          - cycleway
          - mountain_bike
          - sidewalk
          - footway
          - elevator
          - steps
          - escalator
          - path
          - pedestrian
          - bridleway
          - pedestrian_crossing
          - rest_area
          - service_area
          - other
          - rail
          - ferry
          - rail-ferry
          - bus
          - egress_connection
          - platform_connnection
          - transit_connection
          - construction
        classification:
          type: string
          description: The classification/importance of the road/path. Used for a variety of purposes including fallback speed estimation and access for certain vehicle types.
          enum:
          - motorway
          - trunk
          - primary
          - secondary
          - tertiary
          - unclassified
          - residential
          - service_other
    nearestRoadsRequest:
      allOf:
      - type: object
        properties:
          locations:
            type: array
            items:
              $ref: '#/components/schemas/coordinate'
            minItems: 1
          costing:
     

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stadia-maps/refs/heads/main/openapi/stadia-maps-roads-api-openapi.yml