Serialized codes
Give every physical unit its own unique code — not one code per product line, but a distinct, non-enumerable serial per item. That unlocks per-unit analytics, recall, and anti-counterfeit verification. Enterprise plan.
The model has three tiers:
- Campaign — the product/SKU: a destination + brand + status. Created in the dashboard (Serialized tab) or via the dashboard API.
- Batch — a production lot under a campaign (created at mint time).
- Unit — one physical item, identified by its serial (
mqr.sh/u/<serial>).
# Mint a batch
count units are minted asynchronously under a campaign; you poll the job, then export a
print-ready manifest.
curl https://mostlyqr.com/api/v1/serialized/campaigns/CAMPAIGN_ID/mint \
-H "Authorization: Bearer mtq_live_…" \
-H "Content-Type: application/json" \
-d '{ "count": 100000, "label": "Spring run 04" }'
{ "job_id": "mint_abc", "batch_id": "b-1718…", "total": 100000, "status": "queued" }
# Poll the mint job
curl https://mostlyqr.com/api/v1/serialized/jobs/mint_abc \
-H "Authorization: Bearer mtq_live_…"
{ "job_id": "mint_abc", "status": "running", "total": 100000, "minted": 42000, "progress": 0.42 }
# Export a print-ready bundle
Once minted, build a manifest (CSV + optional JSONL of every serial + its URL) and get a short-lived signed download URL — hand it to your print/packaging vendor.
curl https://mostlyqr.com/api/v1/serialized/campaigns/CAMPAIGN_ID/export \
-H "Authorization: Bearer mtq_live_…" \
-H "Content-Type: application/json" \
-d '{ "batch_id": "b-1718…", "includeJsonl": true }'
{ "url": "https://…signed…/spring-run-04.zip", "count": 100000, "filename": "spring-run-04.zip", "expires_in_ms": 86400000 }
# Symbology & the product passport
Each serial can be rendered as a QR, an ECC200 DataMatrix (tight packaging), or a GS1 Digital Link carrying GTIN + batch + expiry + serial. You can also attach a digital product passport (Model, Release year, Material…) shown when a unit is verified.
# Anti-counterfeit
Per-unit scans run a clone-detection heuristic (the same serial appearing in dispersed
geographies, or impossible-travel) and fire a clone.suspected webhook on the flag
transition. Verdicts surface publicly via Verification.
# Notes
- Minting is gated on the Enterprise plan’s
serialized_codesallotment — a non-Enterprise key gets403. - Units are ultra-light docs, so a campaign scales to millions without per-unit overhead.
# Next
- Verification — the genuine/flagged check on a serial.
- The full API reference.