Draft, pending legal review. This page will be finalized before BasketPal launches.
Privacy policy
Last updated October 16, 2026
BasketPal helps you keep a live total of your grocery basket. This policy explains what the app and our websites collect, why, and the choices you have. We collect only what BasketPal needs to work.
Who we are
BasketPal is operated by [legal entity name and address, to be completed during legal review]. For any privacy question or request, email privacy@basketpal.app.
What the app stores
- Your account: the sign-in details you use to create your account.
- Your sign-in sessions: for each device or browser you sign in on, its IP address and a description of the device or browser, so you can review and end your sessions in the app.
- Your trips: the currency and budget of each trip, and the products, quantities, and prices you add. While a trip is in progress, its basket is kept on your device; it is sent to us when you end the trip.
- Your preferences: language, currency, trip budget, and budget alert.
- Your subscription status: your plan, whether it is a trial, which store it was bought from, and when it expires. We never receive your card or bank details.
Scanning barcodes
- To add a product, you scan its barcode with your camera and type the price from the shelf. The camera is used only to read barcodes; BasketPal does not save or send photos.
- The barcode is sent from your device to Open Food Facts, an open product database, to look up the product's name. We do not send Open Food Facts your account details. If the product isn't found, or you prefer, you type its name yourself.
Signing in with Apple, Google, or Telegram
- You can create an account with an email address and password, or continue with Apple, Google, or Telegram.
- When you continue with one of these services, BasketPal receives only what it needs to create your account and sign you in: an account identifier from that service, and your name and email address if the service shares them. With Apple, you can hide your email address; we then receive a private relay address. Telegram does not share an email address.
- We use this information only to create your account, sign you in, and contact you about your account. We never sell it, never use it for advertising, and do not use your profile photo, contacts, or any other data from these services.
- BasketPal's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
- You can disconnect BasketPal in your Apple, Google, or Telegram account settings at any time. Deleting your BasketPal account removes the identifiers we stored, apart from the free trip hashes described in One free trip per person.
One free trip per person
- To keep the free trip to one per person and device, BasketPal checks whether your account, your linked accounts, or your device have already used it. The app does this when it checks your free trip and when you start a trip.
- On Android, the app sends your device's Android ID, an identifier that Android provides to apps on your device.
- On iPhone, the app sends a temporary token from Apple DeviceCheck. We pass it to Apple only to read or set a single mark that says the free trip was used on this device. Apple keeps this mark; we do not store the token or any identifier for your iPhone.
- When you use the free trip, we store keyed hashes of your account ID, your email address, your linked Apple, Google, or Telegram account IDs, and, on Android, your Android ID. When you subscribe, we store the same hashes of your account identifiers. We store only these hashes, never the original values, and use them only to check whether the free trip was already used.
- These hashes are kept for 24 months after they are recorded, even if you delete your account, so the free trip cannot be claimed again; they are then deleted automatically. Deleting your account does not clear the DeviceCheck mark on your iPhone.
Product analytics and crash reports
- The app sends usage analytics to PostHog and crash and error reports to Sentry. Both are on in the app you download from the App Store or Google Play, and the app has no setting to turn them off.
- Usage analytics include the taps you make, with the text and labels of what you tap, recordings of your sessions that show the app's screens as you use them, the app's log messages, errors, and your answers to any in-app survey you choose to fill in. They use a random identifier created on your device, not your account, name, or email.
- Crash and error reports contain the error, what the app was doing when it happened, technical details about the app and device, and measurements of the app's performance. Sentry also records a small share of sessions, with all text and images hidden. Crash reports are not linked to your account.
- Analytics are processed by PostHog and crash reports by Sentry, both in the European Union. PostHog keeps analytics events for up to 1 year, and Sentry keeps crash reports for 30 days.
- Because this data is not linked to your account, deleting your account does not delete it; it is deleted when these periods end.
Subscriptions
Purchases are made through the App Store or Google Play. We use RevenueCat to manage subscriptions: the app sends RevenueCat your BasketPal account ID, an internal identifier rather than your name or email, together with your purchases and restore requests. RevenueCat tells us your subscription status, which we store as described in What the app stores.
Notifications
- BasketPal asks before it turns on notifications, and works fully without them. You can turn them off at any time in your device settings.
- If you allow notifications, we store your device's notification token and its platform, iPhone or Android, with your account and your sign-in session on that device.
- Notifications never show your products, prices, amounts, or budgets, because they can appear on your lock screen.
- Apple Push Notification service and Firebase Cloud Messaging (Google) deliver notifications to your device. When you sign out of a device or delete your account, we remove that device's notification token.
Remote settings
- The app uses Firebase Remote Config (Google) to turn features on or off without an app update.
- Firebase Remote Config and Firebase Cloud Messaging use a Firebase Installation ID, a random identifier for this installation of the app, which the app sends to Firebase.
Our websites
- usebasketpal.com and basketpal.app use Vercel Web Analytics, which counts visits without cookies and without identifying you.
- If you join the waitlist, we store your email address with our email provider, Resend, only after you confirm it. We use it once, to tell you when BasketPal launches, and you can unsubscribe at any time.
Service providers
- We use trusted providers to run BasketPal: Railway to host our servers and database in the European Union, Vercel for website hosting and analytics, Resend for email, PostHog for in-app analytics, Sentry for crash and error reports, RevenueCat for subscriptions, Firebase (Google) for remote settings and notifications, Apple Push Notification service for notifications on iPhone, Apple and Google for app distribution and purchases, Apple DeviceCheck to check the free trip on iPhone, and Apple, Google, and Telegram for sign-in when you choose them. Open Food Facts looks up product names from barcodes.
- Providers process data only on our instructions. Open Food Facts receives barcode lookups under its own policies, and Apple and Google handle purchases under their own privacy policies.
How long we keep data
- We keep your account data while your account exists.
- A trip that you have not ended within 24 hours of starting it ends automatically. Ended trips and their products are deleted automatically 30 days after they end.
- In-app analytics events are kept for up to 1 year and crash reports for 30 days (see Product analytics and crash reports).
- When you delete your account, we remove your account identifiers, sign-in sessions, trips and their products, preferences, subscription status, and notification tokens from our servers, and the trip in progress from the app on your device. We keep only the free trip hashes described in One free trip per person, records the law requires, and statistics that are truly anonymous.
- The App Store and Google Play keep their own transaction records under their own policies.
Your choices and rights
- You can see your trips in the app, change your preferences, turn notifications on or off in your device settings, and delete your account at any time.
- Depending on where you live, you may have rights to access, correct, export, or delete your data, or to object to how it is used. Email privacy@basketpal.app and we will respond as required by applicable law.
Children
[Minimum age and any regional requirements, to be completed during legal review.]
Changes to this policy
If we make meaningful changes, we will update this page and tell you in the app before they take effect.




