ClariMeal Privacy Policy

Effective date: October 13, 2026

ClariMeal ("the app", "we") is operated by Anatolii Frolov. Contact: support@clarimeal.com.

This policy explains what data the app handles, where it goes and what never leaves your phone. We wrote it in plain English on purpose.

The short version

1. Data kept on your device

The app keeps the following data in local storage on your phone. AI scans also involve the transfers described in section 2.1. Device backups are described in section 4.

You can edit or delete your diary, profile and weight data in the app. You can discard an unlogged scan result. Deleting the app removes its local data. Section 7 explains when an unlogged scan result is deleted.

Photo library (iOS). ClariMeal can ask for photo library access (full or limited, your choice) solely to show an instant preview of the photo you pick for a scan. The request appears only after you pick a photo. The preview is created on your device and is never uploaded; the photo sent for analysis is the reduced copy described in section 2.1, and that happens only with your scan consent. The app also keeps this reduced copy with the unlogged scan result as described in section 7. Picking photos keeps working without this permission, and you can change it at any time in system Settings.

2. Data processed when you use online features

Some features need the internet. AI scan requests pass through our relay service (hosted on Cloudflare Workers). The relay forwards them and does not store their content. To block abuse, Cloudflare checks the IP address of each request to the relay. For requests it blocks, Cloudflare keeps a security record (IP address, requested path and time) for up to 31 days.

2.1 AI photo scanning (only with your consent)

When you scan a meal, the app sends a reduced-size copy of the photo, and any correction text you type, to third-party AI services: OpenAI and Anthropic. They recognize the food and return calorie and nutrient estimates. When you use Fix Results, the request also includes the current estimate for that photo, including any changes you made to it (dish name, calories, nutrients, amount and components), so the service can correct it. The request goes to OpenAI first. If that request ends with an error response, the app sends the same request to Anthropic, unless our relay refused it because of a usage limit or because AI scanning is not available in your region. In that case the same photo may be processed by both services.

If the app is set to German, we try to show dish and component names in German. The app tells our relay the language with each AI request. For translation, the relay sends only names from the AI answer to OpenAI. This also applies when the answer comes from Anthropic. The photo, the numbers and the identifier described in section 2.4 are not part of that request. The relay does not store the names or the language setting. Names that cannot be translated stay in English.

2.2 Food database search

Searching the food catalog works entirely on your device: the app looks up its bundled food database locally. Your search text is never sent over the internet and never reaches us or anyone else.

2.3 Barcode lookup

When you scan a barcode, the barcode number (digits only, no photo) is sent to Open Food Facts (a non-profit food database) to find the product. As with any internet request, Open Food Facts also receives your IP address and the app's name.

On Android, the barcode scanner uses Google ML Kit, which reads the barcode on your device. ML Kit sends Google technical information about the feature: device and app information, per-installation identifiers, performance metrics, settings of the scanner, the size of its input and output, its version, event types and error codes. According to Google, this data is encrypted in transit and not shared with third parties. On iPhone the scanner uses Apple's built-in camera features and sends nothing to Google.

2.4 Pseudonymous device identifier

To protect the AI service from abuse, the app generates a random identifier on first use. It is pseudonymous: it contains no personal details and we cannot connect it to a person, but it stays the same while the app is installed, including after you delete all data in the app, and it can come back when you restore a device backup. It is sent with AI requests. Daily scan counters for this identifier are kept on our infrastructure and scheduled for deletion within 48 hours; a service failure may delay that deletion. The relay also keeps short-lived records of each request with this identifier: whether it was a new scan or a fix, and whether your app has a subscription. They are scheduled for deletion within 48 hours. If you use free scans, we also keep, for this identifier, the number of free scans and fixes used, with no end date, so the free limit keeps working. This record stays if you later subscribe. It contains no meal photos, correction text or nutrition estimates. Deleting the app or its data does not remove it. AI requests also tell the relay whether your app has a subscription, so it can apply the right limit. Our relay also derives a country code from the network request to check whether AI scanning is available in your region; the app never asks for your precise location.

2.5 Subscriptions

ClariMeal Pro is sold through the App Store or Google Play. The store handles payment; we never see your card details. To check whether you have a subscription and to unlock Pro features, the app uses RevenueCat, a subscription service. Each time the app starts, it connects to RevenueCat with a random ID that RevenueCat creates for your installation, even if you never subscribe. RevenueCat receives your purchase and subscription records from the store (product, price, currency, dates and transaction IDs), your store country, your device model and language settings, the app and system version, and your IP address. On iOS it also receives the device's identifier for vendor and the App Tracking Transparency permission status, which it updates when that status changes. RevenueCat uses the IP address to record the country of your last connection. It does not receive your diary, profile, weight, photos or nutrition estimates. We also use RevenueCat to see how subscriptions perform overall.

2.6 App usage analytics

To see which features people use and which features need improvement, the app sends usage events to Amplitude, an analytics service that processes this data for us. Our Amplitude data is stored in its EU data center in Frankfurt, Germany.

2.7 App ratings

The app may ask the App Store or Google Play to show its rating prompt. If you rate or review the app there, the store receives your rating and review under its own terms. The app does not receive them.

2.8 Contacting support

You can email us at support@clarimeal.com or use the contact form on our website. Cloudflare hosts the contact form and processes your email address and message to send them to our support mailbox, which is hosted by Google (Gmail). Our replies go to the email address you enter. The website does not store your message. To limit abuse, Cloudflare uses your IP address to count how many messages are sent per minute. The website does not store the IP address. We keep support emails as long as we need them to answer you and handle your request.

