openapi: 3.1.1
info:
  title: Ola Maps API Reference
  version: 1.0.0
  description: >
    Welcome to the Ola Maps API documentation! 

    Our comprehensive suite of APIs includes Routing, Roads, Places, Geocode,
    Geofencing, Elevation, and Tiles APIs to power your location-based
    applications. 

    Use the navigation to browse the API references and try them out
    interactively using the UI provided for each endpoint.


    Ola Maps APIs are designed to provide accurate, reliable, and scalable
    location services for businesses of all sizes. Whether you're building a
    ride-hailing application, delivery service, fleet management system, or any
    location-based service, our APIs offer the tools you need to create
    exceptional user experiences.


    Key features of our APIs include:

    - High accuracy and coverage across India

    - Low latency responses for real-time applications

    - Comprehensive documentation and examples

    - Flexible authentication options (API key or OAuth)

    - Scalable infrastructure to handle high-volume requests


    For authentication details, please refer to our Authentication section in
    the documentation. If you need assistance or have questions, our support
    team is available to help you integrate Ola Maps into your applications.
servers:
  - description: Ola Maps API Server
    url: https://api.olamaps.io
    x-internal: true
security:
  - api_key_credential: []
  - client_credential: []
tags:
  - name: Routing APIs
    description: >
      Ola Maps Routing APIs offer a suite of services for route planning,
      navigation, fleet optimization, and travel time estimation across various
      mobility scenarios.

      - **Directions :**  Generates turn-by-turn directions between two or more
      points with support for different travel modes, traffic conditions, and
      detailed step instructions.

      - **Distance Matrix :**  Calculates distance and estimated travel time
      between multiple origins and destinations in a matrix layout, supporting
      batch routing use cases.

      - **Route Optimizer :**  Reorders a list of waypoints to generate the most
      time-efficient route for a single vehicle. Useful in delivery sequencing
      and ride-sharing.

      - **Fleet Planner :**  Assigns and optimizes package routes across a fleet
      of vehicles, balancing constraints like vehicle capacity, working hours,
      and geographic coverage to minimize overall cost.

      <br/> <br/> These APIs are perfect for ride-hailing, delivery, logistics,
      and fleet management applications.

      Designed for reliability, scalability, and real-time performance, the APIs
      enable intelligent transportation and logistics solutions at scale.
  - name: Roads APIs
    description: >
      The Roads API offers developers a comprehensive solution for interacting
      with road data, enabling applications to precisely map vehicle paths and
      identify nearby roads. With features like "Snap to Road", "Nearest Roads"
      and "Speed Limits", these APIs are ideal for applications that require
      accurate road data for navigation, mapping, and tracking.
  - name: Places APIs
    description: >
      OLA Maps Places API offers several APIs useful for building a complete and
      intelligent place search experience by providing users with the ability to
      find places, addresses, and administrative regions.  These APIs return
      relevance-ranked results based on user input and location, making them
      ideal for navigation, local discovery, and various location-based
      applications.
  - name: Geocode APIs
    description: >
      OLA Maps Geocoding API offers a set of APIs that enable both forward and
      reverse geocoding, forming a core part of any location intelligence
      system.  These APIs allow users to convert addresses into geographic
      coordinates (forward geocoding) and retrieve address details from
      coordinates (reverse geocoding).  Designed for accuracy and performance,
      they are essential for applications involving mapping, routing, location
      tagging, and spatial analysis.
  - name: Geofencing APIs
    description: >
      OLA Maps Geofence APIs provide a solution for businesses to create and
      manage virtual boundaries on a map, commonly known as geofences.

      These APIs provide the users an ability to create virtual boundaries and
      use them to trigger location-based actions, enforce spatial rules, or
      analyze movement patterns.

      Geofence APIs offer the spatial awareness needed to build smart,
      responsive applications—whether it's for tracking assets, optimizing fleet
      routes, or creating personalized location-based experiences.
  - name: Elevation APIs
    description: >
      OLA Maps Elevation API provides accurate elevation data for any location
      on the Earth's surface. 

      By inputting geographic coordinates, this API returns the elevation above
      sea level, enabling developers to incorporate terrain information into
      their applications.

      <strong>Note:</strong> These API are currently limited to India.
  - name: Tiles APIs
    description: >-
      The Map Tiles API enables developers to retrieve and integrate various
      types of map tiles—such as vector tiles, raster tiles, and static
      pre-rendered tiles—into web and mobile applications.  These tiles are
      optimized for performance and scalability, supporting smooth zooming,
      panning, and styling.  With compatibility across platforms and rendering
      engines like MapLibre GL and Mapbox GL, the API allows for building rich,
      interactive, and visually consistent geospatial experiences tailored to
      different use cases.
  - name: Street View APIs
    description: >-
      The Street View API is a powerful tool that enables developers to embed
      immersive, 360-degree panoramic street-level imagery into their web or
      mobile applications.  It allows users to virtually explore real-world
      locations as if they were physically present, enhancing the experience
      with interactive navigation.  This API is ideal for applications involving
      travel, real estate, navigation, or local discovery, offering seamless
      integration of high-resolution visuals to provide context, familiarity,
      and engagement directly within your platform.
