Foody.

Privacy Policy

Foody is a barcode and photo scanner for food: it reads a product's barcode (or a photo of a meal) and shows ingredients, allergens, diet fit and nutrition. This page describes what the app does with data. It is written to match how the app actually behaves, not as boilerplate.

Last updated: July 31, 2026  ·  Contact: foodysupport@gmail.com

Who we are. Foody is developed and operated by Stepan Turovskiy, an independent developer ("we", "us"), reachable at foodysupport@gmail.com. For the purposes of the EU/UK General Data Protection Regulation (GDPR), we are the data controller for the data described here. No business postal address is published; the email above is the contact point for any privacy request.

1. Scanning and barcodes

The camera detects a barcode in the live picture. That detection runs on your phone; the frames are not saved and never leave the device.

When a barcode is recognised (or you type one in), the app sends that number to our product-lookup service over an encrypted connection and receives the product's name, ingredient list and nutrition values. A barcode identifies a product, not a person — no account, name or device identifier travels with it.

Product data comes from Foody's own database, supplemented by the open Open Food Facts database for products we don't cover yet. Where Open Food Facts data is shown, its own terms apply.

2. What stays on your device

Everything you enter is stored locally by default: your food diary, saved dishes and recipes, allergen and diet selections, body metrics (sex, age, weight, height, activity level), calorie goal, food-quality preferences, language, region and scan history. If you never sign in, none of it leaves the phone.

Uninstalling the app removes this local data. Scan history can also be cleared inside the app at any time.

3. Optional account and cloud backup

You can sign in — anonymously, with Google, or with an email address — to back up your data and keep it in sync across devices. Accounts are provided by Google Firebase (Authentication and Cloud Firestore).

What gets backed up: your profile (body metrics, calorie goal, allergens, diets, preferences), your diary and your dishes. Nothing else. Camera frames, meal photos and your scan history are not uploaded.

4. Photo food-scan (meal recognition)

If you photograph a meal to estimate its calories and macros, the photo is sent over an encrypted connection to our server, which forwards it to Google's Gemini API for recognition. Gemini returns an estimate of the dish, its ingredients and nutrition, which you can edit before saving to your diary.

5. Translating ingredient text

Some products carry an ingredient list in a language the app can't check against your interface language. In that case the product page offers an optional translation. If you request one, the label text and the product's barcode are sent to our server, which obtains a machine translation through Google's Gemini API and caches the result so the same product doesn't need translating again — for you or anyone else. No name, email or account identifier is attached to the request. The feature can be switched off in Profile → Experimental.

Interface language packs are similarly downloaded from our server when you pick a language; that request carries no personal data.

6. Helping add a product: the photos you submit

If a scan comes back "not found", or a product's composition is missing, the app offers to help add it: you can take or pick up to two photos and submit them. Nothing is sent until you press the send button.

When you submit, the photos travel over an encrypted connection to our server, which then:

The sender label is your display name or an anonymous identifier. These contribution photos and records are kept for moderation and audit (see Retention). You can have them removed by deleting your account; note that a message already delivered to Telegram is outside our systems and may persist there under Telegram's own policy.

7. Community, nicknames and the leaderboard

If you sign in with Google and your contributions are approved, you earn points (XP) and can appear on a public leaderboard. To support this we store, in our database (MongoDB): your account id, your display name and/or a nickname you choose, your Google profile name and photo URL, your points and level, and a running (append-only) log of point changes for audit.

8. Sensitive data (allergens and diets)

Your allergen selections are data concerning health, and some diet choices (e.g. halal, kosher) may reveal religious or philosophical beliefs. Under GDPR these are "special categories" of data (Article 9) that receive extra protection.

We process them only to provide the core function you asked for — checking a product against your own allergens and diet — and only on your device (always) and in your cloud backup (only if you choose to sign in). We rely on your explicit consent for any such data that leaves the device (GDPR Art. 9(2)(a)). You give it by entering the data and choosing to sign in, and you can withdraw it at any time by turning off sign-in / deleting your account. We never share this data with anyone and never use it for advertising or profiling.

9. Who can receive data

We do not sell or rent any data, and the app contains no advertising code. The complete list of parties (processors and recipients) that can receive anything:

RecipientWhat they receiveWhen
Our product-lookup service (Vercel)the barcodes you scanevery lookup
Open Food Factsa barcode (product lookup)when a product isn't in our DB
Google Firebase (Auth + Firestore)your profile, diary, dishes; account id/email/nameonly if you sign in
Google Firebase Analyticsanonymous usage events (e.g. a lookup or diary log happened) + app-instance id, device model, OS, coarse regionwhile you use the app
Google Firebase Crashlyticscrash diagnostics (stack trace, app version, device state)only if the app crashes
Google Gemini APIa meal photo or ingredient textonly when you use those features
Our database (MongoDB Atlas)contribution + leaderboard/nickname datawhen you contribute / earn XP
Our media store (Vercel Blob)the product photos you submitwhen you submit them
Telegramthe product photos you submit + a sender labelwhen you submit them

There are no other recipients. Google, Vercel, MongoDB and Telegram act under their own security and data-processing terms.

Analytics & crash reporting. To improve the app we use Firebase Analytics, which records anonymous, aggregate events — for example that onboarding was completed, a barcode was looked up, or a diary entry was logged. It never records the content of your diary, dishes, allergen profile, or which specific products you scan, and it is not linked to your name or email. Firebase Crashlytics collects a technical report only if the app crashes (stack trace, app version, device state) so we can fix the fault. Neither feeds advertising or profiling, and both are switched off entirely in our development builds. You can reset the identifiers behind this at any time through your device's privacy settings.

10. International transfers

Our processors (Google, Vercel, MongoDB Atlas) and Telegram may process data on servers outside your country, including in the United States. Where data leaves the European Economic Area / the UK, it is protected by an approved transfer mechanism — the EU–US Data Privacy Framework (to which Google LLC is certified) and/or the European Commission's Standard Contractual Clauses — as provided in each provider's data-processing terms.

11. Legal bases (GDPR)

Where GDPR applies, we rely on:

You can withdraw consent at any time; it does not affect processing already carried out.

12. Retention and deletion

You can delete your account together with its cloud data — profile, diary and dishes, the authentication record itself, and (best effort) your contribution photos and leaderboard data:

Deletion is immediate and cannot be undone. A message already delivered to Telegram is outside our systems and may persist there.

13. Your rights

Where GDPR (or a comparable law) applies, you have the right to access, rectify, erase, restrict and port your data, to object to processing, and to withdraw consent. Much of this is built into the app (edit or clear any field; delete your account). For anything else, contact us at foodysupport@gmail.com and we will respond within one month.

You also have the right to lodge a complaint with a data-protection supervisory authority in your country if you believe we have mishandled your data.

14. Children

Foody is a general-purpose utility and is not directed at children. We do not knowingly collect data from children below the age of digital consent in their country (13–16 depending on jurisdiction). If you believe a child has provided us data through an account, contact us and we will delete it.

15. Security

Data in transit is protected with encrypted connections (HTTPS / TLS). Cloud data is stored by Google Firebase and our other processors under their own security controls, and is restricted to your own account by per-user security rules. No method of transmission or storage is completely secure, but we do not retain more than we need.

16. Changes to this policy

If this policy changes, the updated text will be posted at this address with a new "last updated" date at the top.

17. Contact

Questions about this policy, a rights request, or a deletion request by mail: foodysupport@gmail.com.