Privacy policy
On this page
Last updated October 4, 2026
BricksID is a browser app at bricksid.com. You scan LEGO sets and minifigures, keep a private inventory, and check prices. A forthcoming iOS app is a Capacitor wrapper that loads this same website. It is not a separate store. Questions about this policy go to hello@bricksid.com. The Help form in the app menu sends the title, message, optional topic, and the signed-in account email to that same address.
Account
You can scan without an account. An account is required to save inventory. We store:
- Your email address.
- An optional display name.
- For email and password sign-in, a password hash. We do not store the password itself.
- For Sign in with Apple and Sign in with Google, the email those services share, the provider account id, and a display name if one is provided. Apple may give a private-relay address instead of your personal email. We use that address as the account email.
- Your plan: Free, Collector, or Pro.
Camera
The website asks for browser camera permission before opening the viewfinder. Website live identification also asks you to agree before sending preview frames through BricksID on Cloudflare to Brickognize, including frames sent before you press the shutter. Stop live identification stops further frames; it cannot recall a frame already sent. Live-frame identification does not store photos in BricksID R2. The pile camera only captures locally until you confirm sending a pile photo. Denying permission leaves photo upload available.
Photos
Selecting a photo in the website scanner prepares it locally. Before a scan, a permission notice names the processors for that action. Single-photo and queued identification pass through BricksID on Cloudflare to Brickognize; configured Anthropic processing also uses photos for condition notes or set-number reading. Requests include photo content and catalog information, not your account email or password.
A guest scan photo is processed for identification without being saved in BricksID R2. Signed-in single scans store the submitted photos in your account before you save an item; unsaved scans currently have no automatic expiry. Identifying a photo queue does not by itself store those photos in R2. Explicitly saving a photo with an item stores it in your account. Website multi-figure photo review sends the photo to Anthropic to locate figures, crops each detected figure using Cloudflare Images, and sends the crops to Brickognize for identification. BrickLink receives catalog identifiers for stock photos and price checks, not your uploaded photo. This review route does not save the original or cropped photos in R2. Review suggestions and save results are associated with your account to prevent duplicate additions; reviews expire after 24 hours. Items are added to your collection only when you explicitly save confirmed selections. The older grouped pile route uses Anthropic with catalog checks. Chat uploads have the separate lifecycle below.
Brickognize’s published terms allow storage and training use of uploads and allow removal requests. Whether separate API terms apply here and a fixed deletion deadline are not verified. Anthropic API retention depends on service terms and exceptions; no unconditional deletion deadline is promised here. Stopping or cancelling future processing does not erase data already received by a provider.
Inventory
Saved inventory lives in Cloudflare D1. That includes names, catalog ids, condition, notes, quantities, prices you record, and sale status. It is private to your account unless you create a public collection link or invite someone to a shared inventory.
We reuse catalog price observations across BricksID to build price history. These shared records contain the item code, condition, market price, source and date. They do not contain who owns the item, quantities owned, purchase costs or personal notes. Your collection and its starting values remain private.
Connected chat apps and MCP
You can connect a compatible chat app, such as Claude or ChatGPT, to BricksID through the Model Context Protocol (MCP) at bricksid.com/mcp. OAuth opens BricksID sign-in and a permission screen. Your BricksID password is entered on BricksID, not shared with the connected client. The client receives access tokens and can request the actions you approve. BricksID uses your existing account plan for feature access and scan limits; its MCP tools do not sell or upgrade subscriptions.
The connector receives only what the chat app sends to a tool, such as a photo link, a catalog id, or a change to your collection. It does not receive or store your conversation history.
scanallows photo identification and upload links.collection:readallows reading your saved collection and collection analysis available to eligible plans.collection:writeallows adding, editing, and removing collection items. A pile scan also needsscanand saves catalog matches to your collection for review.exportallows collection downloads available to eligible plans.sellerallows Whatnot CSV exports and marking items as uploaded in BricksID. These tools do not publish listings to Whatnot.
Account plan and scan-usage information is available to any authorized connection. Tool requests can include photos or photo URLs, catalog ids, collection filters, notes, and changes you ask to save. The connected client receives the tool results, which can include your display name, plan, scan usage, identification results, collection data, and download links. That client may retain this information under its own privacy policy. Removing a connection does not remove copies already received by the client.
BricksID stores hashes of OAuth authorization codes, access tokens, refresh tokens, and personal access tokens, together with the account, client name or token label, permissions, expiration, and revocation information. Authorization codes expire after 5 minutes, access tokens after 1 hour, refresh tokens after 30 days, and personal access tokens after 90 days. Refresh tokens are replaced when used. Expiration or revocation stops access; it does not itself delete stored token records or your inventory. Expired authorization codes are removed by scheduled cleanup.
You can revoke a connected app or a personal access token on Connected apps and tokens. Revoking a connected app invalidates its existing BricksID access and refresh tokens and outstanding authorization codes for your account. It does not delete your account or collection. A new connection requires another approval.
Chat photos, downloads, and usage records
An MCP upload link accepts photos for 10 minutes. Uploaded photos are stored in Cloudflare R2 and become unavailable for scanning 24 hours after the link is created. Scheduled cleanup attempts to delete expired upload photos and their upload records; cleanup timing can be later than link expiry. The upload processor attempts to remove EXIF location metadata from JPEG, PNG, and WebP before storage. HEIC metadata is not stripped. Photo URLs or image data sent directly to an identification tool are processed without creating a stored upload photo.
Single-item identification sends the photo to Brickognize. Pile scans send photos to Anthropic to find items and to Brickognize for catalog matching. Adding catalog rows from chat does not attach the temporary upload photo to those rows. Photos saved with items on the website follow the website photo behavior above.
To recognize repeat scans, BricksID stores an account-linked image hash, time, and result for a 24-hour reuse window. This record contains identification results, not the image itself, and is removed by scheduled cleanup after the window. Daily scan counts and export history are also stored with your account.
Collection and Whatnot downloads are stored in Cloudflare R2 behind private links that expire after 24 hours. Anyone with an unexpired link can download its file, so share it only with people you intend to receive that data. The current cleanup removes an expired export file when its link is requested after expiration; files may remain stored longer if the link is not requested. Expiry does not delete exported copies or the original inventory. Removing an item through chat hides it from the active collection with a 30-day undo window; it does not immediately erase the stored record.
Prices and other services
- BrickLink’s API supplies price guides and catalog data. A price check sends the catalog id, not your account email. If you connect your own BrickLink store, the four API values you paste are stored encrypted in D1 and are not shown again.
- Anthropic produces AI price estimates and condition notes. Estimate text is cached in D1 so the same catalog id is not researched again on every lookup. The estimate request sends the catalog id and name, not your email.
- When you submit Search with a name or listing title, BricksID may send that text and the selected item type to Anthropic to suggest catalog IDs if ordinary name search is unavailable or finds no matches. Account details, inventory, and photos are not included in this text request. BrickLink verifies every suggested ID before a result is shown and supplies catalog names, images, and price guides. Suggestions can identify a different variant, so you confirm the item before adding it. Text-search results are cached in Worker memory for up to five minutes. Editing the search text alone does not start interpretation.
- Stripe bills paid tiers on this website. See Payments below.
- If you connect eBay, the OAuth tokens for that seller account are stored encrypted so BricksID can list inventory you choose to send.
Payments
Plans in the app are Free ($0), Collector ($4.99 per month), and Pro ($19.99 per month). Collector and Pro are web subscriptions through Stripe Checkout on bricksid.com. Card numbers are entered on Stripe. We store a Stripe customer id and subscription id on the account. You can change or cancel in the Stripe customer portal.
The forthcoming iOS Capacitor wrapper loads bricksid.com and uses that same website checkout. BricksID does not use Apple In-App Purchase. If Stripe is not connected on a server, checkout stays off and your plan does not change.
Cookies and on-device storage
Signing in sets an HttpOnly session cookie named bbb_session. It lasts 30 days, is limited to this site, and is marked Secure on HTTPS. The cookie value is a random token. D1 stores only a hash of that token. Signing out deletes the session.
OAuth sign-in, permission approval, and token settings also use a short-lived cookie to protect forms from forged requests. On HTTPS it is named __Host-bid_oauth_csrf, is HttpOnly and Secure, and expires after 30 minutes. It is used for request security, not advertising.
The site also keeps a few values in the browser: the last scan mode in local storage, and an unsaved guest scan or invite code in session storage. These are not advertising cookies. Sign in with Apple and Sign in with Google load those companies’ scripts, which can set their own cookies when you use those buttons.
Location
The shop map and a buy, sell, or trade interest can ask the browser for your location. You can refuse. If you save an interest, we store coordinates rounded to about a kilometer, not a street address.
What we do not do
We do not sell personal data. We do not share your inventory for advertising. Service providers above receive only what that feature needs: Cloudflare hosts the app, database, and photos; Brickognize and Anthropic see scan photos; BrickLink sees catalog lookups and, if you connect a store, the sync you start; Stripe sees checkout; Apple or Google see the sign-in you start. Connected chat clients receive the requests and results described above when you use the integration.
Children
BricksID is not directed at children under 13, and we do not knowingly collect their information.
Deletion and contact
There is no in-app delete-account button. Email hello@bricksid.com to ask for your account, inventory, and stored photos to be deleted, or to ask what we hold for your email address.