Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3.
files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values
archiveUrl: one URL for all results. Always a string
Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results
Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl)
expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs
Error check order (the first matching error is returned)
The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND
Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends
The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN
status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED
Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead.
Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.
GET
/
api
/
v3
/
orders
/
{orderId}
/
download
cURL
curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID/download \ -H "Authorization: Bearer YOUR_API_KEY"
Use this endpoint to download the results of a completed Anti-AI or watermark embed order. One call returns a URL for every output file and one URL for all results. The response has the same shape whether you created the watermark order with v2 or v3.
The response shape changed on October 8, 2026, and GET /api/v3/orders/{orderId}/files/{fileId}/download was removed. See Changes from the previous response.
How long the URLs are valid, in seconds. At most 3600
files[] lists the same files in the same order as result.outputFiles[] from Get order details, with the same fileId values. Use fileId to match each URL to its output file and its inputFileId.
The URLs are valid for 3600 seconds (1 hour). If the order’s retention period ends sooner (expiresAt), the lifetime is shortened to the time left, and expiresInSeconds reports the shorter value. Don’t store the URLs. Call this endpoint again whenever you need to download.
import { writeFile } from 'node:fs/promises';const headers = { Authorization: 'Bearer YOUR_API_KEY' };const base = `https://api.bizmori.com/api/v3/orders/${orderId}`;const { data: order } = await (await fetch(base, { headers })).json();const { data: download } = await (await fetch(`${base}/download`, { headers })).json();// files[] and result.outputFiles[] share fileId values and order.const names = new Map(order.result.outputFiles.map((file) => [file.fileId, file.fileName]));for (const { fileId, downloadUrl } of download.files) { const res = await fetch(downloadUrl); await writeFile(`${fileId}-${names.get(fileId)}`, Buffer.from(await res.arrayBuffer()));}
import requestsheaders = {'Authorization': 'Bearer YOUR_API_KEY'}base = f'https://api.bizmori.com/api/v3/orders/{order_id}'order = requests.get(base, headers=headers).json()['data']download = requests.get(f'{base}/download', headers=headers).json()['data']# files[] and result.outputFiles[] share fileId values and order.names = {f['fileId']: f['fileName'] for f in order['result']['outputFiles']}for item in download['files']: res = requests.get(item['downloadUrl']) with open(f"{item['fileId']}-{names[item['fileId']]}", 'wb') as out: out.write(res.content)
With an sk_test_ key, this endpoint works for completed Anti-AI and watermark embed test orders created with the same key. The URLs point to fixed sample files, not to your processed files. See Test API keys.
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.
One URL for all results. A ZIP archive for Anti-AI orders and v2 watermark embed orders. For v3 watermark embed orders, a ZIP archive with two or more output files, or the URL of the single output file (the same file as files[0].downloadUrl)
How long the URLs are valid, in seconds. 3600 by default, shortened to the time left until expiresAt if that is sooner
Required range: x <= 3600
Example:
3600
{"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":"6adf20b6ebccf90c95aed79e","collectionId":"baf5a4e1-d8a9-48a9-8286-f39968aeca3c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf20b6ebccf90c95aed79e"},"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/orders/download-order-v3","slug":"/api-reference/orders/download-order-v3","pageMetadata":{"tag":"v3","title":"Get order result download URLs","openapi":"api-reference/openapi.yaml GET /api/v3/orders/{orderId}/download","description":"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3.\n\n- `files[]`: `{ fileId, downloadUrl }` for each output file. It lists the same files in the same order as `result.outputFiles[]` from [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3), with the same `fileId` values\n- `archiveUrl`: one URL for all results. Always a string\n - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results\n - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as `files[0].downloadUrl`)\n- `expiresInSeconds`: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (`expiresAt`) if that is sooner. Call this endpoint again for fresh URLs\n\n**Error check order** (the first matching error is returned)\n1. The order does not exist or belongs to another account → `404 ORDER_NOT_FOUND`\n2. Watermark extract or AI Detection order → `400 ORDER_TYPE_CANT_DOWNLOAD`, even after the retention period ends\n3. The retention period has ended → `400 ORDER_EXPIRED`. If the retention period cannot be determined → `409 FILE_RETENTION_UNKNOWN`\n4. `status` is not `complete` (`pending`, `inProgress`, or `failed`) → `400 ORDER_NOT_COMPLETED`\n\n**Changes from the previous v3 response (breaking change, 2026-10-08)**: the response changed from `{ downloadUrl, expiresInSeconds: 300 }` to `{ archiveUrl, files, expiresInSeconds }`, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns `ORDER_NOT_COMPLETED` instead of `VALIDATION_FAILED`, and an extract order returns `ORDER_TYPE_CANT_DOWNLOAD`. The per-file endpoint `GET /api/v3/orders/{orderId}/files/{fileId}/download` was removed; use `files[]` instead.\n\n**Test keys (`sk_test_`)**: works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from `https://api.bizmori.com/api/v2/test-samples/{signedToken}`, not to your processed files. An Anti-AI test order without output files returns `files: []` and a sample ZIP as `archiveUrl`. A v3 embed test order with one output file returns that sample file as `archiveUrl`; other test orders return a sample ZIP. `expiresInSeconds`, the error codes, and the check order follow the same rules as live orders.\n","href":"/api-reference/orders/download-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 ol: \"ol\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3.\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"files[]\"\n }), \": \", _jsx(_components.code, {\n children: \"{ fileId, downloadUrl }\"\n }), \" for each output file. It lists the same files in the same order as \", _jsx(_components.code, {\n children: \"result.outputFiles[]\"\n }), \" from \", _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 }), \", with the same \", _jsx(_components.code, {\n children: \"fileId\"\n }), \" values\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"archiveUrl\"\n }), \": one URL for all results. Always a string\", \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results\"\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as \", _jsx(_components.code, {\n children: \"files[0].downloadUrl\"\n }), \")\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"expiresInSeconds\"\n }), \": how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (\", _jsx(_components.code, {\n children: \"expiresAt\"\n }), \") if that is sooner. Call this endpoint again for fresh URLs\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Error check order\"\n }), \" (the first matching error is returned)\"]\n }), \"\\n\", _jsxs(_components.ol, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"The order does not exist or belongs to another account → \", _jsx(_components.code, {\n children: \"404 ORDER_NOT_FOUND\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Watermark extract or AI Detection order → \", _jsx(_components.code, {\n children: \"400 ORDER_TYPE_CANT_DOWNLOAD\"\n }), \", even after the retention period ends\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"The retention period has ended → \", _jsx(_components.code, {\n children: \"400 ORDER_EXPIRED\"\n }), \". If the retention period cannot be determined → \", _jsx(_components.code, {\n children: \"409 FILE_RETENTION_UNKNOWN\"\n })]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"status\"\n }), \" is not \", _jsx(_components.code, {\n children: \"complete\"\n }), \" (\", _jsx(_components.code, {\n children: \"pending\"\n }), \", \", _jsx(_components.code, {\n children: \"inProgress\"\n }), \", or \", _jsx(_components.code, {\n children: \"failed\"\n }), \") → \", _jsx(_components.code, {\n children: \"400 ORDER_NOT_COMPLETED\"\n })]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Changes from the previous v3 response (breaking change, 2026-10-08)\"\n }), \": the response changed from \", _jsx(_components.code, {\n children: \"{ downloadUrl, expiresInSeconds: 300 }\"\n }), \" to \", _jsx(_components.code, {\n children: \"{ archiveUrl, files, expiresInSeconds }\"\n }), \", and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns \", _jsx(_components.code, {\n children: \"ORDER_NOT_COMPLETED\"\n }), \" instead of \", _jsx(_components.code, {\n children: \"VALIDATION_FAILED\"\n }), \", and an extract order returns \", _jsx(_components.code, {\n children: \"ORDER_TYPE_CANT_DOWNLOAD\"\n }), \". The per-file endpoint \", _jsx(_components.code, {\n children: \"GET /api/v3/orders/{orderId}/files/{fileId}/download\"\n }), \" was removed; use \", _jsx(_components.code, {\n children: \"files[]\"\n }), \" instead.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsxs(_components.strong, {\n children: [\"Test keys (\", _jsx(_components.code, {\n children: \"sk_test_\"\n }), \")\"]\n }), \": works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from \", _jsx(_components.code, {\n children: \"https://api.bizmori.com/api/v2/test-samples/{signedToken}\"\n }), \", not to your processed files. An Anti-AI test order without output files returns \", _jsx(_components.code, {\n children: \"files: []\"\n }), \" and a sample ZIP as \", _jsx(_components.code, {\n children: \"archiveUrl\"\n }), \". A v3 embed test order with one output file returns that sample file as \", _jsx(_components.code, {\n children: \"archiveUrl\"\n }), \"; other test orders return a sample ZIP. \", _jsx(_components.code, {\n children: \"expiresInSeconds\"\n }), \", the error codes, and the check order follow the same rules as live orders.\"]\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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Use this endpoint to download the results of a completed Anti-AI or watermark embed order. One call returns a URL for every output file and one URL for all results. The response has the same shape whether you created the watermark order with v2 or v3.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The response shape changed on October 8, 2026, and `,_jsx(_components.code,{children:`GET /api/v3/orders/{orderId}/files/{fileId}/download`}),` was removed. See `,_jsx(_components.a,{href:`#changes-from-the-previous-response`,children:`Changes from the previous response`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response-fields`,children:`Response fields`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`archiveUrl`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`One URL for all results. Always present`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`files[]`})}),_jsx(_components.td,{children:`array`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ fileId, downloadUrl }`}),` for each output file`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expiresInSeconds`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`How long the URLs are valid, in seconds. At most 3600`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`files[]`}),` lists the same files in the same order as `,_jsx(_components.code,{children:`result.outputFiles[]`}),` from `,_jsx(_components.a,{href:`/api-reference/orders/get-order-v3`,children:`Get order details`}),`, with the same `,_jsx(_components.code,{children:`fileId`}),` values. Use `,_jsx(_components.code,{children:`fileId`}),` to match each URL to its output file and its `,_jsx(_components.code,{children:`inputFileId`}),`.`]}),`\n`,_jsxs(Heading,{level:`3`,id:`what-archiveurl-points-to`,children:[`What `,_jsx(_components.code,{children:`archiveUrl`}),` points to`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Order`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`archiveUrl`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Anti-AI`}),_jsx(_components.td,{children:`ZIP archive of all output files`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Watermark embed created with v2`}),_jsx(_components.td,{children:`ZIP archive of all output files`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Watermark embed created with v3, two or more output files`}),_jsx(_components.td,{children:`ZIP archive of all output files`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Watermark embed created with v3, one output file`}),_jsxs(_components.td,{children:[`That output file, the same file as `,_jsx(_components.code,{children:`files[0].downloadUrl`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`You can always hand `,_jsx(_components.code,{children:`archiveUrl`}),` to a single Download button: it is either the only result file or a ZIP of all of them.`]}),`\n`,_jsx(Heading,{level:`3`,id:`url-lifetime`,children:`URL lifetime`}),`\n`,_jsxs(_components.p,{children:[`The URLs are valid for 3600 seconds (1 hour). If the order’s retention period ends sooner (`,_jsx(_components.code,{children:`expiresAt`}),`), the lifetime is shortened to the time left, and `,_jsx(_components.code,{children:`expiresInSeconds`}),` reports the shorter value. Don’t store the URLs. Call this endpoint again whenever you need to download.`]}),`\n`,_jsx(Heading,{level:`2`,id:`examples`,children:`Examples`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Anti-AI`,numberOfLines:`16`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"archiveUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/zip/1001/archive.zip?X-Amz-...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"files\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"21\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/cat.png?X-Amz-...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"22\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/dog.png?X-Amz-...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expiresInSeconds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Watermark embed (one output)`,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"archiveUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo.png?X-Amz-...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"files\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"201\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo.png?X-Amz-...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expiresInSeconds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Watermark embed (two outputs)`,numberOfLines:`16`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"archiveUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/archive/2001.zip?X-Amz-...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"files\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"201\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo-1.png?X-Amz-...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"fileId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"202\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"downloadUrl\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo-2.png?X-Amz-...\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expiresInSeconds\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3600`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`download-every-output-file`,children:`Download every output file`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`14`,language:`javascript`,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:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`writeFile`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'node:fs/promises'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Authorization:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Bearer YOUR_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` base`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `https://api.bizmori.com/api/v3/orders/\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`orderId`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`order`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`base`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`download`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`base`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"/download`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// files[] and result.outputFiles[] share fileId values and order.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` names`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`order`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`result`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`outputFiles`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`file`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`file`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fileId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`file`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fileName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`fileId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`downloadUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` download`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`files`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` res`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`downloadUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` writeFile`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fileId`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`-`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`names`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`fileId`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`arrayBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()));`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`14`,language:`python`,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:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`headers `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Authorization'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Bearer YOUR_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`base `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'https://api.bizmori.com/api/v3/orders/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`order_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`order `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.get(base, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`headers).json()[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`download `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.get(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`base`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/download'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`headers).json()[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# files[] and result.outputFiles[] share fileId values and order.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`names `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {f[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'fileId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]: f[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'fileName'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` f `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` order[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'result'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'outputFiles'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` item `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`in`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` download[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'files'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` res `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` requests.get(item[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'downloadUrl'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` with`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` open`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`item[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'fileId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`-`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`names[item[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'fileId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'wb'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` out:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` out.write(res.content)`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsx(_components.p,{children:`The endpoint checks for errors in this order and returns the first one that applies:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Order`}),_jsx(_components.th,{children:`Condition`}),_jsx(_components.th,{children:`HTTP`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`code`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`1`}),_jsx(_components.td,{children:`The order does not exist or belongs to another account`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_NOT_FOUND`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`2`}),_jsx(_components.td,{children:`Watermark extract or AI Detection order, even after the retention period ends`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_TYPE_CANT_DOWNLOAD`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{children:`The retention period has ended`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_EXPIRED`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`3`}),_jsx(_components.td,{children:`The retention period cannot be determined`}),_jsx(_components.td,{\"data-numeric\":`true`,children:`409`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`FILE_RETENTION_UNKNOWN`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`4`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`status`}),` is `,_jsx(_components.code,{children:`pending`}),`, `,_jsx(_components.code,{children:`inProgress`}),`, or `,_jsx(_components.code,{children:`failed`})]}),_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_NOT_COMPLETED`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`An invalid `,_jsx(_components.code,{children:`orderId`}),` format returns `,_jsx(_components.code,{children:`400 VALIDATION_FAILED`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`changes-from-the-previous-response`,children:`Changes from the previous response`}),`\n`,_jsx(_components.p,{children:`On October 8, 2026, this endpoint switched to the shape above. This is a breaking change.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Previous behavior`}),_jsx(_components.th,{children:`Now`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Response `,_jsx(_components.code,{children:`{ downloadUrl, expiresInSeconds }`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`{ archiveUrl, files, expiresInSeconds }`}),`. `,_jsx(_components.code,{children:`archiveUrl`}),` replaces `,_jsx(_components.code,{children:`downloadUrl`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`v3 watermark embed orders only`}),_jsx(_components.td,{children:`Anti-AI orders and watermark embed orders created with v2 or v3`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`URLs valid for 300 seconds`}),_jsx(_components.td,{children:`Up to 3600 seconds, capped by the retention period`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Incomplete order: `,_jsx(_components.code,{children:`400 VALIDATION_FAILED`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`400 ORDER_NOT_COMPLETED`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Watermark extract and AI Detection orders: not supported`}),_jsxs(_components.td,{children:[`Still not supported, with a dedicated error: `,_jsx(_components.code,{children:`400 ORDER_TYPE_CANT_DOWNLOAD`})]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`GET /api/v3/orders/{orderId}/files/{fileId}/download`}),` for one output file`]}),_jsxs(_components.td,{children:[`Removed. Use `,_jsx(_components.code,{children:`files[]`}),` from this endpoint`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The deprecated `,_jsx(_components.a,{href:`/api-reference/orders/download-order`,children:_jsx(_components.code,{children:`GET /api/v2/orders/{orderId}/download`})}),` still returns its previous response, unchanged.`]}),`\n`,_jsx(Heading,{level:`2`,id:`test-keys`,children:`Test keys`}),`\n`,_jsxs(_components.p,{children:[`With an `,_jsx(_components.code,{children:`sk_test_`}),` key, this endpoint works for completed Anti-AI and watermark embed test orders created with the same key. The URLs point to fixed sample files, not to your processed files. See `,_jsx(_components.a,{href:`/test-api-keys`,children:`Test API keys`}),`.`]})]})}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":{"tag":"v3","title":"Get order result download URLs","openapi":"api-reference/openapi.yaml GET /api/v3/orders/{orderId}/download","description":"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3.\n\n- `files[]`: `{ fileId, downloadUrl }` for each output file. It lists the same files in the same order as `result.outputFiles[]` from [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3), with the same `fileId` values\n- `archiveUrl`: one URL for all results. Always a string\n - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results\n - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as `files[0].downloadUrl`)\n- `expiresInSeconds`: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (`expiresAt`) if that is sooner. Call this endpoint again for fresh URLs\n\n**Error check order** (the first matching error is returned)\n1. The order does not exist or belongs to another account → `404 ORDER_NOT_FOUND`\n2. Watermark extract or AI Detection order → `400 ORDER_TYPE_CANT_DOWNLOAD`, even after the retention period ends\n3. The retention period has ended → `400 ORDER_EXPIRED`. If the retention period cannot be determined → `409 FILE_RETENTION_UNKNOWN`\n4. `status` is not `complete` (`pending`, `inProgress`, or `failed`) → `400 ORDER_NOT_COMPLETED`\n\n**Changes from the previous v3 response (breaking change, 2026-10-08)**: the response changed from `{ downloadUrl, expiresInSeconds: 300 }` to `{ archiveUrl, files, expiresInSeconds }`, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns `ORDER_NOT_COMPLETED` instead of `VALIDATION_FAILED`, and an extract order returns `ORDER_TYPE_CANT_DOWNLOAD`. The per-file endpoint `GET /api/v3/orders/{orderId}/files/{fileId}/download` was removed; use `files[]` instead.\n\n**Test keys (`sk_test_`)**: works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from `https://api.bizmori.com/api/v2/test-samples/{signedToken}`, not to your processed files. An Anti-AI test order without output files returns `files: []` and a sample ZIP as `archiveUrl`. A v3 embed test order with one output file returns that sample file as `archiveUrl`; other test orders return a sample ZIP. `expiresInSeconds`, the error codes, and the check order follow the same rules as live orders.\n","href":"/api-reference/orders/download-order-v3"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Response fields","slug":"response-fields","depth":2,"children":[{"title":"What archiveUrl points to","slug":"what-archiveurl-points-to","depth":3,"children":[]},{"title":"URL lifetime","slug":"url-lifetime","depth":3,"children":[]}]},{"title":"Examples","slug":"examples","depth":2,"children":[]},{"title":"Download every output file","slug":"download-every-output-file","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Changes from the previous response","slug":"changes-from-the-previous-response","depth":2,"children":[]},{"title":"Test keys","slug":"test-keys","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Get order result download URLs","operationId":"downloadOrderV3","description":"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3.\n\n- `files[]`: `{ fileId, downloadUrl }` for each output file. It lists the same files in the same order as `result.outputFiles[]` from [`GET /api/v3/orders/{orderId}`](/api-reference/orders/get-order-v3), with the same `fileId` values\n- `archiveUrl`: one URL for all results. Always a string\n - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results\n - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as `files[0].downloadUrl`)\n- `expiresInSeconds`: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (`expiresAt`) if that is sooner. Call this endpoint again for fresh URLs\n\n**Error check order** (the first matching error is returned)\n1. The order does not exist or belongs to another account → `404 ORDER_NOT_FOUND`\n2. Watermark extract or AI Detection order → `400 ORDER_TYPE_CANT_DOWNLOAD`, even after the retention period ends\n3. The retention period has ended → `400 ORDER_EXPIRED`. If the retention period cannot be determined → `409 FILE_RETENTION_UNKNOWN`\n4. `status` is not `complete` (`pending`, `inProgress`, or `failed`) → `400 ORDER_NOT_COMPLETED`\n\n**Changes from the previous v3 response (breaking change, 2026-10-08)**: the response changed from `{ downloadUrl, expiresInSeconds: 300 }` to `{ archiveUrl, files, expiresInSeconds }`, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns `ORDER_NOT_COMPLETED` instead of `VALIDATION_FAILED`, and an extract order returns `ORDER_TYPE_CANT_DOWNLOAD`. The per-file endpoint `GET /api/v3/orders/{orderId}/files/{fileId}/download` was removed; use `files[]` instead.\n\n**Test keys (`sk_test_`)**: works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from `https://api.bizmori.com/api/v2/test-samples/{signedToken}`, not to your processed files. An Anti-AI test order without output files returns `files: []` and a sample ZIP as `archiveUrl`. A v3 embed test order with one output file returns that sample file as `archiveUrl`; other test orders return a sample ZIP. `expiresInSeconds`, the error codes, and the check order follow the same rules as live orders.\n","tags":["Orders"],"security":["bdddf93c-3128-4a37-97cd-469b0503e86a"],"parameters":["3a7f91ba-3f08-41c8-945f-333851b2997d"],"responses":{"200":"e6e66138-d513-4c97-8087-330a4f1edd79","400":"0424c5e5-1eaa-442d-9ba4-88ff9c3d411d","401":"bf6a4005-6ee4-4048-b6c4-b3ab75a958af","404":"d64052b5-79ea-4bbb-a805-78e7c4676413","409":"9163dbe0-f78b-49ce-836a-c6e734fe92a6","500":"b8c62735-581f-4e2c-a3b8-633d64c448c3"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID/download \\\n -H \"Authorization: Bearer YOUR_API_KEY\"\n"},{"lang":"javascript","label":"JavaScript","source":"const orderId = 'ORDER_ID';\nconst response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}/download`, {\n headers: { 'Authorization': 'Bearer YOUR_API_KEY' }\n});\nconst { data } = await response.json();\n"},{"lang":"python","label":"Python","source":"import requests\n\norder_id = 'ORDER_ID'\nresponse = requests.get(\n f'https://api.bizmori.com/api/v3/orders/{order_id}/download',\n headers={'Authorization': 'Bearer YOUR_API_KEY'}\n)\ndata = response.json()['data']\n"}],"method":"get","type":"path","servers":["12c53202-44d6-48f4-884a-b8d4bc669414"],"path":"/api/v3/orders/{orderId}/download","baseUrlOptions":["https://api.bizmori.com"],"title":"Get order result download URLs","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X GET https://api.bizmori.com/api/v3/orders/ORDER_ID/download \\\n -H \"Authorization: Bearer YOUR_API_KEY\"\n"},{"label":"JavaScript","lang":"javascript","source":"const orderId = 'ORDER_ID';\nconst response = await fetch(`https://api.bizmori.com/api/v3/orders/${orderId}/download`, {\n headers: { 'Authorization': 'Bearer YOUR_API_KEY' }\n});\nconst { data } = await response.json();\n"},{"label":"Python","lang":"python","source":"import requests\n\norder_id = 'ORDER_ID'\nresponse = requests.get(\n f'https://api.bizmori.com/api/v3/orders/{order_id}/download',\n headers={'Authorization': 'Bearer YOUR_API_KEY'}\n)\ndata = response.json()['data']\n"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"3a7f91ba-3f08-41c8-945f-333851b2997d":{"in":"path","name":"orderId","required":true,"schema":{"type":"string","pattern":"^[0-9]{1,20}$","isRequired":true,"description":"Order ID","uniqueKey":"","typeLabel":"string"},"description":"Order ID"}},"responses":{"e6e66138-d513-4c97-8087-330a4f1edd79":{"description":"A download URL for each output file and one URL for all results","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["archiveUrl","files","expiresInSeconds"],"additionalProperties":false,"properties":{"archiveUrl":{"type":"string","format":"uri","description":"One URL for all results. A ZIP archive for Anti-AI orders and v2 watermark embed orders. For v3 watermark embed orders, a ZIP archive with two or more output files, or the URL of the single output file (the same file as `files[0].downloadUrl`)","isRequired":true,"uniqueKey":"data.archiveUrl","typeLabel":"string\u003curi>"},"files":{"type":"array","description":"Download URL for each output file. Lists the same files in the same order as `result.outputFiles` in the order detail","items":{"type":"object","required":["fileId","downloadUrl"],"additionalProperties":false,"properties":{"fileId":{"type":"string","pattern":"^[0-9]+$","description":"Same value as `result.outputFiles[].fileId` in the order detail","isRequired":true,"uniqueKey":"data.files.items.[INDEX].fileId","typeLabel":"string"},"downloadUrl":{"type":"string","format":"uri","description":"Presigned download URL of the output file","isRequired":true,"uniqueKey":"data.files.items.[INDEX].downloadUrl","typeLabel":"string\u003curi>"}},"uniqueKey":"data.files.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.files","typeLabel":"object[]"},"expiresInSeconds":{"type":"integer","maximum":3600,"description":"How long the URLs are valid, in seconds. 3600 by default, shortened to the time left until `expiresAt` if that is sooner","example":3600,"isRequired":true,"uniqueKey":"data.expiresInSeconds","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"antiAi":{"title":"antiAi","value":{"data":{"archiveUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/zip/1001/archive.zip?X-Amz-...","files":[{"fileId":"21","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/cat.png?X-Amz-..."},{"fileId":"22","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/dog.png?X-Amz-..."}],"expiresInSeconds":3600}}},"watermarkEmbedV3Multiple":{"title":"watermarkEmbedV3Multiple","value":{"data":{"archiveUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/archive/2001.zip?X-Amz-...","files":[{"fileId":"201","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo-1.png?X-Amz-..."},{"fileId":"202","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo-2.png?X-Amz-..."}],"expiresInSeconds":3600}}},"watermarkEmbedV3Single":{"title":"watermarkEmbedV3Single","value":{"data":{"archiveUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo.png?X-Amz-...","files":[{"fileId":"201","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/logo.png?X-Amz-..."}],"expiresInSeconds":3600}}},"watermarkEmbedV2":{"title":"watermarkEmbedV2","value":{"data":{"archiveUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/zip/2101.zip?X-Amz-...","files":[{"fileId":"41","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/a.png?X-Amz-..."},{"fileId":"42","downloadUrl":"https://bucket.s3.ap-northeast-2.amazonaws.com/out/b.png?X-Amz-..."}],"expiresInSeconds":1200}}}},"exampleType":"examples"}},"exampleType":"examples"},"0424c5e5-1eaa-442d-9ba4-88ff9c3d411d":{"description":"Invalid request, an order type that cannot be downloaded, an expired order, or an incomplete order","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validation":{"title":"validation","value":{"code":"VALIDATION_FAILED"}},"typeCantDownload":{"title":"typeCantDownload","value":{"code":"ORDER_TYPE_CANT_DOWNLOAD"}},"expired":{"title":"expired","value":{"code":"ORDER_EXPIRED"}},"notCompleted":{"title":"notCompleted","value":{"code":"ORDER_NOT_COMPLETED"}}},"exampleType":"examples"}},"exampleType":"examples"},"bf6a4005-6ee4-4048-b6c4-b3ab75a958af":{"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"},"d64052b5-79ea-4bbb-a805-78e7c4676413":{"description":"The order does not exist or belongs to another account","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"ORDER_NOT_FOUND"},"examples":{"Example":{"title":"Example","value":{"code":"ORDER_NOT_FOUND"}}},"exampleType":"examples"}},"exampleType":"examples"},"9163dbe0-f78b-49ce-836a-c6e734fe92a6":{"description":"The retention period of the order cannot be determined","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"FILE_RETENTION_UNKNOWN"},"examples":{"Example":{"title":"Example","value":{"code":"FILE_RETENTION_UNKNOWN"}}},"exampleType":"examples"}},"exampleType":"examples"},"b8c62735-581f-4e2c-a3b8-633d64c448c3":{"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":{"bdddf93c-3128-4a37-97cd-469b0503e86a":{"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":"Get order result download URLs - ContentCare API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/orders/download-order-v3","matchLevel":0},"ko":{"href":"/ko/api-reference/orders/download-order-v3","matchLevel":1},"ja":{"href":"/ja/api-reference/orders/download-order-v3","matchLevel":1}}},"lastModified":"2026-10-08T07:40:20.383Z","originalFileLocation":"api-reference/orders/download-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=\"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3. - files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values - archiveUrl: one URL for all results. Always a string - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl) - expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs Error check order (the first matching error is returned) 1. The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND 2. Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends 3. The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN 4. status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead. Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.\">\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=\"Get order result download URLs - ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3. - files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values - archiveUrl: one URL for all results. Always a string - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl) - expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs Error check order (the first matching error is returned) 1. The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND 2. Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends 3. The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN 4. status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead. Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.\">\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/orders/download-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=Orders\u0026amp;title=Get+order+result+download+URLs\u0026amp;description=Issue+a+download+URL+for+every+output+file+of+a+completed+Anti-AI+or+watermark+embed+order%2C+plus+one+URL+for+all+results%2C+in+a+single+call.+The+response+has+the\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=194e1e62100b62440865dd1a799952a095febfe808b0491e7212861e9a24c4dd\">\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=\"Get order result download URLs - ContentCare API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3. - files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values - archiveUrl: one URL for all results. Always a string - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl) - expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs Error check order (the first matching error is returned) 1. The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND 2. Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends 3. The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN 4. status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead. Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=Orders\u0026amp;title=Get+order+result+download+URLs\u0026amp;description=Issue+a+download+URL+for+every+output+file+of+a+completed+Anti-AI+or+watermark+embed+order%2C+plus+one+URL+for+all+results%2C+in+a+single+call.+The+response+has+the\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=194e1e62100b62440865dd1a799952a095febfe808b0491e7212861e9a24c4dd\">\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/orders/download-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/orders/download-order-v3.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.contentcare.ai/api-reference/orders/download-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.contentcare.ai/ko/api-reference/orders/download-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.contentcare.ai/ja/api-reference/orders/download-order-v3\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.contentcare.ai/api-reference/orders/download-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/orders/download-order-v3#webpage\",\"url\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3\",\"name\":\"Get order result download URLs\",\"description\":\"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3. - files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values - archiveUrl: one URL for all results. Always a string - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl) - expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs Error check order (the first matching error is returned) 1. The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND 2. Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends 3. The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN 4. status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead. Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.\",\"dateModified\":\"2026-10-08T07:40:20.383Z\",\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Orders\",\"item\":\"https://docs.contentcare.ai/api-reference/orders/list-orders\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Get order result download URLs\",\"item\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3#apireference\",\"headline\":\"Get order result download URLs\",\"name\":\"Get order result download URLs\",\"description\":\"Issue a download URL for every output file of a completed Anti-AI or watermark embed order, plus one URL for all results, in a single call. The response has the same shape whether the watermark order was created with v2 or v3. - files[]: { fileId, downloadUrl } for each output file. It lists the same files in the same order as result.outputFiles[] from GET /api/v3/orders/{orderId}, with the same fileId values - archiveUrl: one URL for all results. Always a string - Anti-AI orders and watermark embed orders created with v2: a ZIP archive of the results - Watermark embed orders created with v3: a ZIP archive with two or more output files. With one output file, the URL of that file (the same file as files[0].downloadUrl) - expiresInSeconds: how long the URLs are valid. 3600 seconds (1 hour) by default, shortened to the time left until the retention period ends (expiresAt) if that is sooner. Call this endpoint again for fresh URLs Error check order (the first matching error is returned) 1. The order does not exist or belongs to another account → 404 ORDER_NOT_FOUND 2. Watermark extract or AI Detection order → 400 ORDER_TYPE_CANT_DOWNLOAD, even after the retention period ends 3. The retention period has ended → 400 ORDER_EXPIRED. If the retention period cannot be determined → 409 FILE_RETENTION_UNKNOWN 4. status is not complete (pending, inProgress, or failed) → 400 ORDER_NOT_COMPLETED Changes from the previous v3 response (breaking change, 2026-10-08): the response changed from { downloadUrl, expiresInSeconds: 300 } to { archiveUrl, files, expiresInSeconds }, and Anti-AI orders and v2 watermark embed orders are now supported. URLs are valid for up to 3600 seconds instead of 300. An incomplete order returns ORDER_NOT_COMPLETED instead of VALIDATION_FAILED, and an extract order returns ORDER_TYPE_CANT_DOWNLOAD. The per-file endpoint GET /api/v3/orders/{orderId}/files/{fileId}/download was removed; use files[] instead. Test keys (sk_test_): works for completed Anti-AI and watermark embed test orders created with the same key, whether with v2 or v3. The URLs point to sample files served from https://api.bizmori.com/api/v2/test-samples/{signedToken}, not to your processed files. An Anti-AI test order without output files returns files: [] and a sample ZIP as archiveUrl. A v3 embed test order with one output file returns that sample file as archiveUrl; other test orders return a sample ZIP. expiresInSeconds, the error codes, and the check order follow the same rules as live orders.\",\"url\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contentcare.ai/api-reference/orders/download-order-v3#webpage\"},\"dateModified\":\"2026-10-08T07:40:20.383Z\",\"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","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","description":"**Deprecated**: use [`GET /api/v3/orders/{orderId}/download`](/api-reference/orders/download-order-v3), which returns a URL for each output file and one URL for all results. The response and behavior of this endpoint are unchanged.\nIssue a download URL for completed order files.\n- Only available for orders with `complete` status\n- URL is valid for 1 hour\n- Order files are available for download for up to 7 days after order creation\n- After 7 days, the order transitions to `expired` status and files can no longer be downloaded\n- Test orders do not create result files; this endpoint returns `404` with `PROCESSED_FILE_NOT_FOUND` for a test order\n","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","description":"Reissue expired upload URLs. Live keys receive S3 presigned URLs; test keys receive absolute `https://api.bizmori.com/api/v2/test-uploads/{signedToken}` URLs. Both are valid for one hour.\n- Only available for orders with `pending` status\n- For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\n","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/orders/download-order-v3"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api-reference/orders/download-order-v3"}]}]},"title":"Get order result download URLs - 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"]}