- No account, no sign-in, no name, email or phone number asked.
- Your location is used on your phone only and is never sent to our server.
- Saved stops and settings stay on your phone.
- The current version has no ads, no analytics, no tracking and no crash-reporting SDKs. We do not sell personal data.
- To keep the app free, a future version will show ads from Google AdMob. What that changes is explained in section 6, and this policy will be updated before that version is released.
1. Who we are
SG BusXing is an independent Singapore bus-arrival app made by MJ Codeworks (“we”, “us”). It is not affiliated with the Land Transport Authority (LTA), SBS Transit, SMRT, Go-Ahead or Tower Transit. Questions about this policy: support@mjcodeworks.org.
2. Information that stays on your phone
The following is stored only in the app’s private storage on your device. We cannot see it.
- Saved stops and their labels, plus your recently viewed stops.
- Settings such as theme, commute hours and walking pace.
- Cached public data (the bus-stop list and bus routes) so the app opens quickly.
If Android backup is turned on for your Google account, Android may include this app data in your device backup, which is handled by Google under Google’s Privacy Policy, not by us. Uninstalling the app or using Settings → Apps → SG BusXing → Storage → Clear storage deletes it.
3. Location
The app asks for location permission only when you tap a feature that needs it (nearby stops, walking time to a stop, rain near you). You can refuse, or choose approximate location, and the rest of the app still works.
- Your position is processed on the device to sort nearby stops, estimate walking time and pick the closest weather area.
- Your coordinates are never sent to our server or stored by us. The app uses location only while you use it (no background location).
- When the map is shown, the map provider receives requests for the map tiles of the area on screen, which may reveal the general area you are looking at (see section 4).
You can turn location off at any time in Android Settings → Apps → SG BusXing → Permissions.
4. Information sent over the internet
To show live information, the app connects to the services below. Like every internet request, each one receives your device’s IP address and basic technical details (such as the app’s user agent) as part of the connection. None of these requests contains your name, account, contacts, advertising ID or location coordinates.
| Service | What the app sends | Why |
|---|---|---|
| Our API, hosted on Cloudflare Workers | Bus-stop codes, bus service numbers and place-search text you type (e.g. “Bishan MRT”). | Fetches bus arrivals and routes from LTA DataMall, MRT service alerts, and place search from OneMap (Singapore Land Authority). Our server makes those calls, so LTA and OneMap do not see your IP address. |
| data.gov.sg (Government of Singapore) | A request for the current national weather forecast and rainfall readings. No location is sent; the app picks the nearest area on your phone. | “Rain near you”. |
| OpenFreeMap | Requests for map tiles of the area shown on screen. | Drawing the map. |
What our server keeps
- Request logs: Cloudflare keeps short-lived operational logs (request time, path such as
/v1/arrivals/12345, status and IP address) so we can fix errors and stop abuse. These are kept for a few days under Cloudflare’s standard retention and then deleted automatically. We do not combine them with any other data or use them to identify you. - Rate limiting: your IP address is counted for about one minute to block excessive traffic.
- Shared cache: public responses (bus arrivals, routes, place-search results) are cached for everyone, keyed by the stop code, service number or search text, for up to 7 days. The cache does not record who asked.
5. What we do not do
- No user accounts and no collection of names, email addresses, phone numbers, contacts, photos or files.
- In the current version: no advertising SDKs, analytics SDKs or crash-reporting SDKs, and no use of the advertising ID.
- No selling or renting of personal data.
- We do not track you across other apps or websites ourselves.
6. Advertising (planned)
The current version of SG BusXing shows no ads and contains no advertising code. To keep the app free, we plan to add ads in a future version:
- Banner ads at the bottom of the main screens only. No full-screen ads, and ads will never cover live bus times.
- Ads will be provided by Google AdMob. When ads are shown, the AdMob SDK collects and shares with Google: your device’s advertising ID, IP address (from which an approximate location can be derived), device and app information, and how you interact with ads. Google uses this to serve ads, measure them and prevent fraud, as described in How Google uses information from sites or apps that use its services and Google’s Privacy Policy.
- Where the law requires it (for example in the EU, UK and Switzerland), the app will ask for your consent before showing personalised ads. Without consent you will see non-personalised ads.
- You will be able to reset or delete your advertising ID, or opt out of personalised ads, in Android Settings → Privacy → Ads (or Settings → Google → Ads).
- Your saved stops, settings and location coordinates will still stay on your phone and will not be given to advertisers by us.
Before releasing a version with ads, we will update this policy and its effective date, the app’s Google Play Data safety section and its “Contains ads” label.
7. Security
All connections from the app use HTTPS (encrypted in transit). Our data-provider keys are kept on the server and are not built into the app.
8. Your choices and rights
- Deny or revoke location permission at any time; the app keeps working without it.
- Delete all app data by clearing the app’s storage or uninstalling the app. Because we hold no account or profile, there is nothing else to delete on our side; short-lived server logs expire automatically.
- Under Singapore’s Personal Data Protection Act 2012 (PDPA) and similar laws, you may ask us about personal data we hold about you, or ask us to correct or delete it, by emailing support@mjcodeworks.org. We will reply within 30 days.
9. Children
The app is a general-audience transport tool and is not directed at children under 13. We do not knowingly collect personal data from children.
10. Data sources and attribution
Bus and MRT data: Land Transport Authority, via LTA DataMall. Weather: National Environment Agency, via data.gov.sg. Place search: OneMap, Singapore Land Authority. These are used under the Singapore Open Data Licence. Map tiles by OpenFreeMap © OpenMapTiles; map data © OpenStreetMap contributors.
11. Changes to this policy
If this policy changes, we will update this page and the effective date above. Significant changes will also be noted in the app’s release notes on Google Play.
12. Contact
MJ Codeworks · 25A Palandiamman Koil Street, Pallikaranai, Chennai 600100, Tamil Nadu, India · support@mjcodeworks.org