Show HN: Hackney – Compare Uber, Lyft, Waymo, and Robotaxi Prices (hackney.app)

1 points by griffinli ↗ HN
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.

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

39 comments

[ 3.8 ms ] story [ 57.8 ms ] thread
Neat idea, is it US only?
This is really cool! Is support for Zoox on your radar?
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.
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.
Interesting. App store asked me for proof of permission from the first party to use a reverse engineered BLE protocol.
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.
I believe this is Google's rule that applies. Though, I think Beeper would be breaking it as well. Maybe I'm reading it wrong?

> Examples of common Device and Network Abuse violations:

> Apps that access or use a service or API in a manner that violates its terms of service.

I guess they don't really enforce it. Zenmoney reverse-engineered APIs of banking apps and their app is still on both app store and google play
IANAL but I also wonder if app A can violate app B's terms of service, if they never agreed to the TOS in the first place.
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.

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
They barely want to ban drivers, you think they’re going to ban the revenue?!
Much needed. I've been waiting for this.
Literally takes 5 seconds to open up different apps, lol
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.
No it doesn't
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
It's possible they do that, but it's difficult to block third-party clients entirely. Changes to APIs can generally be worked around.
We need to make terms like that unenforceable in law with penalties if they do that anyway.
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.

(comment deleted)
(comment deleted)
(comment deleted)
Misuse of the word “Hackney”. Hackney has a fairly specific meaning for traditional cabs in London whose human drivers require huge amounts of training in order to be licensed to pick up passengers - the antithesis of everything Uber etc stand for. Pretty sure you can’t use “Hackney Carriage LLC” as a company name either.

A simple google reveals: “A hackney carriage is the formal legal term for a public vehicle for hire, such as a traditional black cab or taxi. Unlike private hire vehicles (minicabs), hackney carriages can be hailed directly off the street or hired from designated ranks.”

The term has a long, disputed history though, and exported English can morph and grow according to local usage. I was going to post what you posted, but more than a simple Google search led me elsewhere!
Regardless of specifics or otherwise, the app name is territorialising a domain and naming convention it shouldn’t be, and seeing as the app is available on the UK App Store then it’s certainly a case of “passing off” - a “hackney carriage” certainly is “in the UK, the name hackney carriage today refers to a taxicab licensed by Transport for London, local authority (non-metropolitan district councils, unitary authorities) or the Department of the Environment depending on region of the country“ (Wikipedia).

This app has nothing to do with that licensing of taxi cabs or their history, or comply with the legal foundations of that naming convention. Just because there’s a long history and some dispute, adding to the confusion isn’t going to help, and will be grounds for a huge amount of legal problems if this app gets off the ground, and so is better nipped in the bud sooner rather than later.

It's only a problem if he decides to do business in UK... Yanks are free to use it over in yanktonia
Would love to give this a try once it is working in Australia. Our options are just DiDi and Uber.
Great idea but what’s the business model for you to keep this running?
There’s an app called Obi that does exactly this.

https://rideobi.com/

It’s been around for years now. The great thing about it is it works worldwide - so if you come to a country and have no clue which company operates there, you just open Obi.