Ride Availability/Estimate


GET /v1/products

Get real time information about Ola rides available at a given user location. Access the following information by providing the location (latitude & longitude) of your user:

  • Ride categories available nearby
  • Estimated time of arrival (ETA)
  • Ride cancellation policy.
  • Rate card and fare details
  • Whether peak/lean pricing is applicable
  • Exact locations of nearby rides
  • Any previous ride cancellation charges which will be collected in the current ride
  • Whether the pickup location lies within a hotspot zone, and the designated pick-up points which applicable as per category

Additionally, if the desired drop location of the user is provided, the following will be available:

  • Ride estimate as a min-max range
  • Any coupon if auto-applied by Ola
  • Upfront price (only for select partners)


Request Parameters

Name Data Type Description Type Remark
pickup_lat float Latitude of the pickup location Payload Mandatory
pickup_lng float Longitude of the pickup location Payload Mandatory
category string

Ride category

  • micro
  • mini
  • share
  • prime
  • suv
  • prime_play
  • auto
  • lux
  • rental
  • outstation
  • sedan
  • exec
  • bike
  • erick
  • kp
  • electric_vehicle
  • cool_cab
Payload

Optional (If category is not sent,
response will have info of all categories)

drop_lat float Latitude of the drop location Payload Optional (Mandatory if ride
estimate required)
drop_lng float Longitude of the drop location Payload Optional (Mandatory if ride
estimate required)
service_type float

Type of ride

  • p2p
  • rental
  • outstation
Payload Optional (Send p2p if
Rental/ Outstation not reqd)
pickup_mode string Time of pickup [now, later] Payload Optional
X-APP-TOKEN string Unique key for the partner Header Mandatory
Authorization string Unique key for the user (to be passed as Bearer token) Header Optional (Mandatory if upfront fare and previous cancellation charges reqd)

Example Request

GET

https://devapi.olacabs.com/v1/products?pickup_lat=12.8953741&pickup_lng=77.5859018&drop_lat=12.9560643&drop_lng=77.6514801&service_type=p2p&category=auto

Headers: {
  Authorization: Bearer 96121212f12ff12f12f1f12f1f12fe2
  x-app-token: fd5d6121212f12ff12f12f1f12f1f12fa
}

Example Response (Success)


