Three lines

Uber

Developers

Fulfillment Indicator

Privileged and Confidential This endpoint design has been confidentially shared with you. It is still under development and is subject to change without notice. Please do not share this document or API endpoint details with anyone who is not authorized to have access. For more information read about scopes.

Reserve Demand Shedding

Dynamically manage high demand for Reserve Rides based on real-time conditions, improving reliability and success rates.

When demand exceeds available capacity, the system temporarily limits new reservations. The Get Estimates API provides indicators reflecting ride availability, while the Create Guest Trip API enforces these restrictions.

Handling Reserve Demand Shedding in Get Estimates API

The Get Estimates API now includes the fulfillment_indicators.request_blocker.block_type field, which indicates whether a ride can be booked.

Possible Values and Actions

Block Type Description Action Required
BLOCK Hard demand shedding. Reserve rides are unavailable. Mark as “No availability” in the UI. Do not allow users to book this ride.
WARN Soft demand shedding. Medium availability. Show “Medium availability” in the UI and recommend selecting a different product.
NONE No demand shedding. Allow booking without warnings.
UNKNOWN Shedding status unavailable. Allow booking without warnings.

Note: UNKNOWN means the shedding information is not available for the given pickup time and location. You may proceed to book a ride.

API Response Example with Reserve Shedding

"fulfillment_indicators": {
  "request_blocker": {
    "block_type": "BLOCK"
  }
}

Handling reserve demand shedding in Create Guest Trip API

If a reserved ride request is made for a product with block_type=BLOCK, the Create Guest Trip API will return an error message indicating temporary unavailability.

Error Response Example

{
  "error": {
    "code": "supply_capacity_reached",
    "message": "Reserving a Black SUV is temporarily unavailable. Try reserving at a different time or selecting another ride option."
  }
}

Availability Predictions

Assess the likelihood of fulfilling a scheduled ride based on demand and supply conditions.

When a scheduled ride estimation request is made, the system provides a confidence level for each vehicle, indicating the likelihood of fulfillment.

Correctly interpret these predictions, ensuring users receive accurate availability information when booking scheduled rides, leading to a seamless booking experience.

API Response Example with Availability Prediction:

"availability_predictor": {
  "predictor_result": "GREEN"
}

Implementation Recommendation:

Predictor Result Recommended UI Message Booking Recommendation
GREEN “High availability—this ride is likely to be fulfilled.” Allow booking without warnings.
YELLOW “Moderate availability—there may be delays.” Allow booking, but notify users of possible wait times.
RED “Low availability—this ride may not be fulfilled.” Recommend an alternative vehicle type or time.
UNKNOWN No special message needed. Proceed with booking normally (default for reserved rides).

Note: A prediction value of UNKNOWN means that the prediction is not available for the given vehicle, ride type (e.g., Reserve), or pickup time.

Identifying Reserved Vs Scheduled Rides

Based on the duration between ‘pickup time’ and ‘estimation request time’, the response of the estimate API call will include a field called product.advance_booking_type.

If the value is:

  • Reserve: This means that if you proceed to book the specific vehicle type, the ride will be considered a reserve ride.
  • Scheduled: This means that if you proceed to book the specific vehicle type, the ride will be considered a scheduled ride.

Different vehicles may have different thresholds indicated in the scheduled_threshold_minutes field.

  • If the duration between ‘pickup time’ and ‘estimation request time’ is less than the threshold, the ride will be considered scheduled.
  • If the duration between ‘pickup time’ and ‘estimation request time’ is greater than the threshold, the ride will be considered reserve.

Only the products that have reserve_info.enabled=True are eligible for reserve rides.

Reserved Shedding Vs Availability Predictions

It is crucial for partners to correctly interpret API fields based on ride type:

For Reserve Rides:

  • Use fulfillment_indicators.request_blocker.block_type to determine if the reservation can proceed.
  • Partners should NOT use fulfillment_indicators.availability_predictor.
  • The system determines only whether the request will be accepted (BLOCK, WARN, NONE, or UNKNOWN).

For Scheduled Rides:

  • The system provides a probability estimate for servicing the scheduled ride request using color-coded indicators (GREEN, YELLOW, RED).
  • This is because a scheduled ride behaves like an on-demand ride a few minutes before pickup.
  • Use fulfillment_indicators.availability_predictor.predictor_result for availability predictions.

Note: Do not consider request_blocker and availability_predictor as one and the same.

Uber

Developers
© 2025 Uber Technologies Inc.