Requirements of the Uber API

Introduction to Uber

Uber is a commonly used application that provides ride-hailing services to users. A user can book a vehicle to travel from a source to a destination. Mainly, two types of users register for the Uber service: a riderThe user that requests a ride requesting a vehicle and a driverThe driver who provides the service providing the ride. Multiple services are used in the Uber system to perform these core functions.

Designing an efficient API for Uber requires an understanding of the services that make up Uber and how they interact with each other. Providing synchronization and status updates with low latency between different users is vital for a service like Uber. For example, the rider requests a ride, and the driver accepts that ride request, but if the rider doesn't get notified in near real-time, then the rider may feel like the application is stuck and might cancel this request and request another ride.

Let's start by identifying the requirements for Uber API.


There are multiple functionalities required to design the complete Uber system. We have identified the following functional and non-functional requirements for designing the API for Uber.

Functional requirements

The functionalities are explained in terms of the rider or the driver.

  • Book a ride: A rider can request a ride, the estimated time of arrival (ETA), and get an estimate of the fare of the ride using our API. Also, the driver should be able to accept or reject that request while using our services.

  • Trip processes: The driver should be able to start and end the ride. Additionally, riders should be able to make modifications, such as adding or removing stops during a trip.

  • Rider/driver activities: Riders and drivers should be able to see previous ride histories and current trip details. Additionally, the API should be able to store feedback from drivers and riders. Also, our API should allow users (passengers and drivers) to view and update their profiles.

  • Chat: Our API should allow riders and drivers participating in a ride to exchange messages between them.

  • Payment: Our API should allow riders to pay fares for rides using different payment methods.

Create a free account to view this lesson.

By signing up, you agree to Educative's Terms of Service and Privacy Policy