Skip to content

Privacy policy

Vintage Handbag Identifier

Last updated: 22 October 2026

Vintage Handbag Identifier is built by Josh Waller, trading as Kovus, in Perth, Western Australia. The app does not ask for your name, email address or phone number, and it does not use advertising identifiers or ad networks.

Website release waitlist

The release waitlist is closed. If you joined before it closed, the website may retain the email address you supplied together with the form location, country and signup time in Cloudflare KV. Those records are not used for ongoing marketing. Email josh@kovus.dev to request deletion.

Creed scans

With your consent, Creed photos are sent over an encrypted connection to our Supabase Edge Function and read by Google Gemini. Kovus does not write creed photo bytes to storage or retain a copy after processing. Google handles the request under its own Gemini API terms.

If you decline remote processing, your iPhone is offline, or the reading service cannot be reached, the stamp is read on your iPhone using on-device text recognition instead. Either way, the app uses the recognised style and serial information to search its bundled catalogue. Photos you import from your library are only ever touched as a temporary copy, and temporary camera copies are deleted after processing.

Whole-bag photo identification

If you choose whole-bag identification, up to four photos are sent over an encrypted connection to our Supabase Edge Function and processed by Google Gemini. If the first Gemini model fails or is unavailable, the same photos may be sent to a second Gemini model during the same request. The app asks you to confirm before any photo is sent. The photos are used only to identify the bag. For Coach and Louis Vuitton, that includes comparing the bag’s visible details with catalogue records. Kovus does not save the photo files, and the server clears their in-memory bytes after the request finishes.

Google handles API inputs and outputs under its own contractual retention terms. Until the change on 26 September 2026, Anthropic Claude could also process whole-bag photos under Anthropic’s own contractual retention terms. It no longer receives them. App versions up to and including 1.0.5 still name Anthropic Claude as a possible provider on the consent screen, and that wording is out of date. From version 1.0.6 the consent screen names Google Gemini alone. After you confirm a whole-bag request, the app saves one pending request, including its selected photos, in private local storage before attempting to send it. It clears this copy after completion or when you discard it. An interrupted or failed request can remain available for retry.

Optional broader search

When a whole-bag identification finds only a family or era, or no catalogue match, the app may offer a broader search. It runs only after you confirm it. Up to four photos, from the scan or requested during the search, are sent over an encrypted connection to our Supabase Edge Function. Kovus does not save the photo files, and the server clears their in-memory bytes after each request.

Google Gemini reads visible details from the photos, such as the brand, shape, materials, hardware and markings, and later compares your photos with images from public web pages. SerpApi receives an exterior photo of the bag and runs a Google Lens search with it, and runs Google Search queries made from the details Gemini read. The service then downloads public web pages and images from those results to find comparisons. Those downloads carry no photos or account details. Google and SerpApi handle what they receive under their own terms and retention policies.

When the app offers a broader search, Kovus records the offer against the identification and its credit. If you start the search, Kovus keeps a search record so it can resume and avoid charging twice: the anonymous account identifier, SHA-256 fingerprints of the photos rather than the photos themselves, the details Gemini read, the search results and links, the comparison result, credit and search-usage records, and times. A search that does not finish expires within 24 hours. A daily cleanup deletes search records once 30 days have passed since the search ended, and unused offers 30 days after they expire. Delete my data removes them sooner. A minimal record that a search used a credit remains until you use Delete my data, so the same credit cannot be refunded twice.

When a broader search is offered, the app also keeps a separate copy of the scan photos on your iPhone, plus any extra photo the search asks for. It can use that copy for up to 24 hours after the scan. The app tries to remove the copy when the search finishes or you decline it, and clears expired copies the next time you open or return to the app. Copies can remain longer until cleanup succeeds. The app asks iOS to exclude these copies from iCloud and computer backups; iOS controls backup behaviour. Delete my data removes them from this app.

Anonymous service records

The app creates a random anonymous Supabase account so the service can manage paid entitlements and prevent abuse without asking you to sign in. For a creed read, Kovus keeps the anonymous account identifier, the request time and the processing cost, which are the records that enforce burst limits and the daily spending ceiling. A creed read does not spend a credit, and no model name is kept for it. For a whole-bag identification, Kovus keeps those same records plus the model name, the credit usage record, the house the service detected, the type of result and, when no match is returned, a reason code.

The completed result of a whole-bag identification is cached for 36 hours so that an interrupted request can be retried without spending another credit. The cached result is the response sent to your app: the suggested matches or family, the evidence listed for them, any characters read from the bag’s mark, the credit outcome and processing times. It is deleted once it is more than 36 hours old, the next time the service handles an identification, or sooner if you use Delete my data.

