{"api":"v1","generated_at":"2026-09-16T07:34:44.940Z","licence":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","attribution":"TOLL, with a link to the page cited"},"page":"https://tollindex.com/e/label-api-williamrobinson-dev-v1-label-compile-aa8691","pinned_page":"https://tollindex.com/e/label-api-williamrobinson-dev-v1-label-compile-aa8691/at/2026-09-16T04-48Z","pinned":false,"method":"https://tollindex.com/ledger/method","snapshot_at":"2026-09-16T04:48:25.992Z","snapshot_stamp":"2026-09-16T04-48Z","endpoint":{"slug":"label-api-williamrobinson-dev-v1-label-compile-aa8691","canonical_url":"https://label.api.williamrobinson.dev/v1/label/compile","resource":"https://label.api.williamrobinson.dev/v1/label/compile","http_method":"POST","type":"http","x402_version":2,"registries":["cdp"],"primary_registry":"cdp","curated_by_coinbase":false,"description":"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.","service_name":"Product-Label Artwork Compiler","declared_category":null,"declared_tags":["label","packaging","barcode","compliance","print"],"route_template":null,"registry_updated":"2026-09-11T20:08:19.463Z"},"derived":{"note":"fields no registry supplies; TOLL derives them and marks them derived on the page","title":"label compile","category":"other","first_observed_by_toll":"2026-09-11T20:57:00.628Z","last_observed_by_toll":"2026-09-16T04:48:25.991Z","observation_began":"2026-09-10"},"presence":{"listed_now":true,"first_absent_at":null,"delisting_confirmed_at":null,"events":[{"registry":"cdp","at":"2026-09-11T20:57:00.628Z","event":"listed"}]},"accepts":[{"registry":"cdp","ordinal":0,"network":"eip155:8453","asset":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","asset_name":"USD Coin","symbol":"USDC","decimals":6,"amount_display":"0.15 USDC","amount_units":0.15,"decimals_known":true,"pay_to":"0x26026370fe8b2bb17af9092a17691c76519366da","scheme":"exact"}],"counters":{"observed_at":"2026-09-16T04:48:25.992Z","calls_30d":1,"unique_payers_30d":1,"last_called_at":"2026-09-11T20:08:18.958Z"},"validation":{"latest":{"observed_at":"2026-09-16T05:53:08.064Z","state":"pass","failed_checks":[],"endpoint_http_status":402,"run_id":"daily-2026-09-16"},"uptime":[{"days":7,"observed":6,"passed":6,"ratio":1},{"days":30,"observed":6,"passed":6,"ratio":1},{"days":90,"observed":6,"passed":6,"ratio":1}],"history_90d":[{"observed_at":"2026-09-16T05:53:08.064Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-16","state_changed":false},{"observed_at":"2026-09-15T06:09:53.167Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-15","state_changed":false},{"observed_at":"2026-09-14T05:40:53.420Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-14","state_changed":false},{"observed_at":"2026-09-13T05:34:24.343Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-13","state_changed":false},{"observed_at":"2026-09-12T07:51:22.221Z","state":"pass","failed_checks":[],"run_id":"daily-2026-09-12","state_changed":false},{"observed_at":"2026-09-11T23:29:21.440Z","state":"pass","failed_checks":[],"run_id":"new-2026-09-11T23-29-05-284Z","state_changed":true}]},"seller":{"wallet":"0x26026370fe8b2bb17af9092a17691c76519366da","page":"https://tollindex.com/seller/0x26026370fe8b2bb17af9092a17691c76519366da","endpoints":12,"hosts":12},"reports":0,"registry_record":{"cdp":[{"tags":["label","packaging","barcode","compliance","print"],"type":"http","accepts":[{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"name":"USD Coin","version":"2"},"payTo":"0x26026370fe8b2bb17af9092a17691c76519366da","amount":"150000","scheme":"exact","network":"eip155:8453","maxTimeoutSeconds":300}],"quality":{"lastCalledAt":"2026-09-11T20:08:18.958Z","l30DaysTotalCalls":1,"l30DaysUniquePayers":1},"resource":"https://label.api.williamrobinson.dev/v1/label/compile","extensions":{"bazaar":{"info":{"input":{"body":{"style":{"text":{"rgb":"#000000"},"accent":{"rgb":"#8a3b12"},"background":{"rgb":"#ffffff"},"fontFamily":"liberation-sans"},"format":{"safeMm":2,"bleedMm":2,"widthMm":100,"heightMm":60,"cornerRadiusMm":3},"barcode":{"data":"5901234123457","symbology":"ean13","humanReadable":true},"product":{"name":"Stonebake Sourdough Crackers","brand":"Stonebake","origin":"Baked in Italy","storage":"Store in a cool, dry place. Reseal after opening.","business":{"name":"Stonebake Bakery Ltd","address":"14 Mill Lane, Bristol BS1 4ST, United Kingdom"},"dateLine":"Best before: see lid","description":"Crisp sourdough crackers baked with stone-milled wheat flour.","netQuantity":{"unit":"g","value":150}},"ruleset":"eu-fic","warnings":["May contain traces of milk."],"nutrition":{"fatG":14.2,"basis":"100g","saltG":1.2,"fibreG":3.4,"sugarsG":2.1,"energyKj":1850,"proteinG":10.6,"energyKcal":442,"saturatesG":1.8,"carbohydrateG":68.5},"ingredients":[{"text":"Wheat flour","allergen":true},{"text":"Sunflower oil","allergen":false},{"text":"Sourdough culture","allergen":false},{"text":"Sea salt","allergen":false},{"text":"Sesame seeds","allergen":true}]},"type":"http","method":"POST","bodyType":"json"},"output":{"type":"json","example":{"fonts":{"bold":"LiberationSans-Bold.ttf","family":"liberation-sans","regular":"LiberationSans-Regular.ttf"},"checks":[{"code":"RULESET_SUPPORTED","detail":"\"eu-fic\" is a supported ruleset","status":"passed"},{"code":"MANDATORY_BLOCKS","detail":"Every mandatory particular for \"eu-fic\" is present: product name, net quantity, business name/address, date line","status":"passed"},{"code":"ALLERGEN_EMPHASIS","detail":"Every allergen keyword match in the ingredient list is marked allergen: true","status":"passed"},{"code":"NUTRITION_ORDER","detail":"Nutrition rendered in the eu-fic declaration order: energy, fat, saturates, carbohydrate, sugars, fibre, protein, salt","status":"passed"},{"code":"LOGO_VALID","detail":"No logo was supplied","status":"not_checked"},{"code":"TEXT_FITS","detail":"All mandatory text fits within the safe area at or above the legal minimum text size, with no line wider than its column","status":"passed"},{"code":"MIN_X_HEIGHT","detail":"Every mandatory text box meets or exceeds its 0.9 mm x-height floor","status":"passed"},{"code":"SAFE_ZONE","detail":"Every drawn element, including ink extents and the barcode column, stays within the 2 mm safe zone","status":"passed"},{"code":"NUTRITION_FORMAT","detail":"Nutrition declared in tabular format with the values aligned (FIC Art. 34(2))","status":"passed"},{"code":"NET_QUANTITY_PLACEMENT","detail":"Only enforced under us-fda (21 CFR 101.105(f))","status":"not_checked"},{"code":"BARCODE_VALID","detail":"Check digit valid for \"5901234123457\"","status":"passed"},{"code":"BARCODE_MAGNIFICATION","detail":"Magnification 0.88x","status":"passed"},{"code":"BARCODE_QUIET_ZONE","detail":"Quiet zones drawn: 3.18 mm left, 2.02 mm right","status":"passed"},{"code":"QR_MODULE_SIZE","detail":"Only applies to 2D symbologies","status":"not_checked"},{"code":"CONTRAST","detail":"Contrast ratio 7.73:1 meets the 4.5:1 target","status":"passed"},{"code":"GLYPH_COVERAGE","detail":"Every character is covered by liberation-sans","status":"passed"},{"code":"FONTS_EMBEDDED","detail":"2 embedded TrueType font program(s) found (regular + bold)","status":"passed"},{"code":"PDF_BOXES","detail":"TrimBox and BleedBox are present in the generated PDF","status":"passed"}],"format":{"safeMm":2,"areaCm2":60,"bleedMm":2,"widthMm":100,"heightMm":60,"smallPack":true,"cornerRadiusMm":3},"layout":[{"xMm":4,"yMm":4,"bold":true,"block":"header.brand","lines":1,"widthMm":96,"heightMm":2.955891927083333,"xHeightMm":1.3978474934895833,"fontSizePt":7.5},{"xMm":4,"yMm":7.255891927083333,"bold":true,"block":"header.name","lines":1,"widthMm":96,"heightMm":4.926486545138888,"xHeightMm":2.329745822482639,"fontSizePt":12.5},{"xMm":4,"yMm":12.482378472222223,"bold":false,"block":"header.description","lines":1,"widthMm":96,"heightMm":2.561773003472222,"xHeightMm":1.211467827690972,"fontSizePt":6.5},{"xMm":4,"yMm":16.344151475694446,"bold":false,"block":"body.ingredients","lines":2,"widthMm":59.56959149810366,"heightMm":4.969481336805556,"xHeightMm":1.211467827690972,"fontSizePt":6.5},{"xMm":4,"yMm":21.613632812500004,"bold":false,"block":"body.nutrition","lines":9,"widthMm":59.56959149810366,"heightMm":21.82343967013889,"xHeightMm":1.211467827690972,"fontSizePt":6.5},{"xMm":4,"yMm":21.613632812500004,"bold":false,"block":"body.nutrition.values","lines":9,"widthMm":59.56959149810366,"heightMm":21.82343967013889,"xHeightMm":1.211467827690972,"fontSizePt":6.5},{"xMm":4,"yMm":44.737072482638894,"bold":true,"block":"footer.netQuantity","lines":1,"widthMm":59.56959149810366,"heightMm":2.167654079861111,"xHeightMm":1.025088161892361,"fontSizePt":5.5},{"xMm":4,"yMm":47.2047265625,"bold":false,"block":"footer.storage","lines":1,"widthMm":59.56959149810366,"heightMm":2.167654079861111,"xHeightMm":1.025088161892361,"fontSizePt":5.5},{"xMm":4,"yMm":49.672380642361105,"bold":false,"block":"footer.origin","lines":1,"widthMm":59.56959149810366,"heightMm":2.167654079861111,"xHeightMm":1.025088161892361,"fontSizePt":5.5},{"xMm":4,"yMm":52.14003472222221,"bold":false,"block":"footer.business","lines":2,"widthMm":59.56959149810366,"heightMm":4.204945746527777,"xHeightMm":1.025088161892361,"fontSizePt":5.5},{"xMm":4,"yMm":56.644980468749985,"bold":false,"block":"warnings.0","lines":1,"widthMm":59.56959149810366,"heightMm":2.167654079861111,"xHeightMm":1.025088161892361,"fontSizePt":5.5}],"status":"passed","barcode":{"data":"5901234123457","widthMm":32.64,"heightMm":22.400000000000002,"moduleMm":0.28884955752212393,"symbology":"ean13","truncated":true,"magnification":0.8753016894609815,"checkDigitValid":true,"quietZoneLeftMm":3.1773451327433633,"quietZoneRightMm":2.0219469026548675},"ruleset":"eu-fic","timings":{"totalMs":324.87831199999994,"layoutMs":22.255515999999943,"renderMs":289.43764899999996},"contrast":{"textOnBackground":21,"accentOnBackground":7.73487762982462},"warnings":["Barcode height was truncated to 22.40 mm to fit the available space."],"allergens":{"marked":["Wheat flour","Sesame seeds"],"detectedUnmarked":[]},"artifacts":[{"href":"https://label.api.williamrobinson.dev/v1/label/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/label.pdf","name":"label.pdf","sha256":"20361c4fe6d39dfdc1c9dc7af8b44ef2022c178a6934170fda56863dbc642d45","mediaType":"application/pdf","sizeBytes":23309},{"href":"https://label.api.williamrobinson.dev/v1/label/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/label.svg","name":"label.svg","sha256":"b664f2085d9bbb0da3438681f726fd2e168cf9bc29fb8e4d5848890fdfdc5eaa","mediaType":"image/svg+xml","sizeBytes":5472},{"href":"https://label.api.williamrobinson.dev/v1/label/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/proof.png","name":"proof.png","sha256":"18debfc496d9ea19cb5b0455faf7524c88884b28d161f4b33396640c1ba17e0b","mediaType":"image/png","sizeBytes":154380},{"href":"https://label.api.williamrobinson.dev/v1/label/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/dieline.svg","name":"dieline.svg","sha256":"d36b7424a763ec866f7f71eabbf6205e0949794ba8bc6a14fb3bc1e15a7ef44c","mediaType":"image/svg+xml","sizeBytes":609},{"href":"https://label.api.williamrobinson.dev/v1/label/artifacts/0123456789abcdef0123456789abcdef0123456789abcdef/report.json","name":"report.json","sha256":"7c1f3db881e8538063b3925a7c5066db13f26aa0c77a06dfff5c1eaf421d7ebc","mediaType":"application/json","sizeBytes":8226}],"expiresAt":"2026-09-13T17:27:50.368Z","limitations":["This is an automated heuristic compliance check, not a legal review; consult qualified counsel before printing regulated packaging.","Allergen detection is a fixed keyword match against ingredient text, not a food-science parser; it can both miss and over-match unusual phrasing.","x-height is measured from the embedded font's own OS/2.xHeight metric, which can differ from a caliper measurement of printed type.","eu-fic's \"largest surface\" area test and us-fda's principal-display-panel area test both use the label's own trim area as a proxy; a real pack's largest surface may differ.","CMYK colours are converted to sRGB with a naive (1-c)(1-k) formula for the SVG/PNG preview, with no ICC profile; the PDF's own CMYK fills are exact and unaffected.","The generated PDF is not PDF/X-1a certified: it carries no OutputIntent or ICC profile.","Layout uses fixed header/body/footer/barcode-zone templates; no freeform positioning.","Only Latin-script text covered by the Liberation Sans/Serif glyph sets is supported; unsupported characters are reported by GLYPH_COVERAGE.","us-fda's Nutrition Facts graphic format (21 CFR 101.9(d)) is not verified, only the declared nutrient order.","Allergens are emphasised by capitalisation (FIC Art. 21(1)(b) / FALCPA), not bold weight; mixed-weight runs inside one line are not supported."],"minimumXHeightMm":0.9}}},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["format","ruleset","product"],"properties":{"style":{"type":"object","properties":{"text":{"oneOf":[{"type":"object","required":["rgb"],"properties":{"rgb":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"additionalProperties":false},{"type":"object","required":["cmyk"],"properties":{"cmyk":{"type":"array","items":{"type":"number","maximum":100,"minimum":0},"maxItems":4,"minItems":4}},"additionalProperties":false}],"default":{"rgb":"#000000"}},"accent":{"oneOf":[{"type":"object","required":["rgb"],"properties":{"rgb":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"additionalProperties":false},{"type":"object","required":["cmyk"],"properties":{"cmyk":{"type":"array","items":{"type":"number","maximum":100,"minimum":0},"maxItems":4,"minItems":4}},"additionalProperties":false}],"default":{"rgb":"#000000"}},"background":{"oneOf":[{"type":"object","required":["rgb"],"properties":{"rgb":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"additionalProperties":false},{"type":"object","required":["cmyk"],"properties":{"cmyk":{"type":"array","items":{"type":"number","maximum":100,"minimum":0},"maxItems":4,"minItems":4}},"additionalProperties":false}],"default":{"rgb":"#ffffff"}},"fontFamily":{"enum":["liberation-sans","liberation-serif"],"type":"string","default":"liberation-sans"},"logoHeightMm":{"type":"number","default":10,"maximum":50,"minimum":3},"logoPngBase64":{"type":"string","description":"PNG, base64, at most 256 KiB decoded, at most 2000 px per side; checked for a valid PNG signature and re-encoded before embedding.","contentEncoding":"base64"}},"additionalProperties":false},"format":{"type":"object","required":["widthMm","heightMm"],"properties":{"safeMm":{"type":"number","default":2,"maximum":10,"minimum":0,"description":"Inside the trim; mandatory text never enters it."},"bleedMm":{"type":"number","default":2,"maximum":5,"minimum":0},"widthMm":{"type":"number","maximum":400,"minimum":20,"description":"Trim width, millimetres."},"heightMm":{"type":"number","maximum":400,"minimum":20,"description":"Trim height, millimetres."},"cornerRadiusMm":{"type":"number","default":0,"minimum":0,"description":"Must not exceed min(widthMm, heightMm) / 2; validated against the format's own dimensions."}},"additionalProperties":false},"barcode":{"type":"object","required":["symbology","data"],"properties":{"data":{"type":"string","maxLength":512,"minLength":1,"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."},"widthMm":{"type":"number","maximum":300,"minimum":5,"description":"Requested symbol width incl. quiet zones; omitted = GS1 nominal / 20 mm for 2D."},"symbology":{"enum":["ean13","upca","qrcode","datamatrix"],"type":"string"},"humanReadable":{"type":"boolean","default":true,"description":"Draw the human-readable digits (1D only)."}},"additionalProperties":false},"product":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1},"brand":{"type":"string","maxLength":120,"minLength":1},"origin":{"type":"string","maxLength":80,"minLength":1},"storage":{"type":"string","maxLength":200,"minLength":1},"business":{"type":"object","required":["name","address"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1},"address":{"type":"string","maxLength":300,"minLength":1}},"additionalProperties":false},"dateLine":{"type":"string","maxLength":80,"minLength":1,"description":"Rendered verbatim, e.g. \"Best before: see base\"."},"description":{"type":"string","maxLength":400,"minLength":1},"netQuantity":{"type":"object","required":["value","unit"],"properties":{"unit":{"enum":["g","kg","ml","l","oz","fl oz","lb","pcs"],"type":"string"},"value":{"type":"number","maximum":100000,"exclusiveMinimum":0}},"additionalProperties":false}},"additionalProperties":false},"ruleset":{"enum":["eu-fic","us-fda","generic"],"type":"string","description":"eu-fic = EU Reg. 1169/2011 mandatory-particulars/x-height/allergen-emphasis/nutrition-order checks; us-fda = 21 CFR 101 PDP/type-size/FALCPA \"Contains:\"/Nutrition-Facts-order checks; generic = advisory x-height only, no mandatory-particulars checks."},"warnings":{"type":"array","items":{"type":"string","maxLength":200,"minLength":1},"default":[],"maxItems":20},"nutrition":{"type":"object","required":["basis"],"properties":{"fatG":{"type":"number","maximum":100000,"minimum":0},"basis":{"enum":["100g","100ml","serving"],"type":"string"},"saltG":{"type":"number","maximum":100000,"minimum":0},"fibreG":{"type":"number","maximum":100000,"minimum":0},"sugarsG":{"type":"number","maximum":100000,"minimum":0},"energyKj":{"type":"number","maximum":100000,"minimum":0},"proteinG":{"type":"number","maximum":100000,"minimum":0},"sodiumMg":{"type":"number","maximum":100000,"minimum":0},"transFatG":{"type":"number","maximum":100000,"minimum":0},"energyKcal":{"type":"number","maximum":100000,"minimum":0},"saturatesG":{"type":"number","maximum":100000,"minimum":0},"servingSize":{"type":"string","maxLength":40,"minLength":1},"addedSugarsG":{"type":"number","maximum":100000,"minimum":0},"carbohydrateG":{"type":"number","maximum":100000,"minimum":0},"cholesterolMg":{"type":"number","maximum":100000,"minimum":0}},"additionalProperties":false},"ingredients":{"type":"array","items":{"type":"object","required":["text","allergen"],"properties":{"text":{"type":"string","maxLength":120,"minLength":1},"allergen":{"type":"boolean","description":"Emphasised in the ingredient list and fed into the allergen-statement/scan checks."}},"additionalProperties":false},"maxItems":200}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","$defs":{"check":{"type":"object","required":["code","status","detail"],"properties":{"code":{"type":"string"},"detail":{"type":"string","maxLength":4096},"status":{"enum":["passed","failed","not_checked"],"type":"string"}},"additionalProperties":false},"textBox":{"type":"object","required":["block","xMm","yMm","widthMm","heightMm","fontSizePt","xHeightMm","lines","bold"],"properties":{"xMm":{"type":"number"},"yMm":{"type":"number"},"bold":{"type":"boolean"},"block":{"type":"string"},"lines":{"type":"integer","minimum":0},"widthMm":{"type":"number","minimum":0},"heightMm":{"type":"number","minimum":0},"xHeightMm":{"type":"number","minimum":0},"fontSizePt":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false}},"$schema":"https://json-schema.org/draft/2020-12/schema","required":["status","ruleset","format","minimumXHeightMm","fonts","layout","barcode","allergens","contrast","checks","warnings","limitations","timings","expiresAt","artifacts"],"properties":{"fonts":{"type":"object","required":["family","regular","bold"],"properties":{"bold":{"type":"string"},"family":{"enum":["liberation-sans","liberation-serif"],"type":"string"},"regular":{"type":"string"}},"additionalProperties":false},"checks":{"type":"array","items":{"$ref":"#/properties/output/properties/example/$defs/check"}},"format":{"type":"object","required":["widthMm","heightMm","bleedMm","safeMm","cornerRadiusMm","areaCm2","smallPack"],"properties":{"safeMm":{"type":"number"},"areaCm2":{"type":"number","minimum":0},"bleedMm":{"type":"number"},"widthMm":{"type":"number"},"heightMm":{"type":"number"},"smallPack":{"type":"boolean","description":"Trim area below the ruleset's small-pack threshold (EU FIC Art. 13(3): 80 cm²)."},"cornerRadiusMm":{"type":"number"}},"additionalProperties":false},"layout":{"type":"array","items":{"$ref":"#/properties/output/properties/example/$defs/textBox"}},"status":{"enum":["passed","rejected"],"type":"string"},"barcode":{"type":["object","null"],"required":["symbology","data","checkDigitValid","moduleMm","magnification","widthMm","heightMm","quietZoneLeftMm","quietZoneRightMm","truncated"],"properties":{"data":{"type":"string"},"widthMm":{"type":"number","minimum":0},"heightMm":{"type":"number","minimum":0},"moduleMm":{"type":"number","minimum":0},"symbology":{"enum":["ean13","upca","qrcode","datamatrix"],"type":"string"},"truncated":{"type":"boolean"},"magnification":{"type":["number","null"]},"checkDigitValid":{"type":["boolean","null"]},"quietZoneLeftMm":{"type":"number","minimum":0},"quietZoneRightMm":{"type":"number","minimum":0}},"additionalProperties":false},"ruleset":{"enum":["eu-fic","us-fda","generic"],"type":"string"},"timings":{"type":"object","required":["layoutMs","renderMs","totalMs"],"properties":{"totalMs":{"type":"number","minimum":0},"layoutMs":{"type":"number","minimum":0},"renderMs":{"type":"number","minimum":0}},"additionalProperties":false},"contrast":{"type":"object","required":["textOnBackground","accentOnBackground"],"properties":{"textOnBackground":{"type":"number","minimum":0},"accentOnBackground":{"type":"number","minimum":0}},"additionalProperties":false},"warnings":{"type":"array","items":{"type":"string","maxLength":4096}},"allergens":{"type":"object","required":["marked","detectedUnmarked"],"properties":{"marked":{"type":"array","items":{"type":"string"}},"detectedUnmarked":{"type":"array","items":{"type":"object","required":["ingredient","term"],"properties":{"term":{"type":"string"},"ingredient":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"artifacts":{"type":"array","items":{"type":"object","required":["name","mediaType","sizeBytes","sha256","href"],"properties":{"href":{"type":"string","format":"uri"},"name":{"enum":["label.pdf","label.svg","proof.png","dieline.svg","report.json"],"type":"string"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mediaType":{"type":"string","maxLength":128,"minLength":1},"sizeBytes":{"type":"integer","minimum":0}},"additionalProperties":false},"maxItems":5},"expiresAt":{"type":"string","format":"date-time"},"limitations":{"type":"array","items":{"type":"string","maxLength":4096}},"minimumXHeightMm":{"type":"number","minimum":0}},"additionalProperties":false}}}}}},"builder-code":{"info":{"s":["cdp_sdk_server"]},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"a":{"type":"string","pattern":"^[a-z0-9_]{1,32}$","description":"App builder code"},"s":{"type":"array","items":{"type":"string","pattern":"^[a-z0-9_]{1,32}$"},"maxItems":11,"description":"Service builder codes"},"w":{"type":"string","pattern":"^[a-z0-9_]{1,32}$","description":"Wallet builder code"}},"additionalProperties":false}},"payment-identifier":{"info":{"required":true},"schema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["required"],"properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9_-]+$","maxLength":128,"minLength":16},"required":{"type":"boolean"}}}},"eip2612GasSponsoring":{},"erc20ApprovalGasSponsoring":{}},"description":"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.","lastUpdated":"2026-09-11T20:08:19.463Z","serviceName":"Product-Label Artwork Compiler","x402Version":2}]}}