App for accessing Bird scooters
-
... has just been published to the store:
https://open-store.io/app/scooter.s710Its a port of my existing SailfishOS app, now its available on UT.
The app provides the following features:
- Log into an existing Bird account using E-Mail/confirmation code
- Show profile details
- Show scooter locations and restricted areas on a map
- Ring scooter
- Unlock scooter / start ride by scanning the QR code on the scooter
- Show pending/active rides which have not yet been stopped
This means that an existing Bird account with associated payment information is needed. It is not possible to create a new account with my app (use official iOS/android app).
Since undocumented APIs are used, there are several limitations. While it is perfectly possible to unlock scooters and take a ride, it is not possible to:
- coupon codes / ride passes can neither be displayed nor used. This means that even though a user buys a ride pass for free unlocking on e.g. iOS or android, using my app will not consider this, and the user will be charged more than necessary. I think this is caused by a recent change in the API, since some weeks ago the API would return the actual cost as well as "cost_without_coupon" when ending the ride, and charge the discount price, which no longer is the case.
- price information is displayed in USD, regardless of the user's country
- no interaction with the profile/payment information is possible, neither is the creation of accounts
- group rides and purchasing ride passes is not possible
If anyone is good in reverse engineering and wants to help, contact me
I have contacted Bird (as well as a number of other scooter providers), asking for help/documentation of their API in order to provide a better user experience, but I am not that optimistic.
Bird is the only provider of electric scooters I found where parts of the API are documented, including scooter unlocking/riding, however in case I get a response from other providers, or anyone comes up with API endpoint documentation for other providers, I can add them to the app.In case errors occur during app usage, theres a log view in the settings, which can be used to send logs to me which might help analyze issues.