Back to News
Advertisement
ggriffinli about 13 hours ago 25 commentsRead Article on hackney.app

RU version is available. Content is displayed in original English for accuracy.

I created an app that compares real-time prices and wait times across Uber, Lyft, Waymo, Tesla Robotaxi, Curb, and Empower. It shows you all ride options in one list, then once you’re ready to book, it deeplinks you to the provider’s app with the route pre-filled.

Edit: Here's a demo video: https://www.youtube.com/watch?v=VV8PEAjxwQI

I reverse-engineered ride-hailing mobile apps to understand how they fetch prices from their servers. You sign in to my app with your ride-hailing accounts, and then my app requests live prices from the same APIs that ride-hailing apps use. Importantly, my app is built using an on-device approach: the app on your phone stores authentication tokens locally and sends network requests directly to each ride-hailing company’s servers. This keeps your accounts private. I wrote a blog post showing network requests sent by my app, which you can verify yourself: https://blog.hackney.app/p/how-hackney-works

This seems like an obvious app. Why doesn’t it already exist? That’s because most ride-hailing companies don’t offer public APIs for prices and wait times. Uber does offer one, but they prohibit using it for price comparison. When someone built a comparison app using the official API, Uber terminated their API access (https://www.benedelman.org/news-053116). There are apps today that don’t use official APIs, but they run your account tokens through their servers and send price requests server-side.

To integrate a ride-hailing provider, my app sends network requests for sign-in, token refresh, ride prices, and ride history (to power a feature that shows you unified ride history across apps and how much you’ve saved on each ride). Some ride-hailing apps implement certificate pinning to prevent you from viewing their network requests, and some communicate with their server using Protobuf, a data format that doesn’t include the original field names. Building an app using this approach is technically complex, but it makes possible all sorts of useful products that couldn’t otherwise exist.

The app is completely free. In the future, I may monetize through a subscription or partnerships with ride-hailing companies. I’d love to hear your feedback. You can download it today.

iOS: https://apps.apple.com/us/app/hackney-compare-rideshares/id6...

Android: https://play.google.com/store/apps/details?id=app.hackney

Advertisement

⚡ Community Insights

Discussion Sentiment

100% Positive

Analyzed from 540 words in the discussion.

Trending Topics

#app#apps#alice#price#prices#rideshare#using#great#bob#store

Discussion (25 Comments)Read Original on HackerNews

gonzalohmabout 1 hour ago
You mentioned that Uber specifically forbids using their API for price comparison. Aren't you worried that they may implement something so you can't use internal APIs? I'm pretty sure none of the companies would like this app. Even though I think this is great and promotes fair pricing
griffinliabout 1 hour ago
It's possible they do that, but it's difficult to block third-party clients entirely. Changes to APIs can generally be worked around.
xnxabout 4 hours ago
I'm wary to try this for fear of my Uber account getting locked.

Great example of something that on-device general agents should be able to do: Operate the apps to get prices and summarize prices.

griffinliabout 4 hours ago
That's a valid concern but I think it's unlikely. No one's account has been locked for using this app. Rideshare companies take a large cut of the ride fare, so locking user accounts for using third-party apps is against their incentives. It's more likely that they would try to prevent this app from working, rather than targeting users of the app.
btown19 minutes ago
Not a ban, perhaps... but if I have two users - Alice who uses the app according to normal patterns, and Bob who consistently predicts and declines when my dynamic pricing algorithm tries to push above market pricing, and has a remarkably high look-to-book ratio - I'll want Alice to have better drivers, better service, faster pickups etc., because I'll have larger lifetime margins from choose-the-app-on-vibes-Alice than from race-to-the-bottom-Bob.

If my known-good supply is limited at any given time, I have every incentive to focus it on Alice, and I'd be inclined to try out e.g. new drivers on accounts like Bob's.

Rideshare data teams are incredibly talented, capable, and motivated. One does not simply front-run a market where the biggest players have a massive data advantage, control your latency, and are effectively unregulated.

griffinli4 minutes ago
An alternative possibility is that a rideshare company sees that Alice always takes the price that's offered so Alice receives the standard price, whereas Bob is price-sensitive so he receives personalized discounts on rides until the prices reach the amount that he's willing to pay.
dantemoonabout 2 hours ago
I've been using this for a few months at least on both android and ios and have not been banned or locked out of any of my linked accounts but obviously that can change at any moment
f3408fhabout 4 hours ago
How did you get this through App Store review? My understanding is Apple tends to be pretty strict about apps that rely on reverse-engineered private APIs.
griffinliabout 4 hours ago
App Review didn't object to that. There are various apps on the App Store today that rely on reverse engineering, such as unified messaging apps, alternative rideshare price comparison apps, and driver-side rideshare aggregators.
f3408fhabout 3 hours ago
Interesting. App store asked me for proof of permission from the first party to use a reverse engineered BLE protocol.
ccoabout 2 hours ago
App Store review is really just luck of the draw in my experience. There is usually no rhyme or reason to a decision, changing some minor thing and re-applying works a lot of the time.
griffinliabout 3 hours ago
What project was this?
Thaxllabout 1 hour ago
It doesn't exists because:

- it's against ToS

- it can get you banned

Reversing API is trivial, this is not the reason.

readme25 minutes ago
Ah yes, an application that should exist in a free market but will probably disappear soon.

You are a good person. Keep going at it.

griffinli20 minutes ago
Free markets are great.
dgerkenabout 3 hours ago
Much needed. I've been waiting for this.
fragmedeabout 4 hours ago
This is really cool! Is support for Zoox on your radar?
griffinliabout 4 hours ago
That's planned!
msyllaabout 12 hours ago
Neat idea, is it US only?
griffinliabout 12 hours ago
It works throughout the US and Canada.
oleg_kabanovabout 12 hours ago
Great project. Is there a web version?
griffinliabout 12 hours ago
No, just mobile.
cammikebrownabout 3 hours ago
Literally takes 5 seconds to open up different apps, lol
griffinliabout 3 hours ago
That can work for two apps but it's tedious once there are three or more. You'd also need to swipe back and forth between apps to find the corresponding prices for each ride type (Wait & Save, Standard, Comfort, etc.), whereas this app groups together the prices for each ride type across providers.
dymkabout 2 hours ago
No it doesn't