Scan a barcode
Scan it. Right here.
Point your camera at any barcode — a bag of lettuce, a pallet label, a door jamb — and this page reads it, checks it and names it, on your device. Nothing leaves your phone.
Specimens to scan.
Rendered by the same engine that reads them. Scan them off this screen or a printout, and the card names the thing, checks it from the digits alone, and shows the anatomy the barcode registry teaches.
-
A product barcode, EAN-13
The shelf form: thirteen digits, the last one a check.
curl -s https://api.barcoding.dev/resolve -H 'content-type: application/json' -d '{"payload":"4006381333931"}' { "scheme": "gs1.gtin", "carrier": "GTIN-13 (EAN-13)", "canonical": "04006381333931", "check": "mod10 pass", "computed": "computed from the digits · nothing was looked up", "handoff": "read here · resolved by id.org.ai", "address": "/01/04006381333931" } -
A GS1 label strip, GS1-128
Product, expiry and batch in one strip.
curl -s https://api.barcoding.dev/resolve -H 'content-type: application/json' -d '{"payload":"(01)09506000134352(17)260930(10)LOT42"}' { "scheme": "gs1.element-string", "carrier": "element-string (bracket)", "canonical": "(01)09506000134352(10)LOT42(17)260930", "check": "mod10 pass", "computed": "computed from the digits · nothing was looked up", "handoff": "read here · resolved by id.org.ai", "ambiguity": [ { "scheme": "udi.gs1", "carrier": "udi (GS1 issuing agency)", "canonical": "DI 09506000134352", "check": "mod10 pass", "note": "the same element string read at the FDA UDI grain: DI = AI (01), PI = the production identifiers", "di": "09506000134352", "pi": { "10": "LOT42", "17": "260930" } } ], "ais": [ { "ai": "01", "value": "09506000134352", "label": "GTIN" }, { "ai": "10", "value": "LOT42", "label": "batch/lot" }, { "ai": "17", "value": "260930", "label": "expiration date", "iso": "2026-09-30" } ], "element_string": { "bracket": "(01)09506000134352(10)LOT42(17)260930", "raw_has_fnc1": true }, "digital_link": { "canonical": "https://id.gs1.org/01/09506000134352/10/LOT42?17=260930", "compressed": "https://id.gs1.org/ARFKk4XBoCDClnJ8bC5_aE", "compression_note": "DL 1.1.4 structure; GS1 optimisation tables not applied this run — round-trip gated in CI, toolkit interop pending (P0-1 delta)" }, "epc": { "status": "company-prefix length required", "hint": "an EPC URN splits the GTIN at the GS1 company prefix — a licensed allocation fact; pass gcpLength to derive (TDS 2.3 §7)" }, "address": "/01/09506000134352" } -
A pallet label, SSCC
One logistic unit, serialized by construction.
curl -s https://api.barcoding.dev/resolve -H 'content-type: application/json' -d '{"payload":"395060000000001235"}' { "scheme": "gs1.sscc", "carrier": "sscc-18 digits", "canonical": "395060000000001235", "check": "mod10 pass", "computed": "computed from the digits · nothing was looked up", "handoff": "read here · resolved by id.org.ai", "segments": { "extension": "3", "serial_reference_with_prefix": "9506000000000123", "check": "5" }, "address": "/00/395060000000001235" } -
A vehicle number, VIN
The door-jamb form, on Code 39.
curl -s https://api.barcoding.dev/resolve -H 'content-type: application/json' -d '{"payload":"1HGCM82633A004352"}' { "scheme": "vin", "carrier": "vin (17 characters)", "canonical": "1HGCM82633A004352", "check": "iso3779 mod11 pass (pos 9 = 3)", "computed": "computed from the digits · nothing was looked up", "handoff": "read here · resolved by id.org.ai — via auto.dev, the vertical authority", "segments": { "wmi": "1HG", "vds": "CM826", "check": "3", "vis": "3A004352" }, "delegate": "decomposed by the vehicle authority", "address": "/vin/1HGCM82633A004352" } -
A book, ISBN
Books live inside the GTIN space.
curl -s https://api.barcoding.dev/resolve -H 'content-type: application/json' -d '{"payload":"9780306406157"}' { "scheme": "isbn", "carrier": "ISBN-13 (Bookland EAN-13)", "canonical": "9780306406157", "check": "mod10 pass", "computed": "computed from the digits · nothing was looked up", "handoff": "read here · resolved by id.org.ai", "ambiguity": [ { "scheme": "gs1.gtin", "carrier": "GTIN-13 (EAN-13)", "canonical": "09780306406157", "check": "mod10 pass", "note": "the same 13 digits verify as a GTIN-13 — Bookland is a GS1 prefix range leased to ISBN" } ], "address": "/isbn/9780306406157" }
Get an API key.
The local verbs run from npx barcoding.dev today with no key. A key opens the network half of the verb set.