Privacy policy
Last updated: September 4, 2026
Your privacy, in plain words.
This policy explains what we collect, why, who sees it, and what control you have. The short version: we collect what we need to run the scanner, your inventory, and your subscription. We use third-party services to identify LEGO from photos, to process payments, and to understand how the product is used. We never sell your personal information. Scan photos are not kept after identification today. We may keep them in the future to train our own identification models, and Section 3 explains exactly how that would work and how to opt out.
01Who we are and what this covers
Michigan Bricks LLC and its affiliate brick'em LLC (together, "brick'em," "we," "us," or "our") operates the following (together, the "Service"):
- The website at brickem.io, including the free tools, blog, and share pages.
- The web app at dashboard.brickem.io.
- The brick'em mobile app for iOS and Android.
- The brick'em Chrome extension.
- Norman, our AI assistant, available inside the app.
- The brick'em community forum and our official Discord server.
- The public brick'em MCP server and any public API we offer.
This policy explains how we collect, use, disclose, and safeguard information when you use the Service. It also covers a small amount of information we process about LEGO sellers who are not our customers (Section 11). By using the Service you agree to this policy. If you do not agree, please do not use the Service.
Data controller: Michigan Bricks LLC and brick'em LLC, jointly, 1423 E Michigan Ave, Saline, MI 48176, United States. Email: [email protected]. Phone: (734) 786-0526.
02Information we collect
2.1 Information you give us
- Account information: email address, display name, and password (if you sign up with email). If you sign in with Google, Apple, or Discord, we receive your name, email, and profile picture from that provider.
- Onboarding answers: what kind of seller you are, your revenue range, the approximate value of your collection, the platforms you sell on, your goals, how you heard about us, your business name, and, if you choose to answer, your birth month and year. These are optional and used to personalize the product.
- Payment information: when you pay through brick'em, your card or PayPal details are collected and stored by Stripe or PayPal, not by us. We keep your Stripe customer ID, your plan, and your billing status. When you subscribe through the App Store or Google Play, Apple or Google handle payment and we receive only subscription status, product ID, and an anonymous purchase identifier through RevenueCat.
- Photos and images: photos you take or upload to identify LEGO, listing photos you attach to items, and your profile avatar. Section 3 covers this in detail.
- Inventory data: items, quantities, condition, your cost and asking prices, SKUs, notes, descriptions, custom names, collection names, and anything you import from a CSV, BrickLink XML, BrickStock, or Rebrickable file.
- Marketplace credentials: if you connect a store, your eBay authorization token, your BrickLink API keys, or your Shopify access token, plus store settings such as your ship-from postal code, handling time, and shipping cost. Section 7 covers this.
- Voice recordings: if you send Norman a voice message, the audio clip you record.
- Community content: forum posts, comments, poll votes, feature requests, messages in our Discord server, and anything you submit for a public seller page (bio, location, links, photo).
- Referral and creator program information: your referral code, the email address of people you invite, and, if you apply to the creator program, your name, business name, social handles, follower count, and contact email. If you earn a physical reward, the shipping address you give us.
- Support and feedback: messages you send to support, cancellation reasons, in-app feedback, and ratings of Norman's answers.
2.2 Information collected automatically
- Product usage: pages and screens viewed, features used, scans completed, items added, searches run (including the search text), button clicks, and session length. Collected through our analytics provider (Section 9) and our own event log.
- Device and app information: browser or app version, operating system, device model, screen size, language, and time zone.
- Network information: your IP address is used in real time for security and rate limiting. For free scans without an account, we store a one-way hash or a truncated form of the IP so we can enforce free-scan limits. Analytics providers may derive an approximate city-level location from your IP.
- Diagnostics: crash reports and error messages from the mobile app, and performance timings from the web app.
- Change history: an internal audit log of edits to your inventory and subscription so we can investigate problems and restore mistakes.
- Push notification tokens: if you enable notifications on mobile, the device token needed to deliver them.
2.3 Information from other sources
- Sign-in providers (Google, Apple, Discord): name, email, profile picture.
- Payment processors (Stripe, PayPal, Apple, Google via RevenueCat): payment status.
- Marketplaces you connect (eBay, BrickLink, Shopify): your store username, your active listings, and your inventory quantities, so we can mirror them in the app.
2.4 Information we do not collect
- We do not collect GPS or other precise location data.
- We do not access your contacts, calendar, messages, or other apps.
- We do not collect advertising identifiers (IDFA or GAID) and we do not run ad SDKs.
- We do not collect biometric data.
- We do not read your buyers' names, addresses, or order details from any marketplace.
- The mobile app does not read your photo library except the photos you pick.
03Camera, photos, and image processing
Identifying LEGO from a photo is the core of the Service. Here is exactly what happens to your photos.
3.1 How a scan works
- You take a photo, pick one from your library, or (in the extension) select an image or capture the visible area of a web page.
- The image is resized and, for single scans, cropped on your device before upload.
- For bulk scans, the image is sent to a detection model that finds the individual figures or parts in the photo. Depending on platform this is our own detector (Roboflow, self-hosted on Fly.io) or Google Cloud Vision.
- Each detected item is sent to the Brickognize identification API.
- Results and prices come back from our own catalog database.
3.2 Third-party services that receive your photos
By using the scanner you consent to your photos being transmitted to these providers for processing:
- Brickognize (brickognize.com): LEGO identification. Their privacy policy.
- Roboflow (Roboflow Inc.): object detection. Most detection runs on a Roboflow model we host on our own Fly.io servers, with Roboflow's cloud as a fallback. Their privacy policy.
- Google Cloud Vision (Google LLC): object detection for bulk scans on the web and in the extension, under Google's Cloud Data Processing Terms.
- Google Gemini (Google LLC): an optional premium detection mode. It is not enabled for sellers today. If we enable it, photos sent through that mode go to Google under the same Cloud terms.
These providers process images to return a result to you. We do not permit them to use your photos for advertising.
3.3 Photo retention today
Scan photos are processed in memory and are not saved to our servers after the result is returned. Small thumbnail crops of each identified item are sent back to your device for display and are not stored by us. The exceptions, all of which you choose:
- Share pages: if you create a public share link, the photo you shared is stored so the page can display it. See Section 8.
- Listing photos and avatars: photos you attach to inventory items for selling, and your profile picture, are stored in our file storage and served from a public URL.
3.4 Using scan images to improve identification
We may retain the images you scan, at any time and without further notice, for the sole purpose of training, evaluating, and improving brick'em's own LEGO identification and detection models. This is not switched on as of the date above. When we turn it on:
- We keep the cropped item images and, for bulk scans, the full frame you uploaded, together with the identification result.
- Location metadata and other EXIF data are stripped before storage.
- Images are stored separately from your account and are not shown to other sellers.
- Images are used only to build and test our models. They are never sold, licensed, used for advertising, or shared with third parties other than the infrastructure providers listed in Section 6 that host them for us.
- You can opt out at any time by emailing [email protected] with the subject "Training opt-out." We will stop retaining your new scans and delete retained images tied to your account within 30 days. Where the app offers a settings toggle for this, the toggle controls the same thing.
- Retained images are deleted when you delete your account, except where they have already been incorporated into a trained model, which cannot be reversed.
3.5 Camera, photo library, and microphone permissions
On mobile we ask for camera access to scan, photo library access to pick photos you choose (we never browse your library), permission to save share cards you create to your photos, and microphone access only when you record a voice message for Norman. We do not use these permissions for anything else.
04AI features (Norman and identification)
Norman is an AI assistant that can answer questions about your inventory and, with your confirmation, make changes to it. To do this, Norman sends your message, your recent conversation history, your first name and business name, and the inventory rows and prices relevant to your question to OpenAI (OpenAI, L.L.C.) for processing. Voice messages are transcribed by OpenAI's Whisper model. OpenAI processes this data under its API terms, which do not allow it to train on API inputs. We store your Norman conversations, your ratings, and a log of actions Norman took on your inventory so you can review them.
Identification results, detection boxes, and price estimates are also produced by automated systems (Section 3). None of our AI features make decisions with legal or similarly significant effects about you. They can be wrong. Always check results before you buy, sell, or list.
05How we use your information
- Provide the Service: run the scanner, identify items, show prices, store and sync your inventory, mirror your store listings, export files, and run Norman.
- Bill you: start trials, charge subscriptions, apply referral credits, process refunds, and send billing notices.
- Communicate: send transactional emails and push notifications, respond to support, and send product updates and marketing you can opt out of.
- Run programs you join: referrals, the creator program, seller pages, and promotions.
- Improve the product: understand which features are used, find bugs, measure conversion, and, if enabled under Section 3.4, train our identification models.
- Keep the Service safe: enforce scan limits, detect abuse and fraud, secure accounts, and moderate community content.
- Comply with law: keep tax and payment records, respond to lawful requests, and enforce our Terms.
We do not use your data for automated decision-making that produces legal effects concerning you, and we do not sell it.
07Connected marketplaces
You can connect an eBay, BrickLink, or Shopify store so brick'em can list items, update quantities, and mirror your listings. When you do:
- eBay: you authorize us through eBay's OAuth with the "sell.inventory" and "sell.account" scopes. We can create and update listings, manage inventory quantities, and create the shipping, payment, and return policies and merchant location (using the postal code you give us) that eBay requires. We do not read orders or buyer information.
- BrickLink: you give us your own BrickLink API credentials. We use them to read and update your store inventory.
- Shopify: you authorize us to read and write products, inventory, and locations. We do not access your customers or orders.
- All tokens and keys are encrypted at rest with AES-256-GCM. We store your store username, shop name, and store settings in readable form.
- You can disconnect a store at any time in Selling settings. Disconnecting deletes the stored token. You should also revoke brick'em in your marketplace account settings. Listings already created remain in your store.
- We also honor marketplace-initiated deletions: eBay and Shopify notify us when you close your account there, and we delete the connection.
08Public content and sharing
Some features publish information to anyone with the link. You control when this happens.
- Share pages (brickem.io/s/… and brickem.io/r/…): when you create a share link from the app or the free scanner, the photo you scanned, the identified items, their prices, and the total value are stored and shown publicly. Your name is not shown. Share pages do not expire on their own. To take one down, email [email protected] with the link.
- Seller pages (brickem.io/u/…): if you apply for and we approve a seller page, it shows the display name, tagline, location, photo, bio, links, and promotions you submit and, only if you turn it on, your live item count and total collection value.
- Community: forum posts, comments, and polls show your display name to other signed-in sellers. Messages in our Discord server are visible to that server's members and are subject to Discord's privacy policy.
- Friends and referrals: other sellers can find you by display name and see your avatar and seller type. When someone you referred signs up, you can see that referral's email address in your referral dashboard, and they can see that they were referred by your code.
- Share cards generated on your device (item cards, portfolio stats, lot cards) are rendered locally and only leave your device if you choose to share or save them.
09Analytics, cookies, and tracking
9.1 What we use
- PostHog (US-hosted): records page views, screen views, feature usage, clicks, and web performance on brickem.io, dashboard.brickem.io, and the mobile app. Once you sign in, events are linked to your account and we send PostHog your email, name, plan, and onboarding answers so we can understand usage by seller type. PostHog uses a first-party cookie shared between brickem.io and dashboard.brickem.io so we can tell which marketing pages lead to signups. Requests are routed through our own domain. Session recording is off on mobile; if we turn on session replay on the web, keystrokes and form fields are masked.
- Vercel Analytics: anonymous page performance metrics on the web app.
- Claydar: a visitor analytics script on brickem.io that collects browser and device characteristics and page views to measure marketing traffic. It runs only on the marketing site, not in the app or extension.
- Our own event log: we record events such as scans completed, items added, and searches (including the search text) in our database to run limits and improve results.
9.2 Cookies and local storage
- Essential: sign-in session, security, onboarding state, and the referral code you arrived with (30 days).
- Preferences: currency, sidebar state, dismissed prompts, free-tool usage counters, cached inventory for faster loading.
- Analytics: PostHog and Claydar identifiers described above.
We do not use advertising cookies and no ad networks run on the Service. You can block or delete cookies in your browser; the app may not work fully without essential cookies. We do not currently respond to browser "Do Not Track" signals. Because we do not sell or share personal information for targeted advertising, Global Privacy Control signals do not change how we treat your data.
9.3 Opting out of analytics
Email [email protected] with the subject "Analytics opt-out" and we will exclude your account from PostHog and delete your PostHog profile. Blocking third-party scripts in your browser also stops Claydar and PostHog on the website.
10Emails, push, and notifications
- Transactional email (sent through Resend): account confirmation, password reset, receipts, trial and billing notices, failed payments, subscription changes, referral rewards, seller page decisions, and replies to your support requests. You cannot opt out of these while you have an account.
- Marketing email: when you sign up or subscribe to our newsletter we may send onboarding tips, product updates, and offers from [email protected]. Every marketing email has an unsubscribe link. Newsletter subscribers are stored in a Google Sheet we control.
- Push notifications (mobile): trial-ending reminders, referral activity, subscription and inventory notices, and time-limited offers. Turn them off in your device settings or in More > Settings > Notifications.
- Internal alerts: when you sign up, submit a support request, or apply for a seller page, a notice containing your email, name, and message summary is sent to our staff through Telegram and email so we can respond quickly.
11Information about sellers who are not customers
Beyond our customers, brick'em processes a limited amount of publicly available information about LEGO sellers for marketing and research. We want to be upfront about it.
- Public listings: we collect publicly listed LEGO lot titles, photos, prices, and seller usernames from marketplaces such as eBay and public posts on forums such as Reddit, and run the photos through our identification models to estimate their value.
- Outreach: we may send an eBay seller a message through eBay's messaging system showing our valuation of their listing, or reply to a public post with our results. We keep a record of who we contacted and any reply so we do not contact the same person again within 30 days and can honor requests to stop.
- Results pages: we may publish a results page for a public post that credits the original poster by username and links to the source.
- Your choices: if you are a seller who was contacted or featured and you want the message record deleted, the page removed, or to never hear from us again, email [email protected]. We will do so within 10 business days.
- Business prospects: for LEGO stores we consider partnering with, we keep the store name, public website and social links, and public contact details in a spreadsheet and may use an AI service to summarize their public content.
Our legal basis for this processing is our legitimate interest in marketing a product relevant to LEGO sellers using information they made public, balanced against their interests by keeping it minimal and honoring opt-outs.
12Data retention
- Account, profile, and inventory data: kept while your account is active. Items you delete inside the app are marked deleted and hidden, but remain in our database until you delete your account or ask us to purge them.
- Scan photos: not retained after identification, except as described in Section 3.3 (shares, listing photos, avatars) and, if enabled, Section 3.4 (training).
- Scan history, usage events, and change logs: kept while your account is active so we can enforce limits, restore mistakes, and improve the product.
- Norman conversations: kept while your account is active so you can review them.
- Payment records: 7 years, as required by tax and accounting rules.
- Support correspondence: up to 3 years after the last message.
- Server logs: up to 30 days at our hosting providers.
- Marketplace tokens: until you disconnect the store or delete your account.
- Share pages: until you ask us to remove them.
- Newsletter list: until you unsubscribe.
- Aggregated analytics that no longer identify you: indefinitely.
When you delete your account we delete or anonymize the data described in Section 14. Where a legal retention obligation applies, we keep only what the obligation requires.
13Data security
- All traffic is encrypted in transit with HTTPS/TLS.
- Our database and file storage are encrypted at rest by our hosting provider.
- Passwords are hashed and never stored in plain text.
- Marketplace tokens and API keys are encrypted with AES-256-GCM before storage.
- Database row-level security limits each seller to their own records, and all writes go through server-side code that validates the request.
- Payment webhooks from Stripe, PayPal, Apple, RevenueCat, eBay, and Shopify are signature-verified.
- Access to staff tools is restricted to named administrators.
No system is perfectly secure. If we learn of a breach that affects your personal information, we will notify you and any required regulators without undue delay and within the time required by applicable law.
14Deleting your account
In the mobile app: More > Settings > Delete account. On the web: Settings > Account security > Delete account. Deletion is immediate and permanent. By email: write to [email protected] from your account email with the subject "Delete my account." We verify the request and complete it within 30 days. See brickem.io/delete-account for step-by-step instructions.
When your account is deleted we remove:
- Your profile, login, and sign-in identities.
- Your inventory, collections, scan history, and buildable data.
- Your marketplace connections and stored tokens, mirrored listings, listing links, and templates.
- Your Norman conversations, notifications, push tokens, friendships, referral records, and community posts.
- Your avatar and listing photos from file storage.
- Your analytics profile at PostHog and your RevenueCat customer record (requested from those providers).
What we keep, and why:
- Payment and invoice records at Stripe, PayPal, Apple, or Google for 7 years (tax law). These are no longer linked to a brick'em account.
- Support tickets, with your account identifier removed, for up to 3 years.
- Anonymous, aggregated usage statistics.
- Public share pages you created, because they are not linked to your account. Send us the links and we will remove them.
- Anything we must keep to comply with law or resolve a dispute.
Deleting your account does not cancel a subscription. Cancel first in Settings, the App Store, Google Play, or PayPal, or you may continue to be billed.
15Your rights and choices
15.1 Everyone
- Access a copy of your personal data.
- Correct inaccurate data in Settings or by asking us.
- Export your inventory at any time with the built-in export (CSV, BrickLink XML, and other formats).
- Delete your account (Section 14).
- Opt out of marketing email, push notifications, analytics (Section 9.3), and model training (Section 3.4).
- Disconnect any marketplace at any time.
Email [email protected] to exercise any right. We verify requests by confirming control of your account email and respond within 30 days.
15.2 EU, EEA, UK, and Swiss residents (GDPR)
You also have the rights to data portability, to restrict processing, to object to processing based on legitimate interest, and to lodge a complaint with your supervisory authority. Our legal bases are:
- Contract: providing the Service, billing, marketplace connections, support.
- Consent: sending photos to identification providers, voice recordings, marketing email, push notifications, optional onboarding answers, and model training under Section 3.4. You may withdraw consent at any time.
- Legitimate interest: analytics, security, fraud prevention, product improvement, internal alerts, and the marketing described in Section 11.
- Legal obligation: tax records and lawful requests.
15.3 California residents (CCPA/CPRA)
In the last 12 months we collected these categories of personal information:
- Identifiers: name, email, account ID, IP address (hashed or truncated), device identifiers, push tokens.
- Commercial information: subscription and purchase history, inventory and pricing records, connected store data.
- Internet or network activity: usage events, search text, pages viewed.
- Audio, electronic, or visual information: photos you scan, voice messages to Norman, avatars.
- Geolocation (approximate): city-level location derived from IP by analytics providers; self-reported location on seller pages.
- Professional information: seller type, revenue range, business name.
- Inferences: plan recommendations drawn from onboarding answers.
- Sensitive information: account login credentials; birth month and year if you provided them. We do not use sensitive information to infer characteristics about you.
We disclose these categories to the service providers in Section 6 for business purposes. We do not sell personal information and have not done so in the last 12 months. We do not share it for cross-context behavioral advertising. You have the right to know, delete, correct, and not be discriminated against for exercising your rights. Submit requests to [email protected] with the subject "CCPA Request." We respond within 45 days. You may use an authorized agent with written permission.
15.4 Other US states
Residents of Colorado, Connecticut, Virginia, Utah, Texas, Oregon, Montana, and other states with comprehensive privacy laws have similar rights of access, correction, deletion, portability, and opt-out of targeted advertising and sale. We do not sell data or target ads. Use the same contact to exercise your rights; if we decline a request you may appeal by replying to our response.
16Children's privacy
The Service is for adults and teens 13 and older (16 in the EU/EEA/UK). We do not knowingly collect personal information from children under these ages. If we learn we have, we delete it within 30 days. Parents or guardians who believe a child has an account should contact [email protected].
17International data transfers
We are based in the United States and process data there. Our providers may process data in other countries. For transfers from the EU, EEA, UK, or Switzerland we rely on our providers' certifications under the EU-U.S. Data Privacy Framework and its UK and Swiss extensions where available, Standard Contractual Clauses, and your consent where applicable.
18Chrome extension
The brick'em Chrome extension lets you scan LEGO images on any web page.
- What it reads: only when you click the extension, choose "Scan with brick'em" from the right-click menu, or draw a box. It then captures either the specific image you selected or a screenshot of the visible part of the tab and sends that image to brick'em for identification (Section 3). A screenshot can include other content visible on your screen at that moment, so check what is on screen before you scan.
- Background script: a small script runs on every page solely to remember which image you right-clicked. It does not read, record, or transmit page content, URLs, or your browsing history.
- Source parts: if you use the "source parts" feature, the extension loads BrickLink price guide pages in your browser using your own BrickLink session and reads store availability from them. That data stays on your device.
- Stored locally: your brick'em sign-in tokens, in Chrome's extension storage. Nothing else. The extension contains no analytics or ad code.
- Sent to us: the image, the scan type, and your account token. We record a scan event tied to your account and use your IP address to enforce free scan limits.
- Permissions: "Read and change data on all websites" is required so the scan overlay and right-click menu work on any marketplace page. We only act when you ask.
The extension complies with the Chrome Web Store User Data Policy, including the Limited Use requirements. We do not sell extension data, use it for advertising, or allow humans to read it except with your consent, for security, or to comply with law.
19MCP server and public API
The brick'em MCP server (an open-source tool that lets AI assistants such as Claude look up LEGO minifigures) is public and requires no account. It receives only the text of your query and, for image identification, the image you or your AI assistant submit, which is forwarded to Brickognize. We do not store queries or images and we do not log who made them beyond our hosting provider's standard request logs. Your AI assistant provider's own privacy policy governs what it does with your conversation.
20Changes to this policy
We may update this policy. When we make material changes we will update the date at the top, post the new policy here, and notify you by email or in-app notice at least 14 days before the change takes effect where the change reduces your rights or expands what we collect. Enabling model training under Section 3.4 is already described here and will be announced in the app but does not require a further policy change. Continued use after the effective date means you accept the updated policy.
21Contact us
Questions, requests, or complaints about privacy:
Michigan Bricks LLC / brick'em LLC
1423 E Michigan Ave
Saline, MI 48176
United States
Email: [email protected]
Phone: (734) 786-0526
If you are in the EU, EEA, or UK and are not satisfied with our response, you may contact your local data protection authority.