paths:
  /routing/v1/directions:
    post:
      tags:
        - Routing APIs
      summary: Directions API
      description: >
        Computes an optimal route between two or more locations using Ola Maps'
        advanced routing engine.  It provides detailed turn-by-turn navigation,
        step instructions, distance, duration, and real-time traffic congestion
        insights when requested.
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique request ID for tracing and logging.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlation ID for distributed tracing across systems.
        - name: origin
          in: query
          required: true
          schema:
            type: string
          example: 28.638555,76.965502
          description: Origin coordinates in the format lat,lng.
        - name: destination
          in: query
          required: true
          schema:
            type: string
          example: 28.539669,77.051907
          description: Destination coordinates in the format lat,lng.
        - name: waypoints
          in: query
          required: false
          schema:
            type: string
          example: 28.638555,76.965502|28.539669,77.051907
          description: >-
            Optional waypoints joined by '|' separator in lat,lng format. Up to
            25 waypoints.
        - name: mode
          in: query
          required: false
          schema:
            type: string
            default: driving
          description: Travel mode - `driving`, `walking`, `bike`, or `auto`.
        - name: alternatives
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: Whether multiple routes should be returned.
        - name: steps
          in: query
          required: false
          schema:
            type: boolean
            default: true
          description: Whether step-by-step instructions are included.
        - name: overview
          in: query
          required: false
          schema:
            type: string
            default: full
          description: Level of overview geometry - `full`, `simplified`, or `false`.
        - name: language
          in: query
          required: false
          schema:
            type: string
            default: en
          description: >-
            Response language - `bn` (Bengali), `en` (English), `gu` (Gujarati),
            `hi` (Hindi), `kn` (Kannada), `ml` (Malayalam), `mr` (Marathi), `or`
            (Oriya), `sa` (Sanskrit), `ta` (Tamil), `te` (Telugu), `ur` (Urdu).
        - name: traffic_metadata
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >
            Include traffic congestion metadata in the response. If set to true,
            the response will contain congestion types (via `travel_advisory`), 
            but only when the `overview` parameter is also set to "full".
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      responses:
        '200':
          description: OK - Route successfully generated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  geocoded_waypoints:
                    type: array
                    description: Waypoints converted into geographic coordinates.
                    items:
                      type: object
                      properties:
                        geocoder_status:
                          type: string
                          example: OK
                          description: Status of geocoding (e.g., OK, ZERO_RESULTS).
                        place_id:
                          type: string
                          example: tdqcey303
                          description: Unique place ID or geohash.
                        types:
                          type: array
                          items:
                            type: string
                          description: Types of location (e.g., street_address).
                  routes:
                    type: array
                    description: >
                      List of route options. A route is a set of directions and
                      instructions for traveling from a source to a destination.
                    items:
                      type: object
                      properties:
                        legs:
                          type: array
                          description: >
                            A leg represents a segment of the route between two
                            consecutive waypoints and provides details such as
                            distance, duration, and step-by-step instructions
                            for that segment.
                          items:
                            type: object
                            properties:
                              distance:
                                type: number
                                example: 3836
                                description: Distance covered in this leg (in meters).
                              readable_distance:
                                type: string
                                example: 3 km 800 metres
                                description: Human-readable representation of the distance.
                              duration:
                                type: number
                                example: 698
                                description: Duration of the leg in seconds.
                              readable_duration:
                                type: string
                                example: 14 mins
                                description: Human-readable duration.
                              start_address:
                                type: string
                                description: Address of the starting point.
                              end_address:
                                type: string
                                description: Address of the ending point.
                              start_location:
                                type: object
                                description: Coordinates of the starting point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.909342
                                  lng:
                                    type: number
                                    example: 77.621689
                              end_location:
                                type: object
                                description: Coordinates of the ending point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.933972
                                  lng:
                                    type: number
                                    example: 77.611342
                              steps:
                                type: array
                                description: >
                                  Steps in a leg provide detailed, turn-by-turn
                                  navigation instructions for a specific 
                                  segment of the journey. Each step outlines
                                  specific actions and includes information on
                                  the distance and duration.
                                items:
                                  type: object
                                  properties:
                                    distance:
                                      type: number
                                      example: 476
                                      description: Distance of the step in meters.
                                    readable_distance:
                                      type: string
                                      example: 0.5 km
                                      description: Readable step distance.
                                    duration:
                                      type: number
                                      example: 99
                                      description: Step duration in seconds.
                                    readable_duration:
                                      type: string
                                      example: 0 hours 2 min
                                      description: Human-readable step duration.
                                    instructions:
                                      type: string
                                      example: Head west on NH48
                                      description: Navigation instructions.
                                    maneuver:
                                      type: string
                                      example: turn-right
                                      description: >-
                                        Type of turn or action to be performed
                                        at the step.
                                    bearing_before:
                                      type: number
                                      example: 0
                                      description: >
                                        Bearing before maneuver. The direction
                                        the traveler faces before the maneuver,
                                        expressed in degrees  relative to true
                                        north.
                                    bearing_after:
                                      type: number
                                      example: 259
                                      description: Bearing after maneuver.
                                    start_location:
                                      type: object
                                      description: Coordinates before step begins.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90934
                                        lng:
                                          type: number
                                          example: 77.62169
                                    end_location:
                                      type: object
                                      description: Coordinates after step ends.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90871
                                        lng:
                                          type: number
                                          example: 77.62158
                        summary:
                          type: string
                          description: Summary of the route.
                          example: ''
                        warnings:
                          type: array
                          items:
                            type: string
                          description: Any route-specific warnings (e.g., toll roads).
                        overview_polyline:
                          type: string
                          example: u`nAoc~uMeg...
                          description: >
                            Encoded polyline string of coordinates, that
                            outlines the path of the route, allowing for a
                            high-level visualization on a map.
                        travel_advisory:
                          type: string
                          example: 0,1,0 | 1,3,15
                          description: >
                            Traffic congestion advisories.

                            A pipeline-separated string containing congestion
                            data for the route. This field appears only if
                            `overview` is set to "full" and `traffic_metadata`
                            is true.

                            **Format:**
                            _<start_index,end_index,traffic_congestion_classification>|<start_index,end_index,traffic_congestion_classification>|..._

                            Where **start_index** and **end_index** are indexes
                            from the decoded **overview_polyline**.

                            - **Congestion levels:**

                            - **NORMAL:** 0   - **MODERATE:** 5   - **HEAVY:**
                            10   - **JAM:** 15

                            - _Note: The travel_advisory always starts from
                            index 0._
                        bounds:
                          type: string
                          description: Bounding box that encompasses the entire route.
                        copyrights:
                          type: string
                          example: OLA Map data ©2025
                          description: Copyright information.
                  status:
                    type: string
                    example: OK
                    description: Indicates the overall status of the request.
                  source_from:
                    type: string
                    example: Ola Maps
                    description: Source of the routing service.
        '400':
          description: >
            The request was malformed or missing required parameters (e.g.,
            origin or destination not provided or in an invalid format).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Invalid/missing origin
                    description: >-
                      Description of what caused the request to be considered
                      invalid.
                  request_type:
                    type: string
                    example: directions
                    description: Indicates the API that was called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: >-
                      Unique identifier for the request, useful for debugging
                      and tracing.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Indicates that the error was due to a client-side issue.
        '500':
          description: >
            A server-side error occurred while processing the request (e.g.,
            routing engine failure or internal exception).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: No serviceable boundary found for GeoPoints
                    description: >-
                      Explanation of the server-side issue that caused the
                      failure.
                  request_type:
                    type: string
                    example: directions
                    description: Indicates the API that was called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Unique request ID for tracing the issue in logs.
                  status:
                    type: string
                    example: FAILURE
                    description: Indicates a failure on the server side.
  /routing/v1/directions/basic:
    post:
      tags:
        - Routing APIs
      summary: Directions Basic API
      description: >
        Provides a lightweight route between two or more points with essential
        metadata such as distance, duration, and geometry. This excludes
        real-time traffic data.
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique request ID for tracing and logging.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlation ID for distributed tracing across systems.
        - name: origin
          in: query
          required: true
          schema:
            type: string
          example: 28.638555,76.965502
          description: Origin coordinates in the format lat,lng.
        - name: destination
          in: query
          required: true
          schema:
            type: string
          example: 28.539669,77.051907
          description: Destination coordinates in the format lat,lng.
        - name: waypoints
          in: query
          required: false
          schema:
            type: string
          example: 28.638555,76.965502|28.539669,77.051907
          description: >-
            Optional waypoints joined by '|' separator in lat,lng format. Up to
            10 waypoints.
        - name: alternatives
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: Whether multiple routes should be returned.
        - name: steps
          in: query
          required: false
          schema:
            type: boolean
            default: true
          description: Whether step-by-step instructions are included.
        - name: overview
          in: query
          required: false
          schema:
            type: string
            default: full
          description: Level of overview geometry - full, simplified, or false.
        - name: language
          in: query
          required: false
          schema:
            type: string
            default: en
          description: >-
            Response language - `bn` (Bengali), `en` (English), `gu` (Gujarati),
            `hi` (Hindi), `kn` (Kannada), `ml` (Malayalam), `mr` (Marathi), `or`
            (Oriya), `sa` (Sanskrit), `ta` (Tamil), `te` (Telugu), `ur` (Urdu).
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  geocoded_waypoints:
                    type: array
                    description: Waypoints converted into geographic coordinates.
                    items:
                      type: object
                      properties:
                        geocoder_status:
                          type: string
                          example: OK
                          description: Status of geocoding (e.g., OK, ZERO_RESULTS).
                        place_id:
                          type: string
                          example: tdqcey303
                          description: Unique place ID or geohash.
                        types:
                          type: array
                          items:
                            type: string
                          description: Types of location (e.g., street_address).
                  routes:
                    type: array
                    description: >
                      List of route options. A route is a set of directions and
                      instructions for traveling from a source to a destination.
                    items:
                      type: object
                      properties:
                        legs:
                          type: array
                          description: >
                            A leg represents a segment of the route between two
                            consecutive waypoints and provides details such as
                            distance, duration, and step-by-step instructions
                            for that segment.
                          items:
                            type: object
                            properties:
                              distance:
                                type: number
                                example: 3836
                                description: Distance covered in this leg (in meters).
                              readable_distance:
                                type: string
                                example: 3 km 800 metres
                                description: Human-readable representation of the distance.
                              duration:
                                type: number
                                example: 698
                                description: Duration of the leg in seconds.
                              readable_duration:
                                type: string
                                example: 14 mins
                                description: Human-readable duration.
                              start_address:
                                type: string
                                description: Address of the starting point.
                              end_address:
                                type: string
                                description: Address of the ending point.
                              start_location:
                                type: object
                                description: Coordinates of the starting point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.909342
                                  lng:
                                    type: number
                                    example: 77.621689
                              end_location:
                                type: object
                                description: Coordinates of the ending point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.933972
                                  lng:
                                    type: number
                                    example: 77.611342
                              steps:
                                type: array
                                description: >
                                  Steps in a leg provide detailed, turn-by-turn
                                  navigation instructions for a specific 
                                  segment of the journey. Each step outlines
                                  specific actions and includes information on
                                  the distance and duration.
                                items:
                                  type: object
                                  properties:
                                    distance:
                                      type: number
                                      example: 476
                                      description: Distance of the step in meters.
                                    readable_distance:
                                      type: string
                                      example: 0.5 km
                                      description: Readable step distance.
                                    duration:
                                      type: number
                                      example: 99
                                      description: Step duration in seconds.
                                    readable_duration:
                                      type: string
                                      example: 0 hours 2 min
                                      description: Human-readable step duration.
                                    instructions:
                                      type: string
                                      example: Head west on NH48
                                      description: Navigation instructions.
                                    maneuver:
                                      type: string
                                      example: turn-right
                                      description: >-
                                        Type of turn or action to be performed
                                        at the step.
                                    bearing_before:
                                      type: number
                                      example: 0
                                      description: >
                                        Bearing before maneuver. The direction
                                        the traveler faces before the maneuver,
                                        expressed in degrees  relative to true
                                        north.
                                    bearing_after:
                                      type: number
                                      example: 259
                                      description: Bearing after maneuver.
                                    start_location:
                                      type: object
                                      description: Coordinates before step begins.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90934
                                        lng:
                                          type: number
                                          example: 77.62169
                                    end_location:
                                      type: object
                                      description: Coordinates after step ends.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90871
                                        lng:
                                          type: number
                                          example: 77.62158
                        summary:
                          type: string
                          description: Summary of the route.
                          example: ''
                        warnings:
                          type: array
                          items:
                            type: string
                          description: Any route-specific warnings (e.g., toll roads).
                        overview_polyline:
                          type: string
                          example: u`nAoc~uMeg...
                          description: >
                            Encoded polyline string of coordinates, that
                            outlines the path of the route, allowing for a
                            high-level visualization on a map.
                        bounds:
                          type: string
                          description: Bounding box that encompasses the entire route.
                        copyrights:
                          type: string
                          example: OLA Map data ©2025
                          description: Copyright information.
                  status:
                    type: string
                    example: OK
                    description: Indicates the overall status of the request.
                  source_from:
                    type: string
                    example: Ola Maps
                    description: Source of the routing service.
        '400':
          description: >
            The request was malformed or missing required parameters (e.g.,
            origin or destination not provided or in an invalid format).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Invalid/missing origin
                    description: >-
                      Description of what caused the request to be considered
                      invalid.
                  request_type:
                    type: string
                    example: directionsBasicApi
                    description: Indicates the API that was called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: >-
                      Unique identifier for the request, useful for debugging
                      and tracing.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Indicates that the error was due to a client-side issue.
        '422':
          description: >
            The request was syntactically correct but semantically invalid
            (e.g., unsupported coordinates or out-of-coverage area).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: No serviceable boundary found for GeoPoints
                    description: Explanation of why the request could not be processed.
                  request_type:
                    type: string
                    example: directionsBasicApi
                    description: Name of the API endpoint being called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Unique identifier for the request.
                  status:
                    type: string
                    example: FAILURE
                    description: >-
                      Type of error encountered, typically FAILURE for
                      server-side issues.
        '500':
          description: >
            A server-side error occurred while processing the request (e.g.,
            routing engine failure or internal exception).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: For any server side errors
                    description: >-
                      Explanation of the server-side issue that caused the
                      failure.
                  request_type:
                    type: string
                    example: directionsBasicApi
                    description: Indicates the API that was called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Unique request ID for tracing the issue in logs.
                  status:
                    type: string
                    example: FAILURE
                    description: Indicates a failure on the server side.
  /routing/v1/distanceMatrix:
    get:
      tags:
        - Routing APIs
      summary: Distance Matrix API
      description: >
        Provides distance and ETA between multiple origin and destination
        points. If there are `x` origins and `y` destinations, the response
        includes `x × y` origin–destination pairs, with a maximum of **50**
        pairs per request (`x × y ≤ 50`). This API is optimized for batch
        distance/ETA lookups; response latency may increase with larger
        matrices.
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique ID for tracing requests across systems.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlation ID for distributed tracing across systems.
        - name: origins
          in: query
          required: true
          schema:
            type: string
          example: 28.718667,77.036997|28.638555,76.965502
          description: |
            Pipe-separated ('|') origin coordinates in `lat,lng` format.
        - name: destinations
          in: query
          required: true
          schema:
            type: string
          example: 28.638555,76.965502|28.539669,77.051907
          description: |
            Pipe-separated ('|') destination coordinates in `lat,lng` format.
        - name: mode
          in: query
          required: false
          schema:
            type: string
            default: driving
          description: |
            Travel mode: driving, walking, bike, or auto.
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      responses:
        '200':
          description: >
            Successful response containing a 2D matrix of distances, durations,
            and polylines for each origin-destination pair. Units: distance
            (meters), duration (seconds).
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    description: >
                      Array of rows, each corresponding to an origin point. 
                      Each row contains an array of `elements`, where each
                      element represents a route to a specific destination.
                    items:
                      type: object
                      properties:
                        elements:
                          type: array
                          description: >
                            List of routing results for the origin against each
                            destination.  Each element includes estimated
                            distance, duration, route polyline, and routing
                            status.
                          items:
                            type: object
                            properties:
                              duration:
                                type: integer
                                format: int32
                                example: 719
                                description: Duration in seconds.
                              distance:
                                type: integer
                                format: int32
                                example: 3224
                                description: Distance in meters.
                              polyline:
                                type: string
                                example: su|mAyjvxM[GMCPmA...
                                description: Encoded polyline representing the route path.
                              status:
                                type: string
                                example: OK
                                description: >-
                                  Status of the routing computation (e.g., OK,
                                  INTERNAL_SERVER_ERROR)
                  status:
                    type: string
                    example: SUCCESS
                    description: >
                      Overall status of the response.

                      - `OK`: All origin-destination combinations were
                      successfully computed.

                      - `PARTIAL`: Some combinations were successful; others
                      failed (e.g., status in element =
                      `INTERNAL_SERVER_ERROR`).

                      - `FAILURE`: All combinations failed or a system error
                      occurred.
        '400':
          description: |
            The request is malformed or missing required parameters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Invalid Request. Please check the request parameters
                    description: Explanation of what was wrong in the request.
                  request_type:
                    type: string
                    example: distanceMatrixApi
                    description: The API endpoint the request targeted.
                  request_id:
                    type: string
                    example: DISTANCE-MATRIX-20240724162847101-1708937523
                    description: Unique identifier for the request.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Indicates a client-side error.
        '500':
          description: |
            Internal server error occurred while processing the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Request could not be processed
                    description: Server-side reason for failure.
                  request_type:
                    type: string
                    example: distanceMatrixApi
                    description: API name being executed.
                  request_id:
                    type: string
                    example: DISTANCE-MATRIX-20240724162847101-1708937523
                    description: Unique request identifier.
                  status:
                    type: string
                    example: FAILURE
                    description: Indicates a server-level failure.
  /routing/v1/distanceMatrix/basic:
    get:
      tags:
        - Routing APIs
      summary: Distance Matrix Basic API
      description: >
        Calculates distance and estimated travel time between multiple origin
        and destination points. If there are `x` origins and `y` destinations,
        the response includes `x × y` origin–destination pairs, with a maximum
        of **50** pairs per request (`x × y ≤ 50`). This basic variant is
        designed for fast, lightweight batch queries. It does not include
        traffic data or transport mode options.
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique ID for tracing requests across systems.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlation ID for distributed tracing across systems.
        - name: origins
          in: query
          required: true
          schema:
            type: string
          example: 28.718667,77.036997|28.638555,76.965502
          description: |
            Pipe-separated origin coordinates in `lat,lng` format.
        - name: destinations
          in: query
          required: true
          schema:
            type: string
          example: 28.638555,76.965502|28.539669,77.051907
          description: |
            Pipe-separated destination coordinates in `lat,lng` format.
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      responses:
        '200':
          description: >
            Successful response containing a 2D matrix of distances, durations,
            and polylines for each origin-destination pair. Units: distance
            (meters), duration (seconds).
          content:
            application/json:
              schema:
                type: object
                properties:
                  rows:
                    type: array
                    description: >
                      Array of rows, each corresponding to an origin point. 
                      Each row contains an array of `elements`, where each
                      element represents a route to a specific destination.
                    items:
                      type: object
                      properties:
                        elements:
                          type: array
                          description: >
                            List of routing results for the origin against each
                            destination.  Each element includes estimated
                            distance, duration, route polyline, and routing
                            status.
                          items:
                            type: object
                            properties:
                              duration:
                                type: integer
                                format: int32
                                example: 719
                                description: Duration in seconds.
                              distance:
                                type: integer
                                format: int32
                                example: 3224
                                description: Distance in meters.
                              polyline:
                                type: string
                                example: su|mAyjvxM[GMCPmA...
                                description: Encoded polyline representing the route path.
                              status:
                                type: string
                                example: OK
                                description: >-
                                  Status of the routing computation (e.g., OK,
                                  INTERNAL_SERVER_ERROR)
                  status:
                    type: string
                    example: SUCCESS
                    description: >
                      Overall status of the response.

                      - `OK`: All origin-destination combinations were
                      successfully computed.

                      - `PARTIAL`: Some combinations were successful; others
                      failed (e.g., status in element =
                      `INTERNAL_SERVER_ERROR`).

                      - `FAILURE`: All combinations failed or a system error
                      occurred.
        '400':
          description: |
            The request is malformed or missing required parameters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Invalid Request. Please check the request parameters
                    description: Explanation of what was wrong in the request.
                  request_type:
                    type: string
                    example: distanceMatrixBasicApi
                    description: The API endpoint the request targeted.
                  request_id:
                    type: string
                    example: DISTANCE-MATRIX-20240724162847101-1708937523
                    description: Unique identifier for the request.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Indicates a client-side error.
        '500':
          description: |
            Internal server error occurred while processing the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Request could not be processed
                    description: Server-side reason for failure.
                  request_type:
                    type: string
                    example: distanceMatrixBasicApi
                    description: API name being executed.
                  request_id:
                    type: string
                    example: DISTANCE-MATRIX-20240724162847101-1708937523
                    description: Unique request identifier.
                  status:
                    type: string
                    example: FAILURE
                    description: Indicates a server-level failure.
  /routing/v1/routeOptimizer:
    post:
      tags:
        - Routing APIs
      summary: Route Optimizer API
      description: >
        Computes the most efficient route by reordering a list of waypoints to
        minimize overall travel time, based on estimated time of arrival (ETA). 
        This API supports round trips, fixed or flexible start/end points, and
        congestion-aware routing when enabled.
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique ID for tracing the request.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlation ID for distributed tracing across systems.
        - name: locations
          in: query
          required: true
          schema:
            type: string
          example: 12.938399,77.632873|12.938041,77.628285
          description: >
            Pipe-separated list of coordinates in `lat,lng` format. Maximum of
            **25 points**.
        - name: source
          in: query
          required: false
          schema:
            type: string
            default: first
          description: |
            Source waypoint. Allowed values: `first`, `any`.
        - name: destination
          in: query
          required: false
          schema:
            type: string
            default: last
          description: |
            Destination waypoint. Allowed values: `last`, `any`.
        - name: round_trip
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >
            Whether the optimized route should return to the starting point.
            _Note: If `round_trip = false`, source=any and destination=any is
            not supported._
        - name: mode
          in: query
          required: false
          schema:
            type: string
            default: driving
          description: Travel mode - `driving`, `walking`, `bike`, or `auto`.
        - name: steps
          in: query
          required: false
          schema:
            type: boolean
            default: true
          description: Whether step-by-step instructions are included.
        - name: overview
          in: query
          required: false
          schema:
            type: string
            default: full
          description: Level of overview geometry - `full`, `simplified`, or `false`.
        - name: language
          in: query
          required: false
          schema:
            type: string
            default: en
          description: >-
            Response language - `bn` (Bengali), `en` (English), `gu` (Gujarati),
            `hi` (Hindi), `kn` (Kannada), `ml` (Malayalam), `mr` (Marathi), `or`
            (Oriya), `sa` (Sanskrit), `ta` (Tamil), `te` (Telugu), `ur` (Urdu).
        - name: traffic_metadata
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >
            Include traffic congestion metadata in the response. If set to true,
            the response will contain congestion types (via `travel_advisory`), 
            but only when the `overview` parameter is also set to "full".
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      responses:
        '200':
          description: OK - Optimized route successfully generated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  routes:
                    type: array
                    description: List of optimized route options.
                    items:
                      type: object
                      properties:
                        legs:
                          type: array
                          description: >
                            A leg represents a segment of the route between two
                            consecutive waypoints and provides details such as
                            distance, duration, and step-by-step instructions
                            for that segment.
                          items:
                            type: object
                            properties:
                              distance:
                                type: number
                                example: 3836
                                description: Distance covered in this leg (in meters).
                              readable_distance:
                                type: string
                                example: 3 km 800 metres
                                description: Human-readable representation of the distance.
                              duration:
                                type: number
                                example: 698
                                description: Duration of the leg in seconds.
                              readable_duration:
                                type: string
                                example: 14 mins
                                description: Human-readable duration.
                              start_address:
                                type: string
                                description: Address of the starting point.
                              end_address:
                                type: string
                                description: Address of the ending point.
                              start_location:
                                type: object
                                description: Coordinates of the starting point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.909342
                                  lng:
                                    type: number
                                    example: 77.621689
                              end_location:
                                type: object
                                description: Coordinates of the ending point.
                                properties:
                                  lat:
                                    type: number
                                    example: 12.933972
                                  lng:
                                    type: number
                                    example: 77.611342
                              steps:
                                type: array
                                description: >
                                  Steps in a leg provide detailed, turn-by-turn
                                  navigation instructions for a specific 
                                  segment of the journey. Each step outlines
                                  specific actions and includes information on
                                  the distance and duration.
                                items:
                                  type: object
                                  properties:
                                    distance:
                                      type: number
                                      example: 476
                                      description: Distance of the step in meters.
                                    readable_distance:
                                      type: string
                                      example: 0.5 km
                                      description: Readable step distance.
                                    duration:
                                      type: number
                                      example: 99
                                      description: Step duration in seconds.
                                    readable_duration:
                                      type: string
                                      example: 0 hours 2 min
                                      description: Human-readable step duration.
                                    instructions:
                                      type: string
                                      example: Head west on NH48
                                      description: Navigation instructions.
                                    maneuver:
                                      type: string
                                      example: turn-right
                                      description: >-
                                        Type of turn or action to be performed
                                        at the step.
                                    bearing_before:
                                      type: number
                                      example: 0
                                      description: >
                                        Bearing before maneuver. The direction
                                        the traveler faces before the maneuver,
                                        expressed in degrees  relative to true
                                        north.
                                    bearing_after:
                                      type: number
                                      example: 259
                                      description: Bearing after maneuver.
                                    start_location:
                                      type: object
                                      description: Coordinates before step begins.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90934
                                        lng:
                                          type: number
                                          example: 77.62169
                                    end_location:
                                      type: object
                                      description: Coordinates after step ends.
                                      properties:
                                        lat:
                                          type: number
                                          example: 12.90871
                                        lng:
                                          type: number
                                          example: 77.62158
                        summary:
                          type: string
                          description: Summary of the route.
                          example: ''
                        warnings:
                          type: array
                          items:
                            type: string
                          description: Any route-specific warnings (e.g., toll roads).
                        overview_polyline:
                          type: string
                          example: u`nAoc~uMeg...
                          description: >
                            Encoded polyline string of coordinates, that
                            outlines the path of the route, allowing for a
                            high-level visualization on a map.
                        travel_advisory:
                          type: string
                          example: 0,1,0 | 1,3,15
                          description: >
                            Traffic congestion advisories.

                            A pipeline-separated string containing congestion
                            data for the route. This field appears only if
                            `overview` is set to "full" and `traffic_metadata`
                            is true.

                            **Format:**
                            _<start_index,end_index,traffic_congestion_classification>|<start_index,end_index,traffic_congestion_classification>|..._

                            Where **start_index** and **end_index** are indexes
                            from the decoded **overview_polyline**.

                            - **Congestion levels:**

                            - **NORMAL:** 0   - **MODERATE:** 5   - **HEAVY:**
                            10   - **JAM:** 15

                            - _Note: The travel_advisory always starts from
                            index 0._
                        waypoint_order:
                          type: array
                          items:
                            type: integer
                          example:
                            - 0
                            - 3
                            - 2
                            - 1
                          description: >
                            Optimized index order for the given waypoints to
                            minimize travel time.
                        bounds:
                          type: string
                          description: Bounding box that encompasses the entire route.
                        copyrights:
                          type: string
                          example: OLA Map data ©2025
                          description: Copyright information.
                  status:
                    type: string
                    example: OK
                    description: Indicates request success.
                  source_from:
                    type: string
                    example: Ola Maps
                    description: Source provider of routing results.
        '400':
          description: >
            Client-side error: invalid or missing parameters (e.g., location
            count, round trip config).
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Invalid or missing locations/source/destination
                    description: Description of what caused the error.
                  request_type:
                    type: string
                    example: routeOptimizerApi
                    description: The API that was called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Request ID for traceability.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Indicates client-side input error.
        '500':
          description: |
            Server error while computing optimized route.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: No serviceable boundary found for GeoPoints
                    description: Explanation of backend failure.
                  request_type:
                    type: string
                    example: routeOptimizerApi
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Unique identifier for this failed request.
                  status:
                    type: string
                    example: FAILURE
                    description: Category of error (e.g., system-level failure).
  /routing/v1/fleetPlanner:
    post:
      tags:
        - Routing APIs
      summary: Fleet Planner API
      description: >
        Solves multi-package routing and assignment across a fleet of vehicles
        to minimize cost and travel time. Waypoints may be reordered for
        optimization.

        _Note: Additional fields may be introduced in future responses as
        non-breaking changes._
      parameters:
        - name: x-request-id
          in: header
          required: false
          schema:
            type: string
          description: Unique request identifier for tracing.
        - name: x-correlation-id
          in: header
          required: false
          schema:
            type: string
          description: Correlates logs across systems.
        - name: strategy
          in: query
          required: true
          schema:
            type: string
          description: |
            Routing strategy:
            - `optimal`: Minimizes cost and distance
            - `fair`: Distributes load evenly across vehicles
        - name: route_preference
          in: query
          required: false
          schema:
            type: string
            default: fastest
          description: Type of route to prefer - `fastest`, `shortest`.
      requestBody:
        required: true
        description: >
          Upload a `.json` file under the `input` field containing packages and
          vehicles. 

          - Max file size: 100 KB. 

          - Max: 100 packages, 20 vehicles. 

          - Required package fields: `id`, `weightInGrams`, and at least one
          location. 

          - Vehicle must contain `id` and `capacityInKG`.
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                input:
                  type: string
                  format: binary
      responses:
        '200':
          description: Optimized fleet allocation and routing solution returned.
          content:
            application/json:
              schema:
                type: object
                properties:
                  vehicles:
                    type: array
                    items:
                      type: object
                      properties:
                        vehicle:
                          type: object
                          properties:
                            id:
                              type: string
                              example: MH12AA1199
                              description: Unique identifier for the vehicle.
                            original_capacity_in_KG:
                              type: integer
                              example: 2
                              description: >-
                                Maximum load capacity of the vehicle in
                                kilograms before assignment.
                            remaining_capacity_after_assignment_in_KG:
                              type: number
                              example: 0.8
                              description: >-
                                Remaining load capacity (in kilograms) after
                                package allocation.
                            on_duty:
                              type: boolean
                              description: >-
                                Indicates whether the vehicle is active and
                                available for assignment.
                            distance_travelled_in_Meters:
                              type: number
                              example: 58410.99
                              description: >-
                                Total distance the vehicle is assigned to
                                travel, in meters.
                        route:
                          type: object
                          properties:
                            legs:
                              type: array
                              description: >
                                Ordered list of individual travel segments that
                                make up the full route assigned to a vehicle.
                                Each leg represents travel between two
                                consecutive stops (e.g., package pickup and
                                drop-off).
                              items:
                                type: object
                                properties:
                                  distance:
                                    type: object
                                    description: Total distance for this leg.
                                    properties:
                                      text:
                                        type: string
                                        example: '0.00'
                                        description: >-
                                          Human-readable distance (e.g., in
                                          kilometers or meters).
                                      value:
                                        type: integer
                                        example: 0
                                        description: Numeric distance in meters.
                                  duration:
                                    type: object
                                    description: Estimated travel time for this leg.
                                    properties:
                                      text:
                                        type: string
                                        example: 1 hours 10 minutes
                                        description: Human-readable duration.
                                      value:
                                        type: integer
                                        example: 3587
                                        description: Duration in seconds.
                                  start_address:
                                    type: string
                                    example: 13.050748,77.542527
                                    description: >-
                                      Formatted or coordinate address where this
                                      leg begins.
                                  end_address:
                                    type: string
                                    example: 13.050748,77.542527
                                    description: >-
                                      Formatted or coordinate address where this
                                      leg ends.
                                  start_location:
                                    type: object
                                    description: Latitude and longitude of the start point.
                                    properties:
                                      lat:
                                        type: number
                                        example: 13.050748
                                        description: Latitude of the start point.
                                      lng:
                                        type: number
                                        example: 77.542527
                                        description: Longitude of the start point.
                                  end_location:
                                    type: object
                                    description: Latitude and longitude of the end point.
                                    properties:
                                      lat:
                                        type: number
                                        example: 13.050748
                                        description: Latitude of the end point.
                                      lng:
                                        type: number
                                        example: 77.542527
                                        description: Longitude of the end point.
                                  package_id:
                                    type: string
                                    example: package2
                                    description: >-
                                      Identifier of the package associated with
                                      this leg.
                                  polyline:
                                    type: string
                                    example: e~snAy_hxM??
                                    description: >-
                                      Encoded polyline representing the geometry
                                      of this leg's path.
                            overview_polyline:
                              type: string
                              example: e~snAy_hxM??
                              description: >
                                Encoded polyline summarizing the full path taken
                                by the vehicle, covering all legs. Useful for
                                high-level visualization of the entire route.
                  spill_package_ids:
                    type: array
                    items:
                      type: string
                      example: package1
                    example:
                      - package1
                    description: >
                      List of package IDs that could not be assigned to any
                      vehicle due to constraints such as limited vehicle
                      capacity, working hours, or unreachable locations.
                  total_distance_travelled_in_KMs:
                    type: number
                    example: 58.51
                    description: >
                      Total distance (in kilometers) covered by all assigned
                      vehicles combined in the optimized fleet plan.
        '400':
          description: >
            The request is malformed or contains unsupported parameters, such as
            an invalid strategy or missing required fields.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Incorrect strategy passed
                    description: >-
                      A message explaining why the request was rejected (e.g.,
                      unsupported strategy or missing data).
                  request_type:
                    type: string
                    example: fleetPlannerApi
                    description: Identifier for the API that was invoked.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: >-
                      Unique ID assigned to the request for tracing and
                      debugging.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: Classification of the error type (client-side).
        '422':
          description: >
            The server understands the request but is unable to process it,
            usually due to invalid spatial data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: No serviceable boundary found for GeoPoints
                    description: Detailed reason for why the input could not be processed.
                  request_type:
                    type: string
                    example: fleetPlannerApi
                    description: Identifier for the API called.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Unique traceable request ID.
                  status:
                    type: string
                    example: BAD_REQUEST
                    description: >-
                      Indicates the request was syntactically correct but
                      semantically invalid.
        '500':
          description: >
            An internal error occurred while processing the request. This may
            happen due to unexpected failures in the backend system.
          content:
            application/json:
              schema:
                type: object
                properties:
                  reason:
                    type: string
                    example: Request could not be processed
                    description: A message describing the system-level error encountered.
                  request_type:
                    type: string
                    example: fleetPlannerApi
                    description: Identifier for the API that encountered the error.
                  request_id:
                    type: string
                    example: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                    description: Traceable ID for diagnostics and support.
                  status:
                    type: string
                    example: FAILURE
                    description: Classification of the error as a server-side failure.
  /routing/v1/snapToRoad:
    get:
      tags:
        - Roads APIs
      summary: SnapToRoad API
      description: >-
        This API captures a list of geographic coordinates and aligns them to
        the nearest routable road segments. It supports up to 50
        latitude/longitude pairs per request. The service can optionally enhance
        the path by adding intermediate points to better match the curvature of
        the road.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - in: query
          name: points
          required: true
          schema:
            type: string
            example: >-
              12.99927894246456,77.67323803525812|12.992086564113583,77.65899014102202|12.992567456375086,77.65989136324778|12.992672238708593,77.64337109685341|12.99127113597667,77.65716623889841
          description: >-
            The points to be snapped. Accepts a list of latitude/longitude pairs
            separated by commas. Coordinates should be separated by the pipe
            (`|`) character.
        - in: query
          name: enhancePath
          required: false
          schema:
            type: boolean
            default: false
            example: false
          description: >-
            If true, response includes additional points between the given
            snapped points to enrich the path and match the road’s curvature.
            Defaults to false.
      responses:
        '200':
          description: |
            Successful response with snapped points.

            **Possible values for `snapped_type`**:
            - `Nearest`: Closest road segment
            - `Match`: Matched using road path alignment
            - `NoSegment`: No matching segment found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snapToRoadResponse'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: >-
            Bad Request - Missing or invalid parameters (e.g., malformed
            coordinates)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snapToRoadError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/snapToRoadError500'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /routing/v1/nearestRoads:
    get:
      tags:
        - Roads APIs
      summary: Nearest Roads API
      description: >-
        API to return nearest snapped points for each given coordinate.  Maximum
        100 coordinates supported in a single request.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/mode'
        - name: points
          in: query
          required: true
          schema:
            type: string
            example: >-
              12.99927894246456,77.67323803525812|12.992086564113583,77.65899014102202|12.992567456375086,77.65989136324778
          description: >-
            A pipe-separated list of lat,long coordinates.  Maximum 100 points
            supported. Format: `lat1,lng1|lat2,lng2|...`
        - name: radius
          in: query
          required: false
          schema:
            type: number
            default: 500
          description: >-
            Optional radius in meters to search for nearby roads. Defaults to
            500 if value is between 0 and 1 or not provided.
      responses:
        '200':
          description: Successful response (fully or partially snapped points)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nearestRoadsResponse'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request - Invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nearestRoadsError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '422':
          description: Unprocessable Entity - Logical error in input (e.g. invalid enum)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nearestRoadsError422'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/nearestRoadsError500'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /routing/v1/speedLimits:
    get:
      tags:
        - Roads APIs
      summary: SpeedLimits API
      description: >-
        This API captures a list of geographic coordinates and snaps them to the
        nearest routable road segments or aligns  them using map matching. It
        also provides the speed limits for the snapped segments. It supports up
        to 50  latitude/longitude pairs per request.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - name: points
          in: query
          required: true
          schema:
            type: string
            example: 13.0630227,77.5930842|13.063479498221085,77.59321523175956
          description: >-
            A pipe (`|`) separated list of latitude,longitude coordinates to be
            snapped to road segments.  Maximum 50 points supported.
        - name: snapStrategy
          in: query
          required: false
          schema:
            type: string
            enum:
              - snaptoroad
              - nearestroad
            default: snaptoroad
          description: >
            Specifies the snapping strategy to apply on input coordinates:

            - `snaptoroad`: Aligns points to the road network using trace-based
            logic.

            - `nearestroad`: Snaps points individually to the nearest road
            segment.
      responses:
        '200':
          description: Successful response (either fully or partially successful)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/speedLimitsResponse'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request - Malformed or invalid input parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/speedLimitsError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/speedLimitsError404'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '422':
          description: >-
            Unprocessable Entity - Invalid logic, such as bad enum or
            conflicting inputs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/speedLimitsError422'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/speedLimitsError500'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/autocomplete:
    get:
      operationId: Autocomplete
      tags:
        - Places APIs
      summary: Autocomplete API
      description: >
        The Places Autocomplete API provides real-time suggestions for place
        names and addresses as users type a query. 

        It is designed to enhance user experience in search fields by offering
        predictive results that refine with each keystroke. 

        The API takes a partial input string and returns a list of suggested
        place predictions. \

        <br/>

        <i>Helpful Tip: Use with a <strong>debounce</strong> function to reduce
        number of calls</i>
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/input'
        - $ref: '#/components/parameters/location'
        - $ref: '#/components/parameters/radius'
        - $ref: '#/components/parameters/strictbounds'
        - $ref: '#/components/parameters/language'
        - $ref: '#/components/parameters/nearbysearch_types'
      responses:
        '200':
          description: >-
            Successful response. Please note there are multiple responses
            possible based on the scenario. One possibility is autocomplete
            results are  returned, which is outlined in example and schema.
            Other possibility is  zero results which is outlined under schema
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/AutocompleteSuccess'
                  - $ref: '#/components/schemas/AutocompleteZeroResults'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/AutocompleteBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InternalServerError'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/details:
    get:
      operationId: place details
      tags:
        - Places APIs
      summary: Place Details API
      description: >-
        Provides Place Details of a particular Place/POI whose place_id 
        necessarily needs to be given as an input.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/place_id'
        - $ref: '#/components/parameters/language'
      responses:
        '200':
          description: >-
            Successful response. Please note there will a single result for a
            valid place_id. Zero Results would be returned in case of an invalid
            or a non existing place_id.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlaceDetailsSuccess'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlaceDetailsBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/details/advanced:
    get:
      operationId: advance place details
      tags:
        - Places APIs
      summary: Advance Place Details API
      description: >-
        Provides Advance Place Details of a particular Place/POI whose place_id 
        necessarily needs to be given as an input. This API provides more
        detailed information about the place over the basic place details API.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/place_id'
        - $ref: '#/components/parameters/language'
      responses:
        '200':
          description: >-
            Successful response. Please note there will a single result for a
            valid place_id. Zero Results would be returned in case of an invalid
            or a non existing place_id.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlaceDetailsAdvancedSuccess'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PlaceDetailsBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/nearbysearch:
    get:
      operationId: nearbySearch
      tags:
        - Places APIs
      summary: Nearby Search API
      description: >
        The Places Nearby API is used to find places of interest near a specific
        geographic location, typically defined by latitude and longitude
        coordinates.  It returns a list of nearby places ranked by distance or
        popularity, depending on the parameters provided. \

        This API is ideal for use cases like discovering services or amenities
        around a user's current location, such as finding nearby restaurants,
        cafes, or hotels.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/nearbysearch_location'
        - $ref: '#/components/parameters/nearbysearch_types'
        - $ref: '#/components/parameters/language'
        - $ref: '#/components/parameters/nearbysearch_radius'
        - $ref: '#/components/parameters/nearbysearch_withCentroid'
        - $ref: '#/components/parameters/nearbysearch_rankBy'
        - $ref: '#/components/parameters/nearbysearch_limit'
      responses:
        '200':
          description: >-
            Successful response. Please note there would be multiple results in
            the response  based on the input type and input coordinates. Other
            possibility is zero results  which is outlined under schema
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NearbySearchSuccess'
                  - $ref: '#/components/schemas/NearbySearchZeroResults'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request for Special character and invalid layers, locations etc.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NearbySearchBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Nearbysearch500Error'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/nearbysearch/advanced:
    get:
      operationId: advance nearbySearch
      tags:
        - Places APIs
      summary: Advance Nearby Search API
      description: >
        The Advance Nearby API returns detailed information about points of
        interest (POIs) around a given location, going beyond the basic name,
        location and place_id that the standard Nearby API provides.  It's ideal
        when you need richer data—such as contact details, opening hours,
        photos, etc. without making a separate Place Details request for each
        result.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/nearbysearch_location'
        - $ref: '#/components/parameters/nearbysearch_types'
        - $ref: '#/components/parameters/language'
        - $ref: '#/components/parameters/nearbysearch_radius'
        - $ref: '#/components/parameters/nearbysearch_withCentroid'
        - $ref: '#/components/parameters/nearbysearch_rankBy'
        - $ref: '#/components/parameters/nearbysearch_limit'
      responses:
        '200':
          description: >-
            Successful response. Please note there would be multiple results in
            the response  based on the input type and input coordinates. Other
            possibility is zero results  which is outlined under schema
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NearbySearchAdvancedSuccess'
                  - $ref: '#/components/schemas/NearbySearchZeroResults'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request for Special character and invalid layers, locations etc.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NearbySearchBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Nearbysearch500Error'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/textsearch:
    get:
      operationId: textsearch
      tags:
        - Places APIs
      summary: Text Search API
      description: >
        Provides a list of places based on textual queries without need of
        actual location coordinates. For eg: "Cafes in Koramangala" or
        "Restaurant near Bangalore".
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/text_search_input'
        - $ref: '#/components/parameters/text_search_location'
        - $ref: '#/components/parameters/text_search_radius'
        - $ref: '#/components/parameters/text_search_types'
        - $ref: '#/components/parameters/text_search_size'
      responses:
        '200':
          description: Successful Response for valid input text.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TextSearchResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/TextSearchBadRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Reason for the error
                  status:
                    type: string
                    example: Internal Server Error
  /places/v1/addressvalidation:
    get:
      operationId: addressvalidation
      tags:
        - Places APIs
      summary: Address Validation API
      description: >
        Provides a validated address along with different address components
        present in the address, for a given input address.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - $ref: '#/components/parameters/address_validation_input'
      responses:
        '200':
          description: Successful Address Validation Response for valid input address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddressValidationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              examples:
                address='':
                  value:
                    result:
                      validated: false
                      address_components: []
                    status: validation_failed
                    info_messages: []
                    error_message: >-
                      invalid param 'address': address length, must be >0,
                      invalid param address : address does not contain Valid
                      pincode
                address=*$:
                  value:
                    result:
                      validated: false
                      address_components: []
                    status: validation_failed
                    info_messages: []
                    error_message: >-
                      invalid param 'address': address contains only special
                      characters, invalid param address : address does not
                      contain Valid pincode
                address=7, Lok Kalyan Marg, New Delhi, Delhi:
                  value:
                    result:
                      validated: false
                      validated_address: 7, Lok Kalyan Marg, New Delhi, Delhi
                      address_components: []
                    status: validation_failed
                    info_messages: []
                    error_message: >-
                      invalid param address : address does not contain Valid
                      pincode
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Reason for the error
                  status:
                    type: string
                    example: Internal Server Error
  /places/v1/photo:
    get:
      operationId: photos
      tags:
        - Places APIs
      summary: Photo API
      description: >
        Provides photos of a place based on the given photo_reference which is
        returned as part of advanced Places APIs.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - name: photo_reference
          in: query
          schema:
            type: string
          required: true
          description: >-
            photo_reference of the photo to be fetched.  The photo_reference is
            returned as part of place details advance.
          example: c3ae78ac452ec049f67b3cf9aee2b2e8
      responses:
        '200':
          description: >-
            Successful response. Please note there will a single result for a
            valid photo_reference. Zero Results would be returned in case of an
            invalid or a non existing photo_reference.
          content:
            application/json:
              schema:
                type: object
                properties:
                  photos:
                    type: array
                    items:
                      type: object
                      properties:
                        height:
                          type: integer
                          example: 1600
                        width:
                          type: integer
                          example: 1100
                        angle:
                          type: number
                          example: 282.99
                        photo_reference:
                          type: string
                          example: c3ae78ac452ec049f67b3cf9aee2b2e8
                        photoUri:
                          type: string
                          example: >-
                            https://d3m0kkbqw21kcp.cloudfront.net/gopro_sli_images/c3ae78ac452ec049f67b3cf9aee2b2e8.JPG
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  photos:
                    type: array
                    items:
                      type: object
                      properties:
                        photos:
                          type: array
                          items:
                            type: string
                          example: []
                        info_messages:
                          type: array
                          items:
                            type: string
                          example: []
                        error_message:
                          type: string
                          examples:
                            - >-
                              invalid param "photo_reference": contains invalid
                              field value
                            - 'invalid param "photo_reference": length must be >0'
                        status:
                          type: string
                          example: zero_results
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    example: Reason for the error
                  status:
                    type: string
                    example: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/geocode:
    get:
      tags:
        - Geocode APIs
      summary: Forward Geocode API
      description: >-
        Provides probable geographic coordinates and detailed location
        information  including formatted address for the given address as input.
      parameters:
        - in: query
          name: address
          required: true
          schema:
            type: string
          description: The address to be geocoded. It cannot be empty.
        - in: query
          name: language
          required: false
          schema:
            type: string
            default: English
          description: >-
            The language in which to return the results. Currently only accepts
            English.
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: >-
            Successful geocoding response. Please note there are multiple
            responses  possible based on the input address. One possibility is
            geocoding results are returned,  which is outlined in examples and
            schema. Other possibility is zero results which is  outlined under
            schema
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeocodingSuccess'
              example:
                status: ok
                geocodingResults:
                  - formatted_address: >-
                      Mumbai, Mumbai Suburban, Mumbai Suburban District,
                      Maharashtra, India
                    types: []
                    name: Mumbai
                    geometry:
                      viewport:
                        southwest:
                          lng: 72.87232696702962
                          lat: 19.114096358602232
                        northeast:
                          lng: 72.87498903297039
                          lat: 19.116611641397768
                      location:
                        lng: 72.873658
                        lat: 19.115354
                      location_type: geometric_center
                    address_components:
                      - types:
                          - country
                        short_name: India
                        long_name: India
                      - types:
                          - administrative_area_level_1
                        short_name: Maharashtra
                        long_name: Maharashtra
                      - types:
                          - administrative_area_level_2
                        short_name: Mumbai Suburban District
                        long_name: Mumbai Suburban District
                      - types:
                          - administrative_area_level_3
                        short_name: Mumbai Suburban
                        long_name: Mumbai Suburban
                      - types:
                          - locality
                        short_name: Mumbai
                        long_name: Mumbai
                      - types:
                          - postal_code
                        short_name: '400059'
                        long_name: '400059'
                      - types:
                          - street_address
                        short_name: Road Number 16
                        long_name: Road Number 16
                    plus_code:
                      compound_code: NA
                      global_code: NA
                    place_id: ola-platform:1
                    layer:
                      - locality
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Invalid or empty address parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeocodingErrorResponse'
              example:
                reason: Invalid or empty address parameter
                status: bad_request
                request_id: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#727739
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeocodingErrorResponse'
              example:
                reason: Internal server error
                status: error
                request_id: ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#727739
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/reverse-geocode:
    get:
      tags:
        - Geocode APIs
      summary: Reverse Geocode API
      description: >-
        This API converts geographic coordinates back into readable addresses or
        place names based upon the satisfying criteria with a reasonable
        probability.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
        - name: latlng
          in: query
          required: true
          schema:
            type: string
          description: >-
            The coordinates of which you want to do the reverse geocoding to get
            the address
          example: 12.931316595874005,77.61649243443775
        - $ref: '#/components/parameters/language'
      responses:
        '200':
          description: >-
            Successful response. Please note there are multiple responses
            possible  based on the input coordinates. Other possibility is zero
            results  which is outlined under schema
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ReverseGeoSuccess'
                  - $ref: '#/components/schemas/ReverseGeoZeroResults'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error_message:
                    type: string
                    description: Error message
                    examples:
                      - INVALID_LATLNG/INVALID_TYPE
                  info_messages:
                    type: array
                    description: Array of informational messages
                    examples: []
                  results:
                    type: array
                    description: Empty array for results
                    examples: []
                  plus_code:
                    type: object
                    properties:
                      compound_code:
                        type: string
                        examples:
                          - NA
                      global_code:
                        type: string
                        examples:
                          - NA
                  request_id:
                    type: string
                    description: >-
                      X-Request-Id if provided in the request else a
                      auto-generated value is assigned
                    examples:
                      - ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                  status:
                    type: string
                    description: Status of the response
                    examples:
                      - zero_results
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                properties:
                  info_messages:
                    type: array
                    description: Array of informational messages
                    examples: []
                  results:
                    type: array
                    description: Empty array for results
                    examples: []
                  plus_code:
                    type: object
                    properties:
                      compound_code:
                        type: string
                        examples:
                          - NA
                      global_code:
                        type: string
                        examples:
                          - NA
                  request_id:
                    type: string
                    description: >-
                      X-Request-Id if provided in the request else a
                      auto-generated value is assigned
                    examples:
                      - ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
                  status:
                    type: string
                    description: Status of the response
                    examples:
                      - zero_results
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /places/v1/geofence:
    post:
      tags:
        - Geofencing APIs
      summary: Geofencing Create Api
      description: >-
        This API creates a new geofence with the details provided in the
        payload.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeofenceCreateRequest'
            example:
              name: Ola Koramangala Warehouse
              type: circle
              radius: 100
              coordinates:
                - - 12.931471680858923
                  - 77.61520605507842
              status: active
              projectId: abc-xyz-123
      responses:
        '201':
          description: Geofence successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceCreateResponse'
              example:
                geofenceId: n_q0TpMBl__gzc-dClK_
                status: created
                message: Geofence successfully created
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Missing or Invalid field "type". It should be either circle or
                  polygon.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
  /places/v1/geofence/{id}:
    put:
      tags:
        - Geofencing APIs
      summary: Geofencing Update Api
      description: This API updates the details of an existing geofence through its Id.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: ID of the geofence to update
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeofenceCreateRequest'
            example:
              name: Ola Koramangala Warehouse
              type: polygon
              coordinates:
                - - 12.9314
                  - 77.6152
                - - 12.93168
                  - 77.616761
                - - 12.93096
                  - 77.616708
              status: active
              projectId: abc-xyz-123
      responses:
        '200':
          description: Geofence successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceCreateResponse'
              example:
                geofenceId: n_q0TpMBl__gzc-dClK_
                status: updated
                message: Geofence successfully updated
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Invalid coordinates. Latitude and Longitude must be numbers.
        '404':
          description: Geofence not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Geofence with ID n_q0TpMBl__gzc-dClK not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
    get:
      operationId: geofence get
      tags:
        - Geofencing APIs
      summary: Geofencing Get API by Id
      description: This API retrieves an existing geofence through its ID.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: ID of the geofence which is to be fetched
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Geofence successfully Fetched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceGetResponse'
              example:
                geofenceId: n_q0TpMBl__gzc-dClK_
                name: Ola Koramangala Warehouse
                type: circle
                coordinates:
                  - - 12.931471680858923
                    - 77.61520605507842
                radius: 100
                status: active
                projectId: abc-xyz-123
        '404':
          description: Geofence not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Geofence with ID n_q0TpMBl__gzc-dClK not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
    delete:
      operationId: geofence delete
      tags:
        - Geofencing APIs
      summary: Geofencing Delete API by ID
      description: This API deletes an existing geofence based on its ID.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
          description: ID of the geofence to delete
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Geofence successfully deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceCreateResponse'
              example:
                geofenceId: n_q0TpMBl__gzc-dClK_
                status: deleted
                message: Geofence successfully deleted
        '404':
          description: Geofence not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Geofence with ID n_q0TpMBl__gzc-dClK not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
  /places/v1/geofences:
    get:
      operationId: geofence list
      tags:
        - Geofencing APIs
      summary: Geofencing List Api
      description: This API retrieves a paginated list of geofences under given projectId.
      parameters:
        - in: query
          name: page
          required: true
          schema:
            type: integer
          description: Page number for pagination
        - in: query
          name: size
          required: true
          schema:
            type: integer
          description: Number of records per page
        - in: query
          name: projectId
          required: true
          schema:
            type: string
          description: Project Id under which the geofences are stored
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Successfully Retrieved List
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceListResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Invalid or missing "page" or "size" parameters. They must be
                  positive integers.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
  /places/v1/geofence/status:
    get:
      tags:
        - Geofencing APIs
      summary: Geofencing Status Api
      description: This API checks if an entity is inside or outside a given geofence.
      parameters:
        - in: query
          name: geofenceId
          required: true
          schema:
            type: string
          description: Id of the geofence to check
        - in: query
          name: coordinates
          required: true
          schema:
            type: string
          description: Coordinates of the entity in format {lat,lng}
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Successfully retrieved geofence status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofenceStatusResponse'
              example:
                geofenceId: n_q0TpMBl__gzc-dClK_
                isInside: true
                message: Entity is inside the geofence
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Invalid coordinates format. Expected format:
                  latitude,longitude
        '404':
          description: Geofence not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Geofence with ID n_q0TpMBl__gzc-dClK not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: >-
                  Internal Server Error : Failed to update geofence with id
                  n_q0TpMBl__gzc-dClK_ : No Living connections
  /places/v1/elevation:
    get:
      tags:
        - Elevation APIs
      summary: Elevation Api
      description: This API gives the elevation of a single location given in input.
      parameters:
        - in: query
          name: location
          required: true
          default: 12.93127,77.61649
          schema:
            type: string
          description: The coordinates of the location in format {lat,lng}.
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Successfully retrieved elevation
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ElevationSuccess'
                  - $ref: '#/components/schemas/ElevationZeroResults'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ElevationBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InternalServerError'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
    post:
      operationId: multi elevation
      tags:
        - Elevation APIs
      summary: Multi Elevation Api
      description: >-
        This API gives the elevations of all the locations provided as a list in
        input.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      requestBody:
        description: >-
          A JSON payload containing a list of latitude and longitude pairs under
          the  `locations` key. Each pair should be represented as a string in
          the  'latitude,longitude' format.\

          **Constraint**: The 'locations' array can contain a maximum of **25**
          location pairs.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiElevationRequest'
      responses:
        '200':
          description: Successfully retrieved elevation
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ElevationSuccess'
                  - $ref: '#/components/schemas/ElevationZeroResults'
                examples:
                  - results:
                      - elevation: 910
                        location:
                          lat: 12.93126
                          lng: 77.61638
                      - elevation: 916
                        location:
                          lat: 12.89731
                          lng: 77.65136
                    info_messages: []
                    error_message: ''
                    status: ok
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ElevationBadRequest'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InternalServerError'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /tiles/vector/v1/styles.json:
    get:
      tags:
        - Tiles APIs
      summary: Get All Styles
      description: >-
        Returns the styles available for Dynamic Maps. A style defines the map's
        visual theme. Currently supported styles are Light Standard and Dark
        Standard.
      responses:
        '200':
          description: A list of available Dynamic Maps styles.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailableStylesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
  /tiles/v1/styles/{styleName}/static/{lon},{lat},{zoom}/{width}x{height}.{format}:
    get:
      tags:
        - Tiles APIs
      summary: Get Static Map Tiles By Center Point
      description: >-
        Retrieves a static map image centered on a specific latitude and
        longitude.
      parameters:
        - in: path
          name: styleName
          required: true
          schema:
            type: string
            example: default-light-standard
          description: >-
            Name of the style. Currently we support only
            "default-light-standard" and "default-dark-standard" style names for
            static images.
        - in: path
          name: lon
          required: true
          schema:
            type: number
            format: float
            example: 77.61
          description: Longitude of the center point.
        - in: path
          name: lat
          required: true
          schema:
            type: number
            format: float
            example: 12.93
          description: Latitude of the center point.
        - in: path
          name: zoom
          required: true
          schema:
            type: number
            format: float
            example: 15
          description: >-
            Zoom level. Values range between 0-23. Anything greater than 23,
            will default to 23.
        - in: path
          name: width
          required: true
          schema:
            type: integer
            example: 800
          description: Image width. Min value is 1 and max value is 2048.
        - in: path
          name: height
          required: true
          schema:
            type: integer
            example: 600
          description: Image height. Min value is 1 and max value is 2048.
        - in: path
          name: format
          required: true
          schema:
            type: string
            example: png
          description: Image format (e.g., png, jpg).
        - in: query
          name: marker
          description: >-
            Add one or more markers to attach to the image at specified
            locations. in format ``lng,lat|iconColor|option|option|...``
            Currently we ONLY support ``red`` and ``green`` markers. You can add
            the supported color in the format mentioned above. It takes set of
            options to customise the marker in the format of
            ``optionName:optionValue`` and supports the following options.
            ``scale`` - Factor to scale image by. ``0.5`` - Scales the image to
            half it's original size ``offset`` - Image offset as positive or
            negative pixel value in format ``[offsetX],[offsetY]``. ``2,-4`` -
            Image will be moved 2 pixel to the right and 4 pixel in the upwards
            direction from the provided location.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Marker'
            example:
              - 77.61,12.93|red|scale:0.9
        - in: query
          name: path
          description: >-
            Defines a single path of two or more connected points to overlay on
            the image at specified locations. This parameter takes
            comma-separated ``lng,lat``, pipe-separated pairs. The polyline can
            also be encoded using the 'enc:' prefix. It takes set of options to
            customisze the path in the format of ``optionName:optionValue`` and
            supports the following options. ``width`` - width of the line path
            ``stroke`` - color of the line path ( Hex Color Value)
          schema:
            type: string
            example: >-
              77.61,12.93|77.61190639293811,12.937637130956137|width:6|stroke:#00ff44
      responses:
        '200':
          description: OK
          content:
            image/png:
              schema:
                $ref: '#/components/schemas/GetStaticImageOfAStyle'
        '400':
          description: Bad request. Missing parameters error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStaticImageBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /tiles/v1/styles/{styleName}/static/{minx},{miny},{maxx},{maxy}/{width}x{height}.{format}:
    get:
      tags:
        - Tiles APIs
      summary: Get Static Map Tiles By Bounding Box
      description: >-
        Retrieves a static map image covering a specific geographic area defined
        by a bounding box.  A bounding box is a rectangular area specified by
        minimum and maximum latitude and longitude coordinates.
      parameters:
        - in: path
          name: styleName
          required: true
          schema:
            type: string
            example: default-light-standard
          description: >-
            Name of the style. Currenly we support only "default-light-standard"
            and "default-dark-standard" style names for static images.
        - in: path
          name: minx
          required: true
          schema:
            type: number
            format: float
            example: 77.611182859373
          description: Minimum X coordinate (longitude) as part of the bounding box.
        - in: path
          name: miny
          required: true
          schema:
            type: number
            format: float
            example: 12.93219851203095
          description: Minimum Y coordinate (latitude) as part of the bounding box.
        - in: path
          name: maxx
          required: true
          schema:
            type: number
            format: float
            example: 77.61513567417848
          description: Maximum X coordinate (longitude) as part of the bounding box.
        - in: path
          name: maxy
          required: true
          schema:
            type: number
            format: float
            example: 12.935739723360513
          description: Maximum Y coordinate (latitude) as part of the bounding box.
        - in: path
          name: width
          required: true
          schema:
            type: integer
            example: 800
          description: Image width. Min value is 1 and max value is 2048.
        - in: path
          name: height
          required: true
          schema:
            type: integer
            example: 600
          description: Image height. Min value is 1 and max value is 2048.
        - in: path
          name: format
          required: true
          schema:
            type: string
            example: png
          description: Image format (e.g., png, jpg).
        - in: query
          name: marker
          description: >-
            Add one or more markers to attach to the image at specified
            locations. in format ``lng,lat|iconColor|option|option|...``
            Currently we ONLY support ``red`` and ``green`` markers. You can add
            the supported color in the format mentioned above. It takes set of
            options to customise the marker in the format of
            ``optionName:optionValue`` and supports the following options.
            ``scale`` - Factor to scale image by. ``0.5`` - Scales the image to
            half it's original size ``offset`` - Image offset as positive or
            negative pixel value in format ``[offsetX],[offsetY]``. ``2,-4`` -
            Image will be moved 2 pixel to the right and 4 pixel in the upwards
            direction from the provided location.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Marker'
            example:
              - 77.61352646534839,12.934719789288083|red|scale:0.9
        - in: query
          name: path
          description: >-
            Defines a single path of two or more connected points to overlay on
            the image at specified locations. This parameter takes
            comma-separated ``lng,lat``, pipe-separated pairs. The polyline can
            also be encoded using the 'enc:' prefix. It takes set of options to
            customisze the path in the format of ``optionName:optionValue`` and
            supports the following options. ``width`` - width of the line path
            ``stroke`` - color of the line path ( Hex Color Value)
          schema:
            type: string
            example: >-
              77.61352646534839,12.934719789288083|77.6150654941051,12.93487100612498|width:6|stroke:#00ff44
      responses:
        '200':
          description: OK
          content:
            image/png:
              schema:
                $ref: '#/components/schemas/GetStaticImageOfAStyle'
        '400':
          description: Bad request. Missing parameters error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStaticImageBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /tiles/v1/styles/{styleName}/static/auto/{width}x{height}.{format}:
    get:
      tags:
        - Tiles APIs
      summary: Get Static Map Tiles By Path or Marker
      description: >-
        Retrieves a static map image that automatically calculates the
        coordinates to be plotted from path or marker query parameters taken as
        input.
      parameters:
        - in: path
          name: styleName
          required: true
          schema:
            type: string
            example: default-light-standard
          description: >-
            Name of the style. Currenly we support only "default-light-standard"
            and "default-dark-standard" style names for static images.
        - in: path
          name: width
          required: true
          schema:
            type: integer
            example: 800
          description: Image width. Min value is 1 and max value is 2048.
        - in: path
          name: height
          required: true
          schema:
            type: integer
            example: 600
          description: Image height. Min value is 1 and max value is 2048.
        - in: path
          name: format
          required: true
          schema:
            type: string
            example: png
          description: Image format (e.g., png, jpg).
        - in: query
          name: marker
          description: >-
            Add one or more markers to attach to the image at specified
            locations. in format ``lng,lat|iconColor|option|option|...``
            Currently we ONLY support ``red`` and ``green`` markers. You can add
            the supported color in the format mentioned above. It takes set of
            options to customise the marker in the format of
            ``optionName:optionValue`` and supports the following options.
            ``scale`` - Factor to scale image by. ``0.5`` - Scales the image to
            half it's original size ``offset`` - Image offset as positive or
            negative pixel value in format ``[offsetX],[offsetY]``. ``2,-4`` -
            Image will be moved 2 pixel to the right and 4 pixel in the upwards
            direction from the provided location.
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Marker'
            example:
              - 77.61,12.93|red|scale:0.9
        - in: query
          name: path
          required: true
          description: >-
            Defines a single path of two or more connected points to overlay on
            the image at specified locations. This parameter takes
            comma-separated ``lng,lat``, pipe-separated pairs. The polyline can
            also be encoded using the 'enc:' prefix. It takes set of options to
            customisze the path in the format of ``optionName:optionValue`` and
            supports the following options. ``width`` - width of the line path
            ``stroke`` - color of the line path ( Hex Color Value)
          schema:
            type: string
            example: >-
              77.61,12.93|77.61190639293811,12.937637130956137|width:6|stroke:#00ff44
      responses:
        '200':
          description: OK
          content:
            image/png:
              schema:
                $ref: '#/components/schemas/GetStaticImageOfAStyle'
        '400':
          description: Bad request. Missing parameters error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetStaticImageBadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /tiles/vector/v1/3dtiles/tileset.json:
    get:
      tags:
        - Tiles APIs
      summary: 3D Map Tiles
      description: Retrieves 3D tileset data for available geographic areas.
      parameters:
        - $ref: '#/components/parameters/x_request_id'
        - $ref: '#/components/parameters/x_correlation_id'
      responses:
        '200':
          description: Successfully retrieved the tileset metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get3DTileset'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-ID:
              $ref: '#/components/headers/x_correlation_id'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Tileset not found
          content:
            application/json:
              example:
                message: Not Found
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /sli/v1/streetview/coverage:
    get:
      tags:
        - Street View APIs
      summary: Get Street View Coverage
      description: >
        `Returns a line string consisting of all available street view images
        present inside the provided input bounding box.`
      parameters:
        - in: query
          name: xMin
          required: true
          schema:
            type: number
            format: float
            example: 77.611182859373
          description: Minimum X coordinate as part of the bounding box.
        - in: query
          name: yMin
          required: true
          schema:
            type: number
            format: float
            example: 12.93219851203095
          description: Minimum Y coordinate  as part of the bounding box.
        - in: query
          name: xMax
          required: true
          schema:
            type: number
            format: float
            example: 77.61513567417848
          description: Maximum X coordinate as part of the bounding box.
        - in: query
          name: yMax
          required: true
          schema:
            type: number
            format: float
            example: 12.935739723360513
          description: Maximum Y coordinate  as part of the bounding box.
      responses:
        '200':
          description: >-
            This API provides line string of all available street view imageId
            in that area.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSLISchema'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-ID:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoverageError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /sli/v1/streetview/imageId:
    get:
      tags:
        - Street View APIs
      summary: Get Street View ImageId
      description: >
        `Returns the ImageId of the computed nearest street view image for a
        given latitude and longitude and optional radius(in meters).`
      parameters:
        - in: query
          name: lat
          required: true
          schema:
            type: number
            format: double
            example: 12.934487251188177
          description: Latitude.
        - in: query
          name: lon
          required: true
          schema:
            type: number
            format: double
            example: 77.6135811456138
          description: Longitude.
        - in: query
          name: radius
          required: false
          schema:
            type: integer
            format: int32
            example: 30
          description: Radius (in meters).
      responses:
        '200':
          description: This API provides ImageId of the computed nearest street view.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSLISchema'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-ID:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageIdError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
  /sli/v1/streetview/metadata:
    get:
      tags:
        - Street View APIs
      summary: Get Street View Metadata
      description: |
        `Returns the metadata of the provided input Image Id.`
      parameters:
        - in: query
          name: imageId
          required: true
          schema:
            type: string
            format: string
            example: 5636d30437a5ef21ff03b1967658c169
          description: Image Id for a street view image.
      responses:
        '200':
          description: >-
            This API provides the metadata snapped road lat and lon, bearing
            angle of the image when it was taken and imageUrl.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSLISchema'
          headers:
            X-Request-ID:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-ID:
              $ref: '#/components/headers/x_correlation_id'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataError400'
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          description: 500 Internal Server Error
          content:
            application/json:
              example:
                error_message: Reason for error
                status: Internal Server Error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/x_request_id'
            X-Correlation-Id:
              $ref: '#/components/headers/x_correlation_id'
components:
  schemas:
    snapToRoadResponse:
      type: object
      properties:
        status:
          type: string
          example: SUCCESS
        snapped_points:
          type: array
          items:
            $ref: '#/components/schemas/snappedPoints'
    nearestRoadsResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - PARTIAL
          example: SUCCESS
        results:
          type: array
          items:
            $ref: '#/components/schemas/nearestRoadsResult'
    speedLimitsResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - PARTIAL
          description: >
            Status of the request. 

            - `success`: All points snapped successfully. 

            - `partial`: Only some points were snapped. Missing data could be
            due to outliers.

            - In both scenarios, speed limits may not be available for all
            snapped points.
          example: SUCCESS
        snappedPoints:
          type: array
          description: List of snapped points and corresponding speed limits.
          items:
            $ref: '#/components/schemas/speedLimitSnappedPoints'
        speedLimits:
          type: array
          description: Speed limit data for the snapped road segment.
          items:
            $ref: '#/components/schemas/speedLimits'
    snapToRoadError400:
      type: object
      properties:
        reason:
          type: string
          example: Location(s) out of serviceable boundary
        request_type:
          type: string
          example: snapToRoadApi
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          example: SNAPTOROADAPI-20240731130202371-1641567748
        status:
          type: string
          example: BAD_REQUEST
    nearestRoadsError400:
      type: object
      properties:
        reason:
          type: string
          example: Invalid/missing points or radius
        request_type:
          type: string
          example: nearestRoadsApi
        request_id:
          type: string
          example: NEARESTROADSAPI-20240725122639255-1922687573
        status:
          type: string
          example: FAILURE
    speedLimitsError400:
      type: object
      properties:
        reason:
          type: string
          description: Error reason
          example: >-
            Invalid points/snap strategy in the request or Points must not
            exceed the allowed coordinate limits
        request_type:
          type: string
          description: Request made for
          example: speedLimitApi
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          example: SPEEDLIMITAPI-20240725122639255-1922687573
        status:
          type: string
          example: FAILURE
    snapToRoadError500:
      type: object
      properties:
        reason:
          type: string
          example: Error in Getting response for Snap To Road
        request_type:
          type: string
          example: snapToRoadApi
        request_id:
          type: string
          example: request_id_5XX
        status:
          type: string
          example: FAILURE
    nearestRoadsError500:
      type: object
      properties:
        reason:
          type: string
          example: Some reason
        request_type:
          type: string
          example: nearestRoadsApi
        request_id:
          type: string
          example: NEARESTROADSAPI-20240725122639255-1922687573
        status:
          type: string
          example: FAILURE
    speedLimitsError500:
      type: object
      properties:
        reason:
          type: string
          description: Error reason
          example: Any server side error
        request_type:
          type: string
          description: Request made for
          example: speedLimitApi
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          example: SPEEDLIMITAPI-20240725122639255-1922687573
        status:
          type: string
          example: FAILURE
    nearestRoadsError422:
      type: object
      properties:
        reason:
          type: string
          example: No serviceable boundary found for GeoPoint
        request_type:
          type: string
          example: nearestPointsApi
        request_id:
          type: string
          example: NEARESTROADSAPI-20240725122613364-1301888693
        status:
          type: string
          example: FAILURE
    speedLimitsError422:
      type: object
      properties:
        reason:
          type: string
          description: Error reason
          example: Points are outside the serviceable boundary
        request_type:
          type: string
          description: Request made for
          example: speedLimitApi
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          example: SPEEDLIMITAPI-20240725122613364-1301888693
        status:
          type: string
          example: FAILURE
    speedLimitsError404:
      type: object
      properties:
        reason:
          type: string
          description: Error reason
          example: Requested points could not be snapped
        request_type:
          type: string
          description: Request made for
          example: speedLimitApi
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          example: SPEEDLIMITAPI-20240725122613364-1301888693
        status:
          type: string
          example: FAILURE
    nearestRoadsResult:
      type: object
      properties:
        lat:
          type: number
          example: 12.97711937255269
        lng:
          type: number
          example: 77.57183856264156
        distance:
          type: number
          example: 34.15771496364373
        originalIndex:
          type: integer
          example: 0
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
          example: SUCCESS
    snappedPoints:
      type: object
      properties:
        location:
          type: object
          properties:
            lat:
              type: number
              example: 12.992597
            lng:
              type: number
              example: 77.659875
        original_index:
          type: integer
          example: 2
        snapped_type:
          type: string
          example: Nearest
    speedLimitSnappedPoints:
      type: object
      properties:
        location:
          type: object
          description: Latitude and longitude of the snapped point.
          properties:
            latitude:
              type: number
              format: double
              example: 12.9715987
            longitude:
              type: number
              format: double
              example: 77.5945627
        originalIndex:
          type: integer
          description: Corresponding point's index from the original request.
          example: 0
    speedLimits:
      type: object
      properties:
        originalIndex:
          type: integer
          description: The index of the original point.
          example: 0
        speedLimit:
          type: integer
          description: Speed limit for the road segment in km/hr.
          example: 60
    AutocompleteZeroResults:
      type: object
      properties:
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ZERO RESULTS
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        predictions:
          type: array
          items:
            type: object
          description: Array of results, would be empty in zero results case
          examples:
            - []
        status:
          type: string
          description: Status of the response
          examples:
            - ok
    AutocompleteSuccess:
      type: object
      properties:
        predictions:
          type: array
          items:
            type: object
            properties:
              reference:
                type: string
                description: Reference value
                examples:
                  - a1e99e3bd07b545284643f7bde183120
              types:
                type: array
                items:
                  type: string
                description: Array of types
                examples:
                  - airport
                  - point_of_interest
                  - establishment
              matched_substrings:
                type: array
                items:
                  type: object
                  properties:
                    offset:
                      type: integer
                    length:
                      type: integer
                      examples:
                        - 5
                description: Array of matched substrings
              distance_meters:
                type: integer
                description: Distance in meters
                examples:
                  - 31312
              terms:
                type: array
                items:
                  type: object
                  properties:
                    offset:
                      type: integer
                    value:
                      type: string
                      examples:
                        - Kempegowda International Airport Bengaluru (BLR)
                description: Array of terms
              structured_formatting:
                type: object
                properties:
                  main_text_matched_substrings:
                    type: array
                    items:
                      type: object
                      properties:
                        offset:
                          type: integer
                        length:
                          type: integer
                          examples:
                            - 5
                  secondary_text:
                    type: string
                    examples:
                      - KIAL Rd, Devanahalli, Bengaluru, Karnataka, India
                  main_text:
                    type: string
                    examples:
                      - Kempegowda International Airport Bengaluru (BLR)
                description: Structured formatting details
              description:
                type: string
                description: Description of the prediction
                examples:
                  - >-
                    Kempegowda International Airport Bengaluru (BLR), KIAL Rd,
                    Devanahalli, Bengaluru, Karnataka, India
              geometry:
                type: object
                description: Coordinates of the place
                properties:
                  location:
                    type: object
                    description: Coordinates of the place
                    properties:
                      lng:
                        type: number
                        description: Longitude
                        examples:
                          - 77.61194
                      lat:
                        type: number
                        description: Latitude
                        examples:
                          - 13.05158
              place_id:
                type: string
                description: Place ID
                examples:
                  - ola-platform:a1e99e3bd07b545284643f7bde183120
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ''
        status:
          type: string
          description: Status of the response
          examples:
            - ok
    AutocompleteBadRequest:
      type: object
      properties:
        error_message:
          type: string
          description: Error message
          examples:
            - 'Invalid param ''input'': input length, must be >0'
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        predictions:
          type: array
          items: {}
          description: Empty array for predictions
          examples:
            - []
        request_id:
          type: string
          description: >-
            X-Request-Id if provided in the request else a auto-generated value
            is assigned
          examples:
            - ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#10457
        status:
          type: string
          description: Status of the response
          examples:
            - FAILURE
    InternalServerError:
      type: object
      properties:
        error_message:
          type: string
          description: Error message
          examples:
            - ''
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        predictions:
          type: array
          items: {}
          description: Empty array for predictions
          examples:
            - []
        status:
          type: string
          description: Status of the response
          examples:
            - FAILURE
    PlaceDetailsAddressComponents:
      type: array
      items:
        type: object
        properties:
          long_name:
            type: string
            example: India
          short_name:
            type: string
            example: India
          types:
            type: array
            items:
              type: string
            example:
              - country
      example:
        - long_name: India
          short_name: IN
          types:
            - country
        - long_name: KARNATAKA
          short_name: KA
          types:
            - administrative_area_level_1
        - long_name: Bangalore
          short_name: Bangalore
          types:
            - administrative_area_level_2
        - long_name: Bengaluru South
          short_name: Bengaluru South
          types:
            - administrative_area_level_3
        - long_name: Bengaluru
          short_name: Bengaluru
          types:
            - locality
        - long_name: Koramangala
          short_name: Koramangala
          types:
            - postal_town
        - long_name: Koramangala Industrial Layout
          short_name: Koramangala Industrial Layout
          types:
            - sublocality
        - long_name: '560095'
          short_name: '560095'
          types:
            - postal_code
    PlaceDetailsZeroResults:
      type: object
      properties:
        html_attributions:
          type: array
          description: Empty in case of zero results
          items:
            type: string
        info_messages:
          type: array
          items:
            type: string
        error_message:
          type: string
          examples:
            - place_id `abc` is Invalid. Must be of the format xxxx:xxxx
        status:
          type: string
          examples:
            - zero_results
    PlaceDetailsSuccess:
      type: object
      properties:
        html_attributions:
          type: array
          items:
            type: string
          example: []
        result:
          type: object
          properties:
            address_components:
              $ref: '#/components/schemas/PlaceDetailsAddressComponents'
            formatted_address:
              type: string
              example: >-
                Ola Electric, 2, Hosur Rd, Koramangala Industrial Layout,
                Koramangala, Bengaluru, Karnataka, 560095, India
            geometry:
              type: object
              properties:
                location:
                  type: object
                  properties:
                    lat:
                      type: number
                      example: 12.93139
                    lng:
                      type: number
                      example: 77.61647
                viewport:
                  type: object
                  properties:
                    northeast:
                      type: object
                      properties:
                        lat:
                          type: number
                          example: 12.932647641397768
                        lng:
                          type: number
                          example: 77.61776036672592
                    southwest:
                      type: object
                      properties:
                        lat:
                          type: number
                          example: 12.930132358602233
                        lng:
                          type: number
                          example: 77.6151796332741
            place_id:
              type: string
              example: ola-platform:5000039498427
            reference:
              type: string
              example: '5000039498427'
            business_status:
              type: string
              example: NA
            formatted_phone_number:
              type: string
              example: NA
            icon:
              type: string
              example: NA
            icon_background_color:
              type: string
              example: '#000000'
            icon_mask_base_uri:
              type: string
              example: https://placeicons.stg.olamaps.io/place_icons/default.png
            international_phone_number:
              type: string
              example: NA
            name:
              type: string
              example: Ola Electric
            opening_hours:
              type: object
              properties:
                open_now:
                  type: boolean
                  example: false
                periods:
                  type: array
                  items:
                    type: object
                    properties:
                      close:
                        type: object
                        properties:
                          day:
                            type: integer
                            example: 0
                          time:
                            type: string
                            example: NA
                      open:
                        type: object
                        properties:
                          day:
                            type: integer
                            example: 0
                          time:
                            type: string
                            example: NA
                weekday_text:
                  type: array
                  items:
                    type: string
                  example: []
            plus_code:
              type: object
              properties:
                compound_code:
                  type: string
                  example: NA
                global_code:
                  type: string
                  example: NA
            rating:
              type: number
              example: 0
            reviews:
              type: array
              items:
                type: object
                properties:
                  author_name:
                    type: string
                    example: NA
                  author_url:
                    type: string
                    example: NA
                  language:
                    type: string
                    example: en
                  profile_photo_url:
                    type: string
                    example: NA
                  rating:
                    type: number
                    example: 0
                  relative_time_description:
                    type: string
                    example: NA
                  text:
                    type: string
                    example: NA
                  time:
                    type: integer
                    example: 0
            types:
              type: array
              items:
                type: string
              example:
                - point_of_interest
                - establishment
            layer:
              type: array
              items:
                type: string
              example:
                - venue
            url:
              type: string
              example: NA
            user_ratings_total:
              type: integer
              example: 0
            utc_offset:
              type: integer
              example: 0
            vicinity:
              type: string
              example: NA
            website:
              type: string
              example: NA
            price_level:
              type: string
              example: NA
            photos:
              type: array
              items:
                type: object
              example: []
            adr_address:
              type: string
              example: NA
        info_messages:
          type: array
          items:
            type: string
          example: []
        error_message:
          type: string
          example: ''
        status:
          type: string
          example: ok
    PlaceDetailsBadRequest:
      type: object
      properties:
        html_attributions:
          type: array
          items:
            type: string
          description: HTML attributions (usually empty)
          example: []
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          example: []
        error_message:
          type: string
          description: Error message describing the issue with the request
          examples:
            - place_id `abc` is Invalid. Must be of the format xxxx:xxxx
            - place prefix `abc` is Invalid. It must be a valid prefix
            - 'invalid param places_ids: length must be >0'
        status:
          type: string
          description: Status of the response
          example: zero_results
    PlaceDetailsAdvancedSuccess:
      type: object
      properties:
        error_message:
          type: string
          example: ''
        html_attributions:
          type: array
          items:
            type: string
          example: []
        info_messages:
          type: array
          items:
            type: string
          example: []
        result:
          type: object
          properties:
            address_components:
              $ref: '#/components/schemas/PlaceDetailsAddressComponents'
            formatted_address:
              type: string
              example: >-
                Ola Electric, 2, Hosur Rd, Koramangala Industrial Layout,
                Koramangala, Bengaluru, Karnataka, 560095, India
            geometry:
              type: object
              properties:
                location:
                  type: object
                  properties:
                    lat:
                      type: number
                      format: float
                      example: 12.93132
                    lng:
                      type: number
                      format: float
                      example: 77.61646
                viewport:
                  type: object
                  properties:
                    northeast:
                      type: object
                      properties:
                        lat:
                          type: number
                          format: float
                          example: 12.932577641397767
                        lng:
                          type: number
                          format: float
                          example: 77.61775036636395
                    southwest:
                      type: object
                      properties:
                        lat:
                          type: number
                          format: float
                          example: 12.930062358602232
                        lng:
                          type: number
                          format: float
                          example: 77.61516963363606
            place_id:
              type: string
              example: ola-platform:5000039498427
            reference:
              type: string
              example: '5000039498427'
            business_status:
              type: string
              example: NA
            formatted_phone_number:
              type: string
              example: ''
            icon:
              type: string
              example: NA
            icon_background_color:
              type: string
              example: '#647FA8'
            icon_mask_base_uri:
              type: string
              example: https://placeicons.stg.olamaps.io/place_icons/services.png
            international_phone_number:
              type: string
              example: ''
            opening_hours:
              type: object
              properties:
                open_now:
                  type: boolean
                  example: true
                periods:
                  type: array
                  items:
                    type: object
                    properties:
                      open:
                        type: object
                        properties:
                          day:
                            type: integer
                            example: 1
                          time:
                            type: string
                            example: '1200'
                      close:
                        type: object
                        properties:
                          day:
                            type: integer
                            example: 1
                          time:
                            type: string
                            example: '1730'
                weekday_text:
                  type: array
                  items:
                    type: string
                  example:
                    - 'Monday: 12:00 PM - 5:30 PM'
                    - 'Tuesday: 12:00 PM - 5:30 PM'
                    - 'Wednesday: 12:00 PM - 5:30 PM'
                    - 'Thursday: 12:00 PM - 5:30 PM'
                    - 'Friday: 12:00 PM - 5:30 PM'
                    - 'Saturday: 12:00 PM - 5:30 PM'
                    - 'Sunday: 12:00 PM - 5:30 PM'
            plus_code:
              type: object
              properties:
                compound_code:
                  type: string
                  example: NA
                global_code:
                  type: string
                  example: NA
            rating:
              type: number
              example: -1
            reviews:
              type: array
              items:
                type: object
                properties:
                  author_name:
                    type: string
                    example: NA
                  author_url:
                    type: string
                    example: NA
                  language:
                    type: string
                    example: en
                  profile_photo_url:
                    type: string
                    example: NA
                  rating:
                    type: number
                    example: 0
                  relative_time_description:
                    type: string
                    example: NA
                  text:
                    type: string
                    example: NA
                  time:
                    type: integer
                    example: 0
            types:
              type: array
              items:
                type: string
              example:
                - electrician
            layer:
              type: array
              items:
                type: string
              example:
                - venue
            url:
              type: string
              example: ''
            user_ratings_total:
              type: integer
              example: 0
            utc_offset:
              type: integer
              example: 0
            vicinity:
              type: string
              example: NA
            website:
              type: string
              example: ''
            price_level:
              type: string
              example: NA
            photos:
              type: array
              items:
                type: object
              example: []
            adr_address:
              type: string
              example: NA
            amenities_available:
              type: array
              items:
                type: string
              example: []
            wheelchair_accessibility:
              type: boolean
              example: false
            parking_available:
              type: boolean
              example: false
            is_landmark:
              type: boolean
              example: false
            landmark_type:
              type: string
              example: ''
            name:
              type: string
              example: Ola Electric
            payment_mode:
              type: string
              example: ''
            popular_items:
              type: array
              items:
                type: string
              example: []
            language_spoken:
              type: string
              example: ''
        status:
          type: string
          example: ok
    NearbySearchZeroResults:
      type: object
      properties:
        predictions:
          type: array
          items:
            type: object
          description: Array of results, would be empty in zero results case
          examples:
            - []
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ZERO RESULTS
        status:
          type: string
          description: Status of the response
          examples:
            - ok
    NearbySearchSuccess:
      type: object
      properties:
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/NearbySearchPrediction'
        info_messages:
          type: array
          items:
            type: string
          example: []
        error_message:
          type: string
          example: ''
        status:
          type: string
          example: ok
    NearbySearchAdvancedSuccess:
      type: object
      properties:
        predictions:
          type: array
          items:
            $ref: '#/components/schemas/NearbySearchAdvancedPrediction'
        info_messages:
          type: array
          items:
            type: string
          example: []
        error_message:
          type: string
          example: ''
        status:
          type: string
          example: ok
    NearbySearchPrediction:
      type: object
      properties:
        description:
          type: string
          example: >-
            Chaishai, 18th Cross Road, HSR Layout, Bengaluru, Karnataka, 560102,
            India
        matched_substrings:
          type: array
          items:
            type: object
            properties:
              length:
                type: integer
              offset:
                type: integer
          example: []
        place_id:
          type: string
          example: ola-platform:5000021987309
        reference:
          type: string
          example: '5000021987309'
        structured_formatting:
          $ref: '#/components/schemas/NearbySearchStructuredFormatting'
        terms:
          type: array
          items:
            type: object
            properties:
              offset:
                type: integer
              value:
                type: string
        types:
          type: array
          items:
            type: string
          example:
            - amenity:cafe
        layer:
          type: array
          items:
            type: string
          example:
            - venue
        distance_meters:
          type: integer
          example: 271
    NearbySearchAdvancedPrediction:
      type: object
      properties:
        description:
          type: string
          example: >-
            Chaishai, 18th Cross Road, HSR Layout, Bengaluru, Karnataka, 560102,
            India
        matched_substrings:
          type: array
          items:
            type: object
            properties:
              length:
                type: integer
              offset:
                type: integer
          example: []
        place_id:
          type: string
          example: ola-platform:5000021987309
        reference:
          type: string
          example: '5000021987309'
        structured_formatting:
          $ref: '#/components/schemas/NearbySearchStructuredFormatting'
        terms:
          type: array
          items:
            type: object
            properties:
              offset:
                type: integer
              value:
                type: string
        types:
          type: array
          items:
            type: string
          example:
            - amenity:cafe
        layer:
          type: array
          items:
            type: string
          example:
            - venue
        distance_meters:
          type: integer
          example: 271
        opening_hours:
          type: object
          properties:
            open_now:
              type: boolean
              example: false
            periods:
              type: array
              items:
                type: object
                properties:
                  open:
                    type: object
                    properties:
                      day:
                        type: integer
                        example: 0
                      time:
                        type: string
                        example: NA
                  close:
                    type: object
                    properties:
                      day:
                        type: integer
                        example: 0
                      time:
                        type: string
                        example: NA
              example:
                - open:
                    day: 0
                    time: NA
                  close:
                    day: 0
                    time: NA
            weekday_text:
              type: array
              items:
                type: string
              example: []
        business_status:
          type: string
          example: OPERATIONAL
        url:
          type: string
          example: https://example.com
        formatted_phone_number:
          type: string
          example: 123-456-7890
        international_phone_number:
          type: string
          example: +1 123-456-7890
        website:
          type: string
          example: www.example.com
        photos:
          type: array
          items:
            type: string
          example:
            - photo_reference1
            - photo_reference2
        rating:
          type: number
          format: float
          example: 4
        amenities_available:
          type: array
          items:
            type: string
          example: []
        wheelchair_accessibility:
          type: string
          example: 'yes'
        parking_available:
          type: string
          example: 'yes'
        is_landmark:
          type: string
          example: NA
        landmark_type:
          type: string
          example: NA
        payment_mode:
          type: string
          example: NA
        popular_items:
          type: array
          items:
            type: string
          example: []
        language_spoken:
          type: array
          items:
            type: string
          example: []
    NearbySearchStructuredFormatting:
      type: object
      properties:
        main_text:
          type: string
          example: Chaishai
        main_text_matched_substrings:
          type: array
          items:
            type: object
            properties:
              length:
                type: integer
              offset:
                type: integer
          example: []
        secondary_text:
          type: string
          example: 18th Cross Road, HSR Layout, Bengaluru, Karnataka, 560102, India
        secondary_text_matched_substrings:
          type: array
          items:
            type: object
            properties:
              length:
                type: integer
              offset:
                type: integer
          example: []
    NearbySearchBadRequest:
      type: object
      properties:
        predictions:
          type: array
          items: {}
          example: []
        info_messages:
          type: array
          items:
            type: string
          example: []
        error_message:
          type: string
          example: invalid param 'location'
        status:
          type: string
          example: zero_results
      examples:
        location=18.52,:
          value:
            predictions: []
            info_messages: []
            error_message: invalid param 'location'
            status: zero_results
        location=!:
          value:
            predictions: []
            info_messages: []
            error_message: invalid param 'location'
            status: zero_results
        empty location:
          value:
            predictions: []
            info_messages: []
            error_message: Required parameter 'location' is not provided
            status: zero_results
        location not provided:
          value:
            predictions: []
            info_messages: []
            error_message: Required parameter 'location' is not provided
            status: zero_results
        radius=!:
          value:
            predictions: []
            info_messages: []
            error_message: invalid numeric value passed for 'radius'
            status: zero_results
        types=xyz:
          value:
            predictions: []
            info_messages: []
            error_message: xyz is an invalid types parameter
            status: zero_results
        rankBy=xyz:
          value:
            predictions: []
            info_messages: []
            error_message: invalid value for 'rankBy' parameter
            status: zero_results
        empty radius:
          value:
            predictions: []
            info_messages: []
            error_message: '''radius'' parameter cannot be an empty string'
            status: zero_results
    Nearbysearch500Error:
      type: object
      properties:
        error_message:
          type: string
          description: Error message
          examples:
            - Internal Server Error
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        predictions:
          type: array
          items: {}
          description: Empty array for predictions
          examples:
            - []
        status:
          type: string
          description: Status of the response
          examples:
            - FAILURE
    TextSearchPrediction:
      type: array
      items:
        type: object
        properties:
          formatted_address:
            type: string
            example: >-
              McDonald's, Unit No 10, AKS Plaza No 10, Jyoti Nivas College Rd,
              Opposite Forum Mall Musallah Masjid, KHB Colony, Koramangala
              Industrial Layout, Koramangala, Bengaluru, Karnataka, 560095,
              India
          geometry:
            type: object
            properties:
              location:
                type: object
                properties:
                  lat:
                    type: number
                    format: float
                    example: 12.93538
                  lng:
                    type: number
                    format: float
                    example: 77.61545
          place_id:
            type: string
            example: ola-platform:3459f477f482a0431ceef4689f92b3dd
          name:
            type: string
            example: McDonald's
          types:
            type: array
            items:
              type: string
            example:
              - meal_delivery
              - cafe
              - restaurant
              - food
              - point_of_interest
              - store
              - establishment
    TextSearchResponse:
      type: object
      title: TextSearchResponse
      description: Text Search Response
      required:
        - predictions
        - status
      properties:
        predictions:
          description: |
            Contains an array of predictions.
          type: array
          items:
            $ref: '#/components/schemas/TextSearchPrediction'
        info_messages:
          description: >-
            Additional information about the request specification. This field
            is only returned for successful requests. It may not always be
            returned, and its content is subject to change.
          type: array
          items:
            type: string
        error_message:
          description: >
            When the service returns a status code other than `OK`, there may be
            an additional `error_message` field within the response object. This
            field contains more detailed information about the reasons behind
            the given status code. This field is not always returned, and its
            content is subject to change.
          type: string
        status:
          description: >
            Contains the status of the request, and may contain debugging
            information to help you track down why the request failed.

              - `ok` indicating the API request was successful.
              - `zero_results` indicating that the search was successful but returned no results. This may occur if the search was passed a bounds in a remote location.
              - `Internal Server Error` indicating an unknown error.
          type: string
    TextSearchBadRequest:
      type: object
      properties:
        predictions:
          type: array
          items: {}
          example: []
        info_messages:
          type: array
          items:
            type: string
          example: []
        error_message:
          type: string
          example: 'invalid param ''input'': input length, must be >0'
        status:
          type: string
          example: zero_results
      examples:
        input='':
          value:
            predictions: []
            info_messages: []
            error_message: 'invalid param ''input'': input length, must be >0'
            status: zero_results
        input=#$:
          value:
            predictions: []
            info_messages: []
            error_message: 'invalid param ''input'': input contains only special characters'
            status: zero_results
        input=,:
          value:
            predictions: []
            info_messages: []
            error_message: 'invalid `text` input: must contain more than just delimiters'
            status: zero_results
        location=18.52,:
          value:
            predictions: []
            info_messages: []
            error_message: invalid param 'location'
            status: zero_results
        location=!:
          value:
            predictions: []
            info_messages: []
            error_message: invalid param 'location'
            status: zero_results
        types=:
          value:
            predictions: []
            info_messages: []
            error_message: 'invalid param ''types'': types length, must be >0'
            status: zero_results
        types=!:
          value:
            predictions: []
            info_messages: []
            error_message: 'invalid `types` input: must contain more than just delimiters'
            status: zero_results
    AddressValidationAddressComponentObjects:
      type: object
      properties:
        componentName:
          type: string
          description: Name of the particular Address Component.
        componentType:
          type: string
          description: Type of the Address Component.
        componentStatus:
          type: string
          description: Found Status of the component(CONFINED, UNCONFIRMED).
        componentDetails:
          type: string
          description: Details of the component matching process.
    AddressValidationAddressComponents:
      type: object
      description: Contains individual address component with their respective details.
      properties:
        house_number:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        premise:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        street:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        locality:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        borough:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        region:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        postal_code:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
        country:
          type: object
          items:
            $ref: '#/components/schemas/AddressValidationAddressComponentObjects'
      example:
        - house_number:
            componentName: '7'
            componentType: house_number
            componentStatus: UNCONFIRMED_BUT_PLAUSIBLE
            componentDetails: Address Component Inferred from Input address
        - street:
            componentName: Lok Kalyan Marg
            componentType: street
            componentStatus: CONFIRMED
            componentDetails: Address Component Matched
        - locality:
            componentName: New Delhi
            componentType: locality
            componentStatus: CONFIRMED
            componentDetails: Address Component Matched
        - district:
            componentName: New Delhi
            componentType: district
            componentStatus: CONFIRMED
            componentDetails: Address Component Matched
        - region:
            componentName: Delhi
            componentType: region
            componentStatus: CONFIRMED
            componentDetails: Address Component Matched
        - postal_code:
            componentName: '110011'
            componentType: postal_code
            componentStatus: CONFIRMED
            componentDetails: Address Component Matched
        - country:
            componentName: India
            componentType: country
            componentStatus: CONFIRMED
            componentDetails: Added Mandatory Address Component
    AddressValidationResponse:
      type: object
      properties:
        result:
          type: object
          properties:
            validated:
              type: boolean
              example: true
            validated_address:
              type: string
              example: 7, Lok Kalyan Marg, New Delhi, Delhi, 110011, India
            address_components:
              $ref: '#/components/schemas/AddressValidationAddressComponents'
        status:
          description: >
            Contains the status of the request, and may contain debugging
            information to help you track down why the request failed.

              - `validation_done` indicating address validation was successful.
              - `validation_done_partially` indicating address validation was partially successful. 
              - `validation_failed` indicating address validation was not successful
              - `Internal Server Error` indicating an unknown error.
          type: string
          example: ok
        info_messages:
          description: >-
            Additional information about the request specification. This field
            is only returned for successful requests. It may not always be
            returned, and its content is subject to change.
          type: array
          items:
            type: string
          example: []
        error_message:
          description: >
            When the service returns a status code other than `validation_X`,
            there may be an additional `error_message` field within the response
            object. This field contains more detailed information about the
            reasons behind the given status code. This field is not always
            returned, and its content is subject to change.
          type: string
          example: ''
    ReverseGeoZeroResults:
      type: object
      properties:
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ZERO RESULTS
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples: []
        results:
          type: array
          items:
            type: object
          description: Array of results, would be empty in zero results case
          examples: []
        plus_code:
          type: object
          properties:
            compound_code:
              type: string
              examples:
                - NA
            global_code:
              type: string
              examples:
                - NA
        status:
          type: string
          description: Status of the response
          examples:
            - zero_results
    ReverseGeoSuccess:
      type: object
      properties:
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ''
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples: []
        results:
          type: array
          items:
            type: object
            properties:
              formatted_address:
                type: string
                description: Formatted address
                examples:
                  - >-
                    West Oidar Services, Central Tax, Bangalore, 560085, Phase
                    3, Banashankari, Bengaluru, Karnataka
              types:
                type: array
                items:
                  type: string
                description: Array of types
                examples:
                  - point_of_interest
                  - establishment
              name:
                type: string
                description: Name of the place
                examples:
                  - West Oidar Services, Central Tax, Bangalore
              geometry:
                type: object
                properties:
                  viewport:
                    type: object
                    properties:
                      southwest:
                        type: object
                        properties:
                          lng:
                            type: number
                            examples:
                              - 77.55141967245793
                          lat:
                            type: number
                            examples:
                              - 12.922552358602232
                      northeast:
                        type: object
                        properties:
                          lng:
                            type: number
                            examples:
                              - 77.55400032754208
                          lat:
                            type: number
                            examples:
                              - 12.925067641397767
                  location:
                    type: object
                    properties:
                      lng:
                        type: number
                        examples:
                          - 77.55271
                      lat:
                        type: number
                        examples:
                          - 12.92381
                  location_type:
                    type: string
                    description: Type of location
                    examples:
                      - rooftop
              address_components:
                type: array
                items:
                  type: object
                  properties:
                    types:
                      type: array
                      items:
                        type: string
                        examples:
                          - country
                    short_name:
                      type: string
                      examples:
                        - India
                    long_name:
                      type: string
                      examples:
                        - India
              plus_code:
                type: object
                properties:
                  compound_code:
                    type: string
                    examples:
                      - NA
                  global_code:
                    type: string
                    examples:
                      - NA
              place_id:
                type: string
                description: Place ID
                examples:
                  - ola-platform:90be49b9e86d386a7076e25f71b402ca
              layer:
                type: array
                items:
                  type: string
                  examples:
                    - venue
        plus_code:
          type: object
          properties:
            compound_code:
              type: string
              examples:
                - NA
            global_code:
              type: string
              examples:
                - NA
        status:
          type: string
          description: Status of the response
          examples:
            - ok
    GeocodingResult:
      type: object
      properties:
        formatted_address:
          type: string
        types:
          type: array
          items:
            type: string
        name:
          type:
            - string
            - 'null'
        geometry:
          type: object
          properties:
            viewport:
              type: object
              properties:
                southwest:
                  type: object
                  properties:
                    lng:
                      type: number
                    lat:
                      type: number
                northeast:
                  type: object
                  properties:
                    lng:
                      type: number
                    lat:
                      type: number
            location:
              type: object
              properties:
                lng:
                  type: number
                lat:
                  type: number
            location_type:
              type: string
        address_components:
          type: array
          items:
            type: object
            properties:
              types:
                type: array
                items:
                  type: string
              short_name:
                type: string
              long_name:
                type: string
        plus_code:
          type: object
          properties:
            compound_code:
              type:
                - string
                - 'null'
            global_code:
              type:
                - string
                - 'null'
        place_id:
          type: string
        layer:
          type: array
          items:
            type: string
    GeocodingSuccess:
      type: object
      properties:
        geocodingResults:
          type: array
          items:
            $ref: '#/components/schemas/GeocodingResult'
        status:
          type: string
          enum:
            - ok
            - zero_results
            - bad_request
          examples:
            - ok
        request_id:
          type:
            - string
            - 'null'
          examples:
            - ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#724267
    GeocodingErrorResponse:
      type: object
      properties:
        reason:
          type: string
          examples:
            - Error message
        status:
          type: string
          enum:
            - ok
            - zero_results
            - bad_request
          examples:
            - error
        request_id:
          type:
            - string
            - 'null'
          examples:
            - ca8a1960-a734-41e5-96f2-7aa5d2afd9ca#724267
    GeofenceCreateRequest:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          enum:
            - polygon
            - circle
          description: The shape of the geofence.
        radius:
          type: number
          description: The radius of the geofence in meters, required if type is circle.
        coordinates:
          type: array
          items:
            type: array
            items:
              type: number
            minItems: 2
            maxItems: 2
          description: >
            List of latitude and longitude pairs. Each pair is represented as an
            array of two numbers: [latitude, longitude].
        status:
          type: string
          enum:
            - active
            - inactive
          default: active
          description: The status of the geofence.
        projectId:
          type: string
          description: Project Id under which geofence will be created.
      required:
        - name
        - type
        - radius
        - coordinates
        - status
        - projectId
    GeofenceGetResponse:
      type: object
      properties:
        geofenceId:
          type: string
          default: abc_xyz_1234
        name:
          type: string
          default: Ola Koramangala Warehouse
        type:
          type: string
          enum:
            - polygon
            - circle
          default: circle
          description: The shape of the geofence.
        coordinates:
          type: array
          default:
            - - 12.931471680858923
              - 77.61520605507842
          items:
            type: array
            items:
              type: number
            minItems: 2
            maxItems: 2
          description: >
            List of latitude and longitude pairs. Each pair is represented as an
            array of two numbers: [latitude, longitude].
        radius:
          type: number
          description: The radius of the geofence in meters, required if type is circle.
          default: 100
        status:
          type: string
          enum:
            - active
            - inactive
          description: The status of the geofence.
        projectId:
          type: string
          default: abc-xyz-123
    GeofenceCreateResponse:
      type: object
      properties:
        geofenceId:
          type: string
        status:
          type: string
        message:
          type: string
    GeofenceListResponse:
      type: object
      properties:
        page:
          type: integer
          default: 1
        size:
          type: integer
          default: 1
        total:
          type: integer
          default: 100
        geofences:
          type: array
          items:
            type: object
            properties:
              schema:
                $ref: '#/components/schemas/GeofenceGetResponse'
    GeofenceStatusRequest:
      type: object
      properties:
        entityCoordinates:
          type: object
          properties:
            lat:
              type: number
            lng:
              type: number
        geofenceId:
          type: string
    GeofenceStatusResponse:
      type: object
      properties:
        geofenceId:
          type: string
        isInside:
          type: boolean
        message:
          type: string
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
    ElevationSuccess:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
            properties:
              elevation:
                type: number
                description: Elevation in meters
                examples:
                  - 910
              location:
                type: object
                description: Coordinates of the location
                properties:
                  lat:
                    type: number
                    description: Latitude
                    examples:
                      - 12.93126
                  lng:
                    type: number
                    description: Longitude
                    examples:
                      - 77.61638
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ''
        status:
          type: string
          description: Status of the response
          examples:
            - ok
    ElevationZeroResults:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
          description: Array of results, would be empty in zero results case
          examples:
            - []
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        error_message:
          type: string
          description: Error message, if any
          examples:
            - ''
        status:
          type: string
          description: Status of the response
          examples:
            - zero_results
    ElevationBadRequest:
      type: object
      properties:
        results:
          type: array
          items:
            type: object
          description: Array of results, would be empty in zero results case
          examples:
            - []
        info_messages:
          type: array
          items:
            type: string
          description: Array of informational messages
          examples:
            - []
        error_message:
          type: string
          description: Error message, if any
          examples:
            - 'Invalid coordinates format. Expected format: {latitude,longitude}'
        status:
          type: string
          description: Status of the response
          examples:
            - zero_results
    MultiElevationRequest:
      type: object
      properties:
        locations:
          type: array
          items:
            type: string
          examples:
            - - 12.93126, 77.61638
              - 12.89731, 77.65136
    Marker:
      type: string
      example: 77.61,12.93|red|scale:0.9
    AvailableStylesResponse:
      description: List of styles available for Dynamic Maps
      type: array
      items:
        type: object
        properties:
          version:
            type: integer
            format: int32
          name:
            type: string
          id:
            type: string
          url:
            type: string
      example:
        - version: 8
          name: Light
          id: light
          url: >-
            https://api.olamaps.io/tiles/vector/v1/styles/default-light-standard/style.json
    GetArrayOfAllFonts:
      description: Get list of all fonts
      type: array
      items:
        type: string
      example:
        - Arial Unicode MS Regular
        - Lato Bold
        - Lato Italic
        - Lato Light
        - Lato Medium
        - Lato Regular
        - Lato Semi Bold
    GetArrayOfStyleTilejsons:
      description: Get list of all style's tilejson
      type: array
      items:
        type: object
        properties:
          tilejson:
            type: string
          name:
            type: string
          attribution:
            type: string
          minzoom:
            type: number
          maxzoom:
            type: number
          bounds:
            type: array
            items:
              type: number
          format:
            type: string
          type:
            type: string
          tiles:
            type: array
            items:
              type: string
          center:
            type: array
            items:
              type: number
      example:
        - tilejson: 2.0.0
          name: Dark
          attribution: ''
          minzoom: 0
          maxzoom: 20
          bounds:
            - -180
            - -85.0511
            - 180
            - 85.0511
          format: png
          type: baselayer
          tiles:
            - https://api.olamaps.io/tiles/vector/v1/styles/dark/{z}/{x}/{y}.png
          center:
            - 0
            - 0
            - 2
    GetArrayOfDataTilejsons:
      description: Get list of all data tilejson
      type: object
      properties:
        tiles:
          type: array
          items:
            type: string
        name:
          type: string
        format:
          type: string
        basename:
          type: string
        id:
          type: string
        type:
          type: string
        version:
          type: string
        description:
          type: string
        minzoom:
          type: number
        maxzoom:
          type: number
        bounds:
          type: array
          items:
            type: number
        vector_layers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              fields:
                type: string
              minzoom:
                type: string
              maxzoom:
                type: string
        center:
          type: array
          items:
            type: number
        tilejson:
          type: string
      example:
        - tiles:
            - https://api.olamaps.io/tiles/vector/v1/data/planet/{z}/{x}/{y}.pbf
          name: Tilemaker to OpenMapTiles schema
          format: pbf
          basename: planet.mbtiles
          id: planet
          type: baselayer
          version: '3.0'
          description: Tile config based on OpenMapTiles schema
          minzoom: 0
          maxzoom: 14
          bounds:
            - -16.30824
            - -57.092814
            - 180
            - 61.648162
          vector_layers:
            - id: place
              fields:
                class: String
                iso_a2: String
                name:latin: String
                rank: Number
              minzoom: 0
              maxzoom: 14
          center:
            - 81.84588000000001
            - 2.2776739999999975
            - 7
          tilejson: 2.0.0
    GetStaticImageBadRequest:
      description: Get static image bad request
      type: object
      properties:
        message:
          type: string
          example: Required valid url parameter as 'size'
    GetStaticImageOfAStyle:
      description: Get static image of style
      type: string
      format: binary
    Get3DTileset:
      description: Get 3D root tileset
      type: object
      properties:
        asset:
          type: object
          properties:
            version:
              type: string
        geometricError:
          type: number
          format: float
        root:
          type: object
          properties:
            boundingVolume:
              type: object
              properties:
                region:
                  type: array
                  items:
                    type: number
                    format: float
            geometricError:
              type: number
              format: float
            refine:
              type: string
            content:
              type: object
              properties:
                uri:
                  type: string
            children:
              type: array
              items:
                type: object
      example:
        asset:
          version: '1.0'
        geometricError: 500
        root:
          boundingVolume:
            region:
              - -1.3197
              - 0.6989
              - -1.3195
              - 0.6991
              - 0
              - 1000
          geometricError: 250
          refine: ADD
          content:
            uri: tiles/0/0/0.b3dm
          children:
            - boundingVolume:
                region:
                  - -1.3196
                  - 0.69895
                  - -1.31955
                  - 0.69905
                  - 0
                  - 1000
              geometricError: 125
              refine: REPLACE
              content:
                uri: tiles/0/1/0.b3dm
              children: []
    GetSLISchema:
      description: Get street view response
      type: array
      items:
        type: object
        properties:
          httpsStatus:
            type: integer
            format: int32
          message:
            type: string
          payload:
            type: object
          status:
            type: string
          success:
            type: boolean
          url:
            type: string
        example:
          - httpsStatus: 200
            message: SLI Images Within Bounding Box Fetched Successfully.
            payload: {}
            status: SUCCESS
            success: true
    CoverageError400:
      type: object
      properties:
        reason:
          type: string
          example: Input bounding box is invalid
        status:
          type: string
          example: BAD_REQUEST
    ImageIdError400:
      type: object
      properties:
        reason:
          type: string
          example: Latitude, longitude, and radius are invalid
        status:
          type: string
          example: BAD_REQUEST
    MetadataError400:
      type: object
      properties:
        reason:
          type: string
          example: ImageId is invalid
        status:
          type: string
          example: BAD_REQUEST
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: No API key found in request
      headers:
        X-Request-Id:
          $ref: '#/components/headers/x_request_id'
        X-Correlation-Id:
          $ref: '#/components/headers/x_correlation_id'
  securitySchemes:
    api_key_credential:
      type: apiKey
      in: query
      name: api_key
    client_credential:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.olamaps.io/auth/v1/token
          x-internal: true
          scopes:
            openid: Default
            olamaps: Includes OLA Maps API Permissions
  parameters:
    x_request_id:
      name: X-Request-Id
      in: header
      schema:
        type: string
        format: uuid
      description: A UUIDv4 unique to that HTTP request and response combination
    x_correlation_id:
      name: X-Correlation-Id
      in: header
      schema:
        type: string
        format: uuid
      description: >-
        A UUIDv4 unique over a series of requests and responses, identifying a
        transaction
    mode:
      name: mode
      in: query
      required: true
      schema:
        type: string
        enum:
          - DRIVING
          - WALKING
          - BICYCLING
          - TRANSIT
        example: DRIVING
      description: >-
        Travel mode used to validate snapping. Supported values: DRIVING,
        WALKING, BICYCLING, TRANSIT.
    input:
      name: input
      in: query
      required: true
      schema:
        type: string
        example: kempegowda internation airport
      description: >-
        The text string on which to search. The Place Autocomplete service will
        return candidate matches based on this string and order results based on
        their perceived relevance. This parameter accepts text in Indian local
        languages as well, when used with language parameter.
    location:
      name: location
      in: query
      schema:
        type: string
        example: 12.931316595874005,77.61649243443775
      description: >-
        Location parameter helps in fetching more location specific results.
        This parameter must be specified as *latitude,longitude*.\

        **Note** : If the location parameter is not specified, only name  match
        is given priority.
    radius:
      name: radius
      in: query
      required: false
      schema:
        type: integer
      description: >-
        Defines the distance (in meters) within which to return place results.
        This is obeyed when the param strictbounds is set to true
    strictbounds:
      name: strictbounds
      in: query
      schema:
        type: boolean
      description: >-
        Returns only those places that are strictly within the radius defined by
        location and radius. This is a restriction, rather than a bias, meaning
        that results outside this radius will not be returned even if they match
        the user input
    language:
      name: language
      in: query
      schema:
        type: string
        example: hi
      description: >-
        Response language - `en` (English), `hi` (Hindi), `kn` (Kannada),  `te`
        (Telugu), `ta` (Tamil), `ml` (Malayalam), `sa` (Sanskrit),  `bn`
        (Bengali), `gu` (Gujarati), `mr` (Marathi), `or` (Oriya) and `ur`
        (Urdu). By default this is set to English.
    place_id:
      name: place_id
      in: query
      schema:
        type: string
        example: ola-platform:5000039498427
      required: true
      description: Place Id of the Place/POI whose details are to be fetched
    nearbysearch_location:
      name: location
      description: >
        The latitude/longitude around which to retrieve nearby places
        information.
      schema:
        type: string
      required: true
      example: 12.931544865377818,77.61638622280486
      in: query
    nearbysearch_types:
      name: types
      description: >
        Restricts the results to places matching the specified category.Multiple
        values can be provided separated by a comma.\

        **Note**: The API may return zero_results if no type is matched.


        **For a full list of supported types, [click
        here](./docs/places-apis/place-types).**
      schema:
        type: string
      example: restaurant
      required: false
      in: query
    nearbysearch_radius:
      name: radius
      description: |
        The distance (in meters) within which to return place results.
      schema:
        type: number
        default: 10000
      required: false
      in: query
    nearbysearch_withCentroid:
      name: withCentroid
      description: |
        Whether the places returned will have geometry (centroid) information.
      required: false
      schema:
        type: boolean
        default: false
      in: query
    nearbysearch_rankBy:
      name: rankBy
      description: >
        Specifies the order in which results are ranked. If this is not
        specified, the results are ranked by popularity.
      required: false
      schema:
        type: string
        enum:
          - popular
          - distance
        default: popular
      in: query
    nearbysearch_limit:
      name: limit
      description: |
        The maximum number of results to return in response.\
        **Note**: Minimum value is 5 and Maximum is 50. Default value is 5.
      required: false
      in: query
      schema:
        type: number
    text_search_input:
      name: input
      in: query
      required: true
      description: The text query on which to search. The query must be a string.
      schema:
        type: string
      example: Cafes in Koramangala
    text_search_location:
      name: location
      in: query
      required: false
      description: >
        Optionally, you can specify a location to search around that particular
        location. The location must be a string in the format of
        'latitude,longitude'.
      schema:
        type: string
      example: 12.93142,77.61645
    text_search_radius:
      name: radius
      in: query
      required: false
      description: >
        Radius to restrict the search results to a certain distance around the
        location.
      schema:
        type: number
        default: 5000
    text_search_types:
      name: types
      in: query
      required: false
      description: >
        Restricts the results to places matching the specified type. Multiple
        values can be provided separated by a comma (,).
      schema:
        type: string
      example: cafe
    text_search_size:
      name: size
      in: query
      required: false
      schema:
        type: integer
        default: 5
      description: The maximum number of results to return in response.
    address_validation_input:
      name: address
      description: |
        The address which needs to be validated.
      schema:
        type: string
      required: true
      in: query
      example: 7, Lok Kalyan Marg, New Delhi, Delhi, 110011
  headers:
    x_request_id:
      schema:
        type: string
      description: A UUIDv4 unique to that HTTP request and response combination
    x_correlation_id:
      schema:
        type: string
      description: >-
        A UUIDv4 unique over a series of requests and responses, identifying a
        transaction
