Privacy Policy
This policy describes what personal information ScanVeer collects, why, who receives it, how long we keep it and what you can do about it. It was written from an audit of the production code and is kept in step with it: every statement below corresponds to something the app or our servers actually do.
Summary
- You can use ScanVeer without an account. An account needs only an email address and a password (stored as a salted hash).
- Your scan history, favorites and food preferences (including allergy and diet settings) are stored only on your device. They are never sent to our servers and never leave the device unless you export them.
- When you look up a product, its barcode (or your search text) is sent to public product databases. Some of those requests go directly from your device, so the database operator sees your IP address.
- Label photos are uploaded only when you choose to add or correct a product. Photos used to read the label are sent to Anthropic's AI service and are not stored by us; photos submitted for reviewer checking are stored for up to 30 days.
- We do not use advertising SDKs, tracking pixels, crash-reporting SDKs, push notifications or location. Inside the app, the only third-party analytics is Vercel's cookieless page analytics. Our public website pages (home, blog, legal, Certified and press pages, not the app) also use HeyCatch website analytics, which sets an analytics cookie.
- We do not sell personal information and do not share it with advertising networks.
- You can download your data, delete your scan history and delete your account from inside the app.
What we collect and why
| Data | When | Why | Where it is stored |
|---|---|---|---|
| Account: email address, salted password hash, account creation time, email-verification status, subscription status | You create an account | Sign-in, account recovery, syncing products you add, subscription entitlement | Our database (Upstash Redis, hosted for us in the United States) |
| Profile photo (optional): a 256×256 copy of the picture you choose, resized on your device before it is uploaded | You add a photo on the Account screen | Show it to you on your Account screen; it is not shown to anyone else | Our database (Upstash Redis) |
| Terms acceptance: the Terms and Privacy Policy versions you accepted, when, and from which screen; first-scan disclosure acknowledgement | Account creation; after a material Terms update; first score viewed | Legal record of consent | Our database + an append-only audit log |
| Security emails and tokens: one-time verification, password-reset and deletion-approval tokens (stored hashed) | You verify, reset or delete | Prove control of the email address | Our database, 15 minutes to 24 hours |
Session cookie (sv_session, HttpOnly, Secure) | You sign in | Keep you signed in for up to 30 days | Your browser/app + our database |
| Products you add: barcode, name, brand, category, ingredient text, nutrition values, share status | You add a product | Keep your additions across devices; if you share a product with everyone, publish it in the community catalogue | Your device; your account record if signed in; the shared catalogue if you chose to share |
| Label photos — see Label photos | You add or correct a product by photo | Read the ingredient list; let a reviewer check a shared product | Not stored (reading); 30 days (review) |
| Score reports: barcode, product name, score, your note, your email | You tap "Report this score" | Investigate possible errors | Our database (last 200 reports) |
| Support tickets: subject, message, email (if given), device user-agent | You contact support | Answer you | Our database; forwarded to our support mailbox by email |
| Brand correction tickets: product, barcode, company, contact email, correction type, explanation, optional label photo and evidence document, supporting URL | You submit the Brand Corrections form | Human review of product information and evidence | Our database (attachments 180 days); forwarded to our review mailbox |
| ScanVeer Certified profiles: scanned inventory, business name, type, address, website, contact person, phone, email, review request details | You use ScanVeer Certified | Self-assessment, review scheduling, certification records, public verification of a certification ID | Our database |
| Certification inquiries (website form): business details, contact, email, phone, address, message, device user-agent | You submit the form on /certified/business | Arrange a review | Our database; forwarded to our review mailbox |
| Payment status: Stripe customer ID and subscription status (web); RevenueCat app-user ID and subscription status (iOS/Android) | You subscribe | Entitlement to Premium | Our database; Stripe / RevenueCat / Apple / Google hold the transaction itself |
| Diagnostic events: event name, the barcode involved, a short detail string, device user-agent, timestamp; browser security (CSP) reports | The app runs | Detect failures (camera errors, lookups that fail, purchase errors, script errors) | Vercel function logs; failure events are also sent to a private Telegram alert channel used by the operator |
| Page analytics: page views and web-vitals, cookieless | You open scanveer.com pages or the app | Understand usage and performance | Vercel Web Analytics / Speed Insights |
| Website analytics (public website pages only): pages viewed, links and buttons clicked (including their visible text), form submissions without the contents of the fields, referrer and campaign link, browser and device type, IP address, and a random analytics identifier kept in a cookie and local storage | You open scanveer.com public pages: home, blog, legal, Certified and press pages. Never the app at scanveer.com/app or the iOS and Android apps | Understand which pages and links bring visitors to ScanVeer | HeyCatch (see Who receives information) |
| IP address | Every request | Rate limiting and abuse prevention (stored only as a truncated hash for 1 minute to 24 hours); hosting logs at Vercel; product database operators see it on direct lookups | Hashed in our database; raw at Vercel and at product databases contacted directly |
We do not collect your name, phone number (except when you provide one in a Certified profile or inquiry), device identifiers, advertising identifiers, contacts, precise or coarse location, push tokens, or payment card numbers.
Data that stays on your device
The following are stored only in the app's local storage on your phone or browser and are never transmitted to ScanVeer: scan history (last 30 products), favorites, food preferences including allergy, diet and goal settings, fragrance-allergen profile, audio settings, cached product records (7 days), and the "seen" flags for onboarding and disclosures. Because allergy and diet settings are health-related, keeping them on-device is deliberate. Clearing the app's data, uninstalling, or using "Delete scan history" removes them. If your device backs up app data (for example Android auto-backup or iCloud), that backup is governed by Apple's or Google's policies.
Label photos you submit
Barcode scanning happens entirely on your device; camera frames are never uploaded. Label photos are uploaded in three situations, all of which you initiate:
- Reading a label. When you add a product by photo, the photo of the ingredient panel (and optionally the front of the pack) is sent to our server and forwarded to Anthropic's Claude API to read the ingredient list and nutrition panel. We send only the image and a fixed instruction; no account, email, IP address or barcode is sent with it. We do not store these photos. Anthropic processes them under its commercial API terms.
- Sharing a product with everyone. Smaller copies of the label photos are stored with your submission so a ScanVeer reviewer can check that the ingredients match the package. These photos are only ever seen by a ScanVeer reviewer, are never shown in the app or given a public link, and are deleted as soon as the product is approved or rejected, and in any case within 30 days.
- Reporting incorrect product information. The label photo you take is stored for up to 30 days for reviewer checking. Your email address is not attached to it.
Photos you take for a product you keep only on your device are never uploaded at all.
Profile photo. If you add a profile photo on the Account screen, the app crops and resizes it on your device to a 256×256 copy and uploads only that copy. It is stored with your account, shown only to you, included in "Download my data", and deleted when you remove it or delete your account.
Product lookups and searches
To show a product we send its barcode, or the search text you type, to public product databases. Two kinds of request exist:
- Direct from your device to Open Food Facts, Open Beauty Facts, Open Products Facts (France) and the U.S. NIH Dietary Supplement Label Database. Those operators receive your IP address and your device's user-agent together with the barcode or search text, under their own privacy policies. No ScanVeer account information is sent.
- Through our servers to USDA FoodData Central, U.S. FDA openFDA, UPCitemdb (and Go-UPC if configured). Those operators see only our server's address and the barcode.
Barcodes you look up may appear in our diagnostic logs when a lookup fails, and in the caches we keep by barcode (never by user) to make lookups faster.
How we use information
To provide the Service (lookups, scores, accounts, syncing products you add, subscriptions, certification); to keep the Service secure (rate limiting, abuse prevention, session management); to communicate with you (verification, password reset, deletion approval, replies to tickets and correction requests); to review community submissions and correction requests; to detect and fix failures; and to comply with law. Where the GDPR or similar laws apply, we rely on performance of our contract with you (accounts, subscriptions), your consent (label photos, community sharing, correction tickets), and our legitimate interests (security, diagnostics, page analytics, responding to you).
Who receives information
We share personal information only with the service providers below, each under its own privacy terms, and only for the purpose stated. We do not sell personal information and we do not share it with advertising networks.
| Provider | Role | What it receives |
|---|---|---|
| Vercel (USA) | Hosting, serverless functions, logs, cookieless Web Analytics and Speed Insights | All traffic to scanveer.com including IP addresses; diagnostic events; page views |
| HeyCatch, Inc. (USA) | Website analytics on public scanveer.com pages only, never the app; processes events through its own sub-processors, including PostHog | Pages viewed, clicks and link text, form submissions without field contents, referrer and campaign, browser and device type, IP address, and an analytics cookie identifier |
| esm.sh | Delivers the HeyCatch analytics script on public website pages | Your IP address and user-agent when the script loads |
| Upstash (USA) | Database | Everything listed under "What we collect" that is stored server-side |
| Anthropic (USA) | AI reading of label photos | Label photos you submit for reading, with no identifier |
| Resend (USA) | Email delivery | Your email address and the content of emails we send you; support and correction notifications to our mailboxes |
| Stripe (USA) | Web payments | Your email address; card details are entered on Stripe's pages and never reach us |
| RevenueCat (USA) | App subscriptions | An app-user ID derived from a hash of your email, and your email address as a subscriber attribute; purchase status from Apple/Google |
| Apple, Google | App distribution and in-app purchases; Google ML Kit on-device barcode scanning (the scanner module is downloaded through Google Play services on Android) | Purchase transactions under their terms; no ScanVeer data is sent by our code to ML Kit |
| Open Food Facts / Open Beauty Facts / Open Products Facts (France), NIH ODS (USA) | Product databases contacted directly by your device | Barcode or search text, your IP address and user-agent |
| USDA FoodData Central, U.S. FDA openFDA, UPCitemdb, Go-UPC (USA) | Product databases contacted by our server | Barcode only |
| Google Fonts (USA) | Web fonts on our pages | Your IP address and user-agent when the font loads |
| Google Shopping (USA) | The "Find online" button on a result opens a Google Shopping search in your browser | The product's brand and name as the search query, plus your own browser request (IP address). Only when you tap the button; no ScanVeer account data. |
| Telegram | Operator alerting | Failure events only: event name, short detail, barcode, device user-agent, time. No email or IP. |
| Amazon | Affiliate links you tap — see Affiliate links | Our affiliate tag and the barcode of the product you tapped |
We may also disclose information when required by law, to protect the rights and safety of users or the public, or as part of a merger or acquisition (in which case this policy continues to apply).
What we do not do
- No advertising SDKs, tracking pixels, ad networks or behavioural advertising.
- Inside the app (scanveer.com/app and the iOS and Android apps): no third-party analytics other than Vercel's cookieless Web Analytics, and our own first-party diagnostic events. Our public website pages additionally use Vercel Speed Insights and HeyCatch website analytics, described above.
- No crash-reporting SDKs, no push notifications, no location, no device or advertising identifiers.
- We do not sell personal information, and we do not share it with advertising networks. We have never received a request from a government for user data; if we do, we will disclose only what the law requires.
- Health-related data (scan history, allergy and diet settings) is not sent to any advertising or profiling system. Scan-linked data leaves your device only as described under Product lookups and diagnostic events.
How long we keep it
| Data | Retention |
|---|---|
| Account record, Terms acceptance, products you add to your account, Certified profiles | Until you delete your account |
| Profile photo | Until you remove it or delete your account |
| Sessions | 30 days, or until you sign out or delete |
| Verification / reset / deletion tokens | 15 minutes – 24 hours |
| Label photos for reading (Anthropic) | Not stored by ScanVeer |
| Label photos for review | Deleted at approval/rejection, at most 30 days |
| Shared community products | Kept in the catalogue; your email on them is replaced with "deleted-user" when you delete your account |
| Score reports, support tickets, brand correction tickets | Kept as records; your email on them is replaced with "deleted-user" when you delete your account; correction attachments 180 days |
| Certification inquiries (website) | Until closed and archived by the review desk; email privacy@scanveer.com to have one removed |
| Certification records and audit log entries | Kept while a certification could be verified or disputed; audit entries store a hash of your email, not the address |
| Rate-limit counters (hashed IP / email) | 1 minute – 24 hours |
| Diagnostic and hosting logs | Vercel's log retention for our plan; not indexed by user |
| Payment records at Stripe, RevenueCat, Apple, Google | Under their own retention rules (typically as required for tax and accounting) |
Your rights and controls
Inside the app, Account → Privacy & legal gives you:
- Download my data — a JSON file combining what the server holds about your account with the history, favorites and preferences on your device.
- Delete scan history — clears history from the device.
- Delete account — permanently deletes the data listed on the deletion page, cancels any web subscription, and replaces your email on shared records with "deleted-user". Store subscriptions must be cancelled in your Apple ID or Google Play settings.
Depending on where you live (for example the EU/EEA, UK, Switzerland, Brazil, Canada, or U.S. states such as California, Virginia, Colorado, Connecticut and Utah), you may also have the right to access, correct, port, restrict or object to processing of your personal information, to withdraw consent, and to complain to a supervisory authority. To exercise any right not available in the app, email privacy@scanveer.com from the address on your account. We respond within 30 days and do not discriminate against you for exercising a right. We do not "sell" or "share" personal information as those terms are defined in California law, and we honour Global Privacy Control signals by not engaging in such activity at all.
Affiliate links
ScanVeer participates in the Amazon Services LLC Associates Program: as an Amazon Associate, we earn from qualifying purchases made through "Where to buy" links, at no extra cost to you. Tapping one opens Amazon in your browser and passes along our affiliate tag plus the scanned product's barcode, so Amazon can credit the referral and we can see which products people buy; for exact matches the link may add the item to your cart and Amazon sets its own cookie for up to 90 days. No account, email, name, or scan history is sent to Amazon. Once on Amazon, Amazon's privacy policy governs. Affiliate links never affect a product's score or which alternatives we recommend.
Security
All traffic uses HTTPS. Passwords are stored as salted scrypt hashes. Sessions are HttpOnly, Secure cookies. Every request that changes data is checked for a same-site origin. Server secrets exist only in server-side environment variables. Uploads are type- and size-checked. Rate limits apply to sign-in, sign-up, password reset, uploads, tickets and correction requests. Consent, deletion, correction and certification events are written to an append-only audit log. No system is perfectly secure; if we learn of a breach affecting your data we will notify you as the law requires.
Children
ScanVeer is not directed to children under 13 and we do not knowingly collect personal information from them. If you believe a child has created an account, email privacy@scanveer.com and we will delete it.
International transfers
ScanVeer is operated from the United States and our providers listed above process data in the United States (and, for Open Food Facts, in France). If you use the Service from outside the United States, your information is transferred to and processed in the United States. Where required, we rely on our providers' standard contractual clauses or equivalent safeguards.
Changes to this policy
Each version carries a version number and effective date, shown at the top of this page. We will post material changes here and in the app; where a change materially affects how we use information you already gave us, we will ask for your acknowledgement again.
Contact
Privacy requests: privacy@scanveer.com · General: support@scanveer.com. See also the Terms of Use.
