Brick ScannerTry it free

Privacy Policy

Last updated: 17 May 2026

1. Who we are

Brick Scanner is operated by Matthijs de Wit, a sole trader (eenmanszaak) registered in the Netherlands. You can contact us at privacy@brickscanner.app.

2. What data we collect

  • Account data: email address and password hash when you create an account.
  • OAuth identity data: when you sign in with Google, we receive your email address, a Google-provided user identifier (sub), your name, and your profile picture URL. When you sign in with Apple, we receive your email address (or the private relay address you choose to share) and an Apple-provided user identifier (sub). We use this data solely to create and authenticate your Brick Scanner account — we do not access Gmail, iCloud, or any other Google or Apple services.
  • Scan data: photos you upload for LEGO scanning. These are stored on Cloudflare R2 (EU region) and processed by AI providers (Anthropic Claude API, and optionally OpenAI or Google Gemini).
  • Inventory data: LEGO part records, quantities, locations, and price estimates that result from scanning.
  • Payment data: Stripe processes payments. We do not store card numbers. We store your Stripe customer ID and purchase records.
  • Waitlist data: email address if you joined the pre-launch waitlist.
  • Usage data: scan counts, timestamps, and error logs for service operation.
  • Cookies and local storage: a cookie consent preference stored locally in your browser. If you accept analytics cookies, we may collect anonymised usage data.
  • Shared room layouts: when you share a 3D room layout via a public link, geometric data (room dimensions, cabinet positions and sizes) is accessible to anyone with the link. No inventory details or personal data are included in shared views.
  • QR labels: when you generate QR labels for storage compartments, a short code is stored in our database to link the QR code to your storage location. QR codes encode a URL containing this short code and a compartment position. Label generation and PDF rendering happen entirely in your browser — no label images or PDFs are sent to our servers.

3. Purpose of data processing

We process your data for the following purposes:

  • Service delivery: scanning photos, managing inventory, processing payments.
  • Account management: authentication, profile storage, subscription management.
  • Service improvement: anonymised analytics to improve AI accuracy and user experience (only with consent).
  • Legal obligations: tax records, fraud prevention, responding to legal requests.
  • Communication: transactional emails (password reset, payment confirmation), product updates (with consent).
  • QR label generation: creating scannable labels for your storage compartments so you can quickly navigate to inventory via your phone.

4. Legal basis for processing (GDPR)

  • Contract performance (Art. 6(1)(b) GDPR): processing your account data, scan data, and QR label data to deliver the service. QR label generation is initiated by you and is part of the storage management functionality you use.
  • Legitimate interest: fraud prevention, service stability, and abuse detection.
  • Consent: analytics cookies — only after you accept.
  • Legal obligation: keeping payment records as required by Dutch tax law.

5. Third-party services

  • Supabase — database and authentication (EU region).
  • Cloudflare R2 — image storage (EU region). Images are stored for the duration of your account and deleted when you delete your account.
  • Google LLC — OAuth identity provider for “Sign in with Google”. Used for authentication only; we do not access Gmail, Google Drive, or any other Google services. See policies.google.com/privacy.
  • Apple Inc. — OAuth identity provider for “Sign in with Apple”. Used for authentication only; we do not access iCloud or any other Apple services. Apple may provide a private relay email address if you choose to hide your real address. See apple.com/legal/privacy.
  • Anthropic Claude API — AI image processing. Scan photos are sent to Anthropic's servers for LEGO part identification. Anthropic acts as a data processor under a Data Processing Agreement (DPA) incorporated into their API Terms of Service. Images are not used for model training. Anthropic may retain API inputs for up to 30 days for trust and safety purposes. See anthropic.com/legal/dpa.
  • Google Gemini API — alternative AI image processing. When enabled by the administrator, scan photos may be processed by Google's Gemini API for LEGO part identification. Google acts as a data processor under their Data Processing Agreement. Data sent via the paid API is not used for model training. See ai.google.dev/terms.
  • Resend — email delivery. Transactional and marketing emails are sent via Resend. Your email address and email content are processed by Resend to deliver messages. Resend acts as a data processor. See resend.com/legal/privacy-policy.
  • OpenAI API — alternative AI image processing. When enabled by the administrator, scan photos may be processed by OpenAI's API for LEGO part identification. OpenAI acts as a data processor under their Data Processing Agreement. Data sent via the API is not used for model training. OpenAI may retain API inputs for up to 30 days for abuse and misuse monitoring. See openai.com/policies/privacy-policy.
  • Stripe — payment processing. Subject to Stripe's privacy policy.
  • Sentry — error tracking. Captures error reports including stack traces and request context to help us diagnose bugs. No personal inventory data is included. See sentry.io/privacy.
  • Vercel — hosting. Logs request metadata (IP address, user agent) for up to 7 days.

