Compile a structured product-label spec (dimensions, EU FIC or US FDA ruleset, i
Compile a structured product-label spec (dimensions, EU FIC or US FDA ruleset, ingredients/allergens, nutrition, GS1 barcode, brand style) into a deterministic print-ready PDF with trim/bleed/safe boxes and embedded fonts, an SVG proof, a dieline, and a report auditing x-height legibility, allergen emphasis, nutrition order, and barcode check digits/quiet zones. Not a legal review of packaging compliance.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
602 msmedian answer time
$0.15listed price per call
$0.15price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://label.api.williamrobinson.dev/v1/label/compile
| Category | Code and developer |
|---|---|
| Provider host | label.api.williamrobinson.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.15 | 602 ms |
Example input (from the provider)
{
"body": {
"barcode": {
"data": "5901234123457",
"humanReadable": true,
"symbology": "ean13"
},
"format": {
"bleedMm": 2,
"cornerRadiusMm": 3,
"heightMm": 60,
"safeMm": 2,
"widthMm": 100
},
"ingredients": [
{
"allergen": true,
"text": "Wheat flour"
},
{
"allergen": false,
"text": "Sunflower oil"
},
{
"allergen": false,
"text": "Sourdough culture"
},
{
"allergen": false,
"text": "Sea salt"
},
{
"allergen": true,
"text": "Sesame seeds"
}
],
"nutrition": {
"basis": "100g",
"carbohydrateG": 68.5,
"energyKcal": 442,
"energyKj": 1850,
"fatG": 14.2,
"fibreG": 3.4,
"proteinG": 10.6,
"saltG": 1.2,
"saturatesG": 1.8,
"sugarsG": 2.1
},
"product": {
"brand": "Stonebake",
"business": {
"address": "14 Mill Lane, Bristol BS1 4ST, United Kingdom",
"name": "Stonebake Bakery Ltd"
},
"dateLine": "Best before: see lid",
"description": "Crisp sourdough crackers baked with stone-milled wheat flour.",
"name": "Stonebake Sourdough Crackers",
"netQuantity": {
"unit": "g",
"value": 150
},
"origin": "Baked in Italy",
"storage": "Store in a cool, dry place. Reseal after opening."
},
"ruleset": "eu-fic",
"style": {
"accent": {
"rgb": "#8a3b12"
},
"background": {
"rgb": "#ffffff"
},
"fontFamily": "liberation-sans",
"text": {
"rgb": "#000000"
}
},
"warnings": [
"May contain traces of milk."
]
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"barcode": {
"additionalProperties": false,
"properties": {
"data": {
"description": "Exactly 13 digits (with GS1 check digit) for ean13, exactly 12 for upca; any UTF-8 text up to 512 bytes for qrcode/datamatrix.",
"maxLength": 512,
"minLength": 1,
"type": "string"
},
"humanReadable": {
"default": true,
"description": "Draw the human-readable digits (1D only).",
"type": "boolean"
},
"symbology": {
"enum": [
"ean13",
"upca",
"qrcode",
"datamatrix"
],
"type": "string"
},
"widthMm": {
"description": "Requested symbol width incl. quiet zones; omitted = GS1 nominal / 20 mm for 2D.",
"maximum": 300,
"minimum": 5,
"type": "number"
}
},
"required": [
"symbology",
"data"
],
"type": "object"
},
"format": {
"additionalProperties": false,
"properties": {
"bleedMm": {
"default": 2,
"maximum": 5,
"minimum": 0,
"type": "number"
},
"cornerRadiusMm": {
"default": 0,
"description": "Must not exceed min(widthMm, heightMm) / 2; validated against the format's own dimensions.",
"minimum": 0,
"type": "number"
},
"heightMm": {
"description": "Trim height, millimetres.",
"maximum": 400,
"minimum": 20,
"type": "number"
},
"safeMm": {
"default": 2,
"description": "Inside the trim; mandatory text never enters it.",
"maximum": 10,
"minimum": 0,
"type": "number"
},
"widthMm": {
"description": "Trim width, millimetres.",
"maximum": 400,
"minimum": 20,
"type": "number"
}
},
"required": [
"widthMm",
"heightMm"
],
"type": "object"
},
"ingredients": {
"items": {
"additionalProperties": false,
"properties": {
"allergen": {
"description": "Emphasised in the ingredient list and fed into the allergen-statement/scan checks.",
"type": "boolean"
},
"text": {
"maxLength": 120,
"minLength": 1,
"type": "string"
}
},
"required": [
"text",
"allergen"
],
"type": "object"
},
"maxItems": 200,
"type": "array"
},
"nutrition": {
"additionalProperties": false,
"properties": {
"addedSugarsG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"basis": {
"enum": [
"100g",
"100ml",
"serving"
],
"type": "string"
},
"carbohydrateG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"cholesterolMg": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"energyKcal": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"energyKj": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"fatG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"fibreG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"proteinG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"saltG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"saturatesG": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"servingSize": {
"maxLength": 40,
"minLength": 1,
"type": "string"
},
"sodiumMg": {
"maximum": 100000,
"minimum": 0,
"type": "number"
},
"sugarsG": {
"maximum": 100000,