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.
Only available for orders with pending status
For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL
POST
/
api
/
v2
/
orders
/
{orderId}
/
refresh-urls
cURL
curl -X POST https://api.bizmori.com/api/v2/orders/ORDER_ID/refresh-urls \ -H "Authorization: Bearer YOUR_API_TOKEN"
For a test order, this endpoint reissues an upload URL for a file that has not been uploaded yet. The returned URL is a BIZ MORI test upload URL rather than a storage presigned URL.
Bearer API key for external client access. Live keys use the sk_ prefix; test keys use the sk_test_ prefix and support order-lifecycle testing with mock responses without processing or credit usage.
Upload URL. Live keys receive an S3 presigned URL; test keys receive an absolute https://api.bizmori.com/api/v2/test-uploads/{signedToken} URL. Both expire one hour after issue and can be renewed with POST /api/v2/orders/{orderId}/refresh-urls. PUT needs no Authorization header because the signed token authorizes the test upload. Test request bodies are streamed, not stored; test orders move to simulated results without usage consumption or actual external processing.
File identifier: an S3 object key for live keys or an isolated logical key for test keys.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"ContentCare API Documentation","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/mori-7d8a16e6/uiCwTpjPPKH9gjDZ/logo/light.svg?fit=max\u0026auto=format\u0026n=uiCwTpjPPKH9gjDZ\u0026q=85\u0026s=cd317193218c94284b35aa84c52b5d17","dark":"https://mintcdn.com/mori-7d8a16e6/uiCwTpjPPKH9gjDZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=uiCwTpjPPKH9gjDZ\u0026q=85\u0026s=3ca4613110f4781acc20a8f41010eb25"},"favicon":"https://mintcdn.com/mori-7d8a16e6/cf99juWefDk4kbc7/favicon.svg?fit=max\u0026auto=format\u0026n=cf99juWefDk4kbc7\u0026q=85\u0026s=435a67276a065858333792f3481060d7","api":{"openapi":["api-reference/openapi.yaml","ko/api-reference/openapi.yaml","ja/api-reference/openapi.yaml"],"params":{"expanded":"all"}},"navbar":{"links":[{"href":"mailto:support@contentcare.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.contentcare.ai"}},"footer":{"socials":{"website":"https://app.contentcare.ai"},"links":[{"items":[{"label":"Dashboard","href":"https://app.contentcare.ai"},{"label":"MORI Corp.","href":"https://www.mori-corp.io"},{"label":"Contact Support","href":"mailto:support@contentcare.ai"},{"label":"Status","href":"https://status.bizmori.com"}]},{"items":[{"label":"Guides","href":"/index"},{"label":"API Reference","href":"/api-reference/introduction"},{"label":"Error Codes","href":"/errors"},{"label":"Webhooks","href":"/webhooks"},{"label":"What's new","href":"/changelog"}]},{"items":[{"label":"Terms of Service","href":"/legal/terms"},{"label":"Privacy Policy","href":"/legal/privacy"},{"label":"DPA","href":"/legal/dpa"},{"label":"Acceptable Use","href":"/legal/aup"},{"label":"Sub-processors","href":"/legal/sub-processors"}]}]},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"ContentCare Dashboard","icon":"code","href":"https://app.contentcare.ai"},{"anchor":"Support","icon":"envelope","href":"mailto:support@contentcare.ai"},{"anchor":"Status","icon":"signal-bars","href":"https://status.bizmori.com"}]},"languages":[{"language":"en","href":""},{"language":"ko","href":"ko"},{"language":"ja","href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mori-7d8a16e6","hasAudioNarration":false,"actualSubdomain":"mori-7d8a16e6","customDomains":["docs.contentcare.ai"],"gitSource":{"type":"github","owner":"moriproject","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"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/refresh-urls","slug":"/api-reference/orders/refresh-urls","pageMetadata":{"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"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Reissue expired upload URLs. Live keys receive S3 presigned URLs; test keys receive absolute \", _jsx(_components.code, {\n children: \"https://api.bizmori.com/api/v2/test-uploads/{signedToken}\"\n }), \" URLs. Both are valid for one hour.\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"Only available for orders with \", _jsx(_components.code, {\n children: \"pending\"\n }), \" status\"]\n }), \"\\n\", _jsx(_components.li, {\n children: \"For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\"\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,..._provideComponents(),...props.components};return _jsx(_components.p,{children:`For a test order, this endpoint reissues an upload URL for a file that has not been uploaded yet. The returned URL is a BIZ MORI test upload URL rather than a storage presigned URL.`})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"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"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Refresh presigned URLs","operationId":"refreshOrderUrls","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","tags":["Orders"],"security":["23c30540-5c12-44be-b25b-d41ebbc71150"],"parameters":["9d29055a-9c52-49bf-8e7e-1a8b25eaa8af"],"responses":{"200":"19ba982e-a839-4faa-8a02-e6a6473a6003","401":"d73b79c3-1410-4129-8ddf-b7f162a5f252","404":"23db3ff5-4c73-4f99-a3a8-9abfdd46de58"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST https://api.bizmori.com/api/v2/orders/ORDER_ID/refresh-urls \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\""},{"lang":"javascript","label":"JavaScript","source":"const orderId = 'ORDER_ID';\nconst response = await fetch(\n `https://api.bizmori.com/api/v2/orders/${orderId}/refresh-urls`,\n {\n method: 'POST',\n headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }\n }\n);\nconst data = await response.json();"},{"lang":"python","label":"Python","source":"import requests\n\norder_id = 'ORDER_ID'\nresponse = requests.post(\n f'https://api.bizmori.com/api/v2/orders/{order_id}/refresh-urls',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'}\n)\ndata = response.json()"}],"method":"post","type":"path","servers":["12c53202-44d6-48f4-884a-b8d4bc669414"],"path":"/api/v2/orders/{orderId}/refresh-urls","baseUrlOptions":["https://api.bizmori.com"],"title":"Refresh presigned URLs","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST https://api.bizmori.com/api/v2/orders/ORDER_ID/refresh-urls \\\n -H \"Authorization: Bearer YOUR_API_TOKEN\""},{"label":"JavaScript","lang":"javascript","source":"const orderId = 'ORDER_ID';\nconst response = await fetch(\n `https://api.bizmori.com/api/v2/orders/${orderId}/refresh-urls`,\n {\n method: 'POST',\n headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }\n }\n);\nconst data = await response.json();"},{"label":"Python","lang":"python","source":"import requests\n\norder_id = 'ORDER_ID'\nresponse = requests.post(\n f'https://api.bizmori.com/api/v2/orders/{order_id}/refresh-urls',\n headers={'Authorization': 'Bearer YOUR_API_TOKEN'}\n)\ndata = response.json()"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"9d29055a-9c52-49bf-8e7e-1a8b25eaa8af":{"in":"path","name":"orderId","required":true,"schema":{"type":"string","isRequired":true,"description":"Order ID","uniqueKey":"","typeLabel":"string"},"description":"Order ID"}},"responses":{"19ba982e-a839-4faa-8a02-e6a6473a6003":{"description":"URLs refreshed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string","description":"File ID","uniqueKey":"data.files.items.[INDEX].fileId","typeLabel":"string"},"fileName":{"type":"string","description":"File name","uniqueKey":"data.files.items.[INDEX].fileName","typeLabel":"string"},"uploadUrl":{"type":"string","format":"uri","description":"Upload URL. Live keys receive an S3 presigned URL; test keys receive an absolute `https://api.bizmori.com/api/v2/test-uploads/{signedToken}` URL. Both expire one hour after issue and can be renewed with `POST /api/v2/orders/{orderId}/refresh-urls`. PUT needs no Authorization header because the signed token authorizes the test upload. Test request bodies are streamed, not stored; test orders move to simulated results without usage consumption or actual external processing.","uniqueKey":"data.files.items.[INDEX].uploadUrl","typeLabel":"string\u003curi>"},"fileKey":{"type":"string","description":"File identifier: an S3 object key for live keys or an isolated logical key for test keys.\n","uniqueKey":"data.files.items.[INDEX].fileKey","typeLabel":"string"}},"uniqueKey":"data.files.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.files","typeLabel":"object[]"}},"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"files":[{"fileId":"\u003cstring>","fileName":"\u003cstring>","uploadUrl":"\u003cstring>","fileKey":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"d73b79c3-1410-4129-8ddf-b7f162a5f252":{"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"},"23db3ff5-4c73-4f99-a3a8-9abfdd46de58":{"description":"Webhook endpoint not found or not accessible to this API key","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"Error code","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"WEBHOOK_NOT_FOUND"},"examples":{"Example":{"title":"Example","value":{"code":"WEBHOOK_NOT_FOUND"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"23c30540-5c12-44be-b25b-d41ebbc71150":{"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":"Refresh presigned URLs - ContentCare API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/orders/refresh-urls","matchLevel":0},"ko":{"href":"/ko/api-reference/orders/refresh-urls","matchLevel":1},"ja":{"href":"/ja/api-reference/orders/refresh-urls","matchLevel":1}}},"lastModified":"2026-08-13T04:06:47.949Z","originalFileLocation":"api-reference/orders/refresh-urls.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=\"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. - Only available for orders with pending status - For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\">\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=\"Refresh presigned URLs - ContentCare API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"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. - Only available for orders with pending status - For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\">\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/refresh-urls\">\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=Refresh+presigned+URLs\u0026amp;description=Reissue+expired+upload+URLs.+Live+keys+receive+S3+presigned+URLs%3B+test+keys+receive+absolute+%60https%3A%2F%2Fapi.bizmori.com%2Fapi%2Fv2%2Ftest-uploads%2F%7BsignedToken%7D%60+URLs.+B\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=c43dd93ce60a15810bc761800cba9e7b05c5512205aefd165f12faf6f849d370\">\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=\"Refresh presigned URLs - ContentCare API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"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. - Only available for orders with pending status - For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mori-7d8a16e6.mintlify.app/_mintlify/api/og/v2?division=Orders\u0026amp;title=Refresh+presigned+URLs\u0026amp;description=Reissue+expired+upload+URLs.+Live+keys+receive+S3+presigned+URLs%3B+test+keys+receive+absolute+%60https%3A%2F%2Fapi.bizmori.com%2Fapi%2Fv2%2Ftest-uploads%2F%7BsignedToken%7D%60+URLs.+B\u0026amp;theme=7c39b3866236068a07646682\u0026amp;signature=c43dd93ce60a15810bc761800cba9e7b05c5512205aefd165f12faf6f849d370\">\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/refresh-urls\">\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/refresh-urls.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.contentcare.ai/api-reference/orders/refresh-urls\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.contentcare.ai/ko/api-reference/orders/refresh-urls\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.contentcare.ai/ja/api-reference/orders/refresh-urls\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.contentcare.ai/api-reference/orders/refresh-urls\">\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/refresh-urls#webpage\",\"url\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls\",\"name\":\"Refresh presigned 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. - Only available for orders with pending status - For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\",\"dateModified\":\"2026-08-13T04:06:47.949Z\",\"isPartOf\":{\"@id\":\"https://docs.contentcare.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Orders\",\"item\":\"https://docs.contentcare.ai/api-reference/orders/list-orders\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refresh presigned URLs\",\"item\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls#apireference\",\"headline\":\"Refresh presigned URLs\",\"name\":\"Refresh presigned 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. - Only available for orders with pending status - For test orders, the response contains a BIZ MORI test upload URL instead of a storage presigned URL\",\"url\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls\",\"mainEntityOfPage\":{\"@id\":\"https://docs.contentcare.ai/api-reference/orders/refresh-urls#webpage\"},\"dateModified\":\"2026-08-13T04:06:47.949Z\",\"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","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","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"},{"title":"Refresh presigned URLs","openapi":"api-reference/openapi.yaml POST /api/v2/orders/{orderId}/refresh-urls","href":"/api-reference/orders/refresh-urls"},{"title":"Recent usage statistics","openapi":"api-reference/openapi.yaml GET /api/v2/orders/stats/recent","description":"Usage statistics for the last 7 days","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/refresh-urls"}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/api-reference/orders/refresh-urls"}]}]},"title":"Refresh presigned 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"]}