Spec-first barcode infrastructure
60 symbologies. Every engine validated against its ISO or AIM standard, not a library that wrapped another library that once read a Wikipedia article. Round-trip verified. Reed-Solomon proofs. Cross-validated by three independent decoders.
Live demo
No sign-up. No API key. Just type and get a barcode. The same engine that runs in production.
Integration
# Encode a QR Code curl -X POST https://ec2-44-201-74-60.compute-1.amazonaws.com/barcode/v1/encode \ -H "X-API-Key: bl_your_key" \ -H "Content-Type: application/json" \ -d '{"text":"https://barcodelab.ai","symbology":"qr_code","format":"PNG"}' \ --output qr.png # Decode a barcode from an image file curl -X POST https://ec2-44-201-74-60.compute-1.amazonaws.com/barcode/v1/decode \ -H "X-API-Key: bl_your_key" \ -F "file=@barcode.png" # Response { "data_text": "https://barcodelab.ai", "symbology": "qr_code", "verified": true, "confidence": 1.0 }
import barcodelab # pip install barcodelab client = barcodelab.Client(api_key="bl_your_key") # Encode result = client.encode( text="https://barcodelab.ai", symbology="qr_code", format="PNG", ) with open("qr.png", "wb") as f: f.write(result.image_data) # Decode decoded = client.decode(file=open("barcode.png", "rb")) print(decoded.data_text) # → "https://barcodelab.ai" print(decoded.verified) # → True
// npm install @barcodelab/sdk import { BarcodeLab } from "@barcodelab/sdk"; const client = new BarcodeLab({ apiKey: "bl_your_key" }); // Encode const result = await client.encode({ text: "https://barcodelab.ai", symbology: "qr_code", format: "SVG", }); document.getElementById("barcode").innerHTML = result.image_data; // Decode const decoded = await client.decode({ file: imageFile }); console.log(decoded.data_text); // "https://barcodelab.ai" console.log(decoded.verified); // true
// composer require barcodelab/sdk use BarcodeLab\Client; $client = new Client(api_key: "bl_your_key"); // Encode $result = $client->encode( text: "https://barcodelab.ai", symbology: "qr_code", format: "PNG", ); file_put_contents("qr.png", $result->image_data); // Decode $decoded = $client->decode(file: fopen("barcode.png", "rb")); echo $decoded->data_text; // "https://barcodelab.ai"
Symbology coverage
Not wrappers around wrappers. Each engine is tested against the worked examples in the actual standard document.
Why it matters
DotCode was implemented directly from AIM ISS Rev 4.0. Reed-Solomon over GF(113). Every worked example in §6.1, §6.2, §6.3 verified. RS syndromes = 0. That is a mathematical proof, not a unit test.
Every encoded symbol is checked by our own decoder, zxing-cpp,
and pyzbar. If they disagree, we return an error — not a barcode
that will fail on a real scanner at 3am on a production line.
200+ AIs from GS1 General Specifications Release 24.0. Check digits, date century rule, AI companion requirements, FNC1 separators. Shared across all 22 GS1-capable engines — one implementation, verified once.
Pricing
Every plan includes all 60 symbologies. Quality doesn't change by tier — only volume and support do.