6. How long we keep data

  • Account and inventory data: retained indefinitely while your account is active. Deleted when you delete your account.
  • Scan records: retained indefinitely while your account is active. Deleted when you delete the scan or your account.
  • Scan images on R2: original photos deleted after 30 days. Deleted immediately when you delete the scan or your account.
  • Activity log: retained indefinitely while your account is active for your scan and inventory history.
  • Email event records: 2 years from the date of the event (delivery status, opens, clicks).
  • Payment records: 7 years (Dutch tax law requirement).
  • Cookie consent records: 3 years from the date of consent. Retained for 3 years after account deletion as proof of legal basis.
  • Waitlist data: until 6 months after public launch, then deleted unless you created an account.
  • Error logs: 90 days.

7. Your rights (GDPR)

You have the right to:

  • Access the personal data we hold about you.
  • Correct inaccurate data.
  • Delete your account and all associated data (right to erasure). You can do this from the Settings page, or email us.
  • Export your personal data. You can download a copy of your personal data at any time from Settings > Privacy > Download my data. Alternatively, you can contact us at privacy@brickscanner.app.
  • Object to processing based on legitimate interest.
  • Withdraw consent for analytics cookies at any time by clearing your browser's local storage.
  • Lodge a complaint with the Dutch Data Protection Authority (Autoriteit Persoonsgegevens).

To exercise these rights, email privacy@brickscanner.app. We will respond within 30 days.

8. Cookies

We use a single essential cookie for authentication (Supabase session). We ask for your consent before setting any non-essential cookies (analytics). You can change your preference at any time by clearing your browser's local storage for this domain. Cookie consent choices are recorded in our database for GDPR compliance.

9. Analytics tracking

We record when you use the app (session timestamps and feature usage) to measure product usage.

  • Purpose: This helps us calculate daily, weekly, and monthly active users and improve the product.
  • Legal basis: Legitimate interest (Art. 6(1)(f) GDPR). We have a legitimate interest in understanding how our service is used to maintain and improve it.
  • Retention: Session data is deleted after 90 days. Aggregated statistics (without personal data) are kept longer.
  • No third parties: Analytics data is stored in our own database and is not shared with third parties.
  • Right to object: You can opt out of analytics tracking at any time in Settings > Privacy.

10. Data transfers

Your data is primarily processed in the EU. The Anthropic Claude API and Google Gemini API (when enabled) process scan images in the United States under Data Processing Agreements (DPAs). Anthropic is certified under the EU-U.S. Data Privacy Framework (DPF) for lawful EU→US data transfers and does not use your data for model training. Google processes data under their API terms and does not use paid API data for model training. See anthropic.com/legal/dpa and ai.google.dev/terms.

11. Automated decision-making

Brick Scanner uses artificial intelligence (AI) to identify LEGO parts from photos you upload. This is a form of automated processing that produces results (part identification, colour, and quantity) without human intervention.

  • What it does: the AI analyses your scan photos and returns identified LEGO parts with part number, colour, and estimated quantity.
  • Accuracy: AI identification is not guaranteed to be correct. Results are estimates and should be verified by you.
  • Human oversight: you can review, correct, or reject any AI-identified result using the correction flow in the app. No automated decision has legal or similarly significant effects on you.

12. Children

Brick Scanner does not knowingly collect data from users under 16 (or the lower national threshold within the EU). During registration — whether by email or via Google or Apple OAuth — you must confirm your birth year. Users below 16 will be denied access and any account created via OAuth that does not complete the age-gate will be removed automatically within 24 hours. If you believe we have inadvertently collected data from a child under 16, please contact us at privacy@brickscanner.app and we will delete the account within 30 days.

13. Changes to this policy

We may update this Privacy Policy from time to time to reflect changes in our services, legal requirements, or data processing practices. When we make material changes, we will update the "Last updated" date at the top of this page. We encourage you to review this policy periodically. Continued use of Brick Scanner after changes constitutes acceptance of the updated policy.

14. Contact and complaints

Questions or complaints: privacy@brickscanner.app. If you are not satisfied with our response you may lodge a complaint with the Dutch Data Protection Authority (Autoriteit Persoonsgegevens) at autoriteitpersoonsgegevens.nl.

Brick Scanner is een handelsnaam van [Nog in te vullen], KvK: [Nog in te vullen], BTW: [Nog in te vullen]

Brick Scanner