Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.
When the part URLs stop working and finalize is refused.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Shard Cloud","colors":{"primary":"#3C39ED","light":"#3C39ED","dark":"#335CFF"},"logo":{"light":"https://shardcloud.app/images/landing/logo.svg","dark":"https://shardcloud.app/images/landing/logo.svg"},"favicon":"https://mintcdn.com/shardcloud/4SAftLJJMi0dyM6z/favicon.ico?fit=max\u0026auto=format\u0026n=4SAftLJJMi0dyM6z\u0026q=85\u0026s=50fd6dcb73607f96dbf9798d46b4ecdf","navbar":{"links":[{"href":"https://discord.gg/jjdYayFu5Q","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://shardcloud.app/dash"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"shardcloud","hasAudioNarration":false,"actualSubdomain":"shardcloud","customDomains":["docs.shardcloud.app"],"gitSource":{"type":"github","owner":"acnologla","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae8db98c64fd13336005f29","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Reference","count":81},{"language":"default","tag":"API reference","count":72},{"language":"default","tag":"Apps","count":33},{"language":"default","tag":"Tutorials","count":27},{"language":"default","tag":"CDN","count":23},{"language":"default","tag":"General info","count":19},{"language":"default","tag":"Databases","count":12},{"language":"default","tag":"VMs","count":12},{"language":"default","tag":"Website Frameworks","count":10},{"language":"default","tag":"Languages","count":9}]},"assistantConfig":{},"basePath":"","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"cdn/cdn/start-a-large-file-upload","slug":"/cdn/cdn/start-a-large-file-upload","pageMetadata":{"title":"Start a large file upload","description":"Starts an upload for files too large for a single `POST /cdn/files` request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with `PUT` to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\n","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files/multipart","href":"/cdn/cdn/start-a-large-file-upload","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Starts an upload for files too large for a single \", _jsx(_components.code, {\n children: \"POST /cdn/files\"\n }), \" request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with \", _jsx(_components.code, {\n children: \"PUT\"\n }), \" to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Start a large file upload","description":"Starts an upload for files too large for a single `POST /cdn/files` request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with `PUT` to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\n","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files/multipart","href":"/cdn/cdn/start-a-large-file-upload","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/shardcloud/006df346da1c746f/google-preferred-source.js"],"openApiReferenceData":{"operation":{"summary":"Start a large file upload","description":"Starts an upload for files too large for a single `POST /cdn/files` request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with `PUT` to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\n","operationId":"createMultipartUpload","tags":["CDN"],"requestBody":"8bf2985b-9022-4673-a478-1132617cd50d","responses":{"201":"048366a5-f98b-46ae-bebb-e483023af583","400":"f1a8f4e7-8325-4ace-bc20-b9b75b0f897c","401":"4a7c125f-6505-4e1c-8973-f25c6801f7ea","403":"1a973f3c-0070-44d8-8c8d-cce82f653055"},"method":"post","type":"path","servers":["18b6cb6a-de06-4797-ad61-749364248ef6"],"security":["3cefccde-f30b-4283-8baa-b243612ba496"],"path":"/cdn/files/multipart","baseUrlOptions":["https://shardcloud.app/api"],"title":"Start a large file upload","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["filename","mime_type","size"],"properties":{"filename":{"type":"string","description":"Name for the file, without extension (the extension is added from the MIME type). 1–64 characters: letters, numbers, underscores, and hyphens.","isRequired":true,"uniqueKey":"filename","typeLabel":"string"},"mime_type":{"type":"string","description":"MIME type of the file. Must be one of the supported file types.","isRequired":true,"uniqueKey":"mime_type","typeLabel":"string"},"size":{"type":"integer","format":"int64","description":"Exact file size in bytes (2 KB – 10 GB, and within your remaining CDN quota).","isRequired":true,"uniqueKey":"size","typeLabel":"integer\u003cint64>"},"folder":{"type":"string","description":"Optional folder prefix (same character rules as filename; \"error-pages\" is reserved).","uniqueKey":"folder","typeLabel":"string"},"expire_at":{"type":"string","format":"date-time","description":"Optional expiration time in RFC3339 format. Must be more than 3h50m from now.","uniqueKey":"expire_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"filename":"\u003cstring>","mime_type":"\u003cstring>","size":123,"folder":"\u003cstring>","expire_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"048366a5-f98b-46ae-bebb-e483023af583":{"description":"Upload started","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Upload ID, used in the finalize call.","uniqueKey":"id","typeLabel":"string\u003cuuid>"},"filename":{"type":"string","description":"The name the file is stored under (folder, name and extension). Also what you pass to `DELETE /cdn/files?fileName=` to cancel the upload.","uniqueKey":"filename","typeLabel":"string"},"parts":{"type":"array","items":{"type":"object","properties":{"part_number":{"type":"integer","example":1,"uniqueKey":"parts.items.[INDEX].part_number","typeLabel":"integer"},"url":{"type":"string","description":"Upload URL for this part. `PUT` the part's bytes to it. No `Authorization` header is needed — the URL itself is the credential.","uniqueKey":"parts.items.[INDEX].url","typeLabel":"string"},"size":{"type":"integer","format":"int64","description":"Exact number of bytes this part must contain. Every part is 64 MiB (67,108,864 bytes) except the last, which holds the remainder.","uniqueKey":"parts.items.[INDEX].size","typeLabel":"integer\u003cint64>"}},"uniqueKey":"parts.items.[INDEX]","typeLabel":"object"},"uniqueKey":"parts","typeLabel":"object[]"},"expires_at":{"type":"string","format":"date-time","description":"When the part URLs stop working and finalize is refused.","uniqueKey":"expires_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","filename":"\u003cstring>","parts":[{"part_number":1,"url":"\u003cstring>","size":123}],"expires_at":"2023-11-07T05:31:56Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"f1a8f4e7-8325-4ace-bc20-b9b75b0f897c":{"description":"Validation error (size outside 2 KB – 10 GB, filename, folder, MIME type, expire_at)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"4a7c125f-6505-4e1c-8973-f25c6801f7ea":{"description":"Unauthorized","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"1a973f3c-0070-44d8-8c8d-cce82f653055":{"description":"No valid subscription","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"3cefccde-f30b-4283-8baa-b243612ba496":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[]}}},"servers":{"18b6cb6a-de06-4797-ad61-749364248ef6":{"url":"https://shardcloud.app/api"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"cdn/openapi.json"},"subdomain":"shardcloud","siteName":"Shard Cloud","title":"Start a large file upload - Shard Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T05:06:40.877Z","originalFileLocation":"cdn/cdn/start-a-large-file-upload.mdx"},"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=\"Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Shard Cloud\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_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/shardcloud/5aEpL1d1TNXYnboN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start a large file upload - Shard Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Shard Cloud\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://shardcloud.mintlify.site/_mintlify/api/og/v2?division=CDN\u0026amp;title=Start+a+large+file+upload\u0026amp;description=Starts+an+upload+for+files+too+large+for+a+single+%60POST+%2Fcdn%2Ffiles%60+request+%28which+is+limited+to+100+MB%29.+Reserves+the+file+name+and+the+storage+quota%2C+and+retu\u0026amp;theme=8a4ad6913005844b04231297\u0026amp;signature=8530d9acaf980b9378ab875b1ef73294b7e07d3a68c99cec43a59e22c6b41c05\">\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=\"Start a large file upload - Shard Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://shardcloud.mintlify.site/_mintlify/api/og/v2?division=CDN\u0026amp;title=Start+a+large+file+upload\u0026amp;description=Starts+an+upload+for+files+too+large+for+a+single+%60POST+%2Fcdn%2Ffiles%60+request+%28which+is+limited+to+100+MB%29.+Reserves+the+file+name+and+the+storage+quota%2C+and+retu\u0026amp;theme=8a4ad6913005844b04231297\u0026amp;signature=8530d9acaf980b9378ab875b1ef73294b7e07d3a68c99cec43a59e22c6b41c05\">\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/shardcloud/5aEpL1d1TNXYnboN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Shard Cloud\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3C39ED\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cdn/cdn/start-a-large-file-upload.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.shardcloud.app/#organization\",\"name\":\"Shard Cloud\",\"url\":\"https://docs.shardcloud.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://shardcloud.app/images/landing/logo.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.shardcloud.app#website\",\"name\":\"Shard Cloud\",\"url\":\"https://docs.shardcloud.app\",\"publisher\":{\"@id\":\"https://docs.shardcloud.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload#webpage\",\"url\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload\",\"name\":\"Start a large file upload\",\"description\":\"Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\",\"dateModified\":\"2026-09-26T05:06:40.877Z\",\"isPartOf\":{\"@id\":\"https://docs.shardcloud.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://docs.shardcloud.app/cdn/cdn/list-cdn-files\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CDN\",\"item\":\"https://docs.shardcloud.app/cdn/cdn/list-cdn-files\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Start a large file upload\",\"item\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload#apireference\",\"headline\":\"Start a large file upload\",\"name\":\"Start a large file upload\",\"description\":\"Starts an upload for files too large for a single POST /cdn/files request (which is limited to 100 MB). Reserves the file name and the storage quota, and returns one upload URL per 64 MiB part. Send each part with PUT to its URL, then call the finalize endpoint. Requires a valid subscription. The file is not publicly available until it is finalized.\",\"url\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload\",\"mainEntityOfPage\":{\"@id\":\"https://docs.shardcloud.app/cdn/cdn/start-a-large-file-upload#webpage\"},\"dateModified\":\"2026-09-26T05:06:40.877Z\",\"publisher\":{\"@id\":\"https://docs.shardcloud.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.shardcloud.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Shard Cloud\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Shard Cloud","nav":{"global":null,"tabs":[{"tab":"General info","pages":[{"title":"General info","href":""}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/tutorials/introduction"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/cli"}]},{"tab":"VS Code Extension","pages":[{"title":"VS Code Extension","href":"/vscode/vscode"}]},{"tab":"CDN","groups":[{"group":"Overview","pages":[{"title":"Shard Cloud CDN","icon":"cloud","href":"/cdn/introduction"},{"title":"Authorization","icon":"key","href":"/cdn/authorization"},{"title":"Supported File Types","icon":"file","href":"/cdn/supported-file-types"}]},{"group":"Reference","pages":[{"group":"CDN","pages":[{"title":"List CDN files","deprecated":null,"version":null,"openapi":"/cdn/openapi.json get /cdn/files","href":"/cdn/cdn/list-cdn-files"},{"title":"Upload a CDN file","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files","href":"/cdn/cdn/upload-a-cdn-file"},{"title":"Delete a CDN file","deprecated":null,"version":null,"openapi":"/cdn/openapi.json delete /cdn/files","href":"/cdn/cdn/delete-a-cdn-file"},{"title":"Get a single CDN file","description":"Retrieves metadata for a specific CDN file. The fileName query parameter is validated for ownership via middleware before the handler executes.\n","deprecated":null,"version":null,"openapi":"/cdn/openapi.json get /cdn/files/get","href":"/cdn/cdn/get-a-single-cdn-file"},{"title":"Start a large file upload","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files/multipart","href":"/cdn/cdn/start-a-large-file-upload"},{"title":"Finish a large file upload","description":"Completes an upload started with `POST /cdn/files/multipart` after every part has been sent. The parts are checked against the size declared at start, the file is assembled, its content is validated against the MIME type, and the file becomes available at its CDN `url`. Safe to call again: repeating it after a success returns the same file.\n","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files/multipart/{upload_id}/finalize","href":"/cdn/cdn/finish-a-large-file-upload"},{"title":"Delete multiple CDN files","deprecated":null,"version":null,"openapi":"/cdn/openapi.json post /cdn/files/delete","href":"/cdn/cdn/delete-multiple-cdn-files"},{"title":"Get CDN usage stats","deprecated":null,"version":null,"openapi":"/cdn/openapi.json get /cdn/stats","href":"/cdn/cdn/get-cdn-usage-stats"},{"title":"Purge a CDN folder cache","deprecated":null,"version":null,"openapi":"/cdn/openapi.json delete /cdn/cache/folder","href":"/cdn/cdn/purge-a-cdn-folder-cache"},{"title":"Delete a CDN folder","deprecated":null,"version":null,"openapi":"/cdn/openapi.json delete /cdn/folder","href":"/cdn/cdn/delete-a-cdn-folder"}]}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Start a large file upload - Shard Cloud","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}