Render up to 10 code definitions as Base64-encoded SVG images in one JSON response.
Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.
Render up to 10 codes in one request. The response has the same codes and errors
structure as batch generation.
Each successful code also contains image, the SVG document encoded as Base64.
The same modes, optional parameters and QR correction levels as
single rendering apply.
QR correction defaults to L. This endpoint requires write:codes.
Set compression on individual items to EPC_BASE64 or EPC_HEX, or omit it / send null
for an uncompressed URI. Compressed and uncompressed items can share a batch.
The single-rendering restrictions apply:
Digital Link mode, digitalLinkStem, primary key 01, serial number AI 21, and EPC-supported additional AIs.
Each success contains the compressed URI in barcodeText, the unchanged GS1 data in hri,
and the rendered SVG encoded as Base64 in image. An invalid compression produces an item error
Validation.Invalid.compression at path compression; the batch remains 200 OK.
Successful entries contain reference, barcodeText, hri and image.
Decode the Base64 value in image to UTF-8 SVG bytes and save them as an .svg file.Invalid items appear in errors with reference and an errors list containing
code, path and args. They do not prevent other items from rendering.
The response remains 200 OK, including when all items fail.Your reference is echoed unchanged. If omitted or null, the original zero-based position
is returned as a string. Empty references are preserved.More than 10 items returns 422 with Validation.TooMany.codes before any rendering starts.
The identifying application identifier. With a digitalLinkStem it must be a GS1 Digital Link primary key in the GS1 Barcode Syntax Dictionary; without one, 03 is additionally accepted, the identifier for made-to-order trade items.
GTIN (01) accepts 8, 12, 13 or 14 digits, verifies the mod-10 check digit and normalises the value to 14 digits, so the value you get back may be longer than the one you sent.
GS1 application identifier. Browse the official GS1 Application Identifiers directory for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.
Further application identifiers. Pass [] for none.
Each key must exist in the GS1 Barcode Syntax Dictionary and its value must match the format that dictionary declares. An AI may not repeat the primary key, keys may not repeat each other, and GS1 "requires" and "excludes" relations between AIs are enforced.
With a digitalLinkStem every AI must be either a path qualifier of the chosen primary key, taken from a single consistent qualifier sequence, or a data attribute that GS1 Digital Link URI Syntax allows in the query string. Qualifiers keep the order GS1 defines, not the order you send.
Temperature AIs (4330 to 4333) are normalised for you: the magnitude is padded to six digits and a negative value keeps its trailing minus.
When compression is selected, the EPC path carries these AIs instead of separate path and query fields.
GS1 application identifier. Browse the official GS1 Application Identifiers directory for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.
Optional custom query parameters appended to a GS1 Digital Link URI. Omit, send null or pass [] for none.
Only with a digitalLinkStem; a non-empty list without one is rejected. Keys must not be linkType or context, must contain at least one non-digit, must be unique, and both keys and values are limited to unreserved ASCII and URI punctuation.
The origin a GS1 Digital Link path is appended to. Supplying it is what makes this a GS1 Digital Link: send a stem and you get a URI, leave it out and you get a GS1 element string. Must be http or https with a host, and carry no userinfo, query or fragment. A single trailing slash is stripped; empty path segments are rejected.
The GS1 link type the URI resolves to. Only with a digitalLinkStem. A gs1: value must be one the generator offers from the GS1 Web Vocabulary page types; gs1:defaultPage, gs1:defaultPageMulti and gs1:handledBy are not selectable. Any other value must be an absolute http or https URI.
Optional EPC compression of a GS1 Digital Link URI. EPC_BASE64 encodes the EPC binary in URL-safe Base64 (an ex path); EPC_HEX uses hexadecimal (an eh path). Omit or send null for an uncompressed URI.
Requires primary key 01 (GTIN), AI 21 (serial number), and digitalLinkStem. AIs 03, 717, 8014 and 8040–8043 cannot be stored in EPC binary, so a code that contains any of them cannot be compressed. The EPC path carries the AIs; extensionParameters, linkType, and context remain query parameters. Human-readable interpretation (hri) is unchanged.
An unknown or inapplicable value produces Validation.Invalid.compression: HTTP 422 for a single code, or a per-item error in the batch HTTP 200 response.
Only available for QR_GS1_DIGITAL_LINK_URI and DATAMATRIX_GS1_DIGITAL_LINK_URI; not for GS1 element-string modes.
Optional correlation identifier, echoed unchanged on success or failure. When omitted or null, the API returns the zero-based input position as a string, e.g. 0 becomes "0". Empty strings are preserved. Avoid collisions with generated references. This is not an idempotency key.
Example:
"product-label"
Response
Successful codes and per-item errors. Inspect errors even when the HTTP status is 200.
The payload to encode. With a digitalLinkStem the GS1 Digital Link URI; without one, the GS1 element string, where parentheses inside a value are escaped as ^040 and ^041 so that a renderer places the FNC1 separators correctly. With compression, this is the URI with an EPC ex or eh path.
The field at fault, so ais.2 is the third entry of ais.
Example:
"primaryKey"
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Thing Identity","colors":{"primary":"#18181B","light":"#FAFAFA","dark":"#18181B"},"logo":{"light":"https://mintcdn.com/thing-identity/kRu3PmIiw7bjxaKS/logo/light.svg?fit=max\u0026auto=format\u0026n=kRu3PmIiw7bjxaKS\u0026q=85\u0026s=5b0ca7ae1844542e1d6472bfd08fcb66","dark":"https://mintcdn.com/thing-identity/kRu3PmIiw7bjxaKS/logo/dark.svg?fit=max\u0026auto=format\u0026n=kRu3PmIiw7bjxaKS\u0026q=85\u0026s=12ef220c8158b022a6a3ee4cfb188ecf","href":"https://thingidentity.com"},"favicon":"https://mintcdn.com/thing-identity/kRu3PmIiw7bjxaKS/favicon.svg?fit=max\u0026auto=format\u0026n=kRu3PmIiw7bjxaKS\u0026q=85\u0026s=90d75e0448360010512d1be2344f0683","api":{"params":{"expanded":"all"},"examples":{"languages":["curl","javascript","python"]}},"appearance":{"default":"system"},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://thingidentity.com/dashboard"}},"footer":{"socials":{"github":"https://github.com/thingidentity","linkedin":"https://linkedin.com/company/thingidentity"}},"styling":{"eyebrows":"breadcrumbs","latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://thingidentity.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"thing-identity","hasAudioNarration":false,"actualSubdomain":"thing-identity","customDomains":["docs.thingidentity.com"],"gitSource":{"type":"github","owner":"thingidentity","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aba87ec9d1721df0ac6e555","collectionId":"81b7d3d8-ea66-42f1-9692-54ff1ad3ad4b","liveDeploymentHistoryId":"6aba87ec9d1721df0ac6e555","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"}},"buildId":"6aba87ec9d1721df0ac6e555","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":12},{"language":"default","tag":"2D Barcodes","count":4},{"language":"default","tag":"GS1 Resolver","count":3},{"language":"default","tag":"API Documentation","count":2},{"language":"default","tag":"Authentication","count":1},{"language":"default","tag":"Guides","count":1},{"language":"default","tag":"Get Started","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--ti-radius:0.375rem}@media (min-width:1024px){#navbar div:has(>#search-bar-entry){position:absolute;left:50%;width:min(34rem,40vw);transform:translateX(-50%)}}#search-bar-entry,#topbar-cta-button>a{border-radius:var(--ti-radius)}#navbar .nav-logo{height:1.25rem}"}],"page":{"pagePath":"api-reference/endpoints/render-codes","slug":"/api-reference/endpoints/render-codes","pageMetadata":{"title":"Batch Render 2D barcodes","openapi":"openapi.json POST /codes/render/batch","description":"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response.\n\nSet `compression` on each definition to `EPC_BASE64` or `EPC_HEX` for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.","href":"/api-reference/endpoints/render-codes"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Set \", _jsx(_components.code, {\n children: \"compression\"\n }), \" on each definition to \", _jsx(_components.code, {\n children: \"EPC_BASE64\"\n }), \" or \", _jsx(_components.code, {\n children: \"EPC_HEX\"\n }), \" for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Render up to `,_jsx(_components.strong,{children:`10 codes`}),` in one request. The response has the same `,_jsx(_components.code,{children:`codes`}),` and `,_jsx(_components.code,{children:`errors`}),`\nstructure as `,_jsx(_components.a,{href:`/api-reference/endpoints/generate-codes`,children:`batch generation`}),`.\nEach successful code also contains `,_jsx(_components.code,{children:`image`}),`, the SVG document encoded as Base64.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"codes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"product-label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"QR_GS1_DIGITAL_LINK_URI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"digitalLinkStem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://gtin.at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"primaryKey\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"09521234543213\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ais\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"10\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LOT42\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The same modes, optional parameters and QR correction levels as\n`,_jsx(_components.a,{href:`/api-reference/endpoints/render-code`,children:`single rendering`}),` apply.\nQR correction defaults to `,_jsx(_components.code,{children:`L`}),`. This endpoint requires `,_jsx(_components.code,{children:`write:codes`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`compression`,children:`Compression`}),`\n`,_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`compression`}),` on individual items to `,_jsx(_components.code,{children:`EPC_BASE64`}),` or `,_jsx(_components.code,{children:`EPC_HEX`}),`, or omit it / send `,_jsx(_components.code,{children:`null`}),`\nfor an uncompressed URI. Compressed and uncompressed items can share a batch.\nThe `,_jsx(_components.a,{href:`/api-reference/endpoints/render-code#compression`,children:`single-rendering restrictions`}),` apply:\nDigital Link mode, `,_jsx(_components.code,{children:`digitalLinkStem`}),`, primary key `,_jsx(_components.code,{children:`01`}),`, serial number AI `,_jsx(_components.code,{children:`21`}),`, and EPC-supported additional AIs.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`20`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`20`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"codes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"compressed-qr\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"QR_GS1_DIGITAL_LINK_URI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"digitalLinkStem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://thingidentity.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"primaryKey\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"09528765123457\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ais\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"21\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"123456789123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"compression\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"EPC_BASE64\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"compressed-data-matrix\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DATAMATRIX_GS1_DIGITAL_LINK_URI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"digitalLinkStem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://thingidentity.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"primaryKey\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"09528765123457\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ais\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"21\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"123456789123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"compression\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"EPC_HEX\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Each success contains the compressed URI in `,_jsx(_components.code,{children:`barcodeText`}),`, the unchanged GS1 data in `,_jsx(_components.code,{children:`hri`}),`,\nand the rendered SVG encoded as Base64 in `,_jsx(_components.code,{children:`image`}),`. An invalid compression produces an item error\n`,_jsx(_components.code,{children:`Validation.Invalid.compression`}),` at path `,_jsx(_components.code,{children:`compression`}),`; the batch remains `,_jsx(_components.code,{children:`200 OK`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`results`,children:`Results`}),`\n`,_jsxs(_components.p,{children:[`Successful entries contain `,_jsx(_components.code,{children:`reference`}),`, `,_jsx(_components.code,{children:`barcodeText`}),`, `,_jsx(_components.code,{children:`hri`}),` and `,_jsx(_components.code,{children:`image`}),`.\nDecode the Base64 value in `,_jsx(_components.code,{children:`image`}),` to UTF-8 SVG bytes and save them as an `,_jsx(_components.code,{children:`.svg`}),` file.`]}),`\n`,_jsxs(_components.p,{children:[`Invalid items appear in `,_jsx(_components.code,{children:`errors`}),` with `,_jsx(_components.code,{children:`reference`}),` and an `,_jsx(_components.code,{children:`errors`}),` list containing\n`,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`path`}),` and `,_jsx(_components.code,{children:`args`}),`. They do not prevent other items from rendering.\nThe response remains `,_jsx(_components.code,{children:`200 OK`}),`, including when all items fail.`]}),`\n`,_jsxs(_components.p,{children:[`Your `,_jsx(_components.code,{children:`reference`}),` is echoed unchanged. If omitted or null, the original zero-based position\nis returned as a string. Empty references are preserved.`]}),`\n`,_jsxs(_components.p,{children:[`More than 10 items returns `,_jsx(_components.code,{children:`422`}),` with `,_jsx(_components.code,{children:`Validation.TooMany.codes`}),` before any rendering starts.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Batch Render 2D barcodes","openapi":"openapi.json POST /codes/render/batch","description":"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response.\n\nSet `compression` on each definition to `EPC_BASE64` or `EPC_HEX` for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.","href":"/api-reference/endpoints/render-codes"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Compression","slug":"compression","depth":2,"children":[]},{"title":"Results","slug":"results","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Codes"],"summary":"Batch Render 2D barcodes","operationId":"renderCodes","description":"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response.\n\nSet `compression` on each definition to `EPC_BASE64` or `EPC_HEX` for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.","requestBody":"219ac634-8c9d-4424-aa1b-1675391398ac","responses":{"200":"f4af5deb-218c-4d51-8052-e073266778bd"},"method":"post","type":"path","servers":["751c3ee5-c165-428a-a409-06e1fbd3b211"],"security":["5e1efa94-7214-484a-9905-e1c0370b3c91"],"path":"/codes/render/batch","baseUrlOptions":["https://api.thingidentity.com"],"title":"Batch Render 2D barcodes","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/vnd.thingidentity.public.v1+json":{"schema":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","maxItems":10,"items":{"type":"object","required":["mode","primaryKey"],"example":{"mode":"QR_GS1_DIGITAL_LINK_URI","digitalLinkStem":"https://gtin.at","primaryKey":{"key":"01","value":"09521234543213"},"ais":[{"key":"10","value":"LOT42"}]},"properties":{"mode":{"type":"string","enum":["GS1_DATAMATRIX","DATAMATRIX_GS1_DIGITAL_LINK_URI","GS1_QR","QR_GS1_DIGITAL_LINK_URI"],"example":"QR_GS1_DIGITAL_LINK_URI","description":"Barcode type. Digital Link modes require digitalLinkStem.","isRequired":true,"uniqueKey":"codes.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"primaryKey":{"type":"object","description":"The identifying application identifier. With a `digitalLinkStem` it must be a GS1 Digital Link primary key in the GS1 Barcode Syntax Dictionary; without one, `03` is additionally accepted, the identifier for made-to-order trade items.\n\nGTIN (`01`) accepts 8, 12, 13 or 14 digits, verifies the mod-10 check digit and normalises the value to 14 digits, so the value you get back may be longer than the one you sent.","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey.key","typeLabel":"string"},"value":{"type":"string","examples":["09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey","typeLabel":"object"},"errorCorrectionLevel":{"oneOf":[{"type":"string","enum":["L","M","Q","H",null],"description":"QR only: L, M, Q or H. Omitted or null selects L for QR. For Data Matrix omit or send null.","uniqueKey":"codes.items.[INDEX].errorCorrectionLevel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["L","M","Q","H",null],"description":"QR only: L, M, Q or H. Omitted or null selects L for QR. For Data Matrix omit or send null.","uniqueKey":"codes.items.[INDEX].errorCorrectionLevel.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].errorCorrectionLevel","typeLabel":"enum\u003cstring> | null"},"ais":{"oneOf":[{"type":"array","description":"Further application identifiers. Pass `[]` for none.\n\nEach key must exist in the GS1 Barcode Syntax Dictionary and its value must match the format that dictionary declares. An AI may not repeat the primary key, keys may not repeat each other, and GS1 \"requires\" and \"excludes\" relations between AIs are enforced.\n\nWith a `digitalLinkStem` every AI must be either a path qualifier of the chosen primary key, taken from a single consistent qualifier sequence, or a data attribute that GS1 Digital Link URI Syntax allows in the query string. Qualifiers keep the order GS1 defines, not the order you send.\n\nTemperature AIs (`4330` to `4333`) are normalised for you: the magnitude is padded to six digits and a negative value keeps its trailing minus.\n\nWhen compression is selected, the EPC path carries these AIs instead of separate path and query fields.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","examples":["09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"codes.items.[INDEX].ais.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Further application identifiers. Pass `[]` for none.\n\nEach key must exist in the GS1 Barcode Syntax Dictionary and its value must match the format that dictionary declares. An AI may not repeat the primary key, keys may not repeat each other, and GS1 \"requires\" and \"excludes\" relations between AIs are enforced.\n\nWith a `digitalLinkStem` every AI must be either a path qualifier of the chosen primary key, taken from a single consistent qualifier sequence, or a data attribute that GS1 Digital Link URI Syntax allows in the query string. Qualifiers keep the order GS1 defines, not the order you send.\n\nTemperature AIs (`4330` to `4333`) are normalised for you: the magnitude is padded to six digits and a negative value keeps its trailing minus.\n\nWhen compression is selected, the EPC path carries these AIs instead of separate path and query fields.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"]},"value":{"type":"string","examples":["09521234543213"]}}},"uniqueKey":"codes.items.[INDEX].ais.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].ais","typeLabel":"object[] | null"},"extensionParameters":{"oneOf":[{"type":"array","description":"Optional custom query parameters appended to a GS1 Digital Link URI. Omit, send null or pass `[]` for none.\n\nOnly with a `digitalLinkStem`; a non-empty list without one is rejected. Keys must not be `linkType` or `context`, must contain at least one non-digit, must be unique, and both keys and values are limited to unreserved ASCII and URI punctuation.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Query parameter name. Not `linkType` or `context`, and it must contain at least one non-digit.","examples":["batch"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","examples":["A42"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Optional custom query parameters appended to a GS1 Digital Link URI. Omit, send null or pass `[]` for none.\n\nOnly with a `digitalLinkStem`; a non-empty list without one is rejected. Keys must not be `linkType` or `context`, must contain at least one non-digit, must be unique, and both keys and values are limited to unreserved ASCII and URI punctuation.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Query parameter name. Not `linkType` or `context`, and it must contain at least one non-digit.","examples":["batch"]},"value":{"type":"string","examples":["A42"]}}},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].extensionParameters","typeLabel":"object[] | null"},"digitalLinkStem":{"oneOf":[{"type":"string","description":"The origin a GS1 Digital Link path is appended to. Supplying it is what makes this a GS1 Digital Link: send a stem and you get a URI, leave it out and you get a GS1 element string. Must be `http` or `https` with a host, and carry no userinfo, query or fragment. A single trailing slash is stripped; empty path segments are rejected.","examples":["https://gtin.at"],"uniqueKey":"codes.items.[INDEX].digitalLinkStem.oneOf.0","typeLabel":"string"},{"type":"null","description":"The origin a GS1 Digital Link path is appended to. Supplying it is what makes this a GS1 Digital Link: send a stem and you get a URI, leave it out and you get a GS1 element string. Must be `http` or `https` with a host, and carry no userinfo, query or fragment. A single trailing slash is stripped; empty path segments are rejected.","examples":["https://gtin.at"],"uniqueKey":"codes.items.[INDEX].digitalLinkStem.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].digitalLinkStem","typeLabel":"string | null"},"linkType":{"oneOf":[{"type":"string","description":"The GS1 link type the URI resolves to. Only with a `digitalLinkStem`. A `gs1:` value must be one the generator offers from the [GS1 Web Vocabulary](https://ref.gs1.org/voc/) page types; `gs1:defaultPage`, `gs1:defaultPageMulti` and `gs1:handledBy` are not selectable. Any other value must be an absolute `http` or `https` URI.","examples":["gs1:pip"],"uniqueKey":"codes.items.[INDEX].linkType.oneOf.0","typeLabel":"string"},{"type":"null","description":"The GS1 link type the URI resolves to. Only with a `digitalLinkStem`. A `gs1:` value must be one the generator offers from the [GS1 Web Vocabulary](https://ref.gs1.org/voc/) page types; `gs1:defaultPage`, `gs1:defaultPageMulti` and `gs1:handledBy` are not selectable. Any other value must be an absolute `http` or `https` URI.","examples":["gs1:pip"],"uniqueKey":"codes.items.[INDEX].linkType.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].linkType","typeLabel":"string | null"},"context":{"oneOf":[{"type":"string","description":"Value for the GS1 Digital Link `context` query parameter. Only with a `digitalLinkStem`, same character rules as extension parameter values.","examples":["dpp"],"uniqueKey":"codes.items.[INDEX].context.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value for the GS1 Digital Link `context` query parameter. Only with a `digitalLinkStem`, same character rules as extension parameter values.","examples":["dpp"],"uniqueKey":"codes.items.[INDEX].context.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].context","typeLabel":"string | null"},"compression":{"oneOf":[{"type":"string","enum":["EPC_BASE64","EPC_HEX",null],"description":"Optional EPC compression of a GS1 Digital Link URI. `EPC_BASE64` encodes the EPC binary in URL-safe Base64 (an `ex` path); `EPC_HEX` uses hexadecimal (an `eh` path). Omit or send null for an uncompressed URI.\n\nRequires primary key `01` (GTIN), AI `21` (serial number), and `digitalLinkStem`. AIs `03`, `717`, `8014` and `8040`–`8043` cannot be stored in EPC binary, so a code that contains any of them cannot be compressed. The EPC path carries the AIs; `extensionParameters`, `linkType`, and `context` remain query parameters. Human-readable interpretation (`hri`) is unchanged.\n\nAn unknown or inapplicable value produces `Validation.Invalid.compression`: HTTP 422 for a single code, or a per-item error in the batch HTTP 200 response.\n\nOnly available for `QR_GS1_DIGITAL_LINK_URI` and `DATAMATRIX_GS1_DIGITAL_LINK_URI`; not for GS1 element-string modes.","examples":["EPC_BASE64","EPC_HEX"],"uniqueKey":"codes.items.[INDEX].compression.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["EPC_BASE64","EPC_HEX",null],"description":"Optional EPC compression of a GS1 Digital Link URI. `EPC_BASE64` encodes the EPC binary in URL-safe Base64 (an `ex` path); `EPC_HEX` uses hexadecimal (an `eh` path). Omit or send null for an uncompressed URI.\n\nRequires primary key `01` (GTIN), AI `21` (serial number), and `digitalLinkStem`. AIs `03`, `717`, `8014` and `8040`–`8043` cannot be stored in EPC binary, so a code that contains any of them cannot be compressed. The EPC path carries the AIs; `extensionParameters`, `linkType`, and `context` remain query parameters. Human-readable interpretation (`hri`) is unchanged.\n\nAn unknown or inapplicable value produces `Validation.Invalid.compression`: HTTP 422 for a single code, or a per-item error in the batch HTTP 200 response.\n\nOnly available for `QR_GS1_DIGITAL_LINK_URI` and `DATAMATRIX_GS1_DIGITAL_LINK_URI`; not for GS1 element-string modes.","examples":["EPC_BASE64","EPC_HEX"],"uniqueKey":"codes.items.[INDEX].compression.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].compression","typeLabel":"enum\u003cstring> | null"},"reference":{"oneOf":[{"type":"string","description":"Optional correlation identifier, echoed unchanged on success or failure. When omitted or null, the API returns the zero-based input position as a string, e.g. 0 becomes \"0\". Empty strings are preserved. Avoid collisions with generated references. This is not an idempotency key.","examples":["product-label"],"uniqueKey":"codes.items.[INDEX].reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional correlation identifier, echoed unchanged on success or failure. When omitted or null, the API returns the zero-based input position as a string, e.g. 0 becomes \"0\". Empty strings are preserved. Avoid collisions with generated references. This is not an idempotency key.","examples":["product-label"],"uniqueKey":"codes.items.[INDEX].reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].reference","typeLabel":"string | null"}},"uniqueKey":"codes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"codes","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"uncompressed":{"title":"uncompressed","value":{"codes":[{"reference":"product-label","mode":"QR_GS1_DIGITAL_LINK_URI","digitalLinkStem":"https://gtin.at","primaryKey":{"key":"01","value":"09521234543213"},"ais":[{"key":"10","value":"LOT42"}]}]}},"EPC_BASE64":{"title":"EPC_BASE64","value":{"codes":[{"digitalLinkStem":"https://thingidentity.com","primaryKey":{"key":"01","value":"09528765123457"},"ais":[{"key":"21","value":"123456789123"}],"compression":"EPC_BASE64","mode":"QR_GS1_DIGITAL_LINK_URI","reference":"serialised-product"}]}},"EPC_HEX":{"title":"EPC_HEX","value":{"codes":[{"digitalLinkStem":"https://thingidentity.com","primaryKey":{"key":"01","value":"09528765123457"},"ais":[{"key":"21","value":"123456789123"}],"compression":"EPC_HEX","mode":"QR_GS1_DIGITAL_LINK_URI","reference":"serialised-product"}]}}},"exampleType":"examples"},"application/json":{"schema":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","maxItems":10,"items":{"type":"object","required":["mode","primaryKey"],"example":{"mode":"QR_GS1_DIGITAL_LINK_URI","digitalLinkStem":"https://gtin.at","primaryKey":{"key":"01","value":"09521234543213"},"ais":[{"key":"10","value":"LOT42"}]},"properties":{"mode":{"type":"string","enum":["GS1_DATAMATRIX","DATAMATRIX_GS1_DIGITAL_LINK_URI","GS1_QR","QR_GS1_DIGITAL_LINK_URI"],"example":"QR_GS1_DIGITAL_LINK_URI","description":"Barcode type. Digital Link modes require digitalLinkStem.","isRequired":true,"uniqueKey":"codes.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"primaryKey":{"type":"object","description":"The identifying application identifier. With a `digitalLinkStem` it must be a GS1 Digital Link primary key in the GS1 Barcode Syntax Dictionary; without one, `03` is additionally accepted, the identifier for made-to-order trade items.\n\nGTIN (`01`) accepts 8, 12, 13 or 14 digits, verifies the mod-10 check digit and normalises the value to 14 digits, so the value you get back may be longer than the one you sent.","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey.key","typeLabel":"string"},"value":{"type":"string","examples":["09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"codes.items.[INDEX].primaryKey","typeLabel":"object"},"errorCorrectionLevel":{"oneOf":[{"type":"string","enum":["L","M","Q","H",null],"description":"QR only: L, M, Q or H. Omitted or null selects L for QR. For Data Matrix omit or send null.","uniqueKey":"codes.items.[INDEX].errorCorrectionLevel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["L","M","Q","H",null],"description":"QR only: L, M, Q or H. Omitted or null selects L for QR. For Data Matrix omit or send null.","uniqueKey":"codes.items.[INDEX].errorCorrectionLevel.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].errorCorrectionLevel","typeLabel":"enum\u003cstring> | null"},"ais":{"oneOf":[{"type":"array","description":"Further application identifiers. Pass `[]` for none.\n\nEach key must exist in the GS1 Barcode Syntax Dictionary and its value must match the format that dictionary declares. An AI may not repeat the primary key, keys may not repeat each other, and GS1 \"requires\" and \"excludes\" relations between AIs are enforced.\n\nWith a `digitalLinkStem` every AI must be either a path qualifier of the chosen primary key, taken from a single consistent qualifier sequence, or a data attribute that GS1 Digital Link URI Syntax allows in the query string. Qualifiers keep the order GS1 defines, not the order you send.\n\nTemperature AIs (`4330` to `4333`) are normalised for you: the magnitude is padded to six digits and a negative value keeps its trailing minus.\n\nWhen compression is selected, the EPC path carries these AIs instead of separate path and query fields.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","examples":["09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"codes.items.[INDEX].ais.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"codes.items.[INDEX].ais.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Further application identifiers. Pass `[]` for none.\n\nEach key must exist in the GS1 Barcode Syntax Dictionary and its value must match the format that dictionary declares. An AI may not repeat the primary key, keys may not repeat each other, and GS1 \"requires\" and \"excludes\" relations between AIs are enforced.\n\nWith a `digitalLinkStem` every AI must be either a path qualifier of the chosen primary key, taken from a single consistent qualifier sequence, or a data attribute that GS1 Digital Link URI Syntax allows in the query string. Qualifiers keep the order GS1 defines, not the order you send.\n\nTemperature AIs (`4330` to `4333`) are normalised for you: the magnitude is padded to six digits and a negative value keeps its trailing minus.\n\nWhen compression is selected, the EPC path carries these AIs instead of separate path and query fields.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"GS1 application identifier. Browse the official [GS1 Application Identifiers directory](https://ref.gs1.org/ai/) for meanings, value formats, required associations and Digital Link usage. The API validates identifiers against its bundled GS1 Barcode Syntax Dictionary; not every AI is valid as a primary key or in every combination.","examples":["01"]},"value":{"type":"string","examples":["09521234543213"]}}},"uniqueKey":"codes.items.[INDEX].ais.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].ais","typeLabel":"object[] | null"},"extensionParameters":{"oneOf":[{"type":"array","description":"Optional custom query parameters appended to a GS1 Digital Link URI. Omit, send null or pass `[]` for none.\n\nOnly with a `digitalLinkStem`; a non-empty list without one is rejected. Keys must not be `linkType` or `context`, must contain at least one non-digit, must be unique, and both keys and values are limited to unreserved ASCII and URI punctuation.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Query parameter name. Not `linkType` or `context`, and it must contain at least one non-digit.","examples":["batch"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","examples":["A42"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX].value","typeLabel":"string"}},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0.items.[INDEX]","typeLabel":"object"},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"Optional custom query parameters appended to a GS1 Digital Link URI. Omit, send null or pass `[]` for none.\n\nOnly with a `digitalLinkStem`; a non-empty list without one is rejected. Keys must not be `linkType` or `context`, must contain at least one non-digit, must be unique, and both keys and values are limited to unreserved ASCII and URI punctuation.","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","description":"Query parameter name. Not `linkType` or `context`, and it must contain at least one non-digit.","examples":["batch"]},"value":{"type":"string","examples":["A42"]}}},"uniqueKey":"codes.items.[INDEX].extensionParameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].extensionParameters","typeLabel":"object[] | null"},"digitalLinkStem":{"oneOf":[{"type":"string","description":"The origin a GS1 Digital Link path is appended to. Supplying it is what makes this a GS1 Digital Link: send a stem and you get a URI, leave it out and you get a GS1 element string. Must be `http` or `https` with a host, and carry no userinfo, query or fragment. A single trailing slash is stripped; empty path segments are rejected.","examples":["https://gtin.at"],"uniqueKey":"codes.items.[INDEX].digitalLinkStem.oneOf.0","typeLabel":"string"},{"type":"null","description":"The origin a GS1 Digital Link path is appended to. Supplying it is what makes this a GS1 Digital Link: send a stem and you get a URI, leave it out and you get a GS1 element string. Must be `http` or `https` with a host, and carry no userinfo, query or fragment. A single trailing slash is stripped; empty path segments are rejected.","examples":["https://gtin.at"],"uniqueKey":"codes.items.[INDEX].digitalLinkStem.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].digitalLinkStem","typeLabel":"string | null"},"linkType":{"oneOf":[{"type":"string","description":"The GS1 link type the URI resolves to. Only with a `digitalLinkStem`. A `gs1:` value must be one the generator offers from the [GS1 Web Vocabulary](https://ref.gs1.org/voc/) page types; `gs1:defaultPage`, `gs1:defaultPageMulti` and `gs1:handledBy` are not selectable. Any other value must be an absolute `http` or `https` URI.","examples":["gs1:pip"],"uniqueKey":"codes.items.[INDEX].linkType.oneOf.0","typeLabel":"string"},{"type":"null","description":"The GS1 link type the URI resolves to. Only with a `digitalLinkStem`. A `gs1:` value must be one the generator offers from the [GS1 Web Vocabulary](https://ref.gs1.org/voc/) page types; `gs1:defaultPage`, `gs1:defaultPageMulti` and `gs1:handledBy` are not selectable. Any other value must be an absolute `http` or `https` URI.","examples":["gs1:pip"],"uniqueKey":"codes.items.[INDEX].linkType.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].linkType","typeLabel":"string | null"},"context":{"oneOf":[{"type":"string","description":"Value for the GS1 Digital Link `context` query parameter. Only with a `digitalLinkStem`, same character rules as extension parameter values.","examples":["dpp"],"uniqueKey":"codes.items.[INDEX].context.oneOf.0","typeLabel":"string"},{"type":"null","description":"Value for the GS1 Digital Link `context` query parameter. Only with a `digitalLinkStem`, same character rules as extension parameter values.","examples":["dpp"],"uniqueKey":"codes.items.[INDEX].context.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].context","typeLabel":"string | null"},"compression":{"oneOf":[{"type":"string","enum":["EPC_BASE64","EPC_HEX",null],"description":"Optional EPC compression of a GS1 Digital Link URI. `EPC_BASE64` encodes the EPC binary in URL-safe Base64 (an `ex` path); `EPC_HEX` uses hexadecimal (an `eh` path). Omit or send null for an uncompressed URI.\n\nRequires primary key `01` (GTIN), AI `21` (serial number), and `digitalLinkStem`. AIs `03`, `717`, `8014` and `8040`–`8043` cannot be stored in EPC binary, so a code that contains any of them cannot be compressed. The EPC path carries the AIs; `extensionParameters`, `linkType`, and `context` remain query parameters. Human-readable interpretation (`hri`) is unchanged.\n\nAn unknown or inapplicable value produces `Validation.Invalid.compression`: HTTP 422 for a single code, or a per-item error in the batch HTTP 200 response.\n\nOnly available for `QR_GS1_DIGITAL_LINK_URI` and `DATAMATRIX_GS1_DIGITAL_LINK_URI`; not for GS1 element-string modes.","examples":["EPC_BASE64","EPC_HEX"],"uniqueKey":"codes.items.[INDEX].compression.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["EPC_BASE64","EPC_HEX",null],"description":"Optional EPC compression of a GS1 Digital Link URI. `EPC_BASE64` encodes the EPC binary in URL-safe Base64 (an `ex` path); `EPC_HEX` uses hexadecimal (an `eh` path). Omit or send null for an uncompressed URI.\n\nRequires primary key `01` (GTIN), AI `21` (serial number), and `digitalLinkStem`. AIs `03`, `717`, `8014` and `8040`–`8043` cannot be stored in EPC binary, so a code that contains any of them cannot be compressed. The EPC path carries the AIs; `extensionParameters`, `linkType`, and `context` remain query parameters. Human-readable interpretation (`hri`) is unchanged.\n\nAn unknown or inapplicable value produces `Validation.Invalid.compression`: HTTP 422 for a single code, or a per-item error in the batch HTTP 200 response.\n\nOnly available for `QR_GS1_DIGITAL_LINK_URI` and `DATAMATRIX_GS1_DIGITAL_LINK_URI`; not for GS1 element-string modes.","examples":["EPC_BASE64","EPC_HEX"],"uniqueKey":"codes.items.[INDEX].compression.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].compression","typeLabel":"enum\u003cstring> | null"},"reference":{"oneOf":[{"type":"string","description":"Optional correlation identifier, echoed unchanged on success or failure. When omitted or null, the API returns the zero-based input position as a string, e.g. 0 becomes \"0\". Empty strings are preserved. Avoid collisions with generated references. This is not an idempotency key.","examples":["product-label"],"uniqueKey":"codes.items.[INDEX].reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional correlation identifier, echoed unchanged on success or failure. When omitted or null, the API returns the zero-based input position as a string, e.g. 0 becomes \"0\". Empty strings are preserved. Avoid collisions with generated references. This is not an idempotency key.","examples":["product-label"],"uniqueKey":"codes.items.[INDEX].reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"codes.items.[INDEX].reference","typeLabel":"string | null"}},"uniqueKey":"codes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"codes","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"uncompressed":{"title":"uncompressed","value":{"codes":[{"reference":"product-label","mode":"QR_GS1_DIGITAL_LINK_URI","digitalLinkStem":"https://gtin.at","primaryKey":{"key":"01","value":"09521234543213"},"ais":[{"key":"10","value":"LOT42"}]}]}},"EPC_BASE64":{"title":"EPC_BASE64","value":{"codes":[{"digitalLinkStem":"https://thingidentity.com","primaryKey":{"key":"01","value":"09528765123457"},"ais":[{"key":"21","value":"123456789123"}],"compression":"EPC_BASE64","mode":"QR_GS1_DIGITAL_LINK_URI","reference":"serialised-product"}]}},"EPC_HEX":{"title":"EPC_HEX","value":{"codes":[{"digitalLinkStem":"https://thingidentity.com","primaryKey":{"key":"01","value":"09528765123457"},"ais":[{"key":"21","value":"123456789123"}],"compression":"EPC_HEX","mode":"QR_GS1_DIGITAL_LINK_URI","reference":"serialised-product"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"f4af5deb-218c-4d51-8052-e073266778bd":{"description":"Successful codes and per-item errors. Inspect errors even when the HTTP status is 200.","content":{"application/vnd.thingidentity.public.v1+json":{"schema":{"type":"object","required":["codes","errors"],"properties":{"codes":{"type":"array","items":{"type":"object","required":["image","reference","barcodeText","hri"],"properties":{"reference":{"type":"string","description":"The supplied reference unchanged, or the zero-based input position as a string when omitted or null.","isRequired":true,"uniqueKey":"codes.items.[INDEX].reference","typeLabel":"string"},"barcodeText":{"type":"string","description":"The payload to encode. With a `digitalLinkStem` the GS1 Digital Link URI; without one, the GS1 element string, where parentheses inside a value are escaped as `^040` and `^041` so that a renderer places the FNC1 separators correctly. With compression, this is the URI with an EPC `ex` or `eh` path.","examples":["https://gtin.at/01/09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].barcodeText","typeLabel":"string"},"hri":{"type":"string","description":"Human readable interpretation, the `(AI)value` text printed under the symbol. Compression does not change this value.","examples":["(01)09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].hri","typeLabel":"string"},"image":{"type":"string","format":"byte","contentEncoding":"base64","contentMediaType":"image/svg+xml","description":"Base64-encoded SVG document (UTF-8).","isRequired":true,"uniqueKey":"codes.items.[INDEX].image","typeLabel":"file"}},"uniqueKey":"codes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"codes","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","required":["reference","errors"],"properties":{"reference":{"type":"string","description":"The supplied reference unchanged, or the zero-based input position as a string when omitted or null.","isRequired":true,"uniqueKey":"errors.items.[INDEX].reference","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","args"],"properties":{"code":{"type":"string","description":"`Validation.Invalid.\u003cfield>`.","examples":["Validation.Invalid.primaryKey"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].code","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].args","typeLabel":"string[]"},"path":{"oneOf":[{"type":"string","description":"The field at fault, so `ais.2` is the third entry of `ais`.","examples":["primaryKey"],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path.oneOf.0","typeLabel":"string"},{"type":"null","description":"The field at fault, so `ais.2` is the third entry of `ais`.","examples":["primaryKey"],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path","typeLabel":"string | null"}},"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors","typeLabel":"object[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"codes":[{"reference":"product-label","barcodeText":"https://gtin.at/01/09521234543213/10/LOT42","hri":"(01)09521234543213(10)LOT42","image":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48bWV0YWRhdGEgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj5UaGluZyBJZGVudGl0eTwvZGM6Y3JlYXRvcj48ZGM6c291cmNlPmh0dHBzOi8vdGhpbmdpZGVudGl0eS5jb208L2RjOnNvdXJjZT48L21ldGFkYXRhPjxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0xLDFoMXYxaC0xek0zLDFoMXYxaC0xek01LDFoMXYxaC0xek03LDFoMXYxaC0xek05LDFoMXYxaC0xek0xMSwxaDF2MWgtMXpNMTMsMWgxdjFoLTF6TTE1LDFoMXYxaC0xek0xLDJoMnYxaC0yek01LDJoNHYxaC00ek0xMCwyaDJ2MWgtMnpNMTUsMmgydjFoLTJ6TTEsM2gxdjJoLTF6TTUsM2gxdjFoLTF6TTcsM2gydjJoLTJ6TTEyLDNoMXYxaC0xek0zLDRoMnYxaC0yek0xMCw0aDF2MWgtMXpNMTIsNGgydjFoLTJ6TTE2LDRoMXYxaC0xek0xLDVoM3YxaC0zek01LDVoMnYxaC0yek05LDVoMXYxaC0xek0xMiw1aDR2MWgtNHpNMSw2aDF2MmgtMXpNMyw2aDF2MmgtMXpNNiw2aDJ2MWgtMnpNOSw2aDJ2MWgtMnpNMTIsNmg1djFoLTV6TTYsN2gzdjFoLTN6TTExLDdoMXYxaC0xek0xNCw3aDF2MWgtMXpNMSw4aDR2MWgtNHpNNyw4aDV2MWgtNXpNMTYsOGgxdjFoLTF6TTEsOWgxdjFoLTF6TTksOWgxdjFoLTF6TTExLDloMXYxaC0xek0xMyw5aDN2MWgtM3pNMSwxMGgydjFoLTJ6TTYsMTBoMnYxaC0yek0xMCwxMGgxdjJoLTF6TTEzLDEwaDR2MWgtNHpNMSwxMWgxdjFoLTF6TTQsMTFoMXYxaC0xek04LDExaDF2MWgtMXpNMTQsMTFoMXYxaC0xek0xLDEyaDV2MWgtNXpNNywxMmgxdjFoLTF6TTksMTJoMXYxaC0xek0xMSwxMmgydjFoLTJ6TTE1LDEyaDJ2MWgtMnpNMSwxM2gydjFoLTJ6TTUsMTNoM3YxaC0zek05LDEzaDJ2MWgtMnpNMTQsMTNoMXYxaC0xek0xLDE0aDF2MWgtMXpNNCwxNGgzdjFoLTN6TTEwLDE0aDV2MWgtNXpNMTYsMTRoMXYxaC0xek0xLDE1aDJ2MWgtMnpNOCwxNWgydjFoLTJ6TTEyLDE1aDF2MWgtMXpNMTUsMTVoMXYxaC0xek0xLDE2aDE2djFoLTE2eiIvPjwvc3ZnPg=="}],"errors":[]},"examples":{"Example":{"title":"Example","value":{"codes":[{"reference":"product-label","barcodeText":"https://gtin.at/01/09521234543213/10/LOT42","hri":"(01)09521234543213(10)LOT42","image":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48bWV0YWRhdGEgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj5UaGluZyBJZGVudGl0eTwvZGM6Y3JlYXRvcj48ZGM6c291cmNlPmh0dHBzOi8vdGhpbmdpZGVudGl0eS5jb208L2RjOnNvdXJjZT48L21ldGFkYXRhPjxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0xLDFoMXYxaC0xek0zLDFoMXYxaC0xek01LDFoMXYxaC0xek03LDFoMXYxaC0xek05LDFoMXYxaC0xek0xMSwxaDF2MWgtMXpNMTMsMWgxdjFoLTF6TTE1LDFoMXYxaC0xek0xLDJoMnYxaC0yek01LDJoNHYxaC00ek0xMCwyaDJ2MWgtMnpNMTUsMmgydjFoLTJ6TTEsM2gxdjJoLTF6TTUsM2gxdjFoLTF6TTcsM2gydjJoLTJ6TTEyLDNoMXYxaC0xek0zLDRoMnYxaC0yek0xMCw0aDF2MWgtMXpNMTIsNGgydjFoLTJ6TTE2LDRoMXYxaC0xek0xLDVoM3YxaC0zek01LDVoMnYxaC0yek05LDVoMXYxaC0xek0xMiw1aDR2MWgtNHpNMSw2aDF2MmgtMXpNMyw2aDF2MmgtMXpNNiw2aDJ2MWgtMnpNOSw2aDJ2MWgtMnpNMTIsNmg1djFoLTV6TTYsN2gzdjFoLTN6TTExLDdoMXYxaC0xek0xNCw3aDF2MWgtMXpNMSw4aDR2MWgtNHpNNyw4aDV2MWgtNXpNMTYsOGgxdjFoLTF6TTEsOWgxdjFoLTF6TTksOWgxdjFoLTF6TTExLDloMXYxaC0xek0xMyw5aDN2MWgtM3pNMSwxMGgydjFoLTJ6TTYsMTBoMnYxaC0yek0xMCwxMGgxdjJoLTF6TTEzLDEwaDR2MWgtNHpNMSwxMWgxdjFoLTF6TTQsMTFoMXYxaC0xek04LDExaDF2MWgtMXpNMTQsMTFoMXYxaC0xek0xLDEyaDV2MWgtNXpNNywxMmgxdjFoLTF6TTksMTJoMXYxaC0xek0xMSwxMmgydjFoLTJ6TTE1LDEyaDJ2MWgtMnpNMSwxM2gydjFoLTJ6TTUsMTNoM3YxaC0zek05LDEzaDJ2MWgtMnpNMTQsMTNoMXYxaC0xek0xLDE0aDF2MWgtMXpNNCwxNGgzdjFoLTN6TTEwLDE0aDV2MWgtNXpNMTYsMTRoMXYxaC0xek0xLDE1aDJ2MWgtMnpNOCwxNWgydjFoLTJ6TTEyLDE1aDF2MWgtMXpNMTUsMTVoMXYxaC0xek0xLDE2aDE2djFoLTE2eiIvPjwvc3ZnPg=="}],"errors":[]}}},"exampleType":"examples"},"application/json":{"schema":{"type":"object","required":["codes","errors"],"properties":{"codes":{"type":"array","items":{"type":"object","required":["image","reference","barcodeText","hri"],"properties":{"reference":{"type":"string","description":"The supplied reference unchanged, or the zero-based input position as a string when omitted or null.","isRequired":true,"uniqueKey":"codes.items.[INDEX].reference","typeLabel":"string"},"barcodeText":{"type":"string","description":"The payload to encode. With a `digitalLinkStem` the GS1 Digital Link URI; without one, the GS1 element string, where parentheses inside a value are escaped as `^040` and `^041` so that a renderer places the FNC1 separators correctly. With compression, this is the URI with an EPC `ex` or `eh` path.","examples":["https://gtin.at/01/09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].barcodeText","typeLabel":"string"},"hri":{"type":"string","description":"Human readable interpretation, the `(AI)value` text printed under the symbol. Compression does not change this value.","examples":["(01)09521234543213"],"isRequired":true,"uniqueKey":"codes.items.[INDEX].hri","typeLabel":"string"},"image":{"type":"string","format":"byte","contentEncoding":"base64","contentMediaType":"image/svg+xml","description":"Base64-encoded SVG document (UTF-8).","isRequired":true,"uniqueKey":"codes.items.[INDEX].image","typeLabel":"file"}},"uniqueKey":"codes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"codes","typeLabel":"object[]"},"errors":{"type":"array","items":{"type":"object","required":["reference","errors"],"properties":{"reference":{"type":"string","description":"The supplied reference unchanged, or the zero-based input position as a string when omitted or null.","isRequired":true,"uniqueKey":"errors.items.[INDEX].reference","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","args"],"properties":{"code":{"type":"string","description":"`Validation.Invalid.\u003cfield>`.","examples":["Validation.Invalid.primaryKey"],"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].code","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].args.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].args","typeLabel":"string[]"},"path":{"oneOf":[{"type":"string","description":"The field at fault, so `ais.2` is the third entry of `ais`.","examples":["primaryKey"],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path.oneOf.0","typeLabel":"string"},{"type":"null","description":"The field at fault, so `ais.2` is the third entry of `ais`.","examples":["primaryKey"],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX].path","typeLabel":"string | null"}},"uniqueKey":"errors.items.[INDEX].errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors.items.[INDEX].errors","typeLabel":"object[]"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"codes":[{"reference":"product-label","barcodeText":"https://gtin.at/01/09521234543213/10/LOT42","hri":"(01)09521234543213(10)LOT42","image":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48bWV0YWRhdGEgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj5UaGluZyBJZGVudGl0eTwvZGM6Y3JlYXRvcj48ZGM6c291cmNlPmh0dHBzOi8vdGhpbmdpZGVudGl0eS5jb208L2RjOnNvdXJjZT48L21ldGFkYXRhPjxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0xLDFoMXYxaC0xek0zLDFoMXYxaC0xek01LDFoMXYxaC0xek03LDFoMXYxaC0xek05LDFoMXYxaC0xek0xMSwxaDF2MWgtMXpNMTMsMWgxdjFoLTF6TTE1LDFoMXYxaC0xek0xLDJoMnYxaC0yek01LDJoNHYxaC00ek0xMCwyaDJ2MWgtMnpNMTUsMmgydjFoLTJ6TTEsM2gxdjJoLTF6TTUsM2gxdjFoLTF6TTcsM2gydjJoLTJ6TTEyLDNoMXYxaC0xek0zLDRoMnYxaC0yek0xMCw0aDF2MWgtMXpNMTIsNGgydjFoLTJ6TTE2LDRoMXYxaC0xek0xLDVoM3YxaC0zek01LDVoMnYxaC0yek05LDVoMXYxaC0xek0xMiw1aDR2MWgtNHpNMSw2aDF2MmgtMXpNMyw2aDF2MmgtMXpNNiw2aDJ2MWgtMnpNOSw2aDJ2MWgtMnpNMTIsNmg1djFoLTV6TTYsN2gzdjFoLTN6TTExLDdoMXYxaC0xek0xNCw3aDF2MWgtMXpNMSw4aDR2MWgtNHpNNyw4aDV2MWgtNXpNMTYsOGgxdjFoLTF6TTEsOWgxdjFoLTF6TTksOWgxdjFoLTF6TTExLDloMXYxaC0xek0xMyw5aDN2MWgtM3pNMSwxMGgydjFoLTJ6TTYsMTBoMnYxaC0yek0xMCwxMGgxdjJoLTF6TTEzLDEwaDR2MWgtNHpNMSwxMWgxdjFoLTF6TTQsMTFoMXYxaC0xek04LDExaDF2MWgtMXpNMTQsMTFoMXYxaC0xek0xLDEyaDV2MWgtNXpNNywxMmgxdjFoLTF6TTksMTJoMXYxaC0xek0xMSwxMmgydjFoLTJ6TTE1LDEyaDJ2MWgtMnpNMSwxM2gydjFoLTJ6TTUsMTNoM3YxaC0zek05LDEzaDJ2MWgtMnpNMTQsMTNoMXYxaC0xek0xLDE0aDF2MWgtMXpNNCwxNGgzdjFoLTN6TTEwLDE0aDV2MWgtNXpNMTYsMTRoMXYxaC0xek0xLDE1aDJ2MWgtMnpNOCwxNWgydjFoLTJ6TTEyLDE1aDF2MWgtMXpNMTUsMTVoMXYxaC0xek0xLDE2aDE2djFoLTE2eiIvPjwvc3ZnPg=="}],"errors":[]},"examples":{"Example":{"title":"Example","value":{"codes":[{"reference":"product-label","barcodeText":"https://gtin.at/01/09521234543213/10/LOT42","hri":"(01)09521234543213(10)LOT42","image":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48bWV0YWRhdGEgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj48ZGM6Y3JlYXRvcj5UaGluZyBJZGVudGl0eTwvZGM6Y3JlYXRvcj48ZGM6c291cmNlPmh0dHBzOi8vdGhpbmdpZGVudGl0eS5jb208L2RjOnNvdXJjZT48L21ldGFkYXRhPjxyZWN0IHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgZmlsbD0iI0ZGRkZGRiIvPjxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0xLDFoMXYxaC0xek0zLDFoMXYxaC0xek01LDFoMXYxaC0xek03LDFoMXYxaC0xek05LDFoMXYxaC0xek0xMSwxaDF2MWgtMXpNMTMsMWgxdjFoLTF6TTE1LDFoMXYxaC0xek0xLDJoMnYxaC0yek01LDJoNHYxaC00ek0xMCwyaDJ2MWgtMnpNMTUsMmgydjFoLTJ6TTEsM2gxdjJoLTF6TTUsM2gxdjFoLTF6TTcsM2gydjJoLTJ6TTEyLDNoMXYxaC0xek0zLDRoMnYxaC0yek0xMCw0aDF2MWgtMXpNMTIsNGgydjFoLTJ6TTE2LDRoMXYxaC0xek0xLDVoM3YxaC0zek01LDVoMnYxaC0yek05LDVoMXYxaC0xek0xMiw1aDR2MWgtNHpNMSw2aDF2MmgtMXpNMyw2aDF2MmgtMXpNNiw2aDJ2MWgtMnpNOSw2aDJ2MWgtMnpNMTIsNmg1djFoLTV6TTYsN2gzdjFoLTN6TTExLDdoMXYxaC0xek0xNCw3aDF2MWgtMXpNMSw4aDR2MWgtNHpNNyw4aDV2MWgtNXpNMTYsOGgxdjFoLTF6TTEsOWgxdjFoLTF6TTksOWgxdjFoLTF6TTExLDloMXYxaC0xek0xMyw5aDN2MWgtM3pNMSwxMGgydjFoLTJ6TTYsMTBoMnYxaC0yek0xMCwxMGgxdjJoLTF6TTEzLDEwaDR2MWgtNHpNMSwxMWgxdjFoLTF6TTQsMTFoMXYxaC0xek04LDExaDF2MWgtMXpNMTQsMTFoMXYxaC0xek0xLDEyaDV2MWgtNXpNNywxMmgxdjFoLTF6TTksMTJoMXYxaC0xek0xMSwxMmgydjFoLTJ6TTE1LDEyaDJ2MWgtMnpNMSwxM2gydjFoLTJ6TTUsMTNoM3YxaC0zek05LDEzaDJ2MWgtMnpNMTQsMTNoMXYxaC0xek0xLDE0aDF2MWgtMXpNNCwxNGgzdjFoLTN6TTEwLDE0aDV2MWgtNXpNMTYsMTRoMXYxaC0xek0xLDE1aDJ2MWgtMnpNOCwxNWgydjFoLTJ6TTEyLDE1aDF2MWgtMXpNMTUsMTVoMXYxaC0xek0xLDE2aDE2djFoLTE2eiIvPjwvc3ZnPg=="}],"errors":[]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"5e1efa94-7214-484a-9905-e1c0370b3c91":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The `access_token` from `POST /oauth/token`.","scopes":[]}}},"servers":{"751c3ee5-c165-428a-a409-06e1fbd3b211":{"url":"https://api.thingidentity.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The `access_token` from `POST /oauth/token`.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The `access_token` from `POST /oauth/token`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"thing-identity","siteName":"Thing Identity","title":"Batch Render 2D barcodes - Thing Identity","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T14:39:05.535Z","originalFileLocation":"api-reference/endpoints/render-codes.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response. Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Thing Identity\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Batch Render 2D barcodes - Thing Identity\">\u003cmeta data-mint-head property=\"og:description\" content=\"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response. Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Thing Identity\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.thingidentity.com/api-reference/endpoints/render-codes\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://thing-identity.mintlify.app/_mintlify/api/og/v2?division=2D+Barcodes\u0026amp;title=Batch+Render+2D+barcodes\u0026amp;description=Render+up+to+10+code+definitions+as+Base64-encoded+SVG+images+in+one+JSON+response.%0A%0ASet+%60compression%60+on+each+definition+to+%60EPC_BASE64%60+or+%60EPC_HEX%60+for+a+com\u0026amp;theme=cbc6b4ca26d606041ab96dc7\u0026amp;signature=95ed682dff8be9e5e36e08007aad8b31353e49ffb523a7017f870a4737e46bda\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Batch Render 2D barcodes - Thing Identity\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response. Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://thing-identity.mintlify.app/_mintlify/api/og/v2?division=2D+Barcodes\u0026amp;title=Batch+Render+2D+barcodes\u0026amp;description=Render+up+to+10+code+definitions+as+Base64-encoded+SVG+images+in+one+JSON+response.%0A%0ASet+%60compression%60+on+each+definition+to+%60EPC_BASE64%60+or+%60EPC_HEX%60+for+a+com\u0026amp;theme=cbc6b4ca26d606041ab96dc7\u0026amp;signature=95ed682dff8be9e5e36e08007aad8b31353e49ffb523a7017f870a4737e46bda\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/thing-identity/3IW8MTT2ZtvIbmGr/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Thing Identity\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#18181B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.thingidentity.com/api-reference/endpoints/render-codes\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/render-codes.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.thingidentity.com/#organization\",\"name\":\"Thing Identity\",\"url\":\"https://docs.thingidentity.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/thing-identity/kRu3PmIiw7bjxaKS/logo/light.svg?fit=max\u0026auto=format\u0026n=kRu3PmIiw7bjxaKS\u0026q=85\u0026s=5b0ca7ae1844542e1d6472bfd08fcb66\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.thingidentity.com#website\",\"name\":\"Thing Identity\",\"url\":\"https://docs.thingidentity.com\",\"publisher\":{\"@id\":\"https://docs.thingidentity.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes#webpage\",\"url\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes\",\"name\":\"Batch Render 2D barcodes\",\"description\":\"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response. Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\",\"dateModified\":\"2026-09-28T14:39:05.535Z\",\"isPartOf\":{\"@id\":\"https://docs.thingidentity.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"2D Barcodes\",\"item\":\"https://docs.thingidentity.com/api-reference/endpoints/generate-code\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Batch Render 2D barcodes\",\"item\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes#apireference\",\"headline\":\"Batch Render 2D barcodes\",\"name\":\"Batch Render 2D barcodes\",\"description\":\"Render up to 10 code definitions as Base64-encoded SVG images in one JSON response. Set compression on each definition to EPC_BASE64 or EPC_HEX for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.\",\"url\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes\",\"mainEntityOfPage\":{\"@id\":\"https://docs.thingidentity.com/api-reference/endpoints/render-codes#webpage\"},\"dateModified\":\"2026-09-28T14:39:05.535Z\",\"publisher\":{\"@id\":\"https://docs.thingidentity.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.thingidentity.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Thing Identity\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Thing Identity","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://thingidentity.com/blog"}]},"tabs":[{"tab":"API Reference","groups":[{"group":"Get Started","icon":"rocket","pages":[{"title":"Quickstart","sidebarTitle":"Quickstart","href":"/quickstart"}]},{"group":"Guides","icon":"book","pages":[{"title":"Authentication","sidebarTitle":"Authentication","href":"/guides/authentication"}]},{"group":"API Documentation","icon":"book-open","pages":[{"title":"Introduction","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"title":"Error handling","sidebarTitle":"Error handling","href":"/api-reference/errors"}]},{"group":"Authentication","icon":"code","pages":[{"title":"Get an access token","openapi":"openapi.json POST /oauth/token","href":"/api-reference/endpoints/get-an-access-token"}]},{"group":"2D Barcodes","icon":"qrcode","pages":[{"title":"Generate 2D barcode","openapi":"openapi.json POST /code","href":"/api-reference/endpoints/generate-code"},{"title":"Render 2D barcode","openapi":"openapi.json POST /code/render","href":"/api-reference/endpoints/render-code"},{"title":"Batch Generate 2D barcodes","openapi":"openapi.json POST /codes","description":"Takes a batch of code definitions and returns, for each one, the payload to encode in a symbol plus its human readable interpretation. Nothing is rendered as an image: you get the text and feed it to your own 2D barcode renderer.\n\nA definition that fails validation does not fail the request. The status is `200 OK` even when every item was rejected and `codes` comes back empty, so check `errors` rather than the status code.\n\nRequires the `write:codes` scope.\n\nSet `compression` on each definition to `EPC_BASE64` or `EPC_HEX` for a compressed Digital Link. Omit or send null for an uncompressed URI. Compression requires a GTIN and serial number.","href":"/api-reference/endpoints/generate-codes"},{"title":"Batch Render 2D barcodes","openapi":"openapi.json POST /codes/render/batch","href":"/api-reference/endpoints/render-codes"}]},{"group":"GS1 Resolver","icon":"link","pages":[{"title":"GS1 Digital Link resolver","sidebarTitle":"Overview","description":"The public resolver behind every GS1 Digital Link printed with a Thing Identity code.","href":"/api-reference/resolver/overview"},{"title":"Resolve a GS1 Digital Link","openapi":"openapi.json GET /01/{gtin}","href":"/api-reference/resolver/resolve-gtin"},{"title":"Resolve a compressed GS1 Digital Link","api":"GET https://thingidentity.com/{compressedLink}","href":"/api-reference/resolver/resolve-compressed"}]}]}]},"title":"Batch Render 2D barcodes - Thing Identity","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}