2.9 Age check (iPhone)

On iOS 26.2 or later, ClariMeal first asks Apple whether age assurance applies to your account. If Apple confirms that it does, the app requests an age range before you continue past the date-of-birth step or import existing data. The app uses it only to enforce its minimum age of 18. Your entered date of birth is not sent to Apple for this check. The returned range is discarded after the check. Only the decision remains in memory until setup ends or is reset. Neither is saved to device storage, included in backups or exports, sent to our servers or used for analytics. Setup is blocked if the returned range does not establish that you are at least 18, you decline to share, or the range request fails. On earlier iOS versions, or if Apple reports that age assurance does not apply or the eligibility check fails, the app uses its existing date-of-birth checks. Apple handles its age checks under its own privacy policy.

3. What we do not do

4. Device backups

Your operating system may back up app data to your own cloud account:

These backups belong to your Google or Apple account. We have no access to them.

Deleting data or withdrawing consent in the app works on this device. It does not change backups made earlier, which may still contain your diary. The app asks for consent again when a restored consent record does not match this installation. If a restore also brings back the matching installation marker, the saved consent may remain effective. The app cannot delete data from these backups. You can delete them in your device's backup settings.

5. Legal bases (GDPR / UK GDPR)

A food diary can reveal information about your health, so we treat it with the strictest care:

6. International transfers

Data sent to OpenAI, Anthropic, Cloudflare, RevenueCat and Google (ML Kit on Android and our support mailbox) may be processed in the United States. Transfers from the EU and UK are protected by recognized safeguards: Cloudflare and Google participate in the EU-U.S. Data Privacy Framework and its UK Extension. OpenAI, Anthropic and RevenueCat rely on Standard Contractual Clauses and, for transfers from the UK, the UK Addendum.

Amplitude stores our analytics data in the EU. Amplitude, Inc. is a U.S. company, and its staff and subprocessors in the United States can access the data. Those transfers rely on the EU-U.S. Data Privacy Framework and, for transfers from the UK, its UK Extension. If these do not apply, Amplitude's data processing agreement provides Standard Contractual Clauses and the UK Addendum as fallback safeguards.

For a copy of the contractual safeguards, email support@clarimeal.com.

7. Retention

Data Where Kept for
Diary, profile and weight Your device Until you delete it or the app
Meal photo thumbnails Your device When the app starts, it removes photos that no diary entry dated in the last 90 days uses. The entry stays, without its photo. Photos may stay longer while the app is closed, if on-device health consent is not active or if removal fails. Also removed when you delete all data or the app
Unlogged scan result (reduced photo copy and estimate) Your device Deleted when you log or discard it, turn off AI photo analysis, complete withdrawal of consent for on-device health data or delete all data. Also deleted if its saved consent details no longer match your current consent
Photo sent for AI analysis OpenAI / Anthropic Normally up to 30 days, then deleted (items under a legal hold or safety flag can be kept longer by the provider)
Dish and component names sent for translation (app set to German) OpenAI Normally up to 30 days, then deleted (items under a legal hold or safety flag can be kept longer by the provider)
Barcode number Open Food Facts Processed to answer the request; not stored by us
Barcode scanner technical data (Android only) Google (ML Kit) Under Google's own retention policies; not received or stored by us
Subscription records, device details and last-seen country (random RevenueCat ID) RevenueCat While our agreement with RevenueCat is active, unless we delete them on your request. When the agreement ends, we must ask RevenueCat to delete or return them
App usage events (hashed analytics ID, platform, app version, time) Amplitude (EU data center) Only as long as we need them to understand how the app is used and to improve it. If our agreement with Amplitude ends, Amplitude allows 30 days for export and then deletes the data, except where the law requires it to keep data or the data is needed to resolve a dispute between us
Security records of blocked requests to our relay (IP address, requested path, time) Cloudflare Up to 31 days
Age check decision (iPhone) Your device, in memory only Until setup ends or is reset
Support emails (your email address and message) Our support mailbox (Google) As long as we need them to answer you and handle your request
Daily scan counters and short-lived request records (pseudonymous ID, scan or fix, subscription status) Our infrastructure Scheduled for deletion within 48 hours
Free scans and fixes used (pseudonymous ID, only if you used free scans) Our infrastructure No end date, so the free limit keeps working. Not removed when you delete the app or its data

An unlogged scan result expires 7 days after the app first saves its reduced photo copy. Fix Results does not restart this period. The app checks for expired results when it starts or returns to the foreground. Files may remain longer while the app is closed or if deletion fails. Failed deletion is retried during a later check.

8. Your rights

Because your data lives on your device, you exercise most rights directly in the app:

If you are in the EU or UK, you can also contact us at support@clarimeal.com and lodge a complaint with your data protection authority.

If you are in the United States, our Consumer Health Data Privacy Policy describes your access, deletion and appeal rights under Washington, Nevada and Connecticut law.

9. Children

ClariMeal is for adults aged 18 and over. You must be at least 18 to use the app. Age checks may process information indicating that someone is under 18 solely to prevent access.

10. Changes

If we change this policy, we will update it at this address and change the effective date. Material changes that affect how your data is handled will be shown in the app before they apply.

11. Contact

Anatolii Frolov · support@clarimeal.com

Person responsible for personal data protection (privacy officer): Anatolii Frolov, reachable at support@clarimeal.com.