Attaches a C2PA manifest, signed by one of your registered signers, and stores the
signed copy alongside the untouched original.
Images (multipart file, or JSON url) are signed synchronously and return 200
with a time-limited download link.
Video (JSON with blobPath from POST /compliance/media/upload-url) is signed
asynchronously: the call returns 202 with a jobId, credits are reserved rather than
charged, and you poll GET /media/provenance/jobs/{jobId}.
A signature is not a compliance approval; complianceGate.enforced is always false.
Requires the provenance:sign:invoke key scope, which is granted to service keys only.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ZebraTruth — Runtime Compliance for AI Agents","colors":{"primary":"#3FB2FE","light":"#3FB2FE","dark":"#3FB2FE"},"logo":{"light":"https://mintcdn.com/zebratruthai/gsHY39_GGp7teBef/logo/light.svg?fit=max\u0026auto=format\u0026n=gsHY39_GGp7teBef\u0026q=85\u0026s=a0210573e206e7c10145de436da1dab1","dark":"https://mintcdn.com/zebratruthai/gsHY39_GGp7teBef/logo/dark.svg?fit=max\u0026auto=format\u0026n=gsHY39_GGp7teBef\u0026q=85\u0026s=43489640c220a2f492f4d203e72392af"},"favicon":"https://mintcdn.com/zebratruthai/53nDj18I-jVMHwMl/favicon.png?fit=max\u0026auto=format\u0026n=53nDj18I-jVMHwMl\u0026q=85\u0026s=d17d051b30e8720f47448f94af058918","api":{"playground":{}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zebratruthai","hasAudioNarration":false,"actualSubdomain":"zebratruthai","customDomains":["docs.zebratruth.ai"],"gitSource":{"type":"github","owner":"dafstar76","repo":"zebratruth-ai-labs","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ab71fdcbc2c56bfa72d6aca","collectionId":"00df67d9-1f04-4b9c-8e32-28dcda9d3798","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ab71fdcbc2c56bfa72d6aca"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ab71fdcbc2c56bfa72d6aca","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API Reference","count":44},{"language":"default","tag":"Documentation","count":14},{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"Text, Images \u0026 Integration","count":8},{"language":"default","tag":"Corpus","count":7},{"language":"default","tag":"Concepts","count":6},{"language":"default","tag":"Video","count":6},{"language":"default","tag":"Account \u0026 Usage","count":6},{"language":"default","tag":"Provenance","count":6},{"language":"default","tag":"Jobs \u0026 Reports","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/provenance/sign-an-image-or-video-with-content-credentials","slug":"/api-reference/provenance/sign-an-image-or-video-with-content-credentials","pageMetadata":{"title":"Sign an image or video with Content Credentials","description":"Attaches a C2PA manifest, signed by one of your registered signers, and stores the\nsigned copy alongside the untouched original.\n\n**Images** (multipart `file`, or JSON `url`) are signed synchronously and return 200\nwith a time-limited download link.\n\n**Video** (JSON with `blobPath` from `POST /compliance/media/upload-url`) is signed\nasynchronously: the call returns 202 with a `jobId`, credits are reserved rather than\ncharged, and you poll `GET /media/provenance/jobs/{jobId}`.\n\nA signature is not a compliance approval; `complianceGate.enforced` is always `false`.\nRequires the `provenance:sign:invoke` key scope, which is granted to service keys only.\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /media/provenance/sign","href":"/api-reference/provenance/sign-an-image-or-video-with-content-credentials","autogeneratedByOpenApi":true},"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 strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Attaches a C2PA manifest, signed by one of your registered signers, and stores the\\nsigned copy alongside the untouched original.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Images\"\n }), \" (multipart \", _jsx(_components.code, {\n children: \"file\"\n }), \", or JSON \", _jsx(_components.code, {\n children: \"url\"\n }), \") are signed synchronously and return 200\\nwith a time-limited download link.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Video\"\n }), \" (JSON with \", _jsx(_components.code, {\n children: \"blobPath\"\n }), \" from \", _jsx(_components.code, {\n children: \"POST /compliance/media/upload-url\"\n }), \") is signed\\nasynchronously: the call returns 202 with a \", _jsx(_components.code, {\n children: \"jobId\"\n }), \", credits are reserved rather than\\ncharged, and you poll \", _jsx(_components.code, {\n children: \"GET /media/provenance/jobs/{jobId}\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A signature is not a compliance approval; \", _jsx(_components.code, {\n children: \"complianceGate.enforced\"\n }), \" is always \", _jsx(_components.code, {\n children: \"false\"\n }), \".\\nRequires the \", _jsx(_components.code, {\n children: \"provenance:sign:invoke\"\n }), \" key scope, which is granted to service keys only.\"]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Sign an image or video with Content Credentials","description":"Attaches a C2PA manifest, signed by one of your registered signers, and stores the\nsigned copy alongside the untouched original.\n\n**Images** (multipart `file`, or JSON `url`) are signed synchronously and return 200\nwith a time-limited download link.\n\n**Video** (JSON with `blobPath` from `POST /compliance/media/upload-url`) is signed\nasynchronously: the call returns 202 with a `jobId`, credits are reserved rather than\ncharged, and you poll `GET /media/provenance/jobs/{jobId}`.\n\nA signature is not a compliance approval; `complianceGate.enforced` is always `false`.\nRequires the `provenance:sign:invoke` key scope, which is granted to service keys only.\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /media/provenance/sign","href":"/api-reference/provenance/sign-an-image-or-video-with-content-credentials","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"signProvenance","summary":"Sign an image or video with Content Credentials","description":"Attaches a C2PA manifest, signed by one of your registered signers, and stores the\nsigned copy alongside the untouched original.\n\n**Images** (multipart `file`, or JSON `url`) are signed synchronously and return 200\nwith a time-limited download link.\n\n**Video** (JSON with `blobPath` from `POST /compliance/media/upload-url`) is signed\nasynchronously: the call returns 202 with a `jobId`, credits are reserved rather than\ncharged, and you poll `GET /media/provenance/jobs/{jobId}`.\n\nA signature is not a compliance approval; `complianceGate.enforced` is always `false`.\nRequires the `provenance:sign:invoke` key scope, which is granted to service keys only.\n","tags":["Provenance"],"parameters":["a11caf72-35da-4399-a46d-374f7e14f27a"],"requestBody":"5954863f-5775-417c-bb39-340d50c91e51","responses":{"200":"26bce88f-502e-4a5a-ae08-cd32f867d6ac","202":"805c4529-f430-4ce0-896d-c4a26905851f","400":"21b01ce1-bf6e-425f-bfff-9e113fcfa3fb","401":"995e320e-5f01-4b17-baef-36aae417337e","402":"ce4038bb-eb81-4d19-8f0f-c91f5d4129c9","403":"b27150e1-836c-476f-bb4b-5c5f811bedbf","404":"5468c6f8-1fbb-4979-a2d4-b0e401fb9f79","409":"430c578d-45f0-46a1-9104-318fd86494d9","413":"c35a1bbe-8502-44f8-9558-c3bdbaae1397","415":"6160b820-c133-4495-9c42-04d6b8638672","429":"3913e5ce-bb4e-4475-b587-1f3b8c584679","502":"3a6ca397-3b8c-4ce6-8666-b889ce4ad2a4","503":"214f1f76-6be1-4ff1-8ab4-c9e417cc90ff"},"method":"post","type":"path","servers":["e4860b08-abe2-46de-8ff2-cf13ac5f2eef"],"security":["2150c869-c80e-45b2-aa80-21ce646b4401"],"path":"/media/provenance/sign","baseUrlOptions":["https://api.zebratruth.ai/v1"],"title":"Sign an image or video with Content Credentials","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"a11caf72-35da-4399-a46d-374f7e14f27a":{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","isRequired":false,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"any","uniqueKey":"","typeLabel":"any"},"examples":{"Example":{"title":"Example","value":"\u003cunknown>"}},"exampleType":"generated"},"application/json":{"schema":{"oneOf":[{"type":"object","required":["url","signerId","digitalSourceType"],"properties":{"signerId":{"type":"string","description":"A signer registered with `POST /media/provenance/signers` and in `active` status.","isRequired":true,"uniqueKey":"oneOf.0.signerId","typeLabel":"string"},"digitalSourceType":{"type":"string","enum":["digitalCapture","computationalCapture","humanEdits","minorHumanEdits","screenCapture","digitalArt","softwareImage","composite","trainedAlgorithmicMedia","compositeWithTrainedAlgorithmicMedia","algorithmicallyEnhanced","algorithmicMedia"],"description":"The IPTC digital source type declared in the signed manifest. `trainedAlgorithmicMedia`,\n`compositeWithTrainedAlgorithmicMedia`, `algorithmicMedia` and `algorithmicallyEnhanced`\nindicate generative AI.\n","isRequired":true,"uniqueKey":"oneOf.0.digitalSourceType","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"Publicly fetchable image URL (up to 20 MB).","isRequired":true,"uniqueKey":"oneOf.0.url","typeLabel":"string\u003curi>"},"title":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"oneOf.0.title","typeLabel":"string"},"acknowledgeInvalid":{"type":"boolean","description":"Required, together with `invalidHandling: replace`, to sign an asset that already carries an invalid manifest.","uniqueKey":"oneOf.0.acknowledgeInvalid","typeLabel":"boolean"},"invalidHandling":{"type":"string","enum":["replace","reject"],"uniqueKey":"oneOf.0.invalidHandling","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["blobPath","signerId","digitalSourceType"],"properties":{"signerId":{"type":"string","description":"A signer registered with `POST /media/provenance/signers` and in `active` status.","isRequired":true,"uniqueKey":"oneOf.1.signerId","typeLabel":"string"},"digitalSourceType":{"type":"string","enum":["digitalCapture","computationalCapture","humanEdits","minorHumanEdits","screenCapture","digitalArt","softwareImage","composite","trainedAlgorithmicMedia","compositeWithTrainedAlgorithmicMedia","algorithmicallyEnhanced","algorithmicMedia"],"description":"The IPTC digital source type declared in the signed manifest. `trainedAlgorithmicMedia`,\n`compositeWithTrainedAlgorithmicMedia`, `algorithmicMedia` and `algorithmicallyEnhanced`\nindicate generative AI.\n","isRequired":true,"uniqueKey":"oneOf.1.digitalSourceType","typeLabel":"enum\u003cstring>"},"blobPath":{"type":"string","description":"A video previously uploaded through `POST /compliance/media/upload-url`. Must be `.mp4`, `.mov` or `.m4v`.","isRequired":true,"uniqueKey":"oneOf.1.blobPath","typeLabel":"string"},"title":{"type":"string","minLength":1,"maxLength":200,"uniqueKey":"oneOf.1.title","typeLabel":"string"},"acknowledgeInvalid":{"type":"boolean","description":"Required, together with `invalidHandling: replace`, to sign an asset that already carries an invalid manifest.","uniqueKey":"oneOf.1.acknowledgeInvalid","typeLabel":"boolean"},"invalidHandling":{"type":"string","enum":["replace","reject"],"uniqueKey":"oneOf.1.invalidHandling","typeLabel":"enum\u003cstring>"},"jurisdictions":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.jurisdictions.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.jurisdictions","typeLabel":"string[]"},"platforms":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.platforms.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.platforms","typeLabel":"string[]"},"mode":{"type":"string","enum":["fast","full"],"uniqueKey":"oneOf.1.mode","typeLabel":"enum\u003cstring>"},"industryOverlays":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.industryOverlays.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oneOf.1.industryOverlays","typeLabel":"string[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"signerId":"\u003cstring>","url":"\u003cstring>","title":"\u003cstring>","acknowledgeInvalid":true}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"26bce88f-502e-4a5a-ae08-cd32f867d6ac":{"description":"Image signed","content":{"application/json":{"schema":{"type":"object","required":["requestId","signedAt","signed","c2pa","signer","declared","complianceGate","source","billing"],"properties":{"requestId":{"type":"string","isRequired":true,"uniqueKey":"requestId","typeLabel":"string"},"signedAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"signedAt","typeLabel":"string\u003cdate-time>"},"signed":{"type":"object","description":"Where the signed copy lives. The original is never mutated.","properties":{"blobPath":{"type":"string","uniqueKey":"signed.blobPath","typeLabel":"string"},"downloadUrl":{"type":"string","format":"uri","description":"Time-limited download link. Absent when `deliveryPending` is `true`.","uniqueKey":"signed.downloadUrl","typeLabel":"string\u003curi>"},"expiresAt":{"type":"string","format":"date-time","uniqueKey":"signed.expiresAt","typeLabel":"string\u003cdate-time>"},"deliveryPending":{"type":"boolean","description":"The asset was signed and charged but the download link could not be minted yet.","uniqueKey":"signed.deliveryPending","typeLabel":"boolean"},"byteSize":{"type":"integer","uniqueKey":"signed.byteSize","typeLabel":"integer"},"sha256":{"type":"string","uniqueKey":"signed.sha256","typeLabel":"string"}},"isRequired":true,"uniqueKey":"signed","typeLabel":"object"},"c2pa":{"type":"object","properties":{"status":{"type":"string","enum":["present_trusted","present_untrusted","present_invalid","absent","unsupported","inspection_failed"],"description":"`present_trusted`: a valid manifest signed by a trusted signer. `present_untrusted`:\nvalid manifest, signer not on the trust list. `present_invalid`: a manifest is present\nbut fails validation. `absent`: no manifest. `unsupported`: the format cannot carry one.\n`inspection_failed`: the inspection itself errored.\n","uniqueKey":"c2pa.status","typeLabel":"enum\u003cstring>"},"claimGenerator":{"oneOf":[{"type":"string","uniqueKey":"c2pa.claimGenerator.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"c2pa.claimGenerator.oneOf.1","typeLabel":"null"}],"uniqueKey":"c2pa.claimGenerator","typeLabel":"string | null"},"inspectionError":{"type":"string","uniqueKey":"c2pa.inspectionError","typeLabel":"string"}},"isRequired":true,"uniqueKey":"c2pa","typeLabel":"object"},"signer":{"type":"object","properties":{"signerId":{"type":"string","uniqueKey":"signer.signerId","typeLabel":"string"},"legalEntity":{"type":"string","uniqueKey":"signer.legalEntity","typeLabel":"string"},"algorithm":{"type":"string","uniqueKey":"signer.algorithm","typeLabel":"string"},"certificateFingerprintSha256":{"type":"string","uniqueKey":"signer.certificateFingerprintSha256","typeLabel":"string"}},"isRequired":true,"uniqueKey":"signer","typeLabel":"object"},"declared":{"type":"object","properties":{"digitalSourceType":{"type":"string","enum":["digitalCapture","computationalCapture","humanEdits","minorHumanEdits","screenCapture","digitalArt","softwareImage","composite","trainedAlgorithmicMedia","compositeWithTrainedAlgorithmicMedia","algorithmicallyEnhanced","algorithmicMedia"],"description":"The IPTC digital source type declared in the signed manifest. `trainedAlgorithmicMedia`,\n`compositeWithTrainedAlgorithmicMedia`, `algorithmicMedia` and `algorithmicallyEnhanced`\nindicate generative AI.\n","uniqueKey":"declared.digitalSourceType","typeLabel":"enum\u003cstring>"},"indicatesGenerativeAi":{"type":"boolean","uniqueKey":"declared.indicatesGenerativeAi","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"declared","typeLabel":"object"},"complianceGate":{"type":"object","description":"A signature is not a compliance approval. `enforced` is always `false`.","properties":{"enforced":{"type":"boolean","uniqueKey":"complianceGate.enforced","typeLabel":"boolean"},"note":{"type":"string","uniqueKey":"complianceGate.note","typeLabel":"string"}},"isRequired":true,"uniqueKey":"complianceGate","typeLabel":"object"},"source":{"type":"object","properties":{"contentType":{"type":"string","uniqueKey":"source.contentType","typeLabel":"string"},"originalByteSize":{"type":"integer","uniqueKey":"source.originalByteSize","typeLabel":"integer"},"sha256Original":{"type":"string","uniqueKey":"source.sha256Original","typeLabel":"string"},"priorC2paStatus":{"type":"string","enum":["present_trusted","present_untrusted","present_invalid","absent","unsupported","inspection_failed"],"description":"`present_trusted`: a valid manifest signed by a trusted signer. `present_untrusted`:\nvalid manifest, signer not on the trust list. `present_invalid`: a manifest is present\nbut fails validation. `absent`: no manifest. `unsupported`: the format cannot carry one.\n`inspection_failed`: the inspection itself errored.\n","uniqueKey":"source.priorC2paStatus","typeLabel":"enum\u003cstring>"},"sourceUrl":{"type":"string","format":"uri","uniqueKey":"source.sourceUrl","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"source","typeLabel":"object"},"billing":{"type":"object","properties":{"feature":{"type":"string","enum":["media.provenance.inspect","media.provenance.sign"],"uniqueKey":"billing.feature","typeLabel":"enum\u003cstring>"},"creditsCharged":{"type":"number","uniqueKey":"billing.creditsCharged","typeLabel":"number"},"cached":{"type":"boolean","uniqueKey":"billing.cached","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"billing","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"requestId":"\u003cstring>","signedAt":"2023-11-07T05:31:56Z","signed":{"blobPath":"\u003cstring>","downloadUrl":"\u003cstring>","expiresAt":"2023-11-07T05:31:56Z","deliveryPending":true,"byteSize":123,"sha256":"\u003cstring>"},"c2pa":{"status":"present_trusted","claimGenerator":"\u003cstring>","inspectionError":"\u003cstring>"},"signer":{"signerId":"\u003cstring>","legalEntity":"\u003cstring>","algorithm":"\u003cstring>","certificateFingerprintSha256":"\u003cstring>"},"declared":{"digitalSourceType":"digitalCapture","indicatesGenerativeAi":true},"complianceGate":{"enforced":true,"note":"\u003cstring>"},"source":{"contentType":"\u003cstring>","originalByteSize":123,"sha256Original":"\u003cstring>","priorC2paStatus":"present_trusted","sourceUrl":"\u003cstring>"},"billing":{"feature":"media.provenance.inspect","creditsCharged":123,"cached":true}}}},"exampleType":"generated"}},"exampleType":"generated"},"805c4529-f430-4ce0-896d-c4a26905851f":{"description":"Video signing job queued","content":{"application/json":{"schema":{"type":"object","required":["jobId","status","estimatedCredits","pollUrl","submittedAt"],"properties":{"jobId":{"type":"string","isRequired":true,"uniqueKey":"jobId","typeLabel":"string"},"status":{"type":"string","enum":["queued"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"estimatedCredits":{"type":"number","description":"Reserved at submission; settled when the job finishes.","isRequired":true,"uniqueKey":"estimatedCredits","typeLabel":"number"},"pollUrl":{"type":"string","example":"/v1/media/provenance/jobs/{jobId}","isRequired":true,"uniqueKey":"pollUrl","typeLabel":"string"},"submittedAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"submittedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"jobId":"\u003cstring>","status":"queued","estimatedCredits":123,"pollUrl":"/v1/media/provenance/jobs/{jobId}","submittedAt":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"21b01ce1-bf6e-425f-bfff-9e113fcfa3fb":{"description":"`data.code`: `file_part_missing`, `invalid_request` (the message names the field), `url_not_permitted`, `too_many_redirects`, `fetch_failed`.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"995e320e-5f01-4b17-baef-36aae417337e":{"description":"Invalid, missing, or expired API key. Standard error envelope —\nread `message` for the human-readable reason.\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope.","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Canonical human-readable reason — pattern-match on this field.","example":"Invalid API key","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","example":"https://api.zebratruth.ai/v1/whoami","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","example":"Invalid API key","uniqueKey":"statusMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":401,"message":"Invalid API key","error":true,"url":"https://api.zebratruth.ai/v1/whoami","statusMessage":"Invalid API key"}}},"exampleType":"generated"}},"exampleType":"generated"},"ce4038bb-eb81-4d19-8f0f-c91f5d4129c9":{"description":"`data.code`: `insufficient_credits` (video; also carries `required` and `available`).","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b27150e1-836c-476f-bb4b-5c5f811bedbf":{"description":"`data.code`: `blob_path_invalid` (video path outside your tenant prefix).","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"5468c6f8-1fbb-4979-a2d4-b0e401fb9f79":{"description":"`data.code`: `signer_not_found`.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"430c578d-45f0-46a1-9104-318fd86494d9":{"description":"`data.code`: `signer_not_active` (carries `signerStatus`), `already_signed` (carries `c2paStatus`), `existing_invalid_manifest` (carries `c2paStatus` and `resolution`), `queue_authority_changed`.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c35a1bbe-8502-44f8-9558-c3bdbaae1397":{"description":"The upload exceeds a limit. `data.code` is one of `document_too_large`,\n`document_too_many_pages`, `document_too_much_text`, `text_exceeds_tier_limit`,\n`payload_too_large` (provenance; also carries `limitBytes`), `video_upload_too_large`.\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"6160b820-c133-4495-9c42-04d6b8638672":{"description":"The file type is not accepted. `data.code` is one of `document_format_unsupported`\n(legacy `.doc`, unknown signature, or a filename that does not match the bytes),\n`document_encrypted`, `unknown_content_type`, `video_signing_unavailable`,\n`unsupported_container`.\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"3913e5ce-bb4e-4475-b587-1f3b8c584679":{"description":"Per-tenant rate limit exceeded. Read the `Retry-After` header for the\nwait duration. Body is the standard error envelope plus a\n`data` object with limit context.\n","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait before retrying."}},"content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope with a `data` payload.","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","example":429,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","example":"Rate limit exceeded","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","example":"Rate limit exceeded","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","description":"Per-error context. On the wire this is reduced to `{ code }` plus, where documented, a small set of named fields.","properties":{"retryAfter":{"type":"integer","description":"Mirrors the `Retry-After` header for clients that prefer body fields.","example":5,"uniqueKey":"data.retryAfter","typeLabel":"integer"},"limit":{"type":"integer","description":"Tenant's requests-per-minute cap.","example":60,"uniqueKey":"data.limit","typeLabel":"integer"},"remaining":{"type":"integer","description":"Requests remaining in the current window.","example":0,"uniqueKey":"data.remaining","typeLabel":"integer"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":429,"message":"Rate limit exceeded","error":true,"url":"\u003cstring>","statusMessage":"Rate limit exceeded","data":{"retryAfter":5,"limit":60,"remaining":0}}}},"exampleType":"generated"}},"exampleType":"generated"},"3a6ca397-3b8c-4ce6-8666-b889ce4ad2a4":{"description":"`data.code`: `remote_signer_failed` — your signing endpoint failed. Not charged.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"},"214f1f76-6be1-4ff1-8ab4-c9e417cc90ff":{"description":"`data.code`: `signing_unavailable`, `company_async_cohort_disabled`, `source_hash_failed`, `enqueue_failed` (carries `jobId`). All carry `retryable: true`. Not charged.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. `data.code` is the stable discriminator to branch on;\n`statusMessage` is the human-readable reason. Unless a response documents extra\nnamed fields, `data` is reduced to `{ code }` before it is sent.\n","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","uniqueKey":"statusMessage","typeLabel":"string"},"data":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"review_scope_not_enabled","isRequired":true,"uniqueKey":"data.code","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"message":"\u003cstring>","error":true,"url":"\u003cstring>","statusMessage":"\u003cstring>","data":{"code":"review_scope_not_enabled"}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"2150c869-c80e-45b2-aa80-21ce646b4401":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key starting with `zt_live_` (production) or `zt_test_` (sandbox).\nGet your key at https://developers.zebratruth.ai\n","scopes":[]}}},"servers":{"e4860b08-abe2-46de-8ff2-cf13ac5f2eef":{"url":"https://api.zebratruth.ai/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key starting with `zt_live_` (production) or `zt_test_` (sandbox).\nGet your key at https://developers.zebratruth.ai\n","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key starting with `zt_live_` (production) or `zt_test_` (sandbox).\nGet your key at https://developers.zebratruth.ai\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/zebratruth-v1.yaml"},"subdomain":"zebratruthai","siteName":"ZebraTruth — Runtime Compliance for AI Agents","title":"Sign an image or video with Content Credentials - ZebraTruth — Runtime Compliance for AI Agents","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T01:29:05.980Z","originalFileLocation":"api-reference/provenance/sign-an-image-or-video-with-content-credentials.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=\"Attaches a C2PA manifest, signed by one of your registered signers, and stores the signed copy alongside the untouched original. Images (multipart file, or JSON url) are signed synchronously and return 200 with a time-limited download link. Video (JSON with blobPath from POST /compliance/media/upload-url) is signed asynchronously: the call returns 202 with a jobId, credits are reserved rather than charged, and you poll GET /media/provenance/jobs/{jobId}. A signature is not a compliance approval; complianceGate.enforced is always false. Requires the provenance:sign:invoke key scope, which is granted to service keys only.\">\u003cmeta data-mint-head name=\"application-name\" content=\"ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_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/zebratruthai/rTMeP4-q-BuDeEQw/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Sign an image or video with Content Credentials - ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head property=\"og:description\" content=\"Attaches a C2PA manifest, signed by one of your registered signers, and stores the signed copy alongside the untouched original. Images (multipart file, or JSON url) are signed synchronously and return 200 with a time-limited download link. Video (JSON with blobPath from POST /compliance/media/upload-url) is signed asynchronously: the call returns 202 with a jobId, credits are reserved rather than charged, and you poll GET /media/provenance/jobs/{jobId}. A signature is not a compliance approval; complianceGate.enforced is always false. Requires the provenance:sign:invoke key scope, which is granted to service keys only.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zebratruthai.mintlify.app/_mintlify/api/og/v2?division=Provenance\u0026amp;title=Sign+an+image+or+video+with+Content+Credentials\u0026amp;description=Attaches+a+C2PA+manifest%2C+signed+by+one+of+your+registered+signers%2C+and+stores+the%0Asigned+copy+alongside+the+untouched+original.%0A%0A**Images**+%28multipart+%60file%60%2C+\u0026amp;theme=a5a701a9b75e19dc4c00f206\u0026amp;signature=f564afd432fd86c1b385098e1b7cfd154ff6fa0938378efd413a990150e59b77\">\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=\"Sign an image or video with Content Credentials - ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Attaches a C2PA manifest, signed by one of your registered signers, and stores the signed copy alongside the untouched original. Images (multipart file, or JSON url) are signed synchronously and return 200 with a time-limited download link. Video (JSON with blobPath from POST /compliance/media/upload-url) is signed asynchronously: the call returns 202 with a jobId, credits are reserved rather than charged, and you poll GET /media/provenance/jobs/{jobId}. A signature is not a compliance approval; complianceGate.enforced is always false. Requires the provenance:sign:invoke key scope, which is granted to service keys only.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zebratruthai.mintlify.app/_mintlify/api/og/v2?division=Provenance\u0026amp;title=Sign+an+image+or+video+with+Content+Credentials\u0026amp;description=Attaches+a+C2PA+manifest%2C+signed+by+one+of+your+registered+signers%2C+and+stores+the%0Asigned+copy+alongside+the+untouched+original.%0A%0A**Images**+%28multipart+%60file%60%2C+\u0026amp;theme=a5a701a9b75e19dc4c00f206\u0026amp;signature=f564afd432fd86c1b385098e1b7cfd154ff6fa0938378efd413a990150e59b77\">\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/zebratruthai/rTMeP4-q-BuDeEQw/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3FB2FE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/provenance/sign-an-image-or-video-with-content-credentials.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.zebratruth.ai/#organization\",\"name\":\"ZebraTruth — Runtime Compliance for AI Agents\",\"url\":\"https://docs.zebratruth.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zebratruthai/gsHY39_GGp7teBef/logo/light.svg?fit=max\u0026auto=format\u0026n=gsHY39_GGp7teBef\u0026q=85\u0026s=a0210573e206e7c10145de436da1dab1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.zebratruth.ai#website\",\"name\":\"ZebraTruth — Runtime Compliance for AI Agents\",\"url\":\"https://docs.zebratruth.ai\",\"publisher\":{\"@id\":\"https://docs.zebratruth.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials#webpage\",\"url\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials\",\"name\":\"Sign an image or video with Content Credentials\",\"description\":\"Attaches a C2PA manifest, signed by one of your registered signers, and stores the signed copy alongside the untouched original. Images (multipart file, or JSON url) are signed synchronously and return 200 with a time-limited download link. Video (JSON with blobPath from POST /compliance/media/upload-url) is signed asynchronously: the call returns 202 with a jobId, credits are reserved rather than charged, and you poll GET /media/provenance/jobs/{jobId}. A signature is not a compliance approval; complianceGate.enforced is always false. Requires the provenance:sign:invoke key scope, which is granted to service keys only.\",\"dateModified\":\"2026-09-26T01:29:05.980Z\",\"isPartOf\":{\"@id\":\"https://docs.zebratruth.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Provenance\",\"item\":\"https://docs.zebratruth.ai/api-reference/provenance/inspect-content-credentials-on-an-image-or-video\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sign an image or video with Content Credentials\",\"item\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials#apireference\",\"headline\":\"Sign an image or video with Content Credentials\",\"name\":\"Sign an image or video with Content Credentials\",\"description\":\"Attaches a C2PA manifest, signed by one of your registered signers, and stores the signed copy alongside the untouched original. Images (multipart file, or JSON url) are signed synchronously and return 200 with a time-limited download link. Video (JSON with blobPath from POST /compliance/media/upload-url) is signed asynchronously: the call returns 202 with a jobId, credits are reserved rather than charged, and you poll GET /media/provenance/jobs/{jobId}. A signature is not a compliance approval; complianceGate.enforced is always false. Requires the provenance:sign:invoke key scope, which is granted to service keys only.\",\"url\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zebratruth.ai/api-reference/provenance/sign-an-image-or-video-with-content-credentials#webpage\"},\"dateModified\":\"2026-09-26T01:29:05.980Z\",\"publisher\":{\"@id\":\"https://docs.zebratruth.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.zebratruth.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ZebraTruth — Runtime Compliance for AI Agents\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ZebraTruth — Runtime Compliance for AI Agents","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/video-compliance-check"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"group":"Compliance Checks","pages":[{"title":"Run compliance check","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/check","href":"/api-reference/compliance/run-compliance-check"},{"title":"Check image rights","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/check-image","href":"/api-reference/compliance/check-image-rights"},{"title":"Extract text from a PDF or Word document","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/documents/extract","href":"/api-reference/documents/extract-text-from-a-pdf-or-word-document"}]},{"group":"Video","pages":[{"title":"Mint a video upload URL","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/media/upload-url","href":"/api-reference/video-compliance/mint-a-video-upload-url"},{"title":"Submit a video for compliance analysis","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/check-video","href":"/api-reference/video-compliance/submit-a-video-for-compliance-analysis"},{"title":"Poll video job status + retrieve report","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/check-video/{requestId}","href":"/api-reference/video-compliance/poll-video-job-status-+-retrieve-report"},{"title":"Retrieve the tenant's video webhook signing secret","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/webhooks/video/secret","href":"/api-reference/video-compliance/retrieve-the-tenants-video-webhook-signing-secret"},{"title":"Rotate the tenant's video webhook signing secret","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/webhooks/video/secret/rotate","href":"/api-reference/video-compliance/rotate-the-tenants-video-webhook-signing-secret"}]},{"group":"Agents","pages":[{"title":"List available agents","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /agents","href":"/api-reference/agents/list-available-agents"},{"title":"Invoke a single agent","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /agents/{agentId}","href":"/api-reference/agents/invoke-a-single-agent"}]},{"group":"Jobs \u0026 Reports","pages":[{"title":"Poll job status","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/jobs/{jobId}","href":"/api-reference/jobs/poll-job-status"},{"title":"Get agent execution trace","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/jobs/{jobId}/trace","href":"/api-reference/jobs/get-agent-execution-trace"},{"title":"Resume SSE stream","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/jobs/{jobId}/stream","href":"/api-reference/jobs/resume-sse-stream"},{"title":"Get compliance report","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /reports/{reportId}","href":"/api-reference/reports/get-compliance-report"},{"title":"Replay a compliance check","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /reports/{reportId}/replay","href":"/api-reference/reports/replay-a-compliance-check"}]},{"group":"Check History","pages":[{"title":"List past compliance checks","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/checks","href":"/api-reference/check-history/list-past-compliance-checks"},{"title":"Get a past check with its full report","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /compliance/checks/{requestId}","href":"/api-reference/check-history/get-a-past-check-with-its-full-report"},{"title":"Query request logs","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /logs","href":"/api-reference/observability/query-request-logs"}]},{"group":"Provenance","pages":[{"title":"Inspect Content Credentials on an image or video","description":"Reads the C2PA manifest on an asset and reports whether it is present, valid and\nsigned by a trusted signer, together with a SHA-256 of the bytes and a distribution\ndurability assessment. Send the file as multipart, or a JSON body with a URL.\nSynchronous. Credits are reserved before any fetch and committed on success.\nRequires the `provenance:inspect` key scope.\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /media/provenance/inspect","href":"/api-reference/provenance/inspect-content-credentials-on-an-image-or-video"},{"title":"Sign an image or video with Content Credentials","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /media/provenance/sign","href":"/api-reference/provenance/sign-an-image-or-video-with-content-credentials"},{"title":"Poll a video signing job","description":"Status of an asynchronous video signing job. On `completed`, a fresh time-limited\ndownload link is minted for the signed copy on every call. Jobs are scoped to your\ntenant; another tenant's job is simply not found. Not billed. Requires the\n`provenance:sign:invoke` key scope.\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /media/provenance/jobs/{jobId}","href":"/api-reference/provenance/poll-a-video-signing-job"},{"title":"List registered signers","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /media/provenance/signers","href":"/api-reference/provenance/list-registered-signers"},{"title":"Register a signer","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /media/provenance/signers","href":"/api-reference/provenance/register-a-signer"},{"title":"Get the keys ZebraTruth signs endpoint requests with","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /media/provenance/signing-keys","href":"/api-reference/provenance/get-the-keys-zebratruth-signs-endpoint-requests-with"}]},{"group":"Account \u0026 Usage","pages":[{"title":"Validate API key","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /whoami","href":"/api-reference/authentication/validate-api-key"},{"title":"Get credit usage","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /usage","href":"/api-reference/authentication/get-credit-usage"},{"title":"Get usage totals by feature","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /usage/summary","href":"/api-reference/billing/get-usage-totals-by-feature"},{"title":"Get usage for one externalId","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /usage/project/{projectId}","href":"/api-reference/billing/get-usage-for-one-externalid"},{"title":"Get subscription status","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /subscription","href":"/api-reference/billing/get-subscription-status"},{"title":"Get engine version","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /version","href":"/api-reference/authentication/get-engine-version"}]},{"group":"Billing","pages":[{"title":"Start a subscription","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /billing/checkout","href":"/api-reference/billing/start-a-subscription"},{"title":"Upgrade Individual to Pro","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /billing/upgrade","href":"/api-reference/billing/upgrade-individual-to-pro"}]},{"group":"Webhooks","pages":[{"title":"List saved webhook endpoints","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /webhooks","href":"/api-reference/webhooks/list-saved-webhook-endpoints"},{"title":"Register a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /webhooks","href":"/api-reference/webhooks/register-a-webhook-endpoint"},{"title":"Remove a webhook endpoint","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml delete /webhooks/{webhookId}","href":"/api-reference/webhooks/remove-a-webhook-endpoint"},{"title":"Get webhook delivery logs","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /webhooks/deliveries","href":"/api-reference/webhooks/get-webhook-delivery-logs"}]},{"group":"Corpus","pages":[{"title":"Force refresh of legal corpus rows","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /corpus/refresh","href":"/api-reference/compliance/force-refresh-of-legal-corpus-rows"},{"title":"List corpus proposals awaiting review","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /memory/review-queue","href":"/api-reference/corpus/list-corpus-proposals-awaiting-review"},{"title":"Get the review packet for a proposal","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /memory/review-queue/{proposalId}","href":"/api-reference/corpus/get-the-review-packet-for-a-proposal"},{"title":"Approve a proposal","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /memory/review-queue/{proposalId}/approve","href":"/api-reference/corpus/approve-a-proposal"},{"title":"Reject a proposal","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /memory/review-queue/{proposalId}/reject","href":"/api-reference/corpus/reject-a-proposal"},{"title":"Send a proposal back for changes","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /memory/review-queue/{proposalId}/request_changes","href":"/api-reference/corpus/send-a-proposal-back-for-changes"},{"title":"Get the caller's reviewer profile","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml get /memory/reviewer/me","href":"/api-reference/corpus/get-the-callers-reviewer-profile"}]}]}]},"title":"Sign an image or video with Content Credentials - ZebraTruth — Runtime Compliance for AI Agents","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}