Privacy Policy — Honest Vinyl Scanner

Last updated: 2026-10-18

The short version

Honest Vinyl Scanner has no accounts, never asks for your location, and never sells your data.

The whole picture, in one table

What leaves your phone

WhatWhyWho gets it
The photo you scanTo read the recordOpenRouter, which passes it to Google (Gemini) to read
The text read off it (artist, title, catalogue number…)To find the release in our catalogue, and its asking priceOur own server, and CDandLP (artist, title, catalogue number only) for an asking price
Android’s id for this app (no name attached)To count scans for fair-usage limitsOur own server only
Whether you bought ProTo unlock Pro featuresGoogle Play, RevenueCat, and our server, which asks RevenueCat to lift your daily limit
A message you send us, with the app's device id — and for a Bug report, your app version, platform, and the last error the app recordedTo answer you or reproduce the bugOur support inbox (hosted by Google, Gmail)

What we never take

WhatWhy not
✕ Your location / GPSNever asked for. The app has no location permission at all.
✕ Your name or emailThere is no account. We only see your email if you email us.
✕ Your contacts or photo libraryWe only ever see the one photo you scan.
✕ Advertising & tracking idsNo ad SDKs, no analytics SDKs, no session replay.
✕ Your collection & scan historyStays on your phone. If you have Android Backup on, your own Google account keeps a private copy (we never see it). Export a CSV anytime from Collection.

Who is responsible for your data

Honest Vinyl Scanner is operated by Ing. Dmytro Trofymchuk, an independent sole trader (OSVČ) registered in the Czech Republic under IČO 87837072. This is the data controller for the purposes of the EU General Data Protection Regulation (GDPR). Contact: [email protected].

What we collect (and what we deliberately don't)

We do not collect: your name, email, contacts, precise or coarse location (GPS is never requested — the app has no location permission), or any advertising identifier.

We do collect, only to make the app work:

your phone. No other app sees it, and it stays the same after a reinstall. It is used solely to apply fair usage limits on the identification service. It is not tied to your name, email, or any account, because there is no account.

identification providers below to look up the release. We do not keep a copy on our servers.

image to complete the lookup.

How scan images are used — third-party processors

When you scan a record, the photo and read text are sent to one or more of the following services to identify the release and its market value. OpenRouter, Google, RevenueCat and Cloudflare are data processors acting on our instruction, not independent users of your data.

shipped app that model is Google's Gemini. We instruct OpenRouter to forbid the model provider from retaining your image for training (`data_collection: deny`). If one Google service is unavailable, OpenRouter may route the read to another Google service (Vertex AI or AI Studio) so the scan doesn't fail. It never leaves Google.

server, so we can look up what copies of it are being asked for. It does not receive your photo, your device id or your network address, so it receives no personal data about you.

active. While Pro is active, the app sends our server RevenueCat's anonymous purchase id, and our server asks RevenueCat whether it is active, to lift the daily limit. They see a purchase, not your scans.

We do not send your scans to Anthropic (an earlier version of this policy said we did — that was wrong; the app ships with the Gemini model). We do not contact MusicBrainz from a published build.

All requests to these providers are routed through our own proxy (Cloudflare Workers) so that API keys never live on your device. The proxy strips your device id before forwarding — the providers above never receive it. What the proxy does keep, against that device id, is a plain operational record of each request: which service was called, the response status, whether it was served from cache, and how long it took. We use it to enforce fair-usage limits and to see when something is broken. There is no advertising or analytics SDK anywhere in the app, and none of this is linked to a person — there is no account to link it to.

Local-only storage

Your scan history, identified records, and saved collection are stored locally on your device (`expo-sqlite`) and are never uploaded to us. Nothing leaves your device except the single scan image/text sent for identification, as described above. If Android Backup is enabled on your device, Android keeps a private copy of this local data under your own Google account as part of your device backup — we have no access to it.

Your control over your data

You can permanently delete everything Honest Vinyl Scanner has stored on your device at any time from Settings → Clear local data. This removes your saved collection and scan history immediately and cannot be undone. We hold no server-side copy of your collection or scans. Our server keeps only the short-lived records listed under "How long we keep it", which expire on their own.

Contacting us / bug reports

The app's Help & Contact screen sends whatever message you type to our support inbox, routed through our proxy (Cloudflare Workers) and delivered to a mailbox hosted by Google (Gmail). If you use Bug report mode, we also attach a small diagnostics block: your app version and platform, and the last error the app recorded (an event name and error message only) — not your scan history, not the photo you scanned, and not what you searched for. This is separate from, and does not change, the "your collection & scan history stays on your phone" promise below.

What the app sends by itself

So we can tell whether the app is working for the people using it, each scan sends us one word for how it ended — for example that we pinned a pressing, offered a shortlist, or could not read the photo — and each error sends us the name of the thing that failed, your app version, and where in the app's code it failed (up to six code positions: a function name, a file name and a line number, never the error text). That is the whole message. It never includes the photo, the record, what you searched for, or any text you wrote. It is tied only to the device id described above, and it reaches our own server only.

Data we do not have

Children

The app is for people aged 18 and over. We do not knowingly collect personal information from anyone under 18.

Your rights under GDPR

If you are in the EU/EEA, you have the right to access, correct, or delete your personal data, to restrict or object to its processing, and to lodge a complaint with a supervisory authority (in the Czech Republic, the Úřad pro ochranu osobních údajů, uoou.gov.cz). Your collection and scans live on your phone, and Settings → Clear local data deletes them. The server records described below are keyed to the app's device id, not to your name. To access or delete them, send the request from the app's Help & Contact screen: that message carries the device id, so we can find the records.

Legal basis, how long we keep it, and where it goes

Why we may use it (GDPR art. 6). Scans, the price lookup, Pro and support messages: to provide the app you asked for (contract). Fair-usage limits, abuse protection, request records and error reports: our legitimate interest in keeping the service working and fair.

How long we keep it. Fair-usage counters: 2 days. Request records and error reports (tied to the app's device id): up to 3 months, then deleted automatically. Cached price lookups (keyed by the record, not by you): up to 400 days. Support messages: until the issue is resolved, or sooner if you ask. Your network address (IP) is used for a few seconds of rate limiting and is not stored by us; Cloudflare may log it briefly for security.

Where it goes. Cloudflare (our server and email routing), Google (Gmail, our support inbox; and Gemini, which reads your photo), OpenRouter (routes the photo to Gemini), RevenueCat and Google Play (Pro purchases). Some of them are in the United States. Each vendor's data processing terms include the EU standard contractual clauses, and we rely on the EU–US Data Privacy Framework where the vendor is certified.

Changes to this policy

We may update this policy as the app changes. Material changes will be reflected in the app's release notes and this file's "Last updated" date.

Contact

Questions about this policy: [email protected]