BrickWorks

UPC Scan & Part Out Set

Scan a LEGO set barcode (UPC/EAN) or type the barcode or BrickLink set number (e.g. 75192-1). Live camera needs HTTPS (Cloudflare tunnel). Typing always works.

Point the camera at the box barcode, or type below.

Browse Catalog

0
0
$0.00

No parts yet

Scan a LEGO® part, minifigure, or set and tap Add to Review List. Your items appear here, ready to upload to your BrickLink store.

1 Manual upload (BrickLink XML)

Generate the BrickLink inventory XML, paste it on BrickLink’s upload page, and your lots are created there.

Add to Bricklink

Prices in the XML are entered in your store currency. After uploading, review the lots on BrickLink before they go live, then use “Mark all as uploaded” to tidy this list.

2 Direct upload via BrickLink API

Instantly add the review list to your store inventory. You need API credentials from BrickLink — it takes 2 minutes to create them.

Get my API credentials →

Credentials stay in this browser only. BrickLink limits API calls per day — this app uploads one item per call, politely spaced. Your store must be open to list items.

How this app works

  1. Scan — take or import a photo; Brickognize AI identifies the part, minifigure, or set.
  2. Confirm — pick the right match, set color, quantity, price & condition.
  3. Review — build your list of lots to sell.
  4. Upload — push them into your BrickLink store inventory.

Settings

Appearance

Auto follows your phone or computer's light/dark setting.

Start in Full Screen Browsers require a tap, so BrickWorks will enter full screen on your first tap after opening.

On phones, add BrickWorks to your Home Screen for the most app-like full-screen view without the browser URL bar.

Support BrickWorks ♥

BrickWorks is free — no subscriptions, no locked features, no ads. If you love the app, and it’s earning money for you, toss a few bricks in the jar. Donations buy tape, test rolls, and the good coffee that ships updates.

Home screen layout

Nine ways to set up your Home page. Tap a preview to switch and return to Home — your pick is saved on this device.

Listing defaults

Off = BrickLink removes the lot when it sells out. On = keep an empty lot in inventory.

Every auto-filled price is multiplied by this (e.g. 1.25 = +25%) before discounts. 1.00 = no change.

Applied to new Add Item lots. Use 0 to leave Sale % blank.

Applied to new Add Item and Review lots. Use 0 to hide Cost on those pages.

Which BrickLink value auto-fills Price Each when you add an item. 6-Month Avg is the default.

On Add Item, when a part has more than one known color, the color list opens right away — the correct price can’t be pulled until a color is picked. Single-color parts are unaffected (their color is auto-applied instead).

Thumbnail Color Cascade

Customize which colors appear first for part thumbnails across the app (Browse Catalog, Add Item, etc.). If a part doesn't come in your 1st choice, the app checks each preference down to Option 5 (Next Available Color).

How labels print

Silent — print relay. Labels go straight to the printer: no print window, exact size every time, and Print Lock auto-print works fully silently. Set up the print relay below first — after that, leave everything as it is and labels flow through it automatically.

If the relay is ever offline when you print, the label waits in the queue and prints the moment it reconnects — nothing to redo.

On the Add Item page, tap the printer icon to print one label. Press and hold it to lock (auto-print each new lot) or unlock.

Direct printing — the print bridge

Choose what runs the bridge

Why you need a small helper

Labels print straight to the Brother printer with no print window — that is what makes them the right size every time. But a web browser is deliberately locked down on every device: a website cannot open a direct connection to a printer on your Wi‑Fi. The Brother QL listens on port 9100, a raw network socket no browser API can reach, and Safari/Chrome on a phone force printing through AirPrint — which feeds a long blank strip instead of a label.

So a tiny “bridge” program has to run on some device on the same Wi‑Fi as the printer. On Windows or macOS that bridge is the free print relay and it works today. On Android or iPhone it runs inside a small app (Termux or Pythonista) — that one-tap setup is coming soon.

Your print connection

Checking… Looking for your print relay…
————-————-————-————

This device's Print Key ties your labels to your relay — every device that prints to the same printer uses this same key (copy it, or move it with your Settings backup). New key orphans any relay still using the old one, so only tap it if a key leaked.

Adding another phone in this house? Tap Copy Print Key and text the key to them. On their phone, they tap Use shared key here and paste it — from then on all phones in the house print to the same relay.

Compact labels Skip empty fields and print the label shorter — saves tape. Off = every label full height.
Customize Label Sliders for each row's size on the 38 × 16 label — saved on this device, used by the Custom roll above.
Open

Set up your print bridge

Which device will run the bridge? Your choice is remembered on this device.

Comments

Manage your saved comments. Rows are kept sorted A–Z by the Comments column. Add a row, type into any cell, and your changes are saved automatically. The switch on the Remarks column turns Remarks on or off: when it is off, the Remarks text is kept here but will not be carried over to the Add Item page.

Comments
Remarks
Discount

Store Inventory

Download your BrickLink store once, then Add Item can fill Remarks and Comments from lots you already have — without a new API call every part. BrickLink cannot search by part number, so this full download is the reliable way.

Not downloaded yet.

Manual = only when you tap the button. Once per visit = the first time you open Add Item after loading the app. Once a day = the first Add Item (or this page) after midnight.

Each download uses about 1 BrickLink API call (counted in Settings → BrickLink). The list stays in this browser’s memory only — it is not saved as a file, and it is not sent anywhere else.