Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL.
Flow
Call this endpoint to receive an upload URL
Upload the image using the live S3 URL or test BIZ MORI URL
Call POST /api/v2/orders/ai-detection/confirm to start async detection
Use webhooks or poll the order detail endpoint for the result
After receiving the uploadUrl from the response, upload your image using a PUT request. Live keys return a presigned storage URL. Test keys return a BIZ MORI test upload URL that consumes and discards the request body:
Live presigned upload URLs expire after 1 hour. Test upload URLs carry their own authorization and do not require a Bearer header. Upload the file before the URL expires, then call the Confirm order endpoint.
When the order is complete, the detection result is in result. The example below omits the common order fields; see Get order details for the full response.
Test orders return deterministic detection results from the input file name. Use _ai for probability 0.98 or _human for probability 0.02. Test orders do not create downloadable heatmap or overlay files.
Bearer API key for external client access. Live keys use the sk_ prefix; test keys use the sk_test_ prefix and support order-lifecycle testing with mock responses without processing or credit usage.
Upload URL. Live keys receive an S3 presigned URL; test keys receive an absolute https://api.bizmori.com/api/v2/test-uploads/{signedToken} URL. Both expire after one hour. PUT needs no Authorization header because the signed token authorizes the test upload. Test request bodies are streamed, not stored; test orders move to simulated results without usage consumption or actual external processing.
File identifier: an S3 object key for live keys or an isolated logical key for test keys.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ContentCare API Documentation","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/mori-7d8a16e6/uiCwTpjPPKH9gjDZ/logo/light.svg?fit=max\u0026auto=format\u0026n=uiCwTpjPPKH9gjDZ\u0026q=85\u0026s=cd317193218c94284b35aa84c52b5d17","dark":"https://mintcdn.com/mori-7d8a16e6/uiCwTpjPPKH9gjDZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=uiCwTpjPPKH9gjDZ\u0026q=85\u0026s=3ca4613110f4781acc20a8f41010eb25"},"favicon":"https://mintcdn.com/mori-7d8a16e6/cf99juWefDk4kbc7/favicon.svg?fit=max\u0026auto=format\u0026n=cf99juWefDk4kbc7\u0026q=85\u0026s=435a67276a065858333792f3481060d7","api":{"openapi":["api-reference/openapi.yaml","ko/api-reference/openapi.yaml","ja/api-reference/openapi.yaml"],"params":{"expanded":"all"}},"navbar":{"links":[{"href":"mailto:support@contentcare.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.contentcare.ai"}},"footer":{"socials":{"website":"https://app.contentcare.ai"},"links":[{"items":[{"label":"Dashboard","href":"https://app.contentcare.ai"},{"label":"MORI Corp.","href":"https://www.mori-corp.io"},{"label":"Contact Support","href":"mailto:support@contentcare.ai"},{"label":"Status","href":"https://status.bizmori.com"}]},{"items":[{"label":"Guides","href":"/index"},{"label":"API Reference","href":"/api-reference/introduction"},{"label":"Error Codes","href":"/errors"},{"label":"Webhooks","href":"/webhooks"},{"label":"What's new","href":"/changelog"}]},{"items":[{"label":"Terms of Service","href":"/legal/terms"},{"label":"Privacy Policy","href":"/legal/privacy"},{"label":"DPA","href":"/legal/dpa"},{"label":"Acceptable Use","href":"/legal/aup"},{"label":"Sub-processors","href":"/legal/sub-processors"}]}]},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"ContentCare Dashboard","icon":"code","href":"https://app.contentcare.ai"},{"anchor":"Support","icon":"envelope","href":"mailto:support@contentcare.ai"},{"anchor":"Status","icon":"signal-bars","href":"https://status.bizmori.com"}]},"languages":[{"language":"en","href":""},{"language":"ko","href":"ko"},{"language":"ja","href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mori-7d8a16e6","hasAudioNarration":false,"actualSubdomain":"mori-7d8a16e6","customDomains":["docs.contentcare.ai"],"gitSource":{"type":"github","owner":"moriproject","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf208ed13963272de7eba3","collectionId":"4bdea990-6916-48da-ae92-82d12b94e97c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf208ed13963272de7eba3"},"entitlements":{},"buildId":"6adf20b6ebccf90c95aed79e","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"en","tag":"API Reference","count":27},{"language":"ja","tag":"API リファレンス","count":27},{"language":"ko","tag":"API 레퍼런스","count":27},{"language":"en","tag":"Guides","count":14},{"language":"ja","tag":"ガイド","count":14},{"language":"ko","tag":"가이드","count":14},{"language":"en","tag":"Webhooks","count":8},{"language":"en","tag":"Getting Started","count":8},{"language":"ja","tag":"Webhooks","count":8},{"language":"ja","tag":"はじめに","count":8},{"language":"ko","tag":"Webhooks","count":8},{"language":"ko","tag":"시작하기","count":8},{"language":"en","tag":"Orders","count":7},{"language":"ja","tag":"Orders","count":7},{"language":"ko","tag":"Orders","count":7},{"language":"en","tag":"Legal","count":6},{"language":"ja","tag":"法的事項","count":6},{"language":"ko","tag":"법적 고지","count":6},{"language":"en","tag":"Anti-AI","count":3},{"language":"ja","tag":"Anti-AI","count":3},{"language":"ko","tag":"Anti-AI","count":3},{"language":"en","tag":"AI Detection","count":2},{"language":"en","tag":"Reports","count":2},{"language":"en","tag":"Watermark Embed","count":2},{"language":"ja","tag":"AI Detection","count":2},{"language":"ja","tag":"レポート","count":2},{"language":"ja","tag":"Watermark-Embed","count":2},{"language":"ko","tag":"AI Detection","count":2},{"language":"ko","tag":"보고서","count":2},{"language":"ko","tag":"Watermark-Embed","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":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/ai-detection/create-order","slug":"/api-reference/ai-detection/create-order","pageMetadata":{"title":"Create AI Detection order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/ai-detection","description":"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL.\n\n## Flow\n\n1. Call this endpoint to receive an upload URL\n2. Upload the image using the live S3 URL or test BIZ MORI URL\n3. Call `POST /api/v2/orders/ai-detection/confirm` to start async detection\n4. Use webhooks or poll the order detail endpoint for the result\n\n## Order Status\n\n| Status | Description |\n|--------|-------------|\n| `pending` | Waiting for file upload |\n| `inProgress` | Detection is in progress |\n| `complete` | Detection complete, result available |\n| `failed` | Detection failed |\n\n## Supported Formats\n\njpg, jpeg, png, webp, bmp, tiff\n","href":"/api-reference/ai-detection/create-order"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h2: \"h2\",\n li: \"li\",\n ol: \"ol\",\n p: \"p\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Flow\"\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Call this endpoint to receive an upload URL\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Upload the image using the live S3 URL or test BIZ MORI URL\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Call \", _jsx(_components.code, {\n children: \"POST /api/v2/orders/ai-detection/confirm\"\n }), \" to start async detection\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Use webhooks or poll the order detail endpoint for the result\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Order Status\"\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Status\"\n }), _jsx(_components.th, {\n children: \"Description\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"pending\"\n })\n }), _jsx(_components.td, {\n children: \"Waiting for file upload\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"inProgress\"\n })\n }), _jsx(_components.td, {\n children: \"Detection is in progress\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"complete\"\n })\n }), _jsx(_components.td, {\n children: \"Detection complete, result available\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"failed\"\n })\n }), _jsx(_components.td, {\n children: \"Detection failed\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Supported Formats\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"jpg, jpeg, png, webp, bmp, tiff\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`how-to-upload-the-image`,children:`How to upload the image`}),`\n`,_jsxs(_components.p,{children:[`After receiving the `,_jsx(_components.code,{children:`uploadUrl`}),` from the response, upload your image using a `,_jsx(_components.code,{children:`PUT`}),` request. Live keys return a presigned storage URL. Test keys return a BIZ MORI test upload URL that consumes and discards the request body:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PUT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"UPLOAD_URL\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: image/jpeg\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data-binary`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @photo.jpg`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Live presigned upload URLs expire after `,_jsx(_components.strong,{children:`1 hour`}),`. Test upload URLs carry their own authorization and do not require a Bearer header. Upload the file before the URL expires, then call the `,_jsx(_components.a,{href:`/api-reference/ai-detection/confirm-order`,children:`Confirm order`}),` endpoint.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`getting-the-detection-result`,children:`Getting the detection result`}),`\n`,_jsxs(_components.p,{children:[`Once you confirm the upload, the order status changes to `,_jsx(_components.code,{children:`inProgress`}),`. When detection completes, the result is available via:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Webhook`}),` — Subscribe to `,_jsx(_components.code,{children:`order.aiDetection.completed`}),` or `,_jsx(_components.code,{children:`order.aiDetection.failed`}),` events`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Polling`}),` — Call `,_jsx(_components.a,{href:`/api-reference/orders/get-order-v3`,children:`Get order details`}),` until `,_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`complete`}),` or `,_jsx(_components.code,{children:`failed`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When the order is `,_jsx(_components.code,{children:`complete`}),`, the detection result is in `,_jsx(_components.code,{children:`result`}),`. The example below omits the common order fields; see `,_jsx(_components.a,{href:`/api-reference/orders/get-order-v3`,children:`Get order details`}),` for the full response.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`19`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`19`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"aiDetection\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"orderId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"complete\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"verdict\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"likely_ai\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"probability\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.97`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"options\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"generateHeatmap\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"generateOverlay\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"generateThumbnail\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"originalImageUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"heatmapUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"overlayUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Test orders return deterministic detection results from the input file name. Use `,_jsx(_components.code,{children:`_ai`}),` for probability `,_jsx(_components.code,{children:`0.98`}),` or `,_jsx(_components.code,{children:`_human`}),` for probability `,_jsx(_components.code,{children:`0.02`}),`. Test orders do not create downloadable heatmap or overlay files.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`verdict`,children:`Verdict`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`result.verdict`})}),_jsx(_components.th,{children:`Probability range`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`likely_ai`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`≥ 0.75`}),_jsx(_components.td,{children:`Likely AI-generated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`uncertain_ai`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`0.5 – 0.75`}),_jsx(_components.td,{children:`Possibly AI-generated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`uncertain_real`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`0.25 – 0.5`}),_jsx(_components.td,{children:`Possibly not AI-generated`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`likely_real`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:`\u003c 0.25`}),_jsx(_components.td,{children:`Likely not AI-generated`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create AI Detection order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/ai-detection","description":"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL.\n\n## Flow\n\n1. Call this endpoint to receive an upload URL\n2. Upload the image using the live S3 URL or test BIZ MORI URL\n3. Call `POST /api/v2/orders/ai-detection/confirm` to start async detection\n4. Use webhooks or poll the order detail endpoint for the result\n\n## Order Status\n\n| Status | Description |\n|--------|-------------|\n| `pending` | Waiting for file upload |\n| `inProgress` | Detection is in progress |\n| `complete` | Detection complete, result available |\n| `failed` | Detection failed |\n\n## Supported Formats\n\njpg, jpeg, png, webp, bmp, tiff\n","href":"/api-reference/ai-detection/create-order"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How to upload the image","slug":"how-to-upload-the-image","depth":2,"children":[]},{"title":"Getting the detection result","slug":"getting-the-detection-result","depth":2,"children":[{"title":"Verdict","slug":"verdict","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create AI Detection order","operationId":"createAiDetectionOrder","description":"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL.\n\n## Flow\n\n1. Call this endpoint to receive an upload URL\n2. Upload the image using the live S3 URL or test BIZ MORI URL\n3. Call `POST /api/v2/orders/ai-detection/confirm` to start async detection\n4. Use webhooks or poll the order detail endpoint for the result\n\n## Order Status\n\n| Status | Description |\n|--------|-------------|\n| `pending` | Waiting for file upload |\n| `inProgress` | Detection is in progress |\n| `complete` | Detection complete, result available |\n| `failed` | Detection failed |\n\n## Supported Formats\n\njpg, jpeg, png, webp, bmp, tiff\n","tags":["AI Detection"],"security":["f419529e-1540-49fa-95b4-c46f5e96bd2d"],"requestBody":"950a307e-976b-4fca-8b0d-5f142f5caca8","responses":{"200":"a3346816-c5bc-4e1a-acc4-b7bad00e9636","400":"142313f9-5d62-44d5-aa33-863435e5cae9","401":"366141de-5c6f-47a6-80d4-e991c6181ebe","429":"34303c38-4ed9-4bb5-ab2f-8eb355d62a41"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST https://api.bizmori.com/api/v2/orders/ai-detection \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"idempotencyKey\": \"0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59\", \"fileName\": \"photo.jpg\"}'"},{"lang":"javascript","label":"JavaScript","source":"const response = await fetch('https://api.bizmori.com/api/v2/orders/ai-detection', {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_TOKEN',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n idempotencyKey: '0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59',\n fileName: 'photo.jpg'\n })\n});\nconst data = await response.json();"},{"lang":"python","label":"Python","source":"import requests\n\nresponse = requests.post(\n 'https://api.bizmori.com/api/v2/orders/ai-detection',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'},\n json={'idempotencyKey': '0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59', 'fileName': 'photo.jpg'}\n)\ndata = response.json()"}],"method":"post","type":"path","servers":["12c53202-44d6-48f4-884a-b8d4bc669414"],"path":"/api/v2/orders/ai-detection","baseUrlOptions":["https://api.bizmori.com"],"title":"Create AI Detection order","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST https://api.bizmori.com/api/v2/orders/ai-detection \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"idempotencyKey\": \"0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59\", \"fileName\": \"photo.jpg\"}'"},{"label":"JavaScript","lang":"javascript","source":"const response = await fetch('https://api.bizmori.com/api/v2/orders/ai-detection', {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_TOKEN',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n idempotencyKey: '0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59',\n fileName: 'photo.jpg'\n })\n});\nconst data = await response.json();"},{"label":"Python","lang":"python","source":"import requests\n\nresponse = requests.post(\n 'https://api.bizmori.com/api/v2/orders/ai-detection',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'},\n json={'idempotencyKey': '0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59', 'fileName': 'photo.jpg'}\n)\ndata = response.json()"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["idempotencyKey","fileName"],"properties":{"idempotencyKey":{"type":"string","description":"Idempotency key to prevent duplicate requests","example":"0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59","isRequired":true,"uniqueKey":"idempotencyKey","typeLabel":"string"},"fileName":{"type":"string","description":"Image file name with extension. Supported: jpg, jpeg, png, webp, bmp, tiff","example":"photo.jpg","isRequired":true,"uniqueKey":"fileName","typeLabel":"string"},"orderName":{"type":"string","maxLength":64,"description":"Order name (optional, auto-generated if not provided)","example":"my-detection-order","uniqueKey":"orderName","typeLabel":"string"},"options":{"type":"object","description":"Output options (optional). Generated files are included in the order detail response.","properties":{"generateHeatmap":{"type":"boolean","default":false,"description":"Generate AI detection heatmap image","uniqueKey":"options.generateHeatmap","typeLabel":"boolean"},"generateOverlay":{"type":"boolean","default":false,"description":"Generate heatmap overlay on original image","uniqueKey":"options.generateOverlay","typeLabel":"boolean"},"generateThumbnail":{"type":"boolean","default":false,"description":"Generate thumbnail image","uniqueKey":"options.generateThumbnail","typeLabel":"boolean"}},"uniqueKey":"options","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"idempotencyKey":"0e6c4a9b-b1d8-457e-a9fc-4b7d0e3a6c59","fileName":"photo.jpg","orderName":"my-detection-order","options":{"generateHeatmap":false,"generateOverlay":false,"generateThumbnail":false}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"a3346816-c5bc-4e1a-acc4-b7bad00e9636":{"description":"Order created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"orderId":{"type":"string","description":"Order ID","uniqueKey":"data.orderId","typeLabel":"string"},"orderName":{"type":"string","description":"Order name","uniqueKey":"data.orderName","typeLabel":"string"},"status":{"type":"string","enum":["pending"],"description":"Order status","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"file":{"type":"object","properties":{"fileId":{"type":"integer","description":"File record ID","uniqueKey":"data.file.fileId","typeLabel":"integer"},"fileName":{"type":"string","description":"File name","uniqueKey":"data.file.fileName","typeLabel":"string"},"uploadUrl":{"type":"string","format":"uri","description":"Upload URL. Live keys receive an S3 presigned URL; test keys receive an absolute `https://api.bizmori.com/api/v2/test-uploads/{signedToken}` URL. Both expire after one hour. PUT needs no Authorization header because the signed token authorizes the test upload. Test request bodies are streamed, not stored; test orders move to simulated results without usage consumption or actual external processing.","uniqueKey":"data.file.uploadUrl","typeLabel":"string\u003curi>"},"fileKey":{"type":"string","description":"File identifier: an S3 object key for live keys or an isolated logical key for test keys.\n","uniqueKey":"data.file.fileKey","typeLabel":"string"}},"uniqueKey":"data.file","typeLabel":"object"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"orderId":"\u003cstring>","orderName":"\u003cstring>","status":"pending","file":{"fileId":123,"fileName":"\u003cstring>","uploadUrl":"\u003cstring>","fileKey":"\u003cstring>"}}}}},"exampleType":"generated"}},"exampleType":"generated"},"142313f9-5d62-44d5-aa33-863435e5cae9":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"VALIDATION_FAILED"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED"}}},"exampleType":"examples"}},"exampleType":"examples"},"366141de-5c6f-47a6-80d4-e991c6181ebe":{"description":"Authentication failed","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"AUTH_NOT_AUTHENTICATED"},"examples":{"Example":{"title":"Example","value":{"code":"AUTH_NOT_AUTHENTICATED"}}},"exampleType":"examples"}},"exampleType":"examples"},"34303c38-4ed9-4bb5-ab2f-8eb355d62a41":{"description":"Usage limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"USAGE_LIMIT_EXCEEDED"},"examples":{"Example":{"title":"Example","value":{"code":"USAGE_LIMIT_EXCEEDED"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"f419529e-1540-49fa-95b4-c46f5e96bd2d":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Bearer API key for external client access. Live keys use the `sk_` prefix; test keys use the `sk_test_` prefix and support order-lifecycle testing with mock responses without processing or credit usage.","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"12c53202-44d6-48f4-884a-b8d4bc669414":{"url":"https://api.bizmori.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer API key for external client access. Live keys use the `sk_` prefix; test keys use the `sk_test_` prefix and support order-lifecycle testing with mock responses without processing or credit usage.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer API key for external client access. Live keys use the `sk_` prefix; test keys use the `sk_test_` prefix and support order-lifecycle testing with mock responses without processing or credit usage.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"mori-7d8a16e6","siteName":"ContentCare API Documentation","title":"Create AI Detection order - ContentCare API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/ai-detection/create-order","matchLevel":0},"ko":{"href":"/ko/api-reference/ai-detection/create-order","matchLevel":1},"ja":{"href":"/ja/api-reference/ai-detection/create-order","matchLevel":1}}},"lastModified":"2026-10-22T14:09:47.783Z","originalFileLocation":"api-reference/ai-detection/create-order.mdx","locale":"en"},"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=\"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL. ## Flow 1. Call this endpoint to receive an upload URL 2. Upload the image using the live S3 URL or test BIZ MORI URL 3. Call POST /api/v2/orders/ai-detection/confirm to start async detection 4. Use webhooks or poll the order detail endpoint for the result ## Order Status | Status | Description | |--------|-------------| | pending | Waiting for file upload | | inProgress | Detection is in progress | | complete | Detection complete, result available | | failed | Detection failed | ## Supported Formats jpg, jpeg, png, webp, bmp, tiff\">\u003cmeta data-mint-head name=\"application-name\" content=\"ContentCare API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create AI Detection order - ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL. ## Flow 1. Call this endpoint to receive an upload URL 2. Upload the image using the live S3 URL or test BIZ MORI URL 3. Call POST /api/v2/orders/ai-detection/confirm to start async detection 4. Use webhooks or poll the order detail endpoint for the result ## Order Status | Status | Description | |--------|-------------| | pending | Waiting for file upload | | inProgress | Detection is in progress | | complete | Detection complete, result available | | failed | Detection failed | ## Supported Formats jpg, jpeg, png, webp, bmp, tiff\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=AI+Detection\u0026amp;title=Create+AI+Detection+order\u0026amp;description=Creates+an+AI+Detection+order+and+issues+an+upload+URL+for+the+image.+Live+keys+receive+an+S3+presigned+URL%3B+test+keys+receive+an+absolute+BIZ+MORI+test-upload+\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=75b19bbea79d6dac96628cf590b189cf2a536558e63804294168c197c249b929\">\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=\"Create AI Detection order - ContentCare API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL. ## Flow 1. Call this endpoint to receive an upload URL 2. Upload the image using the live S3 URL or test BIZ MORI URL 3. Call POST /api/v2/orders/ai-detection/confirm to start async detection 4. Use webhooks or poll the order detail endpoint for the result ## Order Status | Status | Description | |--------|-------------| | pending | Waiting for file upload | | inProgress | Detection is in progress | | complete | Detection complete, result available | | failed | Detection failed | ## Supported Formats jpg, jpeg, png, webp, bmp, tiff\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=AI+Detection\u0026amp;title=Create+AI+Detection+order\u0026amp;description=Creates+an+AI+Detection+order+and+issues+an+upload+URL+for+the+image.+Live+keys+receive+an+S3+presigned+URL%3B+test+keys+receive+an+absolute+BIZ+MORI+test-upload+\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=75b19bbea79d6dac96628cf590b189cf2a536558e63804294168c197c249b929\">\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/mori-7d8a16e6/GYT2KKGJvFLTeKFD/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"ContentCare API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/ai-detection/create-order.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.contentcare.ai/ko/api-reference/ai-detection/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.contentcare.ai/ja/api-reference/ai-detection/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.contentcare.ai/#organization\",\"name\":\"ContentCare API Documentation\",\"url\":\"https://docs.contentcare.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mori-7d8a16e6/uiCwTpjPPKH9gjDZ/logo/light.svg?fit=max\u0026auto=format\u0026n=uiCwTpjPPKH9gjDZ\u0026q=85\u0026s=cd317193218c94284b35aa84c52b5d17\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.contentcare.ai#website\",\"name\":\"ContentCare API Documentation\",\"url\":\"https://docs.contentcare.ai\",\"publisher\":{\"@id\":\"https://docs.contentcare.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order#webpage\",\"url\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\",\"name\":\"Create AI Detection order\",\"description\":\"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL. ## Flow 1. Call this endpoint to receive an upload URL 2. Upload the image using the live S3 URL or test BIZ MORI URL 3. Call POST /api/v2/orders/ai-detection/confirm to start async detection 4. Use webhooks or poll the order detail endpoint for the result ## Order Status | Status | Description | |--------|-------------| | pending | Waiting for file upload | | inProgress | Detection is in progress | | complete | Detection complete, result available | | failed | Detection failed | ## Supported Formats jpg, jpeg, png, webp, bmp, tiff\",\"dateModified\":\"2026-10-22T14:09:47.783Z\",\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"ContentCare API Documentation\",\"item\":\"https://docs.contentcare.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create AI Detection order\",\"item\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order#apireference\",\"headline\":\"Create AI Detection order\",\"name\":\"Create AI Detection order\",\"description\":\"Creates an AI Detection order and issues an upload URL for the image. Live keys receive an S3 presigned URL; test keys receive an absolute BIZ MORI test-upload URL. ## Flow 1. Call this endpoint to receive an upload URL 2. Upload the image using the live S3 URL or test BIZ MORI URL 3. Call POST /api/v2/orders/ai-detection/confirm to start async detection 4. Use webhooks or poll the order detail endpoint for the result ## Order Status | Status | Description | |--------|-------------| | pending | Waiting for file upload | | inProgress | Detection is in progress | | complete | Detection complete, result available | | failed | Detection failed | ## Supported Formats jpg, jpeg, png, webp, bmp, tiff\",\"url\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contentcare.ai/api-reference/ai-detection/create-order#webpage\"},\"dateModified\":\"2026-10-22T14:09:47.783Z\",\"publisher\":{\"@id\":\"https://docs.contentcare.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"ContentCare API Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"ContentCare API Documentation","nav":{"global":{"anchors":[{"anchor":"ContentCare Dashboard","icon":"code","href":"https://app.contentcare.ai"},{"anchor":"Support","icon":"envelope","href":"mailto:support@contentcare.ai"},{"anchor":"Status","icon":"signal-bars","href":"https://status.bizmori.com"}]},"languages":[{"language":"en","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Anti-AI","pages":[{"title":"Create Anti-AI order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/anti-ai","href":"/api-reference/anti-ai/create-order"},{"title":"Confirm Anti-AI order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/anti-ai/confirm","href":"/api-reference/anti-ai/confirm-order"},{"title":"Create Anti-AI order with URLs","openapi":"api-reference/openapi.yaml POST /api/v2/orders/anti-ai/with-urls","description":"**Deprecated**: Use `/anti-ai` endpoint with `originalFileUrl` field instead.\n\nProvide image URLs directly for processing.\n- Processing starts immediately without presigned URL issuance\n- Downloads and processes images from the provided URLs\n\n## Zero Copy Mode\nWhen `mode.zeroCopy: true`, processed results are uploaded directly to customer-provided presigned URLs.\n","href":"/api-reference/anti-ai/create-order-urls"}]},{"group":"AI Detection","pages":[{"title":"Create AI Detection order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/ai-detection","href":"/api-reference/ai-detection/create-order"},{"title":"Confirm AI Detection order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/ai-detection/confirm","description":"Confirms that the image upload is complete and starts processing.\n\nCall this endpoint after uploading the image to the upload URL received from the create order endpoint. The order status will change from `pending` to `inProgress`.\n\nThe detection result is delivered via webhook (`order.aiDetection.completed` or `order.aiDetection.failed`), or can be retrieved by polling the [Get order](/api-reference/orders/get-order) endpoint.\n","href":"/api-reference/ai-detection/confirm-order"}]},{"group":"Watermark Embed","pages":[{"tag":"v2","title":"Create watermark embed order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/wtr-embed","href":"/api-reference/watermark-embed/create-order"},{"tag":"v3","title":"Create watermark embed order","openapi":"api-reference/openapi.yaml POST /api/v3/orders/wtr-embed","href":"/api-reference/watermark-embed/create-order-v3"}]},{"group":"Watermark Extract","pages":[{"tag":"v2","title":"Create watermark extract order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/wtr-extract","href":"/api-reference/watermark-extract/create-order"},{"tag":"v3","title":"Create watermark extract order","openapi":"api-reference/openapi.yaml POST /api/v3/orders/wtr-extract","href":"/api-reference/watermark-extract/create-order-v3"}]},{"group":"Orders","pages":[{"title":"List orders","openapi":"api-reference/openapi.yaml GET /api/v2/orders","href":"/api-reference/orders/list-orders"},{"tag":"v2","title":"Get order details","openapi":"api-reference/openapi.yaml GET /api/v2/orders/{orderId}","href":"/api-reference/orders/get-order"},{"tag":"v3","title":"Get order details","openapi":"api-reference/openapi.yaml GET /api/v3/orders/{orderId}","href":"/api-reference/orders/get-order-v3"},{"tag":"v2","title":"Get download URL","openapi":"api-reference/openapi.yaml GET /api/v2/orders/{orderId}/download","href":"/api-reference/orders/download-order"},{"tag":"v3","title":"Get order result download URLs","openapi":"api-reference/openapi.yaml GET /api/v3/orders/{orderId}/download","href":"/api-reference/orders/download-order-v3"},{"title":"Refresh presigned URLs","openapi":"api-reference/openapi.yaml POST /api/v2/orders/{orderId}/refresh-urls","href":"/api-reference/orders/refresh-urls"},{"title":"Recent usage statistics","openapi":"api-reference/openapi.yaml GET /api/v2/orders/stats/recent","href":"/api-reference/orders/recent-stats"}]},{"group":"Reports","pages":[{"tag":"v3","title":"Create order report","openapi":"api-reference/openapi.yaml POST /api/v3/orders/{orderId}/reports","href":"/api-reference/reports/create-report"},{"tag":"v3","title":"Get order report","openapi":"api-reference/openapi.yaml GET /api/v3/orders/{orderId}/reports/{locale}","href":"/api-reference/reports/get-report"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","openapi":"api-reference/openapi.yaml GET /api/v2/orders/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Create webhook","openapi":"api-reference/openapi.yaml POST /api/v2/orders/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Get webhook details","openapi":"api-reference/openapi.yaml GET /api/v2/orders/webhooks/{webhookId}","href":"/api-reference/webhooks/get-webhook"},{"title":"Update webhook","openapi":"api-reference/openapi.yaml PUT /api/v2/orders/webhooks/{webhookId}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","openapi":"api-reference/openapi.yaml DELETE /api/v2/orders/webhooks/{webhookId}","href":"/api-reference/webhooks/delete-webhook"},{"title":"List webhook events","openapi":"api-reference/openapi.yaml GET /api/v2/orders/webhooks/{webhookId}/events","href":"/api-reference/webhooks/list-events"},{"title":"Retry webhook event","openapi":"api-reference/openapi.yaml POST /api/v2/orders/webhooks/{webhookId}/events/{eventId}/retry","href":"/api-reference/webhooks/retry-event"},{"title":"Retry failed webhook events","openapi":"api-reference/openapi.yaml POST /api/v2/orders/webhooks/{webhookId}/events/retry-failed","href":"/api-reference/webhooks/retry-failed-events"}]}]},{"tab":"What's new","pages":[{"title":"What's new","href":"/changelog"}]},{"tab":"Legal","pages":[{"title":"Legal","href":"/legal/terms"}]}]},{"language":"ko","pages":[{"title":"ko","href":"/ko/api-reference/ai-detection/create-order"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api-reference/ai-detection/create-order"}]}]},"title":"Create AI Detection order - ContentCare API Documentation","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}