With the app’s default no-retention consent setting, Kovus does not store the bag photos, and keeps no creed text, extracted attributes or candidate results outside that cached result and the broader-search records described above.

Information kept on your iPhone

  • Your saved collection, notes, nicknames and any collection photos you choose to keep.
  • Your recent identification history and app preferences.
  • Your onboarding and collector-profile answers.
  • A confirmed whole-bag request and its photos while it is pending completion, retry or discard.
  • A separate temporary copy of the scan photos when a broader search is offered, until the search finishes, you decline it or the copy expires and is cleared, as described above.
  • Where available in your app version, saved research findings, repair records, purchase and sale details, identifying marks, and photos or receipts you choose to retain.

Where your app version offers backups, these contain collection and research records, including private details, but do not contain retained photo or receipt-image bytes. Selected CSV and dossier exports include recorded inventory codes, sale status, asking and sold prices, and dates; additional private fields are optional. Review the preview before sharing. Files you save or send outside the app remain under your control.

You can remove saved pieces and their photos inside the app. Deleting the app removes its local data, subject to Apple’s device backup behaviour.

Product analytics and crash reports

Sharing anonymous diagnostics is off by default. If you enable it in the app’s privacy controls, Kovus uses PostHog for basic product events such as onboarding completion, scan starts, result reveals and paywall views, and may use Sentry for crash and error reports. Session replay is disabled. Default personal information is disabled, user identity and breadcrumbs are removed, and photos and creed text are never attached to analytics or crash events. These services may still process technical information such as a random installation identifier, app version, device type, operating system and network request metadata. You can turn diagnostics off again at any time.

Website analytics

This website, not the app, uses Google Analytics to count visits. It records the pages you view, the site that referred you, your device and browser type, your approximate location (country and city), how far you scroll, and the buttons and outbound links you click. It also records when you use a decoder or lookup: which one, whether it returned a reading, whether the entry came from an example button or a link and, when it returned none, the kind of entry it could not read, such as one too short to be a serial, but never what you entered. It uses cookies to tell one visit from another, except for visitors in the European Economic Area, the United Kingdom and Switzerland, where it runs without analytics cookies. Advertising features and Google signals are switched off. Serial numbers and style numbers you enter are never sent to Google. To opt out on every site, install Google's Analytics opt-out browser add-on.

Purchases

Apple processes payments. RevenueCat manages subscription status using a random app user identifier and purchase information such as product identifiers, transaction status and receipt data. Kovus does not receive your card or bank details.

Service providers

  • Supabase hosts anonymous authentication, entitlement controls and catalogue services.
  • Google Gemini reads creed photos when your iPhone is online.
  • Google Gemini processes whole-bag photos for identification.
  • Google Gemini reads and compares photos for broader search when you confirm that optional feature.
  • SerpApi runs Google Lens and Google Search requests for broader search, including an exterior photo of the bag, when you confirm that optional feature.
  • PostHog and Sentry provide product analytics and crash diagnostics only when you enable them.
  • RevenueCat and Apple manage purchases and subscription status.
  • Google Analytics measures visits to this website, as described under Website analytics. The app does not use it.
  • Cloudflare hosts this policy and processes normal web request metadata. On the website, the style lookup and the Creed decoder's catalogue row send a style number to this site's Cloudflare Worker, which uses your IP address only to limit how many lookups it answers each minute. The site stores neither the number nor the address.

Retention, deletion and your choices

In the app, open More and choose Delete my data to remove your anonymous account, associated app content, remaining identification credits and private collection stored on that phone. Minimal pseudonymous purchase-deduplication and security records may remain to prevent replayed purchases and abuse. If local cleanup is incomplete, the app reports it and retries. Copies you exported outside the app are not deleted. Apple keeps purchase records under its own policy, and eligible purchases may be restored through Apple.

Deleting app data does not cancel an App Store subscription. Cancel that in Apple’s subscription settings or it keeps renewing. Anonymous operational records otherwise remain only while needed to enforce limits, account for credits, prevent abuse, investigate failures and meet legal obligations. Apple, RevenueCat, Supabase, Google, SerpApi, PostHog and Sentry apply their own contractual retention periods to data they process for Kovus.

You can deny camera access in iOS Settings and still use catalogue features that do not require it. The in-app control is the primary deletion route. For access, correction or deletion help, email josh@kovus.dev. We may need an anonymous support identifier or transaction reference to locate the correct record without collecting your identity.

Children

Vintage Handbag Identifier is not directed to children under 13 and does not knowingly collect personal information from children.

Changes and contact

Material changes will be published at this address with a revised date. Privacy questions can be sent to josh@kovus.dev. You may also contact the Office of the Australian Information Commissioner at oaic.gov.au.

Also see App support.