Create an order that embeds invisible watermarks into images and PDFs.
Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text
Each watermark text produces its own output file in outputs[] and uses 1 credit
Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha
A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored
For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds)
Processing starts automatically when every file is uploaded. There is no confirm step
Orders whose files are not uploaded within 12 hours become failed
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.
Idempotency key. Use a new UUIDv4 for each new order and reuse it only when retrying the same request. The same key returns the existing order; the same key with a different request body returns 409 WATERMARK_V2_CONFLICT.
Public HTTPS URL of the original file (optional). When set, BIZ MORI downloads the file (up to 32 MiB, redirects not followed) and no uploadUrl is issued for it.
Response
Order created, or the existing order for the same idempotencyKey
Invisible watermark order created with the v3 API, as returned by the order creation endpoints. Use GET /api/v3/orders/{orderId} for the order detail, which has a different shape
Presigned PUT URL for uploading the file, valid for 900 seconds. Issued only while the order status is pending, the retention period has not ended, and the file is waiting for upload.
It is null for files given by originalFileUrl, files already uploaded, orders that became failed after the 12-hour upload window, and expired orders.
Identifier of the output within the order in {inputFileId}-{ordinal} format. Used only in the order creation response. result.outputFiles[].fileId of the order detail and files[].fileId of the download response are numeric strings and differ from this value
Embedded text of the detected watermark. Returned only when detectionStatus is detected, your account embedded the watermark, and exactly one issuance record matches.
Otherwise null, for example when another account embedded the watermark.
When the order files are deleted. Downloads and reports return ORDER_EXPIRED afterwards
{"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/watermark-embed/create-order-v3","slug":"/api-reference/watermark-embed/create-order-v3","pageMetadata":{"tag":"v3","title":"Create watermark embed order","openapi":"api-reference/openapi.yaml POST /api/v3/orders/wtr-embed","description":"Create an order that embeds invisible watermarks into images and PDFs.\n\n- Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text\n- Each watermark text produces its own output file in `outputs[]` and uses 1 credit\n- Supported extensions: `jpg`, `jpeg`, `png`, `webp`, `bmp`, `tif`, `tiff`, `pdf`. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha\n- A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public `errorCode`, and the credits are restored\n- For each file without `originalFileUrl`, upload the file with `PUT` to `files[].uploadUrl` (valid for 900 seconds)\n- Processing starts automatically when every file is uploaded. There is no confirm step\n- Orders whose files are not uploaded within 12 hours become `failed`\n- Poll [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3) until `status` is `complete`, then call the download endpoint\n","href":"/api-reference/watermark-embed/create-order-v3"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Create an order that embeds invisible watermarks into images and PDFs.\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Each watermark text produces its own output file in \", _jsx(_components.code, {\n children: \"outputs[]\"\n }), \" and uses 1 credit\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Supported extensions: \", _jsx(_components.code, {\n children: \"jpg\"\n }), \", \", _jsx(_components.code, {\n children: \"jpeg\"\n }), \", \", _jsx(_components.code, {\n children: \"png\"\n }), \", \", _jsx(_components.code, {\n children: \"webp\"\n }), \", \", _jsx(_components.code, {\n children: \"bmp\"\n }), \", \", _jsx(_components.code, {\n children: \"tif\"\n }), \", \", _jsx(_components.code, {\n children: \"tiff\"\n }), \", \", _jsx(_components.code, {\n children: \"pdf\"\n }), \". BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public \", _jsx(_components.code, {\n children: \"errorCode\"\n }), \", and the credits are restored\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"For each file without \", _jsx(_components.code, {\n children: \"originalFileUrl\"\n }), \", upload the file with \", _jsx(_components.code, {\n children: \"PUT\"\n }), \" to \", _jsx(_components.code, {\n children: \"files[].uploadUrl\"\n }), \" (valid for 900 seconds)\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"Processing starts automatically when every file is uploaded. There is no confirm step\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Orders whose files are not uploaded within 12 hours become \", _jsx(_components.code, {\n children: \"failed\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Poll \", _jsx(_components.a, {\n href: \"/api-reference/orders/get-order-v3\",\n children: _jsx(_components.code, {\n children: \"GET /api/v3/orders/{orderId}\"\n })\n }), \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"complete\"\n }), \", then call the download endpoint\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"tag":"v3","title":"Create watermark embed order","openapi":"api-reference/openapi.yaml POST /api/v3/orders/wtr-embed","description":"Create an order that embeds invisible watermarks into images and PDFs.\n\n- Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text\n- Each watermark text produces its own output file in `outputs[]` and uses 1 credit\n- Supported extensions: `jpg`, `jpeg`, `png`, `webp`, `bmp`, `tif`, `tiff`, `pdf`. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha\n- A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public `errorCode`, and the credits are restored\n- For each file without `originalFileUrl`, upload the file with `PUT` to `files[].uploadUrl` (valid for 900 seconds)\n- Processing starts automatically when every file is uploaded. There is no confirm step\n- Orders whose files are not uploaded within 12 hours become `failed`\n- Poll [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3) until `status` is `complete`, then call the download endpoint\n","href":"/api-reference/watermark-embed/create-order-v3"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create a watermark embed order","operationId":"createWatermarkV1EmbedOrder","description":"Create an order that embeds invisible watermarks into images and PDFs.\n\n- Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text\n- Each watermark text produces its own output file in `outputs[]` and uses 1 credit\n- Supported extensions: `jpg`, `jpeg`, `png`, `webp`, `bmp`, `tif`, `tiff`, `pdf`. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha\n- A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public `errorCode`, and the credits are restored\n- For each file without `originalFileUrl`, upload the file with `PUT` to `files[].uploadUrl` (valid for 900 seconds)\n- Processing starts automatically when every file is uploaded. There is no confirm step\n- Orders whose files are not uploaded within 12 hours become `failed`\n- Poll [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3) until `status` is `complete`, then call the download endpoint\n","tags":["Watermark Embed"],"security":["5b4928af-3838-4036-b652-19be8e94c9aa"],"requestBody":"d8ff8866-f30e-4c83-b172-bdd08e13f715","responses":{"200":"d9d9a45d-6cff-43ed-890c-35028b64d4ef","400":"5f84ab39-9205-4729-9bd9-ea375103fc64","401":"44919568-fd4b-4bd2-98b8-5ba5475e4b49","409":"97152eea-104f-47fb-867f-ae4c8ac3195b","429":"00eecaa7-10a3-463f-9ed5-5da1df3526b6","500":"63b4e78c-8da2-484d-8224-7289e12d65b1","503":"5cc8299e-aa40-4c49-9f0e-c13db1a0fe4f"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST https://api.bizmori.com/api/v3/orders/wtr-embed \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n}'\n"},{"lang":"javascript","label":"JavaScript","source":"const response = await fetch(`https://api.bizmori.com/api/v3/orders/wtr-embed`, {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_KEY',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n })\n});\nconst { data } = await response.json();\n// PUT each file to its presigned URL (files[] follows the request order)\n// await fetch(data.files[0].uploadUrl, { method: 'PUT', body: file });\n"},{"lang":"python","label":"Python","source":"import requests\n\nresponse = requests.post(\n f'https://api.bizmori.com/api/v3/orders/wtr-embed',\n headers={'Authorization': 'Bearer YOUR_API_KEY'},\n json={\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n }\n)\ndata = response.json()['data']\n# PUT each file to its presigned URL (files[] follows the request order)\n# requests.put(data['files'][0]['uploadUrl'], data=open('campaign.png', 'rb'))\n"}],"method":"post","type":"path","servers":["12c53202-44d6-48f4-884a-b8d4bc669414"],"path":"/api/v3/orders/wtr-embed","baseUrlOptions":["https://api.bizmori.com"],"title":"Create a watermark embed order","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST https://api.bizmori.com/api/v3/orders/wtr-embed \\\n -H \"Authorization: Bearer YOUR_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n}'\n"},{"label":"JavaScript","lang":"javascript","source":"const response = await fetch(`https://api.bizmori.com/api/v3/orders/wtr-embed`, {\n method: 'POST',\n headers: {\n 'Authorization': 'Bearer YOUR_API_KEY',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n })\n});\nconst { data } = await response.json();\n// PUT each file to its presigned URL (files[] follows the request order)\n// await fetch(data.files[0].uploadUrl, { method: 'PUT', body: file });\n"},{"label":"Python","lang":"python","source":"import requests\n\nresponse = requests.post(\n f'https://api.bizmori.com/api/v3/orders/wtr-embed',\n headers={'Authorization': 'Bearer YOUR_API_KEY'},\n json={\n \"idempotencyKey\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n \"files\": [\n {\n \"fileName\": \"campaign.png\",\n \"watermarks\": [\n {\n \"text\": \"MORI-2026-001\"\n }\n ]\n },\n {\n \"fileName\": \"contract.pdf\",\n \"originalFileUrl\": \"https://example.com/contract.pdf\",\n \"watermarks\": [\n {\n \"text\": \"PARTNER-A\"\n },\n {\n \"text\": \"PARTNER-B\"\n }\n ]\n }\n ]\n }\n)\ndata = response.json()['data']\n# PUT each file to its presigned URL (files[] follows the request order)\n# requests.put(data['files'][0]['uploadUrl'], data=open('campaign.png', 'rb'))\n"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["idempotencyKey","files"],"properties":{"idempotencyKey":{"type":"string","maxLength":255,"description":"Idempotency key. Use a new UUIDv4 for each new order and reuse it only when retrying the same request. The same key returns the existing order; the same key with a different request body returns `409 WATERMARK_V2_CONFLICT`.","isRequired":true,"uniqueKey":"idempotencyKey","typeLabel":"string"},"files":{"type":"array","minItems":1,"maxItems":100,"description":"Images and PDFs can be mixed in one order.","items":{"type":"object","required":["fileName","watermarks"],"properties":{"fileName":{"type":"string","maxLength":255,"description":"File name with extension. Supported: `jpg`, `jpeg`, `png`, `webp`, `bmp`, `tif`, `tiff`, `pdf`.","isRequired":true,"uniqueKey":"files.items.[INDEX].fileName","typeLabel":"string"},"watermarks":{"type":"array","minItems":1,"maxItems":10,"description":"Watermark texts to embed. Each text produces a separate output file and uses 1 credit.","items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":1000,"isRequired":true,"uniqueKey":"files.items.[INDEX].watermarks.items.[INDEX].text","typeLabel":"string"}},"uniqueKey":"files.items.[INDEX].watermarks.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files.items.[INDEX].watermarks","typeLabel":"object[]"},"originalFileUrl":{"type":"string","format":"uri","description":"Public HTTPS URL of the original file (optional). When set, BIZ MORI downloads the file (up to 32 MiB, redirects not followed) and no `uploadUrl` is issued for it.","uniqueKey":"files.items.[INDEX].originalFileUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"files","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"idempotencyKey":"f47ac10b-58cc-4372-a567-0e02b2c3d479","files":[{"fileName":"campaign.png","watermarks":[{"text":"MORI-2026-001"}]},{"fileName":"contract.pdf","originalFileUrl":"https://example.com/contract.pdf","watermarks":[{"text":"PARTNER-A"},{"text":"PARTNER-B"}]}]},"examples":{"Example":{"title":"Example","value":{"idempotencyKey":"f47ac10b-58cc-4372-a567-0e02b2c3d479","files":[{"fileName":"campaign.png","watermarks":[{"text":"MORI-2026-001"}]},{"fileName":"contract.pdf","originalFileUrl":"https://example.com/contract.pdf","watermarks":[{"text":"PARTNER-A"},{"text":"PARTNER-B"}]}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"d9d9a45d-6cff-43ed-890c-35028b64d4ef":{"description":"Order created, or the existing order for the same `idempotencyKey`","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","description":"Invisible watermark order created with the v3 API, as returned by the order creation endpoints. Use `GET /api/v3/orders/{orderId}` for the order detail, which has a different shape","required":["orderId","status","processingDelayed","files","outputs","result","reports"],"properties":{"orderId":{"type":"string","description":"Order ID","isRequired":true,"uniqueKey":"data.orderId","typeLabel":"string"},"status":{"type":"string","enum":["pending","inProgress","complete","failed","expired"],"description":"Order processing status\n\n* `pending` - Waiting for file uploads\n* `inProgress` - Processing\n* `complete` - Processing finished. For extract orders, read the outcome from `result`\n* `failed` - Processing failed, or files were not uploaded within 12 hours\n* `expired` - The retention period has ended and files were deleted\n","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"processingDelayed":{"type":"boolean","description":"`true` when automatic retries are exhausted and the order is waiting for manual recovery. The order stays `inProgress`","isRequired":true,"uniqueKey":"data.processingDelayed","typeLabel":"boolean"},"files":{"type":"array","description":"Uploaded input files, in request order. Extract orders return the original first and the file to inspect second","items":{"type":"object","required":["fileId","uploadUrl"],"properties":{"fileId":{"type":"string","description":"Input file ID","isRequired":true,"uniqueKey":"data.files.items.[INDEX].fileId","typeLabel":"string"},"uploadUrl":{"oneOf":[{"type":"string","format":"uri","description":"Presigned `PUT` URL for uploading the file, valid for 900 seconds. Issued only while the order `status` is `pending`, the retention period has not ended, and the file is waiting for upload.\nIt is `null` for files given by `originalFileUrl`, files already uploaded, orders that became `failed` after the 12-hour upload window, and expired orders.\n","isRequired":true,"uniqueKey":"data.files.items.[INDEX].uploadUrl.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Presigned `PUT` URL for uploading the file, valid for 900 seconds. Issued only while the order `status` is `pending`, the retention period has not ended, and the file is waiting for upload.\nIt is `null` for files given by `originalFileUrl`, files already uploaded, orders that became `failed` after the 12-hour upload window, and expired orders.\n","isRequired":true,"uniqueKey":"data.files.items.[INDEX].uploadUrl.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.files.items.[INDEX].uploadUrl","typeLabel":"string\u003curi> | null"}},"uniqueKey":"data.files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.files","typeLabel":"object[]"},"outputs":{"type":"array","description":"Embed outputs. One entry per watermark text. Empty for extract orders","items":{"type":"object","required":["fileId","inputFileId","outputIndex","watermarkText","status","mediaKind"],"properties":{"fileId":{"type":"string","description":"Identifier of the output within the order in `{inputFileId}-{ordinal}` format. Used only in the order creation response. `result.outputFiles[].fileId` of the order detail and `files[].fileId` of the download response are numeric strings and differ from this value","isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].fileId","typeLabel":"string"},"inputFileId":{"type":"string","description":"ID of the input file this output was created from","isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].inputFileId","typeLabel":"string"},"outputIndex":{"type":"integer","minimum":0,"description":"Position of the watermark text within the input file's `watermarks`","isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].outputIndex","typeLabel":"integer"},"watermarkText":{"type":"string","description":"The embedded watermark text","isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].watermarkText","typeLabel":"string"},"status":{"type":"string","enum":["pending","queued","processing","completed","failed","retry_required"],"description":"Processing status of this output","isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"mediaKind":{"type":"string","enum":["image","pdf"],"isRequired":true,"uniqueKey":"data.outputs.items.[INDEX].mediaKind","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.outputs.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.outputs","typeLabel":"object[]"},"result":{"oneOf":[{"type":"object","description":"Extract result summary. `null` for embed orders and until the result is ready. Contains only the fields below","required":["detectionStatus","reportSupported","watermarkText"],"additionalProperties":false,"properties":{"detectionStatus":{"type":"string","enum":["detected","not_detected","inconclusive","unsupported","error"],"description":"* `detected` - A watermark was found\n* `not_detected` - The file was fully checked and no watermark was found\n* `inconclusive` - A candidate was found but did not meet the confidence threshold\n* `unsupported` - The input cannot be processed (credit refunded)\n* `error` - Detection failed. This is not the same as no watermark (credit refunded)\n","isRequired":true,"uniqueKey":"data.result.oneOf.0.detectionStatus","typeLabel":"enum\u003cstring>"},"reportSupported":{"type":"boolean","description":"Whether a report can be created from this result. `false` for images captured from a PDF","isRequired":true,"uniqueKey":"data.result.oneOf.0.reportSupported","typeLabel":"boolean"},"watermarkText":{"oneOf":[{"type":"string","description":"Embedded text of the detected watermark. Returned only when `detectionStatus` is `detected`, your account embedded the watermark, and exactly one issuance record matches.\nOtherwise `null`, for example when another account embedded the watermark.\n","isRequired":true,"uniqueKey":"data.result.oneOf.0.watermarkText.oneOf.0","typeLabel":"string"},{"type":"null","description":"Embedded text of the detected watermark. Returned only when `detectionStatus` is `detected`, your account embedded the watermark, and exactly one issuance record matches.\nOtherwise `null`, for example when another account embedded the watermark.\n","isRequired":true,"uniqueKey":"data.result.oneOf.0.watermarkText.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.result.oneOf.0.watermarkText","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.result.oneOf.0","typeLabel":"object"},{"type":"null","description":"Extract result summary. `null` for embed orders and until the result is ready. Contains only the fields below","required":["detectionStatus","reportSupported","watermarkText"],"additionalProperties":false,"properties":{"detectionStatus":{"type":"string","enum":["detected","not_detected","inconclusive","unsupported","error"],"description":"* `detected` - A watermark was found\n* `not_detected` - The file was fully checked and no watermark was found\n* `inconclusive` - A candidate was found but did not meet the confidence threshold\n* `unsupported` - The input cannot be processed (credit refunded)\n* `error` - Detection failed. This is not the same as no watermark (credit refunded)\n"},"reportSupported":{"type":"boolean","description":"Whether a report can be created from this result. `false` for images captured from a PDF"},"watermarkText":{"oneOf":[{"type":"string","description":"Embedded text of the detected watermark. Returned only when `detectionStatus` is `detected`, your account embedded the watermark, and exactly one issuance record matches.\nOtherwise `null`, for example when another account embedded the watermark.\n"},{"type":"null","description":"Embedded text of the detected watermark. Returned only when `detectionStatus` is `detected`, your account embedded the watermark, and exactly one issuance record matches.\nOtherwise `null`, for example when another account embedded the watermark.\n"}]}},"isRequired":true,"uniqueKey":"data.result.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.result","typeLabel":"object | null"},"reports":{"type":"array","description":"Reports requested for this order","items":{"type":"object","required":["locale","status"],"properties":{"locale":{"type":"string","enum":["ko-KR","en-US","ja-JP"],"isRequired":true,"uniqueKey":"data.reports.items.[INDEX].locale","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["queued","processing","completed","failed"],"isRequired":true,"uniqueKey":"data.reports.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.reports.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.reports","typeLabel":"object[]"},"expiresAt":{"oneOf":[{"type":"string","format":"date-time","description":"When the order files are deleted. Downloads and reports return `ORDER_EXPIRED` afterwards","uniqueKey":"data.expiresAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the order files are deleted. Downloads and reports return `ORDER_EXPIRED` afterwards","uniqueKey":"data.expiresAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.expiresAt","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"orderId":"1234567890","status":"pending","processingDelayed":false,"expiresAt":"2026-10-08T03:00:00.000Z","files":[{"fileId":"501","uploadUrl":"https://s3.ap-northeast-2.amazonaws.com/..."},{"fileId":"502","uploadUrl":null}],"outputs":[{"fileId":"501-1","inputFileId":"501","outputIndex":0,"watermarkText":"MORI-2026-001","status":"pending","mediaKind":"image"},{"fileId":"502-1","inputFileId":"502","outputIndex":0,"watermarkText":"PARTNER-A","status":"pending","mediaKind":"pdf"},{"fileId":"502-2","inputFileId":"502","outputIndex":1,"watermarkText":"PARTNER-B","status":"pending","mediaKind":"pdf"}],"result":null,"reports":[]}},"examples":{"Example":{"title":"Example","value":{"data":{"orderId":"1234567890","status":"pending","processingDelayed":false,"expiresAt":"2026-10-08T03:00:00.000Z","files":[{"fileId":"501","uploadUrl":"https://s3.ap-northeast-2.amazonaws.com/..."},{"fileId":"502","uploadUrl":null}],"outputs":[{"fileId":"501-1","inputFileId":"501","outputIndex":0,"watermarkText":"MORI-2026-001","status":"pending","mediaKind":"image"},{"fileId":"502-1","inputFileId":"502","outputIndex":0,"watermarkText":"PARTNER-A","status":"pending","mediaKind":"pdf"},{"fileId":"502-2","inputFileId":"502","outputIndex":1,"watermarkText":"PARTNER-B","status":"pending","mediaKind":"pdf"}],"result":null,"reports":[]}}}},"exampleType":"examples"}},"exampleType":"examples"},"5f84ab39-9205-4729-9bd9-ea375103fc64":{"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"},"44919568-fd4b-4bd2-98b8-5ba5475e4b49":{"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"},"97152eea-104f-47fb-867f-ae4c8ac3195b":{"description":"The same `idempotencyKey` was used with a different request body","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"WATERMARK_V2_CONFLICT"},"examples":{"Example":{"title":"Example","value":{"code":"WATERMARK_V2_CONFLICT"}}},"exampleType":"examples"}},"exampleType":"examples"},"00eecaa7-10a3-463f-9ed5-5da1df3526b6":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"RATE_LIMIT_EXCEEDED"},"examples":{"Example":{"title":"Example","value":{"code":"RATE_LIMIT_EXCEEDED"}}},"exampleType":"examples"}},"exampleType":"examples"},"63b4e78c-8da2-484d-8224-7289e12d65b1":{"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"},"5cc8299e-aa40-4c49-9f0e-c13db1a0fe4f":{"description":"Watermark processing is temporarily unavailable","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"WATERMARK_V2_UNAVAILABLE"},"examples":{"Example":{"title":"Example","value":{"code":"WATERMARK_V2_UNAVAILABLE"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"5b4928af-3838-4036-b652-19be8e94c9aa":{"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 watermark embed order - ContentCare API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/watermark-embed/create-order-v3","matchLevel":0},"ko":{"href":"/ko/api-reference/watermark-embed/create-order-v3","matchLevel":1},"ja":{"href":"/ja/api-reference/watermark-embed/create-order-v3","matchLevel":1}}},"lastModified":"2026-10-22T14:09:47.785Z","originalFileLocation":"api-reference/watermark-embed/create-order-v3.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 that embeds invisible watermarks into images and PDFs. - Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text - Each watermark text produces its own output file in outputs[] and uses 1 credit - Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha - A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored - For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds) - Processing starts automatically when every file is uploaded. There is no confirm step - Orders whose files are not uploaded within 12 hours become failed - Poll GET /api/v3/orders/{orderId} until status is complete, then call the download endpoint\">\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 watermark embed order - ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an order that embeds invisible watermarks into images and PDFs. - Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text - Each watermark text produces its own output file in outputs[] and uses 1 credit - Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha - A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored - For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds) - Processing starts automatically when every file is uploaded. There is no confirm step - Orders whose files are not uploaded within 12 hours become failed - Poll GET /api/v3/orders/{orderId} until status is complete, then call the download endpoint\">\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/watermark-embed/create-order-v3\">\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=Watermark+Embed\u0026amp;title=Create+watermark+embed+order\u0026amp;description=Create+an+order+that+embeds+invisible+watermarks+into+images+and+PDFs.%0A%0A-+Up+to+100+files+per+order%2C+1%E2%80%9310+watermark+texts+per+file%2C+1%E2%80%931%2C000+characters+per+text%0A\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=2d49172a43c9730f11fe8aefa8f207b31fb1e8e17e8ab324e9b24df77fd607e8\">\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 watermark embed order - ContentCare API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an order that embeds invisible watermarks into images and PDFs. - Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text - Each watermark text produces its own output file in outputs[] and uses 1 credit - Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha - A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored - For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds) - Processing starts automatically when every file is uploaded. There is no confirm step - Orders whose files are not uploaded within 12 hours become failed - Poll GET /api/v3/orders/{orderId} until status is complete, then call the download endpoint\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=Watermark+Embed\u0026amp;title=Create+watermark+embed+order\u0026amp;description=Create+an+order+that+embeds+invisible+watermarks+into+images+and+PDFs.%0A%0A-+Up+to+100+files+per+order%2C+1%E2%80%9310+watermark+texts+per+file%2C+1%E2%80%931%2C000+characters+per+text%0A\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=2d49172a43c9730f11fe8aefa8f207b31fb1e8e17e8ab324e9b24df77fd607e8\">\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/watermark-embed/create-order-v3\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/watermark-embed/create-order-v3.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.contentcare.ai/ko/api-reference/watermark-embed/create-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.contentcare.ai/ja/api-reference/watermark-embed/create-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3\">\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/watermark-embed/create-order-v3#webpage\",\"url\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3\",\"name\":\"Create watermark embed order\",\"description\":\"Create an order that embeds invisible watermarks into images and PDFs. - Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text - Each watermark text produces its own output file in outputs[] and uses 1 credit - Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha - A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored - For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds) - Processing starts automatically when every file is uploaded. There is no confirm step - Orders whose files are not uploaded within 12 hours become failed - Poll GET /api/v3/orders/{orderId} until status is complete, then call the download endpoint\",\"dateModified\":\"2026-10-22T14:09:47.785Z\",\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Watermark Embed\",\"item\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create watermark embed order\",\"item\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3#apireference\",\"headline\":\"Create watermark embed order\",\"name\":\"Create watermark embed order\",\"description\":\"Create an order that embeds invisible watermarks into images and PDFs. - Up to 100 files per order, 1–10 watermark texts per file, 1–1,000 characters per text - Each watermark text produces its own output file in outputs[] and uses 1 credit - Supported extensions: jpg, jpeg, png, webp, bmp, tif, tiff, pdf. BMP must be uncompressed 24-bit RGB or 1- or 8-bit grayscale. TIFF must be single-page 8-bit RGB or 1- or 8-bit grayscale, without alpha - A BMP or TIFF file outside that range (multi-page, 16-bit, palette, alpha, CMYK, and so on) fails the order with a public errorCode, and the credits are restored - For each file without originalFileUrl, upload the file with PUT to files[].uploadUrl (valid for 900 seconds) - Processing starts automatically when every file is uploaded. There is no confirm step - Orders whose files are not uploaded within 12 hours become failed - Poll GET /api/v3/orders/{orderId} until status is complete, then call the download endpoint\",\"url\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contentcare.ai/api-reference/watermark-embed/create-order-v3#webpage\"},\"dateModified\":\"2026-10-22T14:09:47.785Z\",\"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","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","description":"**Support ended.** This endpoint ended support at 09:00 KST on October 9, 2026 (00:00 UTC). Use `POST /api/v3/orders/wtr-embed` instead.\n\nEvery response from this endpoint, including authentication errors and the `410` response, includes the `Deprecation: true`, `Sunset: Fri, 09 Oct 2026 00:00:00 GMT`, and `Link: \u003c/api/v3/orders/wtr-embed>; rel=\"successor-version\"` headers.\n\nFrom 09:00 KST on October 9, 2026 (00:00 UTC):\n- Authentication and permission checks still run first, so `401` and `403` errors are returned as before.\n- Authenticated requests to the v2 watermark embed and extract endpoints return `410 Gone` with `{ \"code\": \"WATERMARK_V2_API_SUNSET\" }`, for both live and `sk_test_` keys. The `Link` header points to the v3 endpoint. Create new orders with v3.\n- v2 orders that have not started processing by then fail without being processed. The order details (`errors.errorCode`) and the failed webhook carry `WATERMARK_V2_API_SUNSET` with a message pointing to v3. The order is not charged, and its credits are restored.\n- Orders already processing at that time finish and record their result. No new run starts for them afterwards.\n\nCreate a watermark embedding order.\n- Up to 10 watermark texts per image\n- Up to 100 files per order\n- Supported image formats (IMG): jpg, jpeg, png, webp, bmp, tiff\n- Supported document formats (DOCUMENT): pdf\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 → Processing starts automatically\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` | `pending` | No (auto-starts after server downloads) |\n| Any file without `originalFileUrl` | `pending` | No (auto-starts after upload) |\n\n\u003cNote>Unlike Anti-AI and AI Detection, Watermark Embed does not require a separate confirm step. Processing starts automatically after file upload completes.\u003c/Note>\n","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","description":"**Support ended.** This endpoint ended support at 09:00 KST on October 9, 2026 (00:00 UTC). Use `POST /api/v3/orders/wtr-extract` instead.\n\nEvery response from this endpoint, including authentication errors and the `410` response, includes the `Deprecation: true`, `Sunset: Fri, 09 Oct 2026 00:00:00 GMT`, and `Link: \u003c/api/v3/orders/wtr-extract>; rel=\"successor-version\"` headers.\n\nFrom 09:00 KST on October 9, 2026 (00:00 UTC):\n- Authentication and permission checks still run first, so `401` and `403` errors are returned as before.\n- Authenticated requests to the v2 watermark embed and extract endpoints return `410 Gone` with `{ \"code\": \"WATERMARK_V2_API_SUNSET\" }`, for both live and `sk_test_` keys. The `Link` header points to the v3 endpoint. Create new orders with v3.\n- v2 orders that have not started processing by then fail without being processed. The order details (`errors.errorCode`) and the failed webhook carry `WATERMARK_V2_API_SUNSET` with a message pointing to v3. The order is not charged, and its credits are restored.\n- Orders already processing at that time finish and record their result. No new run starts for them afterwards.\n\nCreate a watermark extraction order.\n- Only 1 file per order\n- Supports image (jpg, jpeg, png, webp, bmp, tiff) or PDF files\n- For images, `includeOriginal: true` allows uploading the original file alongside\n- PDF does not support `includeOriginal`\n","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/watermark-embed/create-order-v3"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api-reference/watermark-embed/create-order-v3"}]}]},"title":"Create watermark embed 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"]}