Start ordering with Uber Eats

Order now

Uber’s Trip Experiences API Helps Cupper Bring You the Ultimate Coffee Experience

December 13, 2016 / Global

Cupper is a coffee discovery platform born out of frustration and difficulty around finding a great cup of coffee. The algorithms behind traditional user-review platforms score cafes on many factors — not just the coffee itself. We wanted to put the focus squarely on the beverage. With that in mind, Michael Montante, Cupper’s co-founder and a certified coffee grader, brewed up a brilliant solution: recruit other certified graders to rate cafes and coffee drinks in cities around the country.

Get There with Uber

Uber Ride Request Button provides a seamless way for users to get to a recommended cafe

From the start, our mission has been to get people to the best coffee as quickly as possible. That’s why we integrated with the Uber Ride Request Button. Thanks to the ease of the Uber Rides SDK, we knew the integration would require minimal effort and time. What surprised us was how much our users loved the button. They access it almost as often as Google Maps and Apple Maps within the app!

But that was just the beginning…

Smarter Rides with Trip Experiences

Unlocking contextual cafe results with the Trip Experience API

The Trip Experiences API gave us the perfect tools to streamline our users’ journey. Usually when a user opens our app, they see the best cafes around their GPS location. When you’re in an Uber, though, your current GPS location is far less important than your final destination.

That’s where the Trip Experiences API comes in. With it, users can connect their Uber rider account to Cupper to provide trip details in real-time. We use this insight to communicate to the user details about their ride (ride status and ETA) from right within the Cupper app, and automatically switch the interface to recommend the best cafes near their destination.

Once we saw how amazing this experience was for our users, we decided to take it a step further. Cafe culture is inherently social. People often meet others — first dates, business partners, and friends — at cafes. To make coordinating these coffee rendezvous as seamless as possible, we built an iMessage extension within Cupper, which allows users to effortlessly send cards with the cafe’s name and address to their friends. Now users can also share the status and ETA of their Uber ride on the way there. It’s in these social interactions that the Trip Experience API really shines.

Trip Experience API enhances social interactions

Easy Implementation

One of the most satisfying aspects of working with the Uber Rides API was how simple it was to go from concept to implementation within Cupper. This is best demonstrated in our use of the Uber Ride Request Button.

let button = RideRequestButton()
let ridesClient = RidesClient()
let pickupLocation = CLLocation(latitude: 37.7711060, longitude:     -122.3892010)
let dropoffLocation = CLLocation(latitude: 36.6047390, longitude:   121.8925460)
let dropoffNickname = "Work"
let builder = RideParametersBuilder().setPickupLocation(pickupLocation).setDropoffLocation(dropoffLocation, nickname: dropoffNickname)
ridesClient.fetchCheapestProduct(pickupLocation: pickupLocation, completion: {
    product, response in
    if let productID = product?.productID {
        builder = builder.setProductID(productID)
        button.rideParameters =

With just a few lines of code, we were able to allow users to request Uber rides to the best cafes from the Cupper app.

Although Cupper’s implementation of the Trip Experience API has several moving parts, they all facilitate a smarter ride. Any time a Cupper user begins a new Uber trip, or the status of an existing trip changes, Cupper receives a webhook call from Uber. This alerts Cupper to check the status of that user’s current ride through the /requests/current API endpoint and get more details about the ride. The Cupper app then utilizes the Uber Rides SDK to provide the most up-to-date ride status and ETA to the user, as well as search for the best cafes near their destination.

Once the Trip Experience API integration was built, it was very easy to extend it. We were able to continue leaning on the Uber Rides SDK for our iMessage extension features, allowing us to reuse the majority our code base.

Continuing to Grow the Ultimate Coffee Experience

At Cupper, we feel like our work has only just begun. We’re excited about further exploring Uber’s other powerful APIs to find more ways to get you the best coffee around. Join us on our journey to build the Ultimate Coffee Experience by downloading the Cupper app today!

To get updates from the Uber Developer team in the future, follow our publication or follow us on Twitter.