PhotoCheck

Privacy

Last updated: 2026-05-28

Short version: your photo is never written to disk. We hold it in server memory only during the few seconds we run the analysis, and discard it as soon as the response returns to your browser. We do not create an account for you, we do not collect or store your email, and we do not sell or share anything.

What we do with your photo

  • In-memory only. Your photo arrives as a base64-encoded HTTP request body. It is decoded into a buffer in the function’s memory, forwarded to the vision model via Vercel’s AI Gateway, and discarded the moment we send the response back to your browser. It is never written to a database, an object store, or a log line. It is never backed up.
  • Typically < 10 seconds in memory. That is the wall-clock time of one /api/check call. For the paid Prep tier, the same is true — the AI-edited output is sent back to your browser and the original is discarded; we do not retain the prepped file either.

What we log

  • Per-request metadata. A random request id, the country you selected, the overall verdict, the response time, and counters used for rate limiting. No image data, no identifying personal data.
  • Rate-limit counters. Keyed by your IP, stored in Upstash Redis, expire 24 hours after the last request. We do not retain raw IPs beyond that window.

What we do not store

  • Your photo, in any form, after the request completes
  • Your name, address, passport number, or any government ID
  • Your email (Stripe collects one at checkout — see below — but it never reaches our database)
  • Facial recognition embeddings or biometric vectors
  • Any cookies for advertising or cross-site tracking
  • A “user account” — there is no login

Third parties involved in processing

  • Vercel— hosts the application. Your photo passes through Vercel’s serverless runtime but is not stored by Vercel either. We also enable Vercel Analytics, which records aggregate page views and visitor counts (no cookies, no personally identifying data, no cross-site tracking).
  • Google Gemini— the vision model that analyses your photo (Gemini 3.5 Flash) and the image editor used by the paid Prep tier (Gemini 3.1 Flash Image Preview). Accessed through Vercel’s AI Gateway with zero data retention configured. Your image is not used to train Google’s models when accessed via the Gateway.
  • Stripe — payment processing for the $1 Prep tier. Stripe collects your email and card details on their hosted checkout page; we never see your card. When verifying payment we retrieve the Stripe session object, which briefly exposes the email to our server, but we do not store or use it. Stripe sends your receipt directly.
  • Upstash — managed Redis used only for rate-limit counters. Stores a hashed IP and a count, nothing else; entries expire after 24 hours.

Your rights under GDPR / CCPA

Because we genuinely retain nothing about you (no stored photo, no name, no email, no account), the standard data subject requests — access, deletion, portability — are satisfied automatically: there is nothing on our side to access, delete, or port. Rate-limit counters expire after 24 hours.

If you used the paid Prep tier and need a record of your purchase, Stripe holds the receipt and the customer record; your rights there are exercised through Stripe.