{
"statusCode": 403,
"message": "Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].",
"error": true,
"url": "https://api.zebratruth.ai/v1/compliance/check",
"statusMessage": "Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu]."
}
Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today.
Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls.
Request formats. Accepts either application/json (imageUrls referencing publicly
accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use
when you don’t have a public URL handy). Total request body is capped at 4.5 MB.
Per-jurisdiction citations. Citations on returned checks are composed from the laws
applicable to the jurisdictions you requested AND the platform policies for the platforms
you requested. A restricted-category detection with jurisdictions: ["us"] cites the
federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: ["eu", "uk"]
cites European directives and UK codes. Adding platforms: ["facebook", "tiktok"] appends
the corresponding platform-policy references.
Check statuses. Stock watermarks and high-severity restricted categories return
status: "block"; brand logos, medium-severity restricted categories, and medium-confidence
content-safety signals return status: "flag" (review). See the Image Rights Clearance
guide for the full matrix.
Tenant scoping. Every request is scoped to your account’s subscribed jurisdictions
and platforms. Requesting a jurisdiction or platform outside that set returns 403. See
the Tenant Onboarding and Scoping guide.
{
"statusCode": 403,
"message": "Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].",
"error": true,
"url": "https://api.zebratruth.ai/v1/compliance/check",
"statusMessage": "Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu]."
}
Unique request identifier to prevent duplicate execution and double-charging.
Generate a new UUID for each distinct request. Reuse the same key to safely retry.
Body
application/jsonmultipart/form-data
Image checks do not run the financial-services specialists. Sending reviewScopes or
contentKind returns 400 review_scope_not_enabled.
{"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/compliance/check-image-rights","slug":"/api-reference/compliance/check-image-rights","pageMetadata":{"title":"Check image rights","description":"Dedicated image rights clearance. Checks for:\n\n- **Restricted-category content** — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the [Restricted Categories guide](/guides/restricted-categories) for the full catalog.\n- **Content safety (ZebraSafety)** — adult / violence / racy / medical likelihood signals. Tiered: `(high confidence)` → `status: \"block\"`; `(medium confidence)` → `status: \"flag\"`.\n- **Brand logo \u0026 stock-agency watermark detection** — trademarks and unlicensed-stock indicators.\n- **C2PA / IPTC metadata** — Content Credentials, provenance, AI generation markers.\n- **Known-person likeness** — right-of-publicity flag. *Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today.*\n\nUse this for image-only checks. For combined text + image checks, use `/compliance/check` with `content.imageUrls`.\n\n**Request formats.** Accepts either `application/json` (`imageUrls` referencing publicly\naccessible URLs) or `multipart/form-data` (upload up to 2 image binaries directly — use\nwhen you don't have a public URL handy). Total request body is capped at 4.5 MB.\n\n**Per-jurisdiction citations.** Citations on returned checks are composed from the laws\napplicable to the jurisdictions you requested AND the platform policies for the platforms\nyou requested. A restricted-category detection with `jurisdictions: [\"us\"]` cites the\nfederal regulator (e.g. FTC, FDA, SEC); the same detection with `jurisdictions: [\"eu\", \"uk\"]`\ncites European directives and UK codes. Adding `platforms: [\"facebook\", \"tiktok\"]` appends\nthe corresponding platform-policy references.\n\n**Check statuses.** Stock watermarks and high-severity restricted categories return\n`status: \"block\"`; brand logos, medium-severity restricted categories, and medium-confidence\ncontent-safety signals return `status: \"flag\"` (review). See the [Image Rights Clearance\nguide](/guides/image-rights-clearance) for the full matrix.\n\n**Tenant scoping.** Every request is scoped to your account's subscribed jurisdictions\nand platforms. Requesting a jurisdiction or platform outside that set returns 403. See\nthe [Tenant Onboarding and Scoping guide](/guides/tenant-onboarding-and-scoping).\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/check-image","href":"/api-reference/compliance/check-image-rights","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 a: \"a\",\n code: \"code\",\n em: \"em\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Dedicated image rights clearance. Checks for:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Restricted-category content\"\n }), \" — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the \", _jsx(_components.a, {\n href: \"/guides/restricted-categories\",\n children: \"Restricted Categories guide\"\n }), \" for the full catalog.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Content safety (ZebraSafety)\"\n }), \" — adult / violence / racy / medical likelihood signals. Tiered: \", _jsx(_components.code, {\n children: \"(high confidence)\"\n }), \" → \", _jsx(_components.code, {\n children: \"status: \\\"block\\\"\"\n }), \"; \", _jsx(_components.code, {\n children: \"(medium confidence)\"\n }), \" → \", _jsx(_components.code, {\n children: \"status: \\\"flag\\\"\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Brand logo \u0026 stock-agency watermark detection\"\n }), \" — trademarks and unlicensed-stock indicators.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"C2PA / IPTC metadata\"\n }), \" — Content Credentials, provenance, AI generation markers.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Known-person likeness\"\n }), \" — right-of-publicity flag. \", _jsx(_components.em, {\n children: \"Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today.\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use this for image-only checks. For combined text + image checks, use \", _jsx(_components.code, {\n children: \"/compliance/check\"\n }), \" with \", _jsx(_components.code, {\n children: \"content.imageUrls\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Request formats.\"\n }), \" Accepts either \", _jsx(_components.code, {\n children: \"application/json\"\n }), \" (\", _jsx(_components.code, {\n children: \"imageUrls\"\n }), \" referencing publicly\\naccessible URLs) or \", _jsx(_components.code, {\n children: \"multipart/form-data\"\n }), \" (upload up to 2 image binaries directly — use\\nwhen you don’t have a public URL handy). Total request body is capped at 4.5 MB.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Per-jurisdiction citations.\"\n }), \" Citations on returned checks are composed from the laws\\napplicable to the jurisdictions you requested AND the platform policies for the platforms\\nyou requested. A restricted-category detection with \", _jsx(_components.code, {\n children: \"jurisdictions: [\\\"us\\\"]\"\n }), \" cites the\\nfederal regulator (e.g. FTC, FDA, SEC); the same detection with \", _jsx(_components.code, {\n children: \"jurisdictions: [\\\"eu\\\", \\\"uk\\\"]\"\n }), \"\\ncites European directives and UK codes. Adding \", _jsx(_components.code, {\n children: \"platforms: [\\\"facebook\\\", \\\"tiktok\\\"]\"\n }), \" appends\\nthe corresponding platform-policy references.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Check statuses.\"\n }), \" Stock watermarks and high-severity restricted categories return\\n\", _jsx(_components.code, {\n children: \"status: \\\"block\\\"\"\n }), \"; brand logos, medium-severity restricted categories, and medium-confidence\\ncontent-safety signals return \", _jsx(_components.code, {\n children: \"status: \\\"flag\\\"\"\n }), \" (review). See the \", _jsx(_components.a, {\n href: \"/guides/image-rights-clearance\",\n children: \"Image Rights Clearance\\nguide\"\n }), \" for the full matrix.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Tenant scoping.\"\n }), \" Every request is scoped to your account’s subscribed jurisdictions\\nand platforms. Requesting a jurisdiction or platform outside that set returns 403. See\\nthe \", _jsx(_components.a, {\n href: \"/guides/tenant-onboarding-and-scoping\",\n children: \"Tenant Onboarding and Scoping guide\"\n }), \".\"]\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":"Check image rights","description":"Dedicated image rights clearance. Checks for:\n\n- **Restricted-category content** — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the [Restricted Categories guide](/guides/restricted-categories) for the full catalog.\n- **Content safety (ZebraSafety)** — adult / violence / racy / medical likelihood signals. Tiered: `(high confidence)` → `status: \"block\"`; `(medium confidence)` → `status: \"flag\"`.\n- **Brand logo \u0026 stock-agency watermark detection** — trademarks and unlicensed-stock indicators.\n- **C2PA / IPTC metadata** — Content Credentials, provenance, AI generation markers.\n- **Known-person likeness** — right-of-publicity flag. *Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today.*\n\nUse this for image-only checks. For combined text + image checks, use `/compliance/check` with `content.imageUrls`.\n\n**Request formats.** Accepts either `application/json` (`imageUrls` referencing publicly\naccessible URLs) or `multipart/form-data` (upload up to 2 image binaries directly — use\nwhen you don't have a public URL handy). Total request body is capped at 4.5 MB.\n\n**Per-jurisdiction citations.** Citations on returned checks are composed from the laws\napplicable to the jurisdictions you requested AND the platform policies for the platforms\nyou requested. A restricted-category detection with `jurisdictions: [\"us\"]` cites the\nfederal regulator (e.g. FTC, FDA, SEC); the same detection with `jurisdictions: [\"eu\", \"uk\"]`\ncites European directives and UK codes. Adding `platforms: [\"facebook\", \"tiktok\"]` appends\nthe corresponding platform-policy references.\n\n**Check statuses.** Stock watermarks and high-severity restricted categories return\n`status: \"block\"`; brand logos, medium-severity restricted categories, and medium-confidence\ncontent-safety signals return `status: \"flag\"` (review). See the [Image Rights Clearance\nguide](/guides/image-rights-clearance) for the full matrix.\n\n**Tenant scoping.** Every request is scoped to your account's subscribed jurisdictions\nand platforms. Requesting a jurisdiction or platform outside that set returns 403. See\nthe [Tenant Onboarding and Scoping guide](/guides/tenant-onboarding-and-scoping).\n","deprecated":null,"version":null,"openapi":"/openapi/zebratruth-v1.yaml post /compliance/check-image","href":"/api-reference/compliance/check-image-rights","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"checkImage","summary":"Check image rights","description":"Dedicated image rights clearance. Checks for:\n\n- **Restricted-category content** — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the [Restricted Categories guide](/guides/restricted-categories) for the full catalog.\n- **Content safety (ZebraSafety)** — adult / violence / racy / medical likelihood signals. Tiered: `(high confidence)` → `status: \"block\"`; `(medium confidence)` → `status: \"flag\"`.\n- **Brand logo \u0026 stock-agency watermark detection** — trademarks and unlicensed-stock indicators.\n- **C2PA / IPTC metadata** — Content Credentials, provenance, AI generation markers.\n- **Known-person likeness** — right-of-publicity flag. *Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today.*\n\nUse this for image-only checks. For combined text + image checks, use `/compliance/check` with `content.imageUrls`.\n\n**Request formats.** Accepts either `application/json` (`imageUrls` referencing publicly\naccessible URLs) or `multipart/form-data` (upload up to 2 image binaries directly — use\nwhen you don't have a public URL handy). Total request body is capped at 4.5 MB.\n\n**Per-jurisdiction citations.** Citations on returned checks are composed from the laws\napplicable to the jurisdictions you requested AND the platform policies for the platforms\nyou requested. A restricted-category detection with `jurisdictions: [\"us\"]` cites the\nfederal regulator (e.g. FTC, FDA, SEC); the same detection with `jurisdictions: [\"eu\", \"uk\"]`\ncites European directives and UK codes. Adding `platforms: [\"facebook\", \"tiktok\"]` appends\nthe corresponding platform-policy references.\n\n**Check statuses.** Stock watermarks and high-severity restricted categories return\n`status: \"block\"`; brand logos, medium-severity restricted categories, and medium-confidence\ncontent-safety signals return `status: \"flag\"` (review). See the [Image Rights Clearance\nguide](/guides/image-rights-clearance) for the full matrix.\n\n**Tenant scoping.** Every request is scoped to your account's subscribed jurisdictions\nand platforms. Requesting a jurisdiction or platform outside that set returns 403. See\nthe [Tenant Onboarding and Scoping guide](/guides/tenant-onboarding-and-scoping).\n","tags":["Compliance"],"parameters":["4dfb4335-4e85-4107-87e7-1e04dc06fca0"],"requestBody":"a41d141c-89a5-4eae-8b5f-3c7cac6b8e5e","responses":{"200":"8fb47cf7-da53-4cc1-b73e-9bbc8d549374","400":"2701aef8-2bee-4cdf-a7ef-30996653a4ef","401":"2863130b-4164-4dd2-b976-6063a087e5f1","402":"ecef6264-ce51-4f3c-a670-30cc6b99d70f","403":"7ffc38af-c3dd-42e7-bc5c-fadbe71c7233","429":"c4972330-3f9f-4d59-b5ac-9f71f8e694bb"},"method":"post","type":"path","servers":["e4860b08-abe2-46de-8ff2-cf13ac5f2eef"],"security":["2150c869-c80e-45b2-aa80-21ce646b4401"],"path":"/compliance/check-image","baseUrlOptions":["https://api.zebratruth.ai/v1"],"title":"Check image rights","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4dfb4335-4e85-4107-87e7-1e04dc06fca0":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Unique request identifier to prevent duplicate execution and double-charging.\nGenerate a new UUID for each distinct request. Reuse the same key to safely retry.\n","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Unique request identifier to prevent duplicate execution and double-charging.\nGenerate a new UUID for each distinct request. Reuse the same key to safely retry.\n"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Image checks do not run the financial-services specialists. Sending `reviewScopes` or\n`contentKind` returns 400 `review_scope_not_enabled`.\n","required":["imageUrls","jurisdictions","platforms"],"properties":{"imageUrls":{"type":"array","items":{"type":"string","format":"uri","uniqueKey":"imageUrls.items.[INDEX]","typeLabel":"string\u003curi>"},"maxItems":2,"description":"Image URLs to check (max 2 per request)","isRequired":true,"uniqueKey":"imageUrls","typeLabel":"string\u003curi>[]"},"jurisdictions":{"type":"array","items":{"type":"string","enum":["us","eu","uk","india","china"],"uniqueKey":"jurisdictions.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"jurisdictions","typeLabel":"enum\u003cstring>[]"},"platforms":{"type":"array","items":{"type":"string","enum":["youtube","instagram","facebook","tiktok","linkedin"],"uniqueKey":"platforms.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"platforms","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"imageUrls":["\u003cstring>"],"jurisdictions":[],"platforms":[]}}},"exampleType":"generated"},"multipart/form-data":{"schema":{"type":"object","description":"Flat-field multipart form for uploading image binaries directly. At least one\n`image` part is required; maximum of 2. Total request body is capped at 4.5 MB.\n","required":["image","jurisdictions","platforms"],"properties":{"image":{"type":"array","minItems":1,"maxItems":2,"description":"Image binary, 1 or 2 parts. Repeat the `image` field for each file\n(e.g., `-F \"image=@ad-1.png\" -F \"image=@ad-2.png\"`).\n","items":{"type":"string","format":"binary","uniqueKey":"image.items.[INDEX]","typeLabel":"file"},"isRequired":true,"uniqueKey":"image","typeLabel":"file[]"},"jurisdictions":{"type":"array","description":"Send as repeated fields — `-F \"jurisdictions=us\" -F \"jurisdictions=eu\"`","items":{"type":"string","enum":["us","eu","uk","india","china"],"uniqueKey":"jurisdictions.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"jurisdictions","typeLabel":"enum\u003cstring>[]"},"platforms":{"type":"array","description":"Send as repeated fields — `-F \"platforms=youtube\" -F \"platforms=instagram\"`","items":{"type":"string","enum":["youtube","instagram","facebook","tiktok","linkedin"],"uniqueKey":"platforms.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"platforms","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"","typeLabel":"object"},"encoding":{"image":{"contentType":"image/png, image/jpeg, image/webp, image/gif"}},"examples":{"Example":{"title":"Example","value":{"image":["\u003cstring>"],"jurisdictions":[],"platforms":[]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"8fb47cf7-da53-4cc1-b73e-9bbc8d549374":{"description":"Image compliance results","content":{"application/json":{"schema":{"type":"object","properties":{"checks":{"type":"array","description":"All compliance checks emitted for the image(s). Each carries status, severity, message, recommendation, and citation.","items":{"type":"object","description":"A single compliance finding. Includes both the raw finding fields\n(checkName, severity, message, recommendation, citation) and structured\nclassification metadata added by the engine (id, jurisdictions, platforms,\nscope, primaryCategory, categories).\n","properties":{"id":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"checks.items.[INDEX].id","typeLabel":"string"},"agentId":{"type":"string","enum":["ai-laws","jurisdiction-detection","advertising-law","platform-policy","metadata-labeling","rights-clearance","rights-clearance-text","rights-clearance-image","compliance-score","fs-compliance-financial-promotion","fs-compliance-advisory-suitability","fs-compliance-credit-servicing","fs-compliance-markets-trading","fs-compliance-financial-crime","fs-compliance-ai-governance","financial-services-compliance","pharma-healthcare-compliance"],"description":"Agent identifier. Use `GET /agents` to discover all available agents dynamically.\nThe list is filtered to the industries your workspace has selected.\n\n**Financial services.** The six `fs-compliance-*` agents correspond one-to-one to the\nreview scopes (`financial_promotion` → `fs-compliance-financial-promotion`, and so on).\nIn a full check they are selected with `reviewScopes`. Via `POST /agents/{agentId}`\nonly `fs-compliance-financial-promotion` can be invoked directly today; the other five\nreturn 400 `review_scope_not_enabled` on direct invocation and must run through\n`POST /compliance/check`. `financial-services-compliance` is a read-only alias of\n`fs-compliance-financial-promotion` accepted for older clients.\n\n**Pharma and healthcare.** `pharma-healthcare-compliance` runs for workspaces on the\n`pharma_healthcare` industry and honours `regulatedActor`.\n\n`ai-laws` is the canonical id; `jurisdiction-detection` is accepted as an\ninput alias for backward compatibility with historical clients. New\nintegrations should use `ai-laws`.\n\n**Note on rights-clearance variants.** `GET /agents` exposes two registered agents\nfor rights clearance: `rights-clearance-text` and `rights-clearance-image` — invoke\nthem via `POST /agents/{agentId}` using those qualified IDs. On **check response\nobjects**, however, text rights-clearance findings carry the bare `agentId:\n\"rights-clearance\"`. Treat bare `rights-clearance` and `rights-clearance-text` as\nthe same logical pipeline — the bare form is the value that appears on `checks[]`\nentries from that agent.\n","uniqueKey":"checks.items.[INDEX].agentId","typeLabel":"enum\u003cstring>"},"checkName":{"type":"string","description":"Human-readable check name","example":"Unsubstantiated Health Claim - 'Cure Cancer'","uniqueKey":"checks.items.[INDEX].checkName","typeLabel":"string"},"status":{"type":"string","enum":["pass","flag","block","escalate"],"description":"- `pass` — No issue found\n- `flag` — Issue found, review recommended\n- `block` — Critical issue, must fix\n- `escalate` — Needs human review\n","uniqueKey":"checks.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"severity":{"type":"string","enum":["critical","high","medium","low","info"],"description":"- `critical` — Legal liability risk (-25 points)\n- `high` — Likely violation (-15 points)\n- `medium` — Potential issue (-8 points)\n- `low` — Minor concern (-3 points)\n- `info` — Informational only (0 points)\n","uniqueKey":"checks.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable description of the issue","example":"'Guaranteed to cure cancer' is an unsubstantiated health claim under FTC and EU UCPD.","uniqueKey":"checks.items.[INDEX].message","typeLabel":"string"},"recommendation":{"type":"string","description":"Specific action to fix the issue","example":"Remove the guarantee or substantiate with peer-reviewed clinical evidence.","uniqueKey":"checks.items.[INDEX].recommendation","typeLabel":"string"},"citation":{"type":"string","description":"Legal or policy reference","example":"FTC Endorsement Guides, 16 CFR Part 255","uniqueKey":"checks.items.[INDEX].citation","typeLabel":"string"},"metadata":{"type":"string","description":"Optional JSON string with agent-specific data","uniqueKey":"checks.items.[INDEX].metadata","typeLabel":"string"},"jurisdictions":{"type":"array","items":{"type":"string","uniqueKey":"checks.items.[INDEX].jurisdictions.items.[INDEX]","typeLabel":"string"},"description":"Canonical jurisdiction codes (us, eu, uk, india, china) this check\napplies to. May be empty when `scope` is `global` or `platform-specific`.\nAlways a subset of the request's jurisdiction list.\n","example":["us","eu"],"uniqueKey":"checks.items.[INDEX].jurisdictions","typeLabel":"string[]"},"platforms":{"type":"array","items":{"type":"string","uniqueKey":"checks.items.[INDEX].platforms.items.[INDEX]","typeLabel":"string"},"description":"Canonical platform codes (youtube, instagram, facebook, tiktok, linkedin)\nthis check applies to. May be empty when `scope` is `global` or\n`jurisdiction-specific`. Always a subset of the request's platform list.\n","example":["youtube","instagram"],"uniqueKey":"checks.items.[INDEX].platforms","typeLabel":"string[]"},"scope":{"type":"string","enum":["global","jurisdiction-specific","platform-specific","cross-cutting"],"description":"Disambiguates the empty-array case for `jurisdictions` and `platforms`:\n- `global` — universal; both arrays empty\n- `jurisdiction-specific` — jurisdictions populated, platforms empty\n- `platform-specific` — platforms populated, jurisdictions empty\n- `cross-cutting` — both populated; check applies at the intersection\n","uniqueKey":"checks.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"primaryCategory":{"type":"string","enum":["celebrity-endorsement","expert-authority","fabricated-testimonial","material-connection-disclosure","unsubstantiated-health-claim","medical-efficacy-claim","safety-claim","performance-claim","comparative-advertising","right-of-publicity","trademark-infringement","copyright-infringement","music-licensing","ai-disclosure-missing","watermark-missing","c2pa-missing","deepfake-impersonation","disguised-advertising","sponsored-content-labeling","consumer-information-disclosure","scarcity-urgency","aggressive-practice","algorithmic-amplification","minor-targeting","vulnerable-audience","platform-policy-violation","data-privacy","jurisdiction-coverage-gap","other"],"description":"Top-level breach taxonomy. New categories may be added in minor versions\n(additive only); renaming and removal are forbidden. Clients MUST accept\nunknown enum values gracefully (forward-compat). `other` is the fallback\nbucket for findings that don't fit any specific category.\n","uniqueKey":"checks.items.[INDEX].primaryCategory","typeLabel":"enum\u003cstring>"},"categories":{"type":"array","minItems":1,"items":{"type":"string","enum":["celebrity-endorsement","expert-authority","fabricated-testimonial","material-connection-disclosure","unsubstantiated-health-claim","medical-efficacy-claim","safety-claim","performance-claim","comparative-advertising","right-of-publicity","trademark-infringement","copyright-infringement","music-licensing","ai-disclosure-missing","watermark-missing","c2pa-missing","deepfake-impersonation","disguised-advertising","sponsored-content-labeling","consumer-information-disclosure","scarcity-urgency","aggressive-practice","algorithmic-amplification","minor-targeting","vulnerable-audience","platform-policy-violation","data-privacy","jurisdiction-coverage-gap","other"],"description":"Top-level breach taxonomy. New categories may be added in minor versions\n(additive only); renaming and removal are forbidden. Clients MUST accept\nunknown enum values gracefully (forward-compat). `other` is the fallback\nbucket for findings that don't fit any specific category.\n","uniqueKey":"checks.items.[INDEX].categories.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"All matched categories, with `primaryCategory` first. A finding may\napply to multiple categories (e.g. a deepfake celebrity check matches\nboth `deepfake-impersonation` and `right-of-publicity`).\n","example":["unsubstantiated-health-claim","performance-claim"],"uniqueKey":"checks.items.[INDEX].categories","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"checks.items.[INDEX]","typeLabel":"object"},"uniqueKey":"checks","typeLabel":"object[]"},"checksById":{"type":"object","description":"Same checks keyed by `id` for direct lookup.","additionalProperties":{"type":"object","description":"A single compliance finding. Includes both the raw finding fields\n(checkName, severity, message, recommendation, citation) and structured\nclassification metadata added by the engine (id, jurisdictions, platforms,\nscope, primaryCategory, categories).\n","properties":{"id":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"checksById.additionalProperties.id","typeLabel":"string"},"agentId":{"type":"string","enum":["ai-laws","jurisdiction-detection","advertising-law","platform-policy","metadata-labeling","rights-clearance","rights-clearance-text","rights-clearance-image","compliance-score","fs-compliance-financial-promotion","fs-compliance-advisory-suitability","fs-compliance-credit-servicing","fs-compliance-markets-trading","fs-compliance-financial-crime","fs-compliance-ai-governance","financial-services-compliance","pharma-healthcare-compliance"],"description":"Agent identifier. Use `GET /agents` to discover all available agents dynamically.\nThe list is filtered to the industries your workspace has selected.\n\n**Financial services.** The six `fs-compliance-*` agents correspond one-to-one to the\nreview scopes (`financial_promotion` → `fs-compliance-financial-promotion`, and so on).\nIn a full check they are selected with `reviewScopes`. Via `POST /agents/{agentId}`\nonly `fs-compliance-financial-promotion` can be invoked directly today; the other five\nreturn 400 `review_scope_not_enabled` on direct invocation and must run through\n`POST /compliance/check`. `financial-services-compliance` is a read-only alias of\n`fs-compliance-financial-promotion` accepted for older clients.\n\n**Pharma and healthcare.** `pharma-healthcare-compliance` runs for workspaces on the\n`pharma_healthcare` industry and honours `regulatedActor`.\n\n`ai-laws` is the canonical id; `jurisdiction-detection` is accepted as an\ninput alias for backward compatibility with historical clients. New\nintegrations should use `ai-laws`.\n\n**Note on rights-clearance variants.** `GET /agents` exposes two registered agents\nfor rights clearance: `rights-clearance-text` and `rights-clearance-image` — invoke\nthem via `POST /agents/{agentId}` using those qualified IDs. On **check response\nobjects**, however, text rights-clearance findings carry the bare `agentId:\n\"rights-clearance\"`. Treat bare `rights-clearance` and `rights-clearance-text` as\nthe same logical pipeline — the bare form is the value that appears on `checks[]`\nentries from that agent.\n","uniqueKey":"checksById.additionalProperties.agentId","typeLabel":"enum\u003cstring>"},"checkName":{"type":"string","description":"Human-readable check name","example":"Unsubstantiated Health Claim - 'Cure Cancer'","uniqueKey":"checksById.additionalProperties.checkName","typeLabel":"string"},"status":{"type":"string","enum":["pass","flag","block","escalate"],"description":"- `pass` — No issue found\n- `flag` — Issue found, review recommended\n- `block` — Critical issue, must fix\n- `escalate` — Needs human review\n","uniqueKey":"checksById.additionalProperties.status","typeLabel":"enum\u003cstring>"},"severity":{"type":"string","enum":["critical","high","medium","low","info"],"description":"- `critical` — Legal liability risk (-25 points)\n- `high` — Likely violation (-15 points)\n- `medium` — Potential issue (-8 points)\n- `low` — Minor concern (-3 points)\n- `info` — Informational only (0 points)\n","uniqueKey":"checksById.additionalProperties.severity","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable description of the issue","example":"'Guaranteed to cure cancer' is an unsubstantiated health claim under FTC and EU UCPD.","uniqueKey":"checksById.additionalProperties.message","typeLabel":"string"},"recommendation":{"type":"string","description":"Specific action to fix the issue","example":"Remove the guarantee or substantiate with peer-reviewed clinical evidence.","uniqueKey":"checksById.additionalProperties.recommendation","typeLabel":"string"},"citation":{"type":"string","description":"Legal or policy reference","example":"FTC Endorsement Guides, 16 CFR Part 255","uniqueKey":"checksById.additionalProperties.citation","typeLabel":"string"},"metadata":{"type":"string","description":"Optional JSON string with agent-specific data","uniqueKey":"checksById.additionalProperties.metadata","typeLabel":"string"},"jurisdictions":{"type":"array","items":{"type":"string","uniqueKey":"checksById.additionalProperties.jurisdictions.items.[INDEX]","typeLabel":"string"},"description":"Canonical jurisdiction codes (us, eu, uk, india, china) this check\napplies to. May be empty when `scope` is `global` or `platform-specific`.\nAlways a subset of the request's jurisdiction list.\n","example":["us","eu"],"uniqueKey":"checksById.additionalProperties.jurisdictions","typeLabel":"string[]"},"platforms":{"type":"array","items":{"type":"string","uniqueKey":"checksById.additionalProperties.platforms.items.[INDEX]","typeLabel":"string"},"description":"Canonical platform codes (youtube, instagram, facebook, tiktok, linkedin)\nthis check applies to. May be empty when `scope` is `global` or\n`jurisdiction-specific`. Always a subset of the request's platform list.\n","example":["youtube","instagram"],"uniqueKey":"checksById.additionalProperties.platforms","typeLabel":"string[]"},"scope":{"type":"string","enum":["global","jurisdiction-specific","platform-specific","cross-cutting"],"description":"Disambiguates the empty-array case for `jurisdictions` and `platforms`:\n- `global` — universal; both arrays empty\n- `jurisdiction-specific` — jurisdictions populated, platforms empty\n- `platform-specific` — platforms populated, jurisdictions empty\n- `cross-cutting` — both populated; check applies at the intersection\n","uniqueKey":"checksById.additionalProperties.scope","typeLabel":"enum\u003cstring>"},"primaryCategory":{"type":"string","enum":["celebrity-endorsement","expert-authority","fabricated-testimonial","material-connection-disclosure","unsubstantiated-health-claim","medical-efficacy-claim","safety-claim","performance-claim","comparative-advertising","right-of-publicity","trademark-infringement","copyright-infringement","music-licensing","ai-disclosure-missing","watermark-missing","c2pa-missing","deepfake-impersonation","disguised-advertising","sponsored-content-labeling","consumer-information-disclosure","scarcity-urgency","aggressive-practice","algorithmic-amplification","minor-targeting","vulnerable-audience","platform-policy-violation","data-privacy","jurisdiction-coverage-gap","other"],"description":"Top-level breach taxonomy. New categories may be added in minor versions\n(additive only); renaming and removal are forbidden. Clients MUST accept\nunknown enum values gracefully (forward-compat). `other` is the fallback\nbucket for findings that don't fit any specific category.\n","uniqueKey":"checksById.additionalProperties.primaryCategory","typeLabel":"enum\u003cstring>"},"categories":{"type":"array","minItems":1,"items":{"type":"string","enum":["celebrity-endorsement","expert-authority","fabricated-testimonial","material-connection-disclosure","unsubstantiated-health-claim","medical-efficacy-claim","safety-claim","performance-claim","comparative-advertising","right-of-publicity","trademark-infringement","copyright-infringement","music-licensing","ai-disclosure-missing","watermark-missing","c2pa-missing","deepfake-impersonation","disguised-advertising","sponsored-content-labeling","consumer-information-disclosure","scarcity-urgency","aggressive-practice","algorithmic-amplification","minor-targeting","vulnerable-audience","platform-policy-violation","data-privacy","jurisdiction-coverage-gap","other"],"description":"Top-level breach taxonomy. New categories may be added in minor versions\n(additive only); renaming and removal are forbidden. Clients MUST accept\nunknown enum values gracefully (forward-compat). `other` is the fallback\nbucket for findings that don't fit any specific category.\n","uniqueKey":"checksById.additionalProperties.categories.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"All matched categories, with `primaryCategory` first. A finding may\napply to multiple categories (e.g. a deepfake celebrity check matches\nboth `deepfake-impersonation` and `right-of-publicity`).\n","example":["unsubstantiated-health-claim","performance-claim"],"uniqueKey":"checksById.additionalProperties.categories","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"checksById.additionalProperties","typeLabel":"object"},"uniqueKey":"checksById","typeLabel":"object"},"indexes":{"type":"object","description":"Inverted indexes (byStatus, bySeverity, byJurisdiction, byPlatform, byCategory) for convenient UI filtering.","properties":{"byJurisdiction":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byJurisdiction.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byJurisdiction.additionalProperties","typeLabel":"string[]"},"description":"Keyed by jurisdiction code (us, eu, uk, india, china).","uniqueKey":"indexes.byJurisdiction","typeLabel":"object"},"byPlatform":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byPlatform.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byPlatform.additionalProperties","typeLabel":"string[]"},"description":"Keyed by platform code (youtube, instagram, facebook, tiktok, linkedin).","uniqueKey":"indexes.byPlatform","typeLabel":"object"},"bySeverity":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.bySeverity.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.bySeverity.additionalProperties","typeLabel":"string[]"},"description":"Keyed by severity (info, low, medium, high, critical).","uniqueKey":"indexes.bySeverity","typeLabel":"object"},"byStatus":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byStatus.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byStatus.additionalProperties","typeLabel":"string[]"},"description":"Keyed by status (pass, flag, block, escalate).","uniqueKey":"indexes.byStatus","typeLabel":"object"},"byCategory":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byCategory.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byCategory.additionalProperties","typeLabel":"string[]"},"description":"Keyed by `primaryCategory` only — each check appears in exactly one bucket.","uniqueKey":"indexes.byCategory","typeLabel":"object"},"byCategoryAll":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byCategoryAll.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byCategoryAll.additionalProperties","typeLabel":"string[]"},"description":"Keyed by every category in `categories[]` — a check may appear in multiple buckets.","uniqueKey":"indexes.byCategoryAll","typeLabel":"object"},"byAgent":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"indexes.byAgent.additionalProperties.items.[INDEX]","typeLabel":"string"},"uniqueKey":"indexes.byAgent.additionalProperties","typeLabel":"string[]"},"description":"Keyed by agentId.","uniqueKey":"indexes.byAgent","typeLabel":"object"}},"uniqueKey":"indexes","typeLabel":"object"},"annotations":{"type":"array","description":"image-region annotations with bounding boxes for detected elements, when the underlying detection produces one.","items":{"type":"object","required":["type","agentId","severity","message"],"properties":{"type":{"type":"string","enum":["text-span","timeline","image-region","global"],"isRequired":true,"uniqueKey":"annotations.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"agentId":{"type":"string","enum":["ai-laws","jurisdiction-detection","advertising-law","platform-policy","metadata-labeling","rights-clearance","rights-clearance-text","rights-clearance-image","compliance-score","fs-compliance-financial-promotion","fs-compliance-advisory-suitability","fs-compliance-credit-servicing","fs-compliance-markets-trading","fs-compliance-financial-crime","fs-compliance-ai-governance","financial-services-compliance","pharma-healthcare-compliance"],"description":"Agent identifier. Use `GET /agents` to discover all available agents dynamically.\nThe list is filtered to the industries your workspace has selected.\n\n**Financial services.** The six `fs-compliance-*` agents correspond one-to-one to the\nreview scopes (`financial_promotion` → `fs-compliance-financial-promotion`, and so on).\nIn a full check they are selected with `reviewScopes`. Via `POST /agents/{agentId}`\nonly `fs-compliance-financial-promotion` can be invoked directly today; the other five\nreturn 400 `review_scope_not_enabled` on direct invocation and must run through\n`POST /compliance/check`. `financial-services-compliance` is a read-only alias of\n`fs-compliance-financial-promotion` accepted for older clients.\n\n**Pharma and healthcare.** `pharma-healthcare-compliance` runs for workspaces on the\n`pharma_healthcare` industry and honours `regulatedActor`.\n\n`ai-laws` is the canonical id; `jurisdiction-detection` is accepted as an\ninput alias for backward compatibility with historical clients. New\nintegrations should use `ai-laws`.\n\n**Note on rights-clearance variants.** `GET /agents` exposes two registered agents\nfor rights clearance: `rights-clearance-text` and `rights-clearance-image` — invoke\nthem via `POST /agents/{agentId}` using those qualified IDs. On **check response\nobjects**, however, text rights-clearance findings carry the bare `agentId:\n\"rights-clearance\"`. Treat bare `rights-clearance` and `rights-clearance-text` as\nthe same logical pipeline — the bare form is the value that appears on `checks[]`\nentries from that agent.\n","isRequired":true,"uniqueKey":"annotations.items.[INDEX].agentId","typeLabel":"enum\u003cstring>"},"severity":{"type":"string","enum":["critical","high","medium","low","info"],"description":"- `critical` — Legal liability risk (-25 points)\n- `high` — Likely violation (-15 points)\n- `medium` — Potential issue (-8 points)\n- `low` — Minor concern (-3 points)\n- `info` — Informational only (0 points)\n","isRequired":true,"uniqueKey":"annotations.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"'Guaranteed results' may violate FTC endorsement guides","isRequired":true,"uniqueKey":"annotations.items.[INDEX].message","typeLabel":"string"},"checkRef":{"type":"string","description":"DEPRECATED. Legacy link to `ComplianceCheck.checkName`. Use `checkId`\ninstead — it's a stable hash that survives prompt wording changes.\nRetained for backward compatibility; will be removed in a future\nmajor version.\n","uniqueKey":"annotations.items.[INDEX].checkRef","typeLabel":"string"},"checkId":{"type":"string","pattern":"^chk_[0-9a-f]{8}$","description":"Stable check identifier. Format: `chk_\u003c8 lowercase hex>`. Generated as a\nSHA-256 hash of (agentId, checkName, citation, sorted jurisdictions,\nsorted platforms, primaryCategory) — stable across reruns of identical\ncontent + scope + engine version. NOT stable across taxonomy\nreclassifications (primaryCategory change) or content/scope changes.\n","example":"chk_a1b2c3d4","uniqueKey":"annotations.items.[INDEX].checkId","typeLabel":"string"},"suggestion":{"type":"string","description":"Actionable fix","example":"Consider 'may help' instead of 'guaranteed'","uniqueKey":"annotations.items.[INDEX].suggestion","typeLabel":"string"},"textLocation":{"type":"object","description":"For text-span annotations","properties":{"start":{"type":"integer","description":"Character offset (0-indexed)","example":120,"uniqueKey":"annotations.items.[INDEX].textLocation.start","typeLabel":"integer"},"end":{"type":"integer","example":138,"uniqueKey":"annotations.items.[INDEX].textLocation.end","typeLabel":"integer"},"matchedText":{"type":"string","example":"guaranteed results","uniqueKey":"annotations.items.[INDEX].textLocation.matchedText","typeLabel":"string"}},"uniqueKey":"annotations.items.[INDEX].textLocation","typeLabel":"object"},"timelineLocation":{"type":"object","description":"For timeline annotations (video)","properties":{"startMs":{"type":"integer","example":15000,"uniqueKey":"annotations.items.[INDEX].timelineLocation.startMs","typeLabel":"integer"},"endMs":{"type":"integer","example":28000,"uniqueKey":"annotations.items.[INDEX].timelineLocation.endMs","typeLabel":"integer"},"track":{"type":"string","enum":["audio","video","subtitle"],"uniqueKey":"annotations.items.[INDEX].timelineLocation.track","typeLabel":"enum\u003cstring>"}},"uniqueKey":"annotations.items.[INDEX].timelineLocation","typeLabel":"object"},"imageLocation":{"type":"object","description":"For image-region annotations","properties":{"imageUrl":{"type":"string","format":"uri","uniqueKey":"annotations.items.[INDEX].imageLocation.imageUrl","typeLabel":"string\u003curi>"},"boundingBox":{"type":"object","properties":{"x":{"type":"number","uniqueKey":"annotations.items.[INDEX].imageLocation.boundingBox.x","typeLabel":"number"},"y":{"type":"number","uniqueKey":"annotations.items.[INDEX].imageLocation.boundingBox.y","typeLabel":"number"},"width":{"type":"number","uniqueKey":"annotations.items.[INDEX].imageLocation.boundingBox.width","typeLabel":"number"},"height":{"type":"number","uniqueKey":"annotations.items.[INDEX].imageLocation.boundingBox.height","typeLabel":"number"}},"uniqueKey":"annotations.items.[INDEX].imageLocation.boundingBox","typeLabel":"object"}},"uniqueKey":"annotations.items.[INDEX].imageLocation","typeLabel":"object"}},"uniqueKey":"annotations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"annotations","typeLabel":"object[]"},"decision":{"type":"string","enum":["PUBLISH","HOLD","BLOCK"],"description":"Canonical compliance decision aggregated from check severities:\n- `PUBLISH` — clean (green light)\n- `HOLD` — review needed (yellow light)\n- `BLOCK` — do not publish (red light)\n","example":"BLOCK","uniqueKey":"decision","typeLabel":"enum\u003cstring>"},"score":{"type":"number","minimum":0,"maximum":100,"description":"Compliance score (0–100, higher is better). Driven by aggregated check severities. Below 50 typically maps to `BLOCK`.","example":22,"uniqueKey":"score","typeLabel":"number"},"cached":{"type":"boolean","description":"Whether the result came from the request cache (identical inputs within the cache window).","example":false,"uniqueKey":"cached","typeLabel":"boolean"},"creditsCharged":{"type":"number","description":"Credits debited from the tenant balance for this request. Scales linearly with `imageCount`.","uniqueKey":"creditsCharged","typeLabel":"number"},"costBreakdown":{"type":"object","properties":{"totalCredits":{"type":"number","uniqueKey":"costBreakdown.totalCredits","typeLabel":"number"},"agents":{"type":"array","items":{"type":"object","properties":{"agent":{"type":"string","example":"jurisdiction","uniqueKey":"costBreakdown.agents.items.[INDEX].agent","typeLabel":"string"},"stage":{"type":"string","enum":["A","B","C"],"description":"Pipeline stage — the agent's work is decomposed into three sub-steps:\n- **A** — Legal research (retrieves applicable law; cacheable with a 30-day TTL)\n- **B** — Risk interpretation (maps law to content-specific risk)\n- **C** — Compliance composition (writes structured output)\n","uniqueKey":"costBreakdown.agents.items.[INDEX].stage","typeLabel":"enum\u003cstring>"},"credits":{"type":"number","uniqueKey":"costBreakdown.agents.items.[INDEX].credits","typeLabel":"number"},"cached":{"type":"boolean","description":"Whether the research cache was used","example":false,"uniqueKey":"costBreakdown.agents.items.[INDEX].cached","typeLabel":"boolean"}},"uniqueKey":"costBreakdown.agents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"costBreakdown.agents","typeLabel":"object[]"}},"description":"Per-agent credit + latency breakdown.","uniqueKey":"costBreakdown","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"checks":[{"id":"chk_a1b2c3d4","agentId":"ai-laws","checkName":"Unsubstantiated Health Claim - 'Cure Cancer'","status":"pass","severity":"critical","message":"'Guaranteed to cure cancer' is an unsubstantiated health claim under FTC and EU UCPD.","recommendation":"Remove the guarantee or substantiate with peer-reviewed clinical evidence.","citation":"FTC Endorsement Guides, 16 CFR Part 255","metadata":"\u003cstring>","jurisdictions":["us","eu"],"platforms":["youtube","instagram"],"scope":"global","primaryCategory":"celebrity-endorsement","categories":["unsubstantiated-health-claim","performance-claim"]}],"checksById":{},"indexes":{"byJurisdiction":{},"byPlatform":{},"bySeverity":{},"byStatus":{},"byCategory":{},"byCategoryAll":{},"byAgent":{}},"annotations":[{"type":"text-span","agentId":"ai-laws","severity":"critical","message":"'Guaranteed results' may violate FTC endorsement guides","checkRef":"\u003cstring>","checkId":"chk_a1b2c3d4","suggestion":"Consider 'may help' instead of 'guaranteed'","textLocation":{"start":120,"end":138,"matchedText":"guaranteed results"},"timelineLocation":{"startMs":15000,"endMs":28000,"track":"audio"},"imageLocation":{"imageUrl":"\u003cstring>","boundingBox":{"x":123,"y":123,"width":123,"height":123}}}],"decision":"BLOCK","score":22,"cached":false,"creditsCharged":123,"costBreakdown":{"totalCredits":123,"agents":[{"agent":"jurisdiction","stage":"A","credits":123,"cached":false}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"2701aef8-2bee-4cdf-a7ef-30996653a4ef":{"description":"Request body failed validation. Standard error envelope. The\n`message` field describes what's wrong (typically a Zod validation error\nmessage listing the offending fields).\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope.","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","example":400,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Canonical human-readable reason. For Zod failures, lists each invalid field.","example":"jurisdictions: Required, platforms: Required","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":"jurisdictions: Required, platforms: Required","uniqueKey":"statusMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":400,"message":"jurisdictions: Required, platforms: Required","error":true,"url":"\u003cstring>","statusMessage":"jurisdictions: Required, platforms: Required"}}},"exampleType":"generated"}},"exampleType":"generated"},"2863130b-4164-4dd2-b976-6063a087e5f1":{"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"},"ecef6264-ce51-4f3c-a670-30cc6b99d70f":{"description":"Not enough credits in the tenant's current period to process this request.\nStandard error envelope plus a `data` object with credit specifics\nand an upgrade URL.\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope with a `data` payload.","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","example":402,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","example":"Insufficient credits","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":"Insufficient credits","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":{"creditsRemaining":{"type":"number","example":3,"uniqueKey":"data.creditsRemaining","typeLabel":"number"},"creditsNeeded":{"type":"number","uniqueKey":"data.creditsNeeded","typeLabel":"number"},"upgradeUrl":{"type":"string","format":"uri","example":"https://developers.zebratruth.ai/dashboard/billing","uniqueKey":"data.upgradeUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":402,"message":"Insufficient credits","error":true,"url":"\u003cstring>","statusMessage":"Insufficient credits","data":{"creditsRemaining":3,"creditsNeeded":123,"upgradeUrl":"https://developers.zebratruth.ai/dashboard/billing"}}}},"exampleType":"generated"}},"exampleType":"generated"},"7ffc38af-c3dd-42e7-bc5c-fadbe71c7233":{"description":"The request asks for a jurisdiction or platform not in your subscription, or your\ntenant record is missing / incomplete. The human-readable reason is in the\n`statusMessage` and `message` fields (both carry the same string — `message` is\nthe canonical field in the error envelope). Five possible messages:\n\n- **Not onboarded** — no tenant record exists yet.\n `\"Tenant not onboarded. Complete setup at https://developers.zebratruth.ai before using the API.\"`\n- **Incomplete config** — tenant exists but has no default jurisdictions or platforms set.\n `\"Tenant configuration incomplete. Set default jurisdictions and platforms in your dev portal.\"`\n- **Jurisdiction not subscribed** — request includes jurisdictions outside the subscription.\n `\"Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].\"`\n- **Platform not subscribed** — request includes platforms outside the subscription.\n `\"Requested platforms [tiktok] are not in your subscription. Allowed: [youtube, instagram].\"`\n- **Scope wider than the plan allows** — carries `data.code:\n \"scope_limit_exceeded_config\"`, the only one of the five that does.\n `\"Your plan allows at most 2 jurisdictions, but your account has 3 selected. Reduce your\n jurisdictions in the developer portal, or request at most 2 on this call.\"`\n Reachable after a plan change, because a scope chosen during the unlimited trial can be\n wider than the plan you end up on.\n\nFix: either adjust the request to stay within the subscribed set, or update your\ndefaults at `https://developers.zebratruth.ai/dashboard/settings`.\n","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope. Read `message` (or `statusMessage`) for the human-readable reason.","required":["statusCode","message"],"properties":{"statusCode":{"type":"integer","example":403,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"message":{"type":"string","description":"Canonical human-readable reason — pattern-match on this field in client code.","example":"Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error":{"type":"boolean","description":"Always `true` for error responses.","example":true,"uniqueKey":"error","typeLabel":"boolean"},"url":{"type":"string","format":"uri","description":"The URL that was requested.","example":"https://api.zebratruth.ai/v1/compliance/check","uniqueKey":"url","typeLabel":"string\u003curi>"},"statusMessage":{"type":"string","description":"Human-readable reason — same content as `message`.","example":"Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].","uniqueKey":"statusMessage","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":403,"message":"Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu].","error":true,"url":"https://api.zebratruth.ai/v1/compliance/check","statusMessage":"Requested jurisdictions [india, china] are not in your subscription. Allowed: [us, eu]."}}},"exampleType":"generated"}},"exampleType":"generated"},"c4972330-3f9f-4d59-b5ac-9f71f8e694bb":{"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"}},"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":"Check image rights - ZebraTruth — Runtime Compliance for AI Agents","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T01:29:05.787Z","originalFileLocation":"api-reference/compliance/check-image-rights.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=\"Dedicated image rights clearance. Checks for: - Restricted-category content — six advertising-restricted categories: alcohol \u0026amp; spirits, weapons \u0026amp; firearms, tobacco \u0026amp; smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the Restricted Categories guide for the full catalog. - Content safety (ZebraSafety) — adult / violence / racy / medical likelihood signals. Tiered: (high confidence) → status: \u0026quot;block\u0026quot;; (medium confidence) → status: \u0026quot;flag\u0026quot;. - Brand logo \u0026amp; stock-agency watermark detection — trademarks and unlicensed-stock indicators. - C2PA / IPTC metadata — Content Credentials, provenance, AI generation markers. - Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today. Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls. Request formats. Accepts either application/json (imageUrls referencing publicly accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use when you don\u0026#x27;t have a public URL handy). Total request body is capped at 4.5 MB. Per-jurisdiction citations. Citations on returned checks are composed from the laws applicable to the jurisdictions you requested AND the platform policies for the platforms you requested. A restricted-category detection with jurisdictions: [\u0026quot;us\u0026quot;] cites the federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: [\u0026quot;eu\u0026quot;, \u0026quot;uk\u0026quot;] cites European directives and UK codes. Adding platforms: [\u0026quot;facebook\u0026quot;, \u0026quot;tiktok\u0026quot;] appends the corresponding platform-policy references. Check statuses. Stock watermarks and high-severity restricted categories return status: \u0026quot;block\u0026quot;; brand logos, medium-severity restricted categories, and medium-confidence content-safety signals return status: \u0026quot;flag\u0026quot; (review). See the Image Rights Clearance guide for the full matrix. Tenant scoping. Every request is scoped to your account\u0026#x27;s subscribed jurisdictions and platforms. Requesting a jurisdiction or platform outside that set returns 403. See the Tenant Onboarding and Scoping guide.\">\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=\"Check image rights - ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head property=\"og:description\" content=\"Dedicated image rights clearance. Checks for: - Restricted-category content — six advertising-restricted categories: alcohol \u0026amp; spirits, weapons \u0026amp; firearms, tobacco \u0026amp; smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the Restricted Categories guide for the full catalog. - Content safety (ZebraSafety) — adult / violence / racy / medical likelihood signals. Tiered: (high confidence) → status: \u0026quot;block\u0026quot;; (medium confidence) → status: \u0026quot;flag\u0026quot;. - Brand logo \u0026amp; stock-agency watermark detection — trademarks and unlicensed-stock indicators. - C2PA / IPTC metadata — Content Credentials, provenance, AI generation markers. - Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today. Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls. Request formats. Accepts either application/json (imageUrls referencing publicly accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use when you don\u0026#x27;t have a public URL handy). Total request body is capped at 4.5 MB. Per-jurisdiction citations. Citations on returned checks are composed from the laws applicable to the jurisdictions you requested AND the platform policies for the platforms you requested. A restricted-category detection with jurisdictions: [\u0026quot;us\u0026quot;] cites the federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: [\u0026quot;eu\u0026quot;, \u0026quot;uk\u0026quot;] cites European directives and UK codes. Adding platforms: [\u0026quot;facebook\u0026quot;, \u0026quot;tiktok\u0026quot;] appends the corresponding platform-policy references. Check statuses. Stock watermarks and high-severity restricted categories return status: \u0026quot;block\u0026quot;; brand logos, medium-severity restricted categories, and medium-confidence content-safety signals return status: \u0026quot;flag\u0026quot; (review). See the Image Rights Clearance guide for the full matrix. Tenant scoping. Every request is scoped to your account\u0026#x27;s subscribed jurisdictions and platforms. Requesting a jurisdiction or platform outside that set returns 403. See the Tenant Onboarding and Scoping guide.\">\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/compliance/check-image-rights\">\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=Compliance+Checks\u0026amp;title=Check+image+rights\u0026amp;description=Dedicated+image+rights+clearance.+Checks+for%3A%0A%0A-+**Restricted-category+content**+%E2%80%94+six+advertising-restricted+categories%3A+alcohol+%26+spirits%2C+weapons+%26+firearms%2C\u0026amp;theme=a5a701a9b75e19dc4c00f206\u0026amp;signature=443acff8f06ce3983d8ebd3edc24a9765823e6b9565395fb6314b0e0086cb88c\">\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=\"Check image rights - ZebraTruth — Runtime Compliance for AI Agents\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Dedicated image rights clearance. Checks for: - Restricted-category content — six advertising-restricted categories: alcohol \u0026amp; spirits, weapons \u0026amp; firearms, tobacco \u0026amp; smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the Restricted Categories guide for the full catalog. - Content safety (ZebraSafety) — adult / violence / racy / medical likelihood signals. Tiered: (high confidence) → status: \u0026quot;block\u0026quot;; (medium confidence) → status: \u0026quot;flag\u0026quot;. - Brand logo \u0026amp; stock-agency watermark detection — trademarks and unlicensed-stock indicators. - C2PA / IPTC metadata — Content Credentials, provenance, AI generation markers. - Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today. Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls. Request formats. Accepts either application/json (imageUrls referencing publicly accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use when you don\u0026#x27;t have a public URL handy). Total request body is capped at 4.5 MB. Per-jurisdiction citations. Citations on returned checks are composed from the laws applicable to the jurisdictions you requested AND the platform policies for the platforms you requested. A restricted-category detection with jurisdictions: [\u0026quot;us\u0026quot;] cites the federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: [\u0026quot;eu\u0026quot;, \u0026quot;uk\u0026quot;] cites European directives and UK codes. Adding platforms: [\u0026quot;facebook\u0026quot;, \u0026quot;tiktok\u0026quot;] appends the corresponding platform-policy references. Check statuses. Stock watermarks and high-severity restricted categories return status: \u0026quot;block\u0026quot;; brand logos, medium-severity restricted categories, and medium-confidence content-safety signals return status: \u0026quot;flag\u0026quot; (review). See the Image Rights Clearance guide for the full matrix. Tenant scoping. Every request is scoped to your account\u0026#x27;s subscribed jurisdictions and platforms. Requesting a jurisdiction or platform outside that set returns 403. See the Tenant Onboarding and Scoping guide.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zebratruthai.mintlify.app/_mintlify/api/og/v2?division=Compliance+Checks\u0026amp;title=Check+image+rights\u0026amp;description=Dedicated+image+rights+clearance.+Checks+for%3A%0A%0A-+**Restricted-category+content**+%E2%80%94+six+advertising-restricted+categories%3A+alcohol+%26+spirits%2C+weapons+%26+firearms%2C\u0026amp;theme=a5a701a9b75e19dc4c00f206\u0026amp;signature=443acff8f06ce3983d8ebd3edc24a9765823e6b9565395fb6314b0e0086cb88c\">\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/compliance/check-image-rights\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/compliance/check-image-rights.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/compliance/check-image-rights#webpage\",\"url\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights\",\"name\":\"Check image rights\",\"description\":\"Dedicated image rights clearance. Checks for: - Restricted-category content — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the Restricted Categories guide for the full catalog. - Content safety (ZebraSafety) — adult / violence / racy / medical likelihood signals. Tiered: (high confidence) → status: \\\"block\\\"; (medium confidence) → status: \\\"flag\\\". - Brand logo \u0026 stock-agency watermark detection — trademarks and unlicensed-stock indicators. - C2PA / IPTC metadata — Content Credentials, provenance, AI generation markers. - Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today. Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls. Request formats. Accepts either application/json (imageUrls referencing publicly accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use when you don't have a public URL handy). Total request body is capped at 4.5 MB. Per-jurisdiction citations. Citations on returned checks are composed from the laws applicable to the jurisdictions you requested AND the platform policies for the platforms you requested. A restricted-category detection with jurisdictions: [\\\"us\\\"] cites the federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: [\\\"eu\\\", \\\"uk\\\"] cites European directives and UK codes. Adding platforms: [\\\"facebook\\\", \\\"tiktok\\\"] appends the corresponding platform-policy references. Check statuses. Stock watermarks and high-severity restricted categories return status: \\\"block\\\"; brand logos, medium-severity restricted categories, and medium-confidence content-safety signals return status: \\\"flag\\\" (review). See the Image Rights Clearance guide for the full matrix. Tenant scoping. Every request is scoped to your account's subscribed jurisdictions and platforms. Requesting a jurisdiction or platform outside that set returns 403. See the Tenant Onboarding and Scoping guide.\",\"dateModified\":\"2026-09-26T01:29:05.787Z\",\"isPartOf\":{\"@id\":\"https://docs.zebratruth.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Compliance Checks\",\"item\":\"https://docs.zebratruth.ai/api-reference/compliance/run-compliance-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Check image rights\",\"item\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights#apireference\",\"headline\":\"Check image rights\",\"name\":\"Check image rights\",\"description\":\"Dedicated image rights clearance. Checks for: - Restricted-category content — six advertising-restricted categories: alcohol \u0026 spirits, weapons \u0026 firearms, tobacco \u0026 smoking, gambling, pharmaceuticals, financial products (incl. crypto / forex / investments). See the Restricted Categories guide for the full catalog. - Content safety (ZebraSafety) — adult / violence / racy / medical likelihood signals. Tiered: (high confidence) → status: \\\"block\\\"; (medium confidence) → status: \\\"flag\\\". - Brand logo \u0026 stock-agency watermark detection — trademarks and unlicensed-stock indicators. - C2PA / IPTC metadata — Content Credentials, provenance, AI generation markers. - Known-person likeness — right-of-publicity flag. Surfaces only when the celebrity-detection provider is enabled in the deployment; not active in the default ZebraTruth-managed configuration today. Use this for image-only checks. For combined text + image checks, use /compliance/check with content.imageUrls. Request formats. Accepts either application/json (imageUrls referencing publicly accessible URLs) or multipart/form-data (upload up to 2 image binaries directly — use when you don't have a public URL handy). Total request body is capped at 4.5 MB. Per-jurisdiction citations. Citations on returned checks are composed from the laws applicable to the jurisdictions you requested AND the platform policies for the platforms you requested. A restricted-category detection with jurisdictions: [\\\"us\\\"] cites the federal regulator (e.g. FTC, FDA, SEC); the same detection with jurisdictions: [\\\"eu\\\", \\\"uk\\\"] cites European directives and UK codes. Adding platforms: [\\\"facebook\\\", \\\"tiktok\\\"] appends the corresponding platform-policy references. Check statuses. Stock watermarks and high-severity restricted categories return status: \\\"block\\\"; brand logos, medium-severity restricted categories, and medium-confidence content-safety signals return status: \\\"flag\\\" (review). See the Image Rights Clearance guide for the full matrix. Tenant scoping. Every request is scoped to your account's subscribed jurisdictions and platforms. Requesting a jurisdiction or platform outside that set returns 403. See the Tenant Onboarding and Scoping guide.\",\"url\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zebratruth.ai/api-reference/compliance/check-image-rights#webpage\"},\"dateModified\":\"2026-09-26T01:29:05.787Z\",\"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","description":"Check content against jurisdiction laws, platform policies, and rights clearance.\nSupports three response modes: sync (block until complete), stream (SSE events per agent),\nand async (webhook callback on completion).\n\n**Request formats.** Accepts either `application/json` (the canonical format, full feature\nset including streaming and webhooks) or `multipart/form-data` (for uploading image binaries\ndirectly from a local file system). The multipart form is sync-only and bypasses the\nresponse cache (cache is keyed on text, so mixing image sets would return wrong results).\n\n**Latency.** Sync checks typically complete in **15–120 seconds** depending on mode, number\nof jurisdictions/platforms, and content length. Cached hits return in ≤1s. **Set client\ntimeouts to at least 2.5 minutes (150s).** For long-running or batched workflows, prefer\n`responseMode: \"async\"` with a webhook to avoid long-held connections.\n\n**Tenant scoping.** Every request is scoped to your account's subscribed jurisdictions\nand platforms (set during onboarding at `https://developers.zebratruth.ai`). Requesting\na jurisdiction or platform outside that set returns 403. See the\n[Tenant Onboarding and Scoping guide](/guides/tenant-onboarding-and-scoping).\n\n**Financial services.** Workspaces on the `financial_services` industry select the\nspecialist review scopes a check should run with `reviewScopes`, describe the artifact\nwith `contentKind`, and may narrow the regulated actors with `regulatedActors`.\nAdmission is checked in this order, all before any credits are reserved: unknown or\ndisabled scope (400 `review_scope_not_enabled`), scope without corpus coverage for a\nrequested jurisdiction (400 `review_scope_jurisdiction_unsupported`), actor not enabled\non the workspace (400 `regulated_actor_not_enabled`), scope not in the plan\n(403 `review_scope_not_entitled`). Successful responses then carry `agentsRun` and\n`decisionReasons`. At most 6 specialist agents run per request.\n\n**Documents.** The multipart form accepts a single `document` part (PDF or Word `.docx`)\nin place of `text`. The document is extracted server-side and checked as text. To inspect\nthe extracted text first, call `POST /compliance/documents/extract`.\n","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","description":"Returns the text a compliance check would run on, with word and page counts and the\nlimits that apply to your plan. Use it to preview or trim a document before checking\nit, or to build your own text check. **Not billed.** Extraction is also performed\nimplicitly when you send a `document` part to `POST /compliance/check`.\n\nLimits: 30 MB per file, 100 pages, 400,000 characters, 30 seconds of extraction, one\ndocument per request, and a per-plan word cap returned as `limits.maxWords`. Scanned\nPDFs with no text layer are rejected. A `Content-Length` header is required.\n","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","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","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":"Check image rights - 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"]}