Create an order for AI detection protection processing.
Input Modes (Upload / URL / Mixed)
The input mode is determined by the presence of originalFileUrl in each file object:
Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm
URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately
Mixed mode: Some files in Upload mode, others in URL mode simultaneously
Behavior
Condition
Order Status
Confirm Required
All files have originalFileUrl
inProgress
No (immediate processing)
Any file without originalFileUrl
pending
Yes (upload then confirm)
Zero Copy Mode
When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs.
In this case, outputTargets array is required and must match the length of files array.
When you authenticate with an sk_test_ key, the order follows the test lifecycle described in Test API keys. Test uploads use the returned BIZ MORI upload URL, and no result file is created.
Once your order reaches complete status, call Get order result download URLs. One call returns a URL for each output file in files[] and a ZIP archive of all results in archiveUrl:
curl -X GET https://api.bizmori.com/api/v3/orders/{orderId}/download \ -H "Authorization: Bearer YOUR_API_KEY"
The URLs are valid for up to 1 hour, so request new ones each time you download. You can download files until the order’s expiresAt; after that, the endpoint returns 400 ORDER_EXPIRED. For an sk_test_ order, the URLs point to fixed sample files instead of your results.
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 — upload mode files only. 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 and can be renewed with POST /api/v2/orders/{orderId}/refresh-urls. 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.
{"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/anti-ai/create-order","slug":"/api-reference/anti-ai/create-order","pageMetadata":{"title":"Create Anti-AI order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/anti-ai","description":"Create an order for AI detection protection processing.\n\n## Input Modes (Upload / URL / Mixed)\nThe input mode is determined by the presence of `originalFileUrl` in each file object:\n- **Upload mode** (no `originalFileUrl`): Presigned URL issued → Client uploads to S3 → Call `/confirm`\n- **URL mode** (`originalFileUrl` provided): Image downloaded from the URL and processed immediately\n- **Mixed mode**: Some files in Upload mode, others in URL mode simultaneously\n\n### Behavior\n| Condition | Order Status | Confirm Required |\n|-----------|-------------|-----------------|\n| All files have `originalFileUrl` | `inProgress` | No (immediate processing) |\n| Any file without `originalFileUrl` | `pending` | Yes (upload then confirm) |\n\n## Zero Copy Mode\nWhen `mode.zeroCopy: true`, processed results are uploaded directly to customer-provided presigned URLs.\nIn this case, `outputTargets` array is required and must match the length of `files` array.\n","href":"/api-reference/anti-ai/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 h3: \"h3\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Create an order for AI detection protection processing.\"\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Input Modes (Upload / URL / Mixed)\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The input mode is determined by the presence of \", _jsx(_components.code, {\n children: \"originalFileUrl\"\n }), \" in each file object:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Upload mode\"\n }), \" (no \", _jsx(_components.code, {\n children: \"originalFileUrl\"\n }), \"): Presigned URL issued → Client uploads to S3 → Call \", _jsx(_components.code, {\n children: \"/confirm\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"URL mode\"\n }), \" (\", _jsx(_components.code, {\n children: \"originalFileUrl\"\n }), \" provided): Image downloaded from the URL and processed immediately\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Mixed mode\"\n }), \": Some files in Upload mode, others in URL mode simultaneously\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Behavior\"\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Condition\"\n }), _jsx(_components.th, {\n children: \"Order Status\"\n }), _jsx(_components.th, {\n children: \"Confirm Required\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [\"All files have \", _jsx(_components.code, {\n children: \"originalFileUrl\"\n })]\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"inProgress\"\n })\n }), _jsx(_components.td, {\n children: \"No (immediate processing)\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [\"Any file without \", _jsx(_components.code, {\n children: \"originalFileUrl\"\n })]\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"pending\"\n })\n }), _jsx(_components.td, {\n children: \"Yes (upload then confirm)\"\n })]\n })]\n })]\n }), \"\\n\", _jsx(_components.h2, {\n children: \"Zero Copy Mode\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"When \", _jsx(_components.code, {\n children: \"mode.zeroCopy: true\"\n }), \", processed results are uploaded directly to customer-provided presigned URLs.\\nIn this case, \", _jsx(_components.code, {\n children: \"outputTargets\"\n }), \" array is required and must match the length of \", _jsx(_components.code, {\n children: \"files\"\n }), \" array.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`When you authenticate with an `,_jsx(_components.code,{children:`sk_test_`}),` key, the order follows the test lifecycle described in `,_jsx(_components.a,{href:`/test-api-keys`,children:`Test API keys`}),`. Test uploads use the returned BIZ MORI upload URL, and no result file is created.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`download-order-results`,children:`Download order results`}),`\n`,_jsxs(_components.p,{children:[`Once your order reaches `,_jsx(_components.code,{children:`complete`}),` status, call `,_jsx(_components.a,{href:`/api-reference/orders/download-order-v3`,children:`Get order result download URLs`}),`. One call returns a URL for each output file in `,_jsx(_components.code,{children:`files[]`}),` and a ZIP archive of all results in `,_jsx(_components.code,{children:`archiveUrl`}),`:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,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:`2`,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:` GET`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.bizmori.com/api/v3/orders/{orderId}/download`}),_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:` \"Authorization: Bearer YOUR_API_KEY\"`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The URLs are valid for up to 1 hour, so request new ones each time you download. You can download files until the order’s `,_jsx(_components.code,{children:`expiresAt`}),`; after that, the endpoint returns `,_jsx(_components.code,{children:`400 ORDER_EXPIRED`}),`. For an `,_jsx(_components.code,{children:`sk_test_`}),` order, the URLs point to fixed sample files instead of your results.`]})})]})}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 Anti-AI order","openapi":"api-reference/openapi.yaml POST /api/v2/orders/anti-ai","description":"Create an order for AI detection protection processing.\n\n## Input Modes (Upload / URL / Mixed)\nThe input mode is determined by the presence of `originalFileUrl` in each file object:\n- **Upload mode** (no `originalFileUrl`): Presigned URL issued → Client uploads to S3 → Call `/confirm`\n- **URL mode** (`originalFileUrl` provided): Image downloaded from the URL and processed immediately\n- **Mixed mode**: Some files in Upload mode, others in URL mode simultaneously\n\n### Behavior\n| Condition | Order Status | Confirm Required |\n|-----------|-------------|-----------------|\n| All files have `originalFileUrl` | `inProgress` | No (immediate processing) |\n| Any file without `originalFileUrl` | `pending` | Yes (upload then confirm) |\n\n## Zero Copy Mode\nWhen `mode.zeroCopy: true`, processed results are uploaded directly to customer-provided presigned URLs.\nIn this case, `outputTargets` array is required and must match the length of `files` array.\n","href":"/api-reference/anti-ai/create-order"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Download order results","slug":"download-order-results","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create Anti-AI order","operationId":"createAntiAiOrder","description":"Create an order for AI detection protection processing.\n\n## Input Modes (Upload / URL / Mixed)\nThe input mode is determined by the presence of `originalFileUrl` in each file object:\n- **Upload mode** (no `originalFileUrl`): Presigned URL issued → Client uploads to S3 → Call `/confirm`\n- **URL mode** (`originalFileUrl` provided): Image downloaded from the URL and processed immediately\n- **Mixed mode**: Some files in Upload mode, others in URL mode simultaneously\n\n### Behavior\n| Condition | Order Status | Confirm Required |\n|-----------|-------------|-----------------|\n| All files have `originalFileUrl` | `inProgress` | No (immediate processing) |\n| Any file without `originalFileUrl` | `pending` | Yes (upload then confirm) |\n\n## Zero Copy Mode\nWhen `mode.zeroCopy: true`, processed results are uploaded directly to customer-provided presigned URLs.\nIn this case, `outputTargets` array is required and must match the length of `files` array.\n","tags":["Anti-AI"],"security":["c5b11c4c-edef-4e15-ab8e-f19ffbc56946"],"requestBody":"9e6f49d2-764a-4da4-8143-929dab83d3ed","responses":{"200":"3c295c54-a4dc-4ae0-8bed-29d354649da3","400":"18b9b234-db35-41f9-8421-4130420d8180","401":"311c43db-1141-46cf-bad4-59af2b08015d","429":"4582ea0e-16c4-482e-afb1-27fedb6ebc96","500":"f5c02ada-d973-41f2-9c99-94cc7f025ff6"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST https://api.bizmori.com/api/v2/orders/anti-ai \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"idempotencyKey\": \"2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40\",\n \"files\": [\n {\"fileName\": \"image1.jpg\"},\n {\"fileName\": \"image2.png\"}\n ],\n \"options\": {\"strength\": \"high\"}\n }'"},{"lang":"javascript","label":"JavaScript","source":"const response = await fetch('https://api.bizmori.com/api/v2/orders/anti-ai', {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_TOKEN',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n idempotencyKey: '2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40',\n files: [\n { fileName: 'image1.jpg' },\n { fileName: 'image2.png' }\n ],\n options: { strength: 'high' }\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/anti-ai',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'},\n json={\n 'idempotencyKey': '2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40',\n 'files': [\n {'fileName': 'image1.jpg'},\n {'fileName': 'image2.png'}\n ],\n 'options': {'strength': 'high'}\n }\n)\ndata = response.json()"}],"method":"post","type":"path","servers":["12c53202-44d6-48f4-884a-b8d4bc669414"],"path":"/api/v2/orders/anti-ai","baseUrlOptions":["https://api.bizmori.com"],"title":"Create Anti-AI order","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST https://api.bizmori.com/api/v2/orders/anti-ai \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"idempotencyKey\": \"2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40\",\n \"files\": [\n {\"fileName\": \"image1.jpg\"},\n {\"fileName\": \"image2.png\"}\n ],\n \"options\": {\"strength\": \"high\"}\n }'"},{"label":"JavaScript","lang":"javascript","source":"const response = await fetch('https://api.bizmori.com/api/v2/orders/anti-ai', {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_TOKEN',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n idempotencyKey: '2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40',\n files: [\n { fileName: 'image1.jpg' },\n { fileName: 'image2.png' }\n ],\n options: { strength: 'high' }\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/anti-ai',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'},\n json={\n 'idempotencyKey': '2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40',\n 'files': [\n {'fileName': 'image1.jpg'},\n {'fileName': 'image2.png'}\n ],\n 'options': {'strength': 'high'}\n }\n)\ndata = response.json()"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["idempotencyKey","files"],"properties":{"idempotencyKey":{"type":"string","description":"Idempotency key to prevent duplicate requests","isRequired":true,"uniqueKey":"idempotencyKey","typeLabel":"string"},"files":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["fileName"],"properties":{"fileName":{"type":"string","description":"File name (with extension)","example":"image.jpg","isRequired":true,"uniqueKey":"files.items.[INDEX].fileName","typeLabel":"string"},"originalFileUrl":{"type":"string","format":"uri","description":"Original image URL (optional)\n- Provided: URL mode (no presigned URL issued, immediate processing)\n- Not provided: Upload mode (presigned URL issued, confirm required)\n","example":"https://example.com/image.jpg","uniqueKey":"files.items.[INDEX].originalFileUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files","typeLabel":"object[]"},"orderName":{"type":"string","maxLength":64,"description":"Order name (optional, auto-generated if not provided)","uniqueKey":"orderName","typeLabel":"string"},"mode":{"type":"object","description":"Processing mode settings","properties":{"zeroCopy":{"type":"boolean","default":false,"description":"Enable Zero Copy mode","uniqueKey":"mode.zeroCopy","typeLabel":"boolean"}},"uniqueKey":"mode","typeLabel":"object"},"outputTargets":{"type":"array","description":"Output upload targets for Zero Copy mode (required when mode.zeroCopy is true)","items":{"type":"object","required":["fileKey","url","presignedUrlExpiresAt"],"properties":{"fileKey":{"type":"string","description":"File key (identifier)","isRequired":true,"uniqueKey":"outputTargets.items.[INDEX].fileKey","typeLabel":"string"},"url":{"type":"string","format":"uri","description":"Presigned URL for uploading results","isRequired":true,"uniqueKey":"outputTargets.items.[INDEX].url","typeLabel":"string\u003curi>"},"presignedUrlExpiresAt":{"type":"string","format":"date-time","description":"Presigned URL expiration time (ISO 8601)","isRequired":true,"uniqueKey":"outputTargets.items.[INDEX].presignedUrlExpiresAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"outputTargets.items.[INDEX]","typeLabel":"object"},"uniqueKey":"outputTargets","typeLabel":"object[]"},"options":{"type":"object","properties":{"strength":{"type":"string","enum":["low","standard","high"],"default":"high","description":"Protection strength level\n* low - Low protection strength\n* standard - Standard protection strength\n* high - High protection strength\n","uniqueKey":"options.strength","typeLabel":"enum\u003cstring>"}},"uniqueKey":"options","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"uploadMode":{"title":"uploadMode","value":{"idempotencyKey":"2f4b6c82-8a6e-4f39-9f8a-7d3b5c1e2a40","files":[{"fileName":"image1.jpg"},{"fileName":"image2.png"}],"options":{"strength":"high"}}},"urlMode":{"title":"urlMode","value":{"idempotencyKey":"3c7a5e19-9b2f-4d86-a1c4-6f8e0b3d5a71","files":[{"fileName":"image1.jpg","originalFileUrl":"https://example.com/image1.jpg"},{"fileName":"image2.png","originalFileUrl":"https://example.com/image2.png"}],"options":{"strength":"high"}}},"mixedMode":{"title":"mixedMode","value":{"idempotencyKey":"4d8b6f2a-a3c1-4e97-b2d5-7a9f1c4e6b82","files":[{"fileName":"upload-file.jpg"},{"fileName":"url-file.png","originalFileUrl":"https://example.com/image.png"}],"options":{"strength":"standard"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"3c295c54-a4dc-4ae0-8bed-29d354649da3":{"description":"Order created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"orderName":{"type":"string","uniqueKey":"data.orderName","typeLabel":"string"},"orderId":{"type":"string","uniqueKey":"data.orderId","typeLabel":"string"},"status":{"type":"string","enum":["pending","inProgress"],"description":"Order status\n- `pending`: Contains upload files (confirm required)\n- `inProgress`: All files in URL mode (immediate processing)\n","uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"files":{"type":"array","items":{"type":"object","description":"Anti-AI order file info (fields vary by file mode)\n- Upload mode: fileId, fileName, uploadUrl, fileKey\n- URL mode: fileId, fileName, originalFileUrl\n","properties":{"fileId":{"type":"string","description":"File ID","uniqueKey":"data.files.items.[INDEX].fileId","typeLabel":"string"},"fileName":{"type":"string","description":"File name","uniqueKey":"data.files.items.[INDEX].fileName","typeLabel":"string"},"uploadUrl":{"type":"string","format":"uri","description":"Upload URL — upload mode files only. 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 and can be renewed with `POST /api/v2/orders/{orderId}/refresh-urls`. 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.files.items.[INDEX].uploadUrl","typeLabel":"string\u003curi>"},"fileKey":{"type":"string","description":"File identifier — upload mode files only: an S3 object key for live keys or an isolated logical key for test keys.\n","uniqueKey":"data.files.items.[INDEX].fileKey","typeLabel":"string"},"originalFileUrl":{"type":"string","format":"uri","description":"Original image URL — URL mode files only","uniqueKey":"data.files.items.[INDEX].originalFileUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"data.files.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.files","typeLabel":"object[]"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"uploadModeResponse":{"title":"uploadModeResponse","value":{"data":{"orderName":"anti_ai_2026-02-09","orderId":"123456789","status":"pending","files":[{"fileId":"1","fileName":"image1.jpg","uploadUrl":"https://s3.amazonaws.com/...","fileKey":"temp/123456789/0/image1.jpg"}]}}},"urlModeResponse":{"title":"urlModeResponse","value":{"data":{"orderName":"anti_ai_2026-02-09","orderId":"123456789","status":"inProgress","files":[{"fileId":"1","fileName":"image1.jpg","originalFileUrl":"https://example.com/image1.jpg"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"18b9b234-db35-41f9-8421-4130420d8180":{"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"},"311c43db-1141-46cf-bad4-59af2b08015d":{"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"},"4582ea0e-16c4-482e-afb1-27fedb6ebc96":{"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"},"f5c02ada-d973-41f2-9c99-94cc7f025ff6":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"SERVER_INTERNAL_ERROR"},"examples":{"Example":{"title":"Example","value":{"code":"SERVER_INTERNAL_ERROR"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"c5b11c4c-edef-4e15-ab8e-f19ffbc56946":{"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 Anti-AI order - ContentCare API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/anti-ai/create-order","matchLevel":0},"ko":{"href":"/ko/api-reference/anti-ai/create-order","matchLevel":1},"ja":{"href":"/ja/api-reference/anti-ai/create-order","matchLevel":1}}},"lastModified":"2026-10-22T14:09:47.786Z","originalFileLocation":"api-reference/anti-ai/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=\"Create an order for AI detection protection processing. ## Input Modes (Upload / URL / Mixed) The input mode is determined by the presence of originalFileUrl in each file object: - Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm - URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately - Mixed mode: Some files in Upload mode, others in URL mode simultaneously ### Behavior | Condition | Order Status | Confirm Required | |-----------|-------------|-----------------| | All files have originalFileUrl | inProgress | No (immediate processing) | | Any file without originalFileUrl | pending | Yes (upload then confirm) | ## Zero Copy Mode When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs. In this case, outputTargets array is required and must match the length of files array.\">\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 Anti-AI order - ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an order for AI detection protection processing. ## Input Modes (Upload / URL / Mixed) The input mode is determined by the presence of originalFileUrl in each file object: - Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm - URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately - Mixed mode: Some files in Upload mode, others in URL mode simultaneously ### Behavior | Condition | Order Status | Confirm Required | |-----------|-------------|-----------------| | All files have originalFileUrl | inProgress | No (immediate processing) | | Any file without originalFileUrl | pending | Yes (upload then confirm) | ## Zero Copy Mode When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs. In this case, outputTargets array is required and must match the length of files array.\">\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/anti-ai/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=Anti-AI\u0026amp;title=Create+Anti-AI+order\u0026amp;description=Create+an+order+for+AI+detection+protection+processing.%0A%0A%23%23+Input+Modes+%28Upload+%2F+URL+%2F+Mixed%29%0AThe+input+mode+is+determined+by+the+presence+of+%60originalFileUrl%60\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=4a078366533818e51420d4fd20309fb8ed20f22e5e9c6f8ed6f8606c4b796cad\">\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 Anti-AI order - ContentCare API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an order for AI detection protection processing. ## Input Modes (Upload / URL / Mixed) The input mode is determined by the presence of originalFileUrl in each file object: - Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm - URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately - Mixed mode: Some files in Upload mode, others in URL mode simultaneously ### Behavior | Condition | Order Status | Confirm Required | |-----------|-------------|-----------------| | All files have originalFileUrl | inProgress | No (immediate processing) | | Any file without originalFileUrl | pending | Yes (upload then confirm) | ## Zero Copy Mode When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs. In this case, outputTargets array is required and must match the length of files array.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=Anti-AI\u0026amp;title=Create+Anti-AI+order\u0026amp;description=Create+an+order+for+AI+detection+protection+processing.%0A%0A%23%23+Input+Modes+%28Upload+%2F+URL+%2F+Mixed%29%0AThe+input+mode+is+determined+by+the+presence+of+%60originalFileUrl%60\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=4a078366533818e51420d4fd20309fb8ed20f22e5e9c6f8ed6f8606c4b796cad\">\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/anti-ai/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/anti-ai/create-order.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.contentcare.ai/api-reference/anti-ai/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.contentcare.ai/ko/api-reference/anti-ai/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.contentcare.ai/ja/api-reference/anti-ai/create-order\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.contentcare.ai/api-reference/anti-ai/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/anti-ai/create-order#webpage\",\"url\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order\",\"name\":\"Create Anti-AI order\",\"description\":\"Create an order for AI detection protection processing. ## Input Modes (Upload / URL / Mixed) The input mode is determined by the presence of originalFileUrl in each file object: - Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm - URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately - Mixed mode: Some files in Upload mode, others in URL mode simultaneously ### Behavior | Condition | Order Status | Confirm Required | |-----------|-------------|-----------------| | All files have originalFileUrl | inProgress | No (immediate processing) | | Any file without originalFileUrl | pending | Yes (upload then confirm) | ## Zero Copy Mode When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs. In this case, outputTargets array is required and must match the length of files array.\",\"dateModified\":\"2026-10-22T14:09:47.786Z\",\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"ContentCare API Documentation\",\"item\":\"https://docs.contentcare.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Anti-AI order\",\"item\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order#apireference\",\"headline\":\"Create Anti-AI order\",\"name\":\"Create Anti-AI order\",\"description\":\"Create an order for AI detection protection processing. ## Input Modes (Upload / URL / Mixed) The input mode is determined by the presence of originalFileUrl in each file object: - Upload mode (no originalFileUrl): Presigned URL issued → Client uploads to S3 → Call /confirm - URL mode (originalFileUrl provided): Image downloaded from the URL and processed immediately - Mixed mode: Some files in Upload mode, others in URL mode simultaneously ### Behavior | Condition | Order Status | Confirm Required | |-----------|-------------|-----------------| | All files have originalFileUrl | inProgress | No (immediate processing) | | Any file without originalFileUrl | pending | Yes (upload then confirm) | ## Zero Copy Mode When mode.zeroCopy: true, processed results are uploaded directly to customer-provided presigned URLs. In this case, outputTargets array is required and must match the length of files array.\",\"url\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contentcare.ai/api-reference/anti-ai/create-order#webpage\"},\"dateModified\":\"2026-10-22T14:09:47.786Z\",\"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","description":"Complete reference for the BIZ MORI API endpoints","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","description":"Call after file upload is complete to start processing.\n- Call after all upload files are uploaded to S3\n- Status changes to `inProgress` when processing starts\n- In mixed mode, only upload files are checked for S3 presence; URL files are already ready\n- Orders where all files are in URL mode are already `inProgress` and don't need confirm\n","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","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","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/anti-ai/create-order"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api-reference/anti-ai/create-order"}]}]},"title":"Create Anti-AI 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"]}