Uber Ride Request API

Uber provides Uber SDK for Java and Python, Deep linking options if you want to launch the Uber app from your app, APIs if you want to do integration in your own way and Affiliate program besides Uber Ride Request APIs.

Uber Ride Request API offers Uber Ride Request buttons for your iOS and Android Apps. Ride Request button would provide single tap deep link into the Uber App.

For iOS

Uber Rides iOS SDK provides Swift library to integrate Uber into your iOS App. For Uber Integration minimum iOS version 8.0+ and XCode 7.1+ is required. Uber Rides iOS SDK provides CocoaPod written in Swift.

Note: Uber Rides is also available via Carthage(a decentralized dependency manager).

You can integrate Uber Rides into your project without using dependency manager by adding project manually.

For iOS 9.0 and Higher you need to modify app’s plist to handle Apple’s new guidelines for URLs.

<key>LApplicationQueriesSchemes</key>

<array> <string>uber</string>

</array>

For Uber Rides integration import ‘UberRides’ library into your project. Configure RidesClient with your Uber client ID.

Add desired drop off location parameters (latitude,longitude pair and location name) that would be passed on to the drivers. You can set button color for Uber Ride Request in Black or White Color.

For Android

Uber Rides Android SDK provides support for Uber’s deeplinks. For Uber Rides SDK integration minimum SDK version 16 is required. In order to use Uber Rides Android SDK add complie dependency in build.gradle file.

For displaying Ride Request button add button in your layout file and add your client ID in the code while adding Request Button.

Add Ride Request parameter in similar fashion indicated above for iOS.

Uber API Integration

You are required to provide Uber with your app name and description in order to get client_id, secret and server_token.

Authenticate and Authorize app user(Uber User credentials) with OAuth 2.0. Following endpoints does not require a user login.

  •  products, estimates/price, estimates/time and promotions

Following endpoints require OAuth

  •  me, history & requests

App user needs to provide valid credential and authorization to access his Uber details to your app in order to proceed further. New uber user would first register before providing authorization to access uber details.

Uber API provides Sandbox environment so your requests would not hit Uber server until you are ready for App launch.

Lifecycle of a Request goes through following status processing, no drivers available, accepted, arriving, in progress, driver canceled, rider canceled, completed.

For making ride request pass product_id, start location with lat/long pair and end location with lat/long pair.Provide user with Products list, Estimated Time of Arrival, and Estimated Cost of Service for making selection.

Ride request would return one of the following 202 for acceptance, 409 for conflict(either Surge pricing or no driver available) or 422 because of issue with user’s Uber account. Uber riders are interested in knowing the Ride status like Accepted, Arrived and On Trip.

Sometimes when no. of drivers are low or Uber wants them to take up the ride at higher price you need to manage what is called – Surge Pricing. This phenomenon generally happens in the time of more traffic and less drivers on road.

User would get Push or SMS notifications related to request status and Email receipts for rides like they are getting as if they are using Uber app directly.

Uber API currently not providing Rating Driver, Displaying Receipts, Splitting the fare, and Exclusive products. You must for Design guidelines provided by Uber and not dilute Uber branding in any way.

Utpal Betai

Business Analyst & Project Manager, Training and Learning

Want to work with us? We're hiring!