{
    "hotspot_zone": {
        "is_hotpot_zone": true,  // indicates if pick-up lat-lng lies within hotspot zone
        "desc": "Choose from convenient pickup points to board your cab.",
        "default_pickup_point_id": 10881,  // default pickup lat-lng which is considered for ride estimate and booking
        "hotspot_boundary": [   // coordinates which define hotspot limits
            [
                12.9468154,
                77.6472151
            ],
            [
                12.9474219,
                77.6475155
            ],
            [
                12.9478192,
                77.6467001
            ]
        ],
        "pickup_points": [  // designated pickup points inside the hotspot
            {
                "lat": 12.9509456,
                "lng": 77.6408958,
                "name": "Sunriver",
                "id": 10880
            },
            {
                "lat": 12.9506006,
                "lng": 77.6417542,
                "name": "Cherry Hills",
                "id": 10881
            }
        ]
  },
	"categories": [{
		"id": "auto",
		"display_name": "Auto",
		"currency": "INR",
		"distance_unit": "kilometre",
		"time_unit": "minute",
		"eta": 1,                  // Estimated Time of Arrival for category
		"distance": "0.2",
		"ride_later_enabled": "false",  // Whether Ride Later is applicable for category
		"image": "http://d1foexe15giopy.cloudfront.net/auto.png",
        "hotspot_pickup_points": [  // designated pickup points valid for category
                10879,
                10880,
                10881
        ],
		"cancellation_policy": {     // charges applicable if ride cancelled
			"cancellation_charge": 15,
			"currency": "INR",
			"cancellation_charge_applies_after_time": 5,
			"time_unit": "minute"
		},
		"fare_breakup": [{
				"type": "airport drop",  // rate card applicable if drop at airport
				"minimum_distance": 0,
				"minimum_time": 0,
				"base_fare": 50,
				"minimum_fare": 60,
				"cost_per_distance": 11,
				"waiting_cost_per_minute": 0,
				"ride_cost_per_minute": 1.5,
				"surcharge": [],
				"rates_lower_than_usual": false,
				"rates_higher_than_usual": false
			},
			{
				"type": "airport pickup", // rate card applicable if pickup at airport
				"minimum_distance": 0,
				"minimum_time": 0,
				"base_fare": 50,
				"minimum_fare": 60,
				"cost_per_distance": 8,
				"waiting_cost_per_minute": 0,
				"ride_cost_per_minute": 1,
				"surcharge": [],
				"rates_lower_than_usual": false,
				"rates_higher_than_usual": false
			},
			{
				"type": "flat_rate",  // Default rate card
				"minimum_distance": 0,
				"minimum_time": 0,
				"base_fare": 50,
				"minimum_fare": 60,
				"cost_per_distance": 8,
				"waiting_cost_per_minute": 0,
				"ride_cost_per_minute": 1,
				"surcharge": [],
				"rates_lower_than_usual": false, // Lean Pricing (fare multiplier <1)
				"rates_higher_than_usual": false // Peak Pricing (fare multiplier >1)
			}
		],
		"all_cabs": [{                        // Current locations of nearby cabs
            "lat": 12.9543501,
            "lng": 77.5438193,
            "id":"e0e7ba15f7249207c1d77ec07c1c06",
            "bearing":534,
            "accuracy":15
      },
      {
            "lat": 12.9561008,
            "lng": 77.5464725,
            "id":"15f7249207c1d77e9207c1c0601d6c9c",
            "bearing":135,
            "accuracy":10
      }]
	}],
	"ride_estimate": [{
		"category": "auto",
		"distance": 16.9,
		"travel_time_in_minutes": 93,
		"amount_min": 227,      // Lower limit of ride estimate
		"amount_max": 249,     // Upper limit of ride estimate
      "advance_booking_amount": 30 // Applicable only for Ride Later, included in fare
      "discounts": 		// Auto-applied coupon information
      {
			"discount_type": "custom",
			"discount_code": "BLR29",
			"discount_mode": "AUTO",
			"discount": 0,
			"cashback": 0,
            "pass_savings": 16      // Benefit received due to Ola Pass
		},
		"upfront":                    // Will be available only for whitelisted partners
      {
        "fare": 238,
        "fare_id": "1:000008:50002738-7242",   // To lock fare
        "select_discount": null	 // Available in case of Select users
        "is_upfront_applicable": true  // Indicator of upfront pricing
      }
	}],
	"previous_cancellation_charges": // Any cancellation charges to be collected in the ride
  [{
			"currency": "INR",
			"booking_id”: "CRN123456789",  // Booking for which charge levied
			"amount": “25”
		},
		{
			"currency": "INR",
			"booking_id": "OSN123456789",
			"amount": 50
		}
	]
}

Important Guidelines

  • If a particular category is not supported in a city, then it will not appear in the response
  • If a particular category is not available near the pickup location selected, the ‘eta’ field will have a value of -1. You can choose to either not display that category or mention it is unavailable.
  • The ‘ride_estimate’ object will be empty if drop location coordinates are not sent in the request
  • The ‘previous_cancellation_charges’ object will be present only if authorization is sent in the request headers. These are charges which are levied on user account due to cancellation of previously booked rides, and are supposed to be paid along with the bill of the current ride
  • Upfront pricing will be applicable only for select whitelisted partners. A minimum of 100 completed rides/day is expected before upfront pricing is made live for users on your platform.
  • Upfront pricing object will be present only if authorization is sent in request headers. Use the parameter ‘is_upfront_applicable’ to figure if upfront pricing is applicable for the fare provided. In case the parameter is false, use ‘amount_min’ and ‘amount_max’ to display range of ride estimate.
  • If you are whitelisted for upfront pricing, the ‘surcharge’ array will be empty and will not contain any price multiplier. You will only be provided indicators as to whether rates are higher than usual (peak) or lower than usual (lean).
  • ‘all_cabs’ object can be used to plot locations of nearby cabs and display them to the user
  • Any information, if available in ‘discount’ would be related to auto-applied offers
  • If the pickup point sent in request lies within a hotspot zone, the set of designated pick-up points will be shared in response. You are supposed to send one of those again in ride estimate and booking create calls. If you do not send from the list of designated points, the default pickup point will be selected

Example Responses (Failures)

  • Pickup lat-lng are in a city where Ola is not available
    {
        "message": "Sorry, we do not serve this city.",
        "code": "INVALID_CITY"
    }
    
  • Car category parameter sent is not valid
    {
        "message": "Invalid city category selected.",
        "code": "INVALID_CITY_CAR_CATEGORY"
    }