MostlyQR

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.

bash
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" }'
json
{ "job_id": "mint_abc", "batch_id": "b-1718…", "total": 100000, "status": "queued" }

# Poll the mint job

bash
curl https://mostlyqr.com/api/v1/serialized/jobs/mint_abc \
  -H "Authorization: Bearer mtq_live_…"
json
{ "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.

bash
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 }'
json
{ "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_codes allotment — a non-Enterprise key gets 403.
  • Units are ultra-light docs, so a campaign scales to millions without per-unit overhead.

# Next