Re-issue upload URLs for specific parts, extending the deadline
Mints fresh presigned URLs for the part numbers given, and pushes the upload’s deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.
POST
/
data-assets
/
{username}
/
{namespace}
/
{assetId}
/
versions
/
{versionNo}
/
parts
/
presign
Re-issue upload URLs for specific parts, extending the deadline
Part numbers to re-presign, each between 1 and totalParts. At most upload-max-concurrency entries per call; asking for more is rejected with 422 rather than silently truncated, so the client never assumes it got URLs it did not.
Response
Fresh URLs for the requested parts; deadline extended
Part URLs to upload next, and the authority on how many may be in flight - it can be fewer than the requested concurrency. Empty once every part number has been handed out, which is not the same as every part having been uploaded: the server tracks only how many it has issued, never what landed. The client is the sole authority on its own progress. To re-obtain a URL it dropped or let expire, use the parts/presign endpoint.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Documentation","colors":{"primary":"#607251","light":"#607251","dark":"#C8D5BB"},"logo":{"light":"https://mintcdn.com/datalinks-d7c3bacc/NbL6ZZ8Yl0rUuPZD/logo/landfall_logo.svg?fit=max\u0026auto=format\u0026n=NbL6ZZ8Yl0rUuPZD\u0026q=85\u0026s=756a61980c1cda2d8c91a195650ccaa9","dark":"https://mintcdn.com/datalinks-d7c3bacc/NbL6ZZ8Yl0rUuPZD/logo/landfall_logo_white.svg?fit=max\u0026auto=format\u0026n=NbL6ZZ8Yl0rUuPZD\u0026q=85\u0026s=0e5cb751d7246fa9ca9d1ea1da985cf7"},"favicon":"https://mintcdn.com/datalinks-d7c3bacc/NbL6ZZ8Yl0rUuPZD/logo/favicon.svg?fit=max\u0026auto=format\u0026n=NbL6ZZ8Yl0rUuPZD\u0026q=85\u0026s=6685ce7fb23b401e4b2248c8220474cd","api":{"openapi":{"source":"api-reference/openapi.yml"},"playground":{"proxy":false}},"navbar":{"links":[{"href":"https://landfall.ai","label":"Website"}]},"footer":{"socials":{"linkedin":"https://linkedin.com/company/datasetlinks","github":"https://github.com/DataSetLinks","website":"https://landfall.ai/"}},"integrations":{"gtm":{"tagId":"GTM-M2TM5387"}},"contextual":{"options":[],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"datalinks-d7c3bacc","hasAudioNarration":false,"actualSubdomain":"datalinks-d7c3bacc","customDomains":["docs.landfall.ai"],"gitSource":{"type":"github","owner":"datasetlinks","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6abf882febb6ec0ddbda9681","collectionId":"0da0e7a5-521c-47d5-8bb3-f054e2e89e2d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6abf882febb6ec0ddbda9681"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae9f41feceed668c026c91c","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":99},{"language":"default","tag":"Endpoints","count":98},{"language":"default","tag":"Docs","count":28},{"language":"default","tag":"buildspecs","count":22},{"language":"default","tag":"data-assets","count":14},{"language":"default","tag":"How-To Guides","count":12},{"language":"default","tag":"Python SDK","count":7},{"language":"default","tag":"dataset","count":7},{"language":"default","tag":"user","count":7},{"language":"default","tag":"permissions","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"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":"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":"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":"billing-updated-9-15","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"consent-banner.css","content":":root{--color-white:#ffffff;--color-gray-25:#fafafa;--color-gray-50:#f7f7f7;--color-gray-100:#f0f0f1;--color-gray-200:#ececed;--color-gray-300:#cecfd2;--color-gray-400:#94979c;--color-gray-500:#85888e;--color-gray-600:#61656c;--color-gray-700:#373a41;--color-gray-800:#22262f;--color-gray-900:#13161b;--color-gray-950:#0c0e12;--color-blue-50:#b0d8ff;--color-blue-600:#002454;--color-blue-700:#001433;--color-blue-800:#010a17;--color-green-50:#f2ffe5;--color-green-100:#dfeed1;--color-green-200:#c8d5bb;--color-green-300:#859973;--color-green-400:#607251;--color-green-500:#516441;--color-green-700:#213610}.consent-banner-overlay{position:fixed;bottom:1rem;max-width:480px;right:1rem;padding:.75rem;z-index:9999;border-radius:.75rem;font-size:1rem;color:var(--color-gray-600);background:var(--color-white);box-shadow:0 0 0 1px rgba(10,13,18,.18) inset,0 -2px 0 0 rgba(10,13,18,.05) inset,0 1px 2px 0 rgba(10,13,18,.05)}.dark .consent-banner-overlay{color:var(--color-gray-400);border:1px solid var(--color-gray-700);background:var(--color-gray-900);box-shadow:0 12px 16px -4px rgba(10,13,18,.08),0 4px 6px -2px rgba(10,13,18,.03),0 2px 2px -1px rgba(10,13,18,.04)}.consent-banner-grid{display:flex;flex-direction:column;flex-wrap:wrap}.consent-options{margin-top:1rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.consent-options label{display:flex;gap:.75rem}.consent-options input[type=checkbox]{border-radius:6px;border:1px solid var(--color-gray-700)}.consent-options input[type=checkbox]:checked{background-color:var(--color-green-500);border-color:var(--color-green-500)}.cookie-icon{margin-bottom:1rem;display:inline-flex;justify-content:center;align-items:center;width:48px;height:48px;border-radius:10px;font-size:1.5rem;flex:0 0 48px;background-color:var(--color-gray-50);box-shadow:0 0 0 1px rgba(10,13,18,.18) inset,0 -2px 0 0 rgba(10,13,18,.05) inset,0 1px 2px 0 rgba(10,13,18,.05)}.dark .cookie-icon{background-color:var(--color-gray-800)}.consent-buttons{display:flex;gap:.75rem}.cookie-btn{flex:1;white-space:nowrap;padding:.5rem 1rem;border:0;border-radius:.5rem;cursor:pointer;font-weight:600;font-size:1rem;line-height:1.5;transition:background-color .2s;box-shadow:0 0 0 1px rgba(10,13,18,.12) inset,0 -2px 0 0 rgba(10,13,18,.05) inset,0 1px 2px 0 rgba(10,13,18,.05);border:1px solid rgba(255,255,255,.12);background-color:var(--color-gray-50)}.dark .cookie-btn:not(.cookie-btn-accept):not(.cookie-btn-reject){background-color:var(--color-gray-900);color:var(--color-gray-200);border-color:var(--color-gray-700);box-shadow:none}.cookie-btn-accept{background:var(--color-green-700);color:var(--color-white)}.cookie-btn-accept:hover{background:var(--color-green-400)}.cookie-btn-reject{padding-inline:0;box-shadow:none;border-color:transparent;background:0 0}.cookie-btn-reject:hover{text-decoration:underline}@media (max-width:768px){.consent-buttons{flex-direction:column;gap:1rem;text-align:center}.cookie-btn-reject{padding-block:0}.cookie-btn{font-size:.85rem}}"}],"page":{"pagePath":"api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline","slug":"/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline","pageMetadata":{"title":"Re-issue upload URLs for specific parts, extending the deadline","description":"Mints fresh presigned URLs for the part numbers given, and pushes the upload's deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/parts/presign","href":"/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Mints fresh presigned URLs for the part numbers given, and pushes the upload’s deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\"\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":"Re-issue upload URLs for specific parts, extending the deadline","description":"Mints fresh presigned URLs for the part numbers given, and pushes the upload's deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/parts/presign","href":"/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/datalinks-d7c3bacc/c24628b788aa4349/gtm-consent-banner.js"],"openApiReferenceData":{"operation":{"tags":["data-assets"],"summary":"Re-issue upload URLs for specific parts, extending the deadline","description":"Mints fresh presigned URLs for the part numbers given, and pushes the upload's deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\n","operationId":"presignDataAssetParts","parameters":["01002819-0e9a-45ea-92d4-5e3bd0612372","68cbcd5b-b95b-4192-a5ef-4f7a44ab0e65","307da150-bfa8-4aaf-a6ea-5f2d40f8ac9a","469dc7d2-cfc3-4c02-8754-2cc8a6167761"],"requestBody":"9e297476-3896-40c0-88aa-ebac12d48594","responses":{"200":"238456d6-4f97-4e41-af44-40d71d237e88","401":"feca5e93-39e5-40ec-add1-828e89441a1a","403":"7f9a8348-7990-41ac-b12c-cfe05fad7bab","404":"25a92db0-c97c-4b31-96d2-5dc69317a902","422":"a83d66ee-404b-4f89-916d-76982d7dc29b"},"method":"post","type":"path","servers":["93870666-6042-444b-8726-0ca7cbede54b"],"security":["3edbce03-f3bb-4661-9e62-d8f7bea0eda9","39cafe1f-7dd3-4ee3-a9e3-36b8ad3d9073"],"path":"/data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/parts/presign","baseUrlOptions":["https://api.datalinks.com/api/v1"],"title":"Re-issue upload URLs for specific parts, extending the deadline","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"01002819-0e9a-45ea-92d4-5e3bd0612372":{"name":"username","in":"path","description":"The username associated with the request.","required":true,"schema":{"type":"string","isRequired":true,"description":"The username associated with the request.","uniqueKey":"","typeLabel":"string"}},"68cbcd5b-b95b-4192-a5ef-4f7a44ab0e65":{"name":"namespace","in":"path","description":"Namespace for the dataset.","required":true,"schema":{"type":"string","isRequired":true,"description":"Namespace for the dataset.","uniqueKey":"","typeLabel":"string"},"example":"cinematography"},"307da150-bfa8-4aaf-a6ea-5f2d40f8ac9a":{"name":"assetId","in":"path","description":"The data asset's id.","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"The data asset's id.","uniqueKey":"","typeLabel":"string\u003cuuid>"}},"469dc7d2-cfc3-4c02-8754-2cc8a6167761":{"name":"versionNo","in":"path","description":"The version number.","required":true,"schema":{"type":"integer","isRequired":true,"description":"The version number.","uniqueKey":"","typeLabel":"integer"}}},"requestBody":{"content":{"application/json":{"schema":{"required":["partNumbers"],"type":"object","properties":{"partNumbers":{"type":"array","description":"Part numbers to re-presign, each between 1 and totalParts. At most upload-max-concurrency entries per call; asking for more is rejected with 422 rather than silently truncated, so the client never assumes it got URLs it did not.\n","items":{"type":"integer","uniqueKey":"partNumbers.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"partNumbers","typeLabel":"integer[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"partNumbers":[123]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"238456d6-4f97-4e41-af44-40d71d237e88":{"description":"Fresh URLs for the requested parts; deadline extended","content":{"application/json":{"schema":{"required":["assetId","expiresAt","next","partSize","totalParts","uploadId","versionNo"],"type":"object","properties":{"assetId":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"assetId","typeLabel":"string\u003cuuid>"},"versionNo":{"type":"integer","isRequired":true,"uniqueKey":"versionNo","typeLabel":"integer"},"uploadId":{"type":"string","isRequired":true,"uniqueKey":"uploadId","typeLabel":"string"},"partSize":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"partSize","typeLabel":"integer\u003cint64>"},"totalParts":{"type":"integer","isRequired":true,"uniqueKey":"totalParts","typeLabel":"integer"},"expiresAt":{"type":"string","description":"Upload deadline. Each acknowledged part pushes it out.","format":"date-time","isRequired":true,"uniqueKey":"expiresAt","typeLabel":"string\u003cdate-time>"},"next":{"type":"array","description":"Part URLs to upload next, and the authority on how many may be in flight - it can be fewer than the requested `concurrency`. Empty once every part number has been handed out, which is not the same as every part having been uploaded: the server tracks only how many it has issued, never what landed. The client is the sole authority on its own progress. To re-obtain a URL it dropped or let expire, use the parts/presign endpoint.\n","items":{"required":["partNumber","size","url"],"type":"object","properties":{"partNumber":{"type":"integer","isRequired":true,"uniqueKey":"next.items.[INDEX].partNumber","typeLabel":"integer"},"url":{"type":"string","isRequired":true,"uniqueKey":"next.items.[INDEX].url","typeLabel":"string"},"size":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"next.items.[INDEX].size","typeLabel":"integer\u003cint64>"}},"uniqueKey":"next.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"next","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"assetId":"3c90c3cc-0d44-4b50-8888-8dd25736052a","versionNo":123,"uploadId":"\u003cstring>","partSize":123,"totalParts":123,"expiresAt":"2023-11-07T05:31:56Z","next":[{"partNumber":123,"url":"\u003cstring>","size":123}]}}},"exampleType":"generated"}},"exampleType":"generated"},"feca5e93-39e5-40ec-add1-828e89441a1a":{"description":"Unauthorized. This error occurs if the authentication token is missing or invalid.","content":{"application/json":{"schema":{"required":["error_code","message"],"type":"object","properties":{"error_code":{"type":"string","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","example":"Missing authentication token","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_message":{"type":"string","example":"","uniqueKey":"error_message","typeLabel":"string"},"sub_errors":{"type":"array","items":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"sub_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sub_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error_code":"UNAUTHORIZED","message":"Missing authentication token","error_message":"","sub_errors":[{"code":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"7f9a8348-7990-41ac-b12c-cfe05fad7bab":{"description":"Forbidden. The user does not have access to this resource.","content":{"application/json":{"schema":{"required":["error_code","message"],"type":"object","properties":{"error_code":{"type":"string","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","example":"Missing authentication token","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_message":{"type":"string","example":"","uniqueKey":"error_message","typeLabel":"string"},"sub_errors":{"type":"array","items":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"sub_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sub_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error_code":"UNAUTHORIZED","message":"Missing authentication token","error_message":"","sub_errors":[{"code":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"25a92db0-c97c-4b31-96d2-5dc69317a902":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"required":["error_code","message"],"type":"object","properties":{"error_code":{"type":"string","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","example":"Missing authentication token","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_message":{"type":"string","example":"","uniqueKey":"error_message","typeLabel":"string"},"sub_errors":{"type":"array","items":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"sub_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sub_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error_code":"UNAUTHORIZED","message":"Missing authentication token","error_message":"","sub_errors":[{"code":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"a83d66ee-404b-4f89-916d-76982d7dc29b":{"description":"Invalid request (e.g. version out of retention, TTL above max).","content":{"application/json":{"schema":{"required":["error_code","message"],"type":"object","properties":{"error_code":{"type":"string","example":"UNAUTHORIZED","isRequired":true,"uniqueKey":"error_code","typeLabel":"string"},"message":{"type":"string","example":"Missing authentication token","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"error_message":{"type":"string","example":"","uniqueKey":"error_message","typeLabel":"string"},"sub_errors":{"type":"array","items":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"sub_errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"sub_errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sub_errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error_code":"UNAUTHORIZED","message":"Missing authentication token","error_message":"","sub_errors":[{"code":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"3edbce03-f3bb-4661-9e62-d8f7bea0eda9":{"bearerAuth":{"type":"http","description":"Use a Bearer token for authentication. Submit the token using the `Authorization`\nheader: `Authorization: Bearer \u003ctoken>`.\n","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}},"39cafe1f-7dd3-4ee3-a9e3-36b8ad3d9073":{"openId":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://login.datalinks.com/realms/datalinks-realm/protocol/openid-connect/auth","scopes":{"openid":"openid"}}},"scopes":["implicit"],"schemeName":"openId"}}},"servers":{"93870666-6042-444b-8726-0ca7cbede54b":{"url":"https://api.datalinks.com/api/v1","description":"production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","description":"Use a Bearer token for authentication. Submit the token using the `Authorization`\nheader: `Authorization: Bearer \u003ctoken>`.\n","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use a Bearer token for authentication. Submit the token using the `Authorization`\nheader: `Authorization: Bearer \u003ctoken>`.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://login.datalinks.com/realms/datalinks-realm/protocol/openid-connect/auth","scopes":{"openid":"openid"}}},"scopes":["implicit"],"schemeName":"openId"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"The access token received from the authorization server in the OAuth 2.0 flow.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"openId","name":"Authorization"}],"title":"openId"}]},"originalFileLocation":"api-reference/openapi.yml"},"subdomain":"datalinks-d7c3bacc","siteName":"Documentation","title":"Re-issue upload URLs for specific parts, extending the deadline - Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T14:48:08.012Z","originalFileLocation":"api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline.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=\"Mints fresh presigned URLs for the part numbers given, and pushes the upload\u0026#x27;s deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\">\u003cmeta data-mint-head name=\"application-name\" content=\"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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Re-issue upload URLs for specific parts, extending the deadline - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Mints fresh presigned URLs for the part numbers given, and pushes the upload\u0026#x27;s deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://datalinks-d7c3bacc.mintlify.app/_mintlify/api/og/v2?division=data-assets\u0026amp;title=Re-issue+upload+URLs+for+specific+parts%2C+extending+the+deadline\u0026amp;description=Mints+fresh+presigned+URLs+for+the+part+numbers+given%2C+and+pushes+the+upload%27s+deadline+out+like+an+acknowledgement+does.+Use+it+when+the+client+knows+which+par\u0026amp;theme=a00ac63b1779b80d0dd1c500\u0026amp;signature=13f50445aa524d26b976b090b3512cd0dffb6eb5ce39b5159041dbc18af27e92\">\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=\"Re-issue upload URLs for specific parts, extending the deadline - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Mints fresh presigned URLs for the part numbers given, and pushes the upload\u0026#x27;s deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://datalinks-d7c3bacc.mintlify.app/_mintlify/api/og/v2?division=data-assets\u0026amp;title=Re-issue+upload+URLs+for+specific+parts%2C+extending+the+deadline\u0026amp;description=Mints+fresh+presigned+URLs+for+the+part+numbers+given%2C+and+pushes+the+upload%27s+deadline+out+like+an+acknowledgement+does.+Use+it+when+the+client+knows+which+par\u0026amp;theme=a00ac63b1779b80d0dd1c500\u0026amp;signature=13f50445aa524d26b976b090b3512cd0dffb6eb5ce39b5159041dbc18af27e92\">\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/datalinks-d7c3bacc/UoVzkwi3FIgLQM3H/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#607251\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.landfall.ai/#organization\",\"name\":\"Documentation\",\"url\":\"https://docs.landfall.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/datalinks-d7c3bacc/NbL6ZZ8Yl0rUuPZD/logo/landfall_logo.svg?fit=max\u0026auto=format\u0026n=NbL6ZZ8Yl0rUuPZD\u0026q=85\u0026s=756a61980c1cda2d8c91a195650ccaa9\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.landfall.ai#website\",\"name\":\"Documentation\",\"url\":\"https://docs.landfall.ai\",\"publisher\":{\"@id\":\"https://docs.landfall.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline#webpage\",\"url\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline\",\"name\":\"Re-issue upload URLs for specific parts, extending the deadline\",\"description\":\"Mints fresh presigned URLs for the part numbers given, and pushes the upload's deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\",\"dateModified\":\"2026-11-03T14:48:08.012Z\",\"isPartOf\":{\"@id\":\"https://docs.landfall.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.landfall.ai/api-reference/a2a/list-the-agents-exposed-over-a2a\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"data-assets\",\"item\":\"https://docs.landfall.ai/api-reference/data-assets/list-the-committed-non-deleted-data-assets-in-a-namespace\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Re-issue upload URLs for specific parts, extending the deadline\",\"item\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline#apireference\",\"headline\":\"Re-issue upload URLs for specific parts, extending the deadline\",\"name\":\"Re-issue upload URLs for specific parts, extending the deadline\",\"description\":\"Mints fresh presigned URLs for the part numbers given, and pushes the upload's deadline out like an acknowledgement does. Use it when the client knows which parts it needs - typically a URL that expired mid-transfer on a slow link. It performs no S3 listing, so it stays as cheap as an acknowledgement; if the client does not know what it still needs, use the status endpoint instead. Re-issuing a URL for a part already uploaded is harmless: the PUT overwrites it and returns a new ETag, and that newer ETag is the one to send to finish.\",\"url\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline\",\"mainEntityOfPage\":{\"@id\":\"https://docs.landfall.ai/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline#webpage\"},\"dateModified\":\"2026-11-03T14:48:08.012Z\",\"publisher\":{\"@id\":\"https://docs.landfall.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.landfall.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Documentation","nav":{"global":null,"tabs":[{"tab":"Docs","icon":"file-lines","pages":[{"title":"Docs","href":""}]},{"tab":"API Reference","icon":"code","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference"}]},{"group":"Endpoints","expanded":true,"pages":[{"group":"a2a","pages":[{"title":"List the agents exposed over A2A","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /a2a","href":"/api-reference/a2a/list-the-agents-exposed-over-a2a"},{"title":"Fetch an agent's AgentCard","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /a2a/{agentName}/.well-known/agent-card.json","href":"/api-reference/a2a/fetch-an-agents-agentcard"},{"title":"A2A JSON-RPC endpoint for an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /a2a/{agentName}","href":"/api-reference/a2a/a2a-json-rpc-endpoint-for-an-agent"}]},{"group":"agents","pages":[{"title":"Get code files for a cleaning task","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /agents/cleaning/{cleaningTaskId}/code","href":"/api-reference/agents/get-code-files-for-a-cleaning-task"},{"title":"Request cleaning on a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /agents/{username}/{namespace}/{datasetName}/requestCleaning","href":"/api-reference/agents/request-cleaning-on-a-dataset"}]},{"group":"datasets","pages":[{"title":"Fetch datasets","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yml get /data","href":"/api-reference/datasets/fetch-datasets"},{"title":"Fetch datasets in namespace","deprecated":true,"version":null,"openapi":"/api-reference/openapi.yml get /data/{namespace}","href":"/api-reference/datasets/fetch-datasets-in-namespace"}]},{"group":"data","pages":[{"title":"List ingestions for a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data/{username}/{namespace}/{datasetName}/ingest/attempts","href":"/api-reference/data/list-ingestions-for-a-dataset"}]},{"group":"dataset","pages":[{"title":"Get dataset information","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data/{username}/{namespace}/{datasetName}","href":"/api-reference/dataset/get-dataset-information"},{"title":"Rename a namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data/{username}/{namespace}/rename","href":"/api-reference/dataset/rename-a-namespace"},{"title":"Rename a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data/{username}/{namespace}/{datasetName}/rename","href":"/api-reference/dataset/rename-a-dataset"},{"title":"Update inference definition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml put /data/{username}/{namespace}/{datasetName}/inferDefinition","href":"/api-reference/dataset/update-inference-definition"},{"title":"Clear all data for a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data/{username}/{namespace}/{datasetName}/clear","href":"/api-reference/dataset/clear-all-data-for-a-dataset"},{"title":"Delete all data and metadata for a dataset (balefire)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /data/{username}/{namespace}/{datasetName}/balefire","href":"/api-reference/dataset/delete-all-data-and-metadata-for-a-dataset-balefire"},{"title":"Update dataset sort order","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml put /schema/{username}/{namespace}/{datasetName}/sort-order","href":"/api-reference/dataset/update-dataset-sort-order"}]},{"group":"namespace","pages":[{"title":"Delete all data and metadata for a namespace (balefire)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /data/{username}/{namespace}/balefire","href":"/api-reference/namespace/delete-all-data-and-metadata-for-a-namespace-balefire"}]},{"group":"ingest","pages":[{"title":"Preview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /infer/preview","href":"/api-reference/ingest/preview"},{"title":"Infer dataset description","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /infer/description","href":"/api-reference/ingest/infer-dataset-description"},{"title":"Schema","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /infer/schema","href":"/api-reference/ingest/schema"},{"title":"Create new dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ingest/new/{namespace}/{datasetName}","href":"/api-reference/ingest/create-new-dataset"},{"title":"Ingest data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ingest/{namespace}/{datasetName}","href":"/api-reference/ingest/ingest-data"}]},{"group":"buildspecs","pages":[{"title":"List the caller's BuildSpecs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs","href":"/api-reference/buildspecs/list-the-callers-buildspecs"},{"title":"Create a BuildSpec","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs","href":"/api-reference/buildspecs/create-a-buildspec"},{"title":"Get a BuildSpec","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs/{buildSpecId}","href":"/api-reference/buildspecs/get-a-buildspec"},{"title":"Edit a BuildSpec","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml put /build-specs/{buildSpecId}","href":"/api-reference/buildspecs/edit-a-buildspec"},{"title":"Delete a BuildSpec","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /build-specs/{buildSpecId}","href":"/api-reference/buildspecs/delete-a-buildspec"},{"title":"Schedule a build (create a BuildRun)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs/{buildSpecId}/run","href":"/api-reference/buildspecs/schedule-a-build-create-a-buildrun"},{"title":"Preview a build (dry run)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs/{buildSpecId}/preview","href":"/api-reference/buildspecs/preview-a-build-dry-run"},{"title":"List a BuildSpec's runs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs/{buildSpecId}/runs","href":"/api-reference/buildspecs/list-a-buildspecs-runs"},{"title":"Get a BuildRun","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-runs/{buildRunId}","href":"/api-reference/buildspecs/get-a-buildrun"},{"title":"List the ingestions a BuildRun performed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-runs/{buildRunId}/ingestions","href":"/api-reference/buildspecs/list-the-ingestions-a-buildrun-performed"},{"title":"List a preview run's outputs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-runs/{buildRunId}/outputs","href":"/api-reference/buildspecs/list-a-preview-runs-outputs"},{"title":"Fetch a preview output's download URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-runs/{buildRunId}/outputs/{destinationName}","href":"/api-reference/buildspecs/fetch-a-preview-outputs-download-url"},{"title":"List a pipeline's file-input slot bindings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs/{buildSpecId}/file-inputs","href":"/api-reference/buildspecs/list-a-pipelines-file-input-slot-bindings"},{"title":"Set (replace) the files bound to a file-input slot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml put /build-specs/{buildSpecId}/file-inputs/{slot}","href":"/api-reference/buildspecs/set-replace-the-files-bound-to-a-file-input-slot"},{"title":"Unbind a file-input slot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /build-specs/{buildSpecId}/file-inputs/{slot}","href":"/api-reference/buildspecs/unbind-a-file-input-slot"},{"title":"Add a file to a batch file-input slot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs/{buildSpecId}/file-inputs/{slot}/members","href":"/api-reference/buildspecs/add-a-file-to-a-batch-file-input-slot"},{"title":"Remove a file from a file-input slot","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /build-specs/{buildSpecId}/file-inputs/{slot}/members/{fileId}","href":"/api-reference/buildspecs/remove-a-file-from-a-file-input-slot"},{"title":"List a pipeline repo's files","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs/{buildSpecId}/files","href":"/api-reference/buildspecs/list-a-pipeline-repos-files"},{"title":"Save edits to a pipeline repo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml put /build-specs/{buildSpecId}/files","href":"/api-reference/buildspecs/save-edits-to-a-pipeline-repo"},{"title":"Read one file from a pipeline repo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /build-specs/{buildSpecId}/file","href":"/api-reference/buildspecs/read-one-file-from-a-pipeline-repo"},{"title":"Validate a pipeline repo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs/{buildSpecId}/files/validate","href":"/api-reference/buildspecs/validate-a-pipeline-repo"},{"title":"Sync a pipeline repo's manifest with the spec","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /build-specs/{buildSpecId}/files/sync-manifest","href":"/api-reference/buildspecs/sync-a-pipeline-repos-manifest-with-the-spec"}]},{"group":"ingestionTracking","pages":[{"title":"Retry ingestion","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ingestionTracking/{ingestionId}/retry","href":"/api-reference/ingestiontracking/retry-ingestion"},{"title":"Mark ingestion as seen","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ingestionTracking/{ingestionId}/seen","href":"/api-reference/ingestiontracking/mark-ingestion-as-seen"}]},{"group":"links","pages":[{"title":"Load links","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /links/{username}/{namespace}/{datasetName}","href":"/api-reference/links/load-links"},{"title":"Rebuild links","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /links/{username}/{namespace}/{datasetName}","href":"/api-reference/links/rebuild-links"},{"title":"Preview links","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /links/preview/{username}/{namespace}/{datasetName}","href":"/api-reference/links/preview-links"},{"title":"Add a new link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /links/add","href":"/api-reference/links/add-a-new-link"}]},{"group":"ontology","pages":[{"title":"Get dataset ontology","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /ontology/{username}/{namespace}/{datasetName}","href":"/api-reference/ontology/get-dataset-ontology"},{"title":"Save dataset ontology","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ontology/{username}/{namespace}/{datasetName}","href":"/api-reference/ontology/save-dataset-ontology"},{"title":"Curate ontology links","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /ontology/curate-links","href":"/api-reference/ontology/curate-ontology-links"}]},{"group":"schema","pages":[{"title":"List all datasets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /schema/datasets/all","href":"/api-reference/schema/list-all-datasets"},{"title":"List user namespaces","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /schema/{user}/namespaces","href":"/api-reference/schema/list-user-namespaces"},{"title":"List datasets within namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /schema/{user}/{namespace}/datasets","href":"/api-reference/schema/list-datasets-within-namespace"}]},{"group":"permissions","pages":[{"title":"List users with access to a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /permissions/datasets/{username}/{namespace}/{datasetName}/shares","href":"/api-reference/permissions/list-users-with-access-to-a-dataset"},{"title":"Share a dataset with a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /permissions/datasets/{username}/{namespace}/{datasetName}/shares","href":"/api-reference/permissions/share-a-dataset-with-a-user"},{"title":"Revoke a user's access to a dataset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /permissions/datasets/{username}/{namespace}/{datasetName}/shares","href":"/api-reference/permissions/revoke-a-users-access-to-a-dataset"},{"title":"List users with access to a namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /permissions/namespaces/{username}/{namespace}/shares","href":"/api-reference/permissions/list-users-with-access-to-a-namespace"},{"title":"Share a namespace with a user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /permissions/namespaces/{username}/{namespace}/shares","href":"/api-reference/permissions/share-a-namespace-with-a-user"},{"title":"Revoke a user's access to a namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /permissions/namespaces/{username}/{namespace}/shares","href":"/api-reference/permissions/revoke-a-users-access-to-a-namespace"}]},{"group":"query","pages":[{"title":"Query data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /query","href":"/api-reference/query/query-data"}]},{"group":"autorag","pages":[{"title":"Run AutoRAG agent over all data","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /query/autorag","href":"/api-reference/autorag/run-autorag-agent-over-all-data"},{"title":"Run AutoRAG agent with streaming response","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /query/ask","href":"/api-reference/autorag/run-autorag-agent-with-streaming-response"}]},{"group":"agentRuns","pages":[{"title":"Get the status of an agent run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /query/runs/{runId}","href":"/api-reference/agentruns/get-the-status-of-an-agent-run"},{"title":"Delete an agent run and any resume cache associated with it","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /query/runs/{runId}","href":"/api-reference/agentruns/delete-an-agent-run-and-any-resume-cache-associated-with-it"},{"title":"Resume a previously paused or crashed agent run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /query/runs/{runId}/resume","href":"/api-reference/agentruns/resume-a-previously-paused-or-crashed-agent-run"},{"title":"Submit thumbs up/down feedback on a completed agent run","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /query/runs/{runId}/feedback","href":"/api-reference/agentruns/submit-thumbs-updown-feedback-on-a-completed-agent-run"}]},{"group":"conversations","pages":[{"title":"List the caller's conversations within a namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /query/conversations","href":"/api-reference/conversations/list-the-callers-conversations-within-a-namespace"},{"title":"Get a conversation and its turns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /query/conversations/{conversationId}","href":"/api-reference/conversations/get-a-conversation-and-its-turns"}]},{"group":"user","pages":[{"title":"List user tokens","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /user/tokens","href":"/api-reference/user/list-user-tokens"},{"title":"Add a new user token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /user/token","href":"/api-reference/user/add-a-new-user-token"},{"title":"Delete user token","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /user/token/{tokenId}","href":"/api-reference/user/delete-user-token"},{"title":"List token permissions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /user/tokens/{tokenId}/permissions","href":"/api-reference/user/list-token-permissions"},{"title":"Get user usage history","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /user/usage/history","href":"/api-reference/user/get-user-usage-history"},{"title":"Get user usage aggregated by day","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /user/usage/by-day","href":"/api-reference/user/get-user-usage-aggregated-by-day"},{"title":"Get the current user","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /user/me","href":"/api-reference/user/get-the-current-user"}]},{"group":"multipart-upload","pages":[{"title":"Prepare multipart upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /upload/multipart/{username}/{namespace}/{datasetName}/prepare","href":"/api-reference/multipart-upload/prepare-multipart-upload"},{"title":"Finish multipart upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /upload/multipart/{username}/{namespace}/{datasetName}/finish","href":"/api-reference/multipart-upload/finish-multipart-upload"},{"title":"Abort multipart upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /upload/multipart/{username}/{namespace}/{datasetName}/abort","href":"/api-reference/multipart-upload/abort-multipart-upload"}]},{"group":"fileUpload","pages":[{"title":"Prepare session for file upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /file-upload/prepare","href":"/api-reference/fileupload/prepare-session-for-file-upload"},{"title":"Finish file upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /file-upload/{sessionId}/files/{fileId}/finish","href":"/api-reference/fileupload/finish-file-upload"},{"title":"Abort file upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /file-upload/{sessionId}/abort","href":"/api-reference/fileupload/abort-file-upload"},{"title":"List completed files in an upload session","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /file-upload/{sessionId}/files","href":"/api-reference/fileupload/list-completed-files-in-an-upload-session"}]},{"group":"data-assets","pages":[{"title":"List the committed, non-deleted data assets in a namespace","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data-assets/{username}/{namespace}","href":"/api-reference/data-assets/list-the-committed-non-deleted-data-assets-in-a-namespace"},{"title":"Create a data asset and start its first version upload","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}","href":"/api-reference/data-assets/create-a-data-asset-and-start-its-first-version-upload"},{"title":"Get a data asset's latest metadata and a presigned download URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data-assets/{username}/{namespace}/{assetId}","href":"/api-reference/data-assets/get-a-data-assets-latest-metadata-and-a-presigned-download-url"},{"title":"Soft-delete a data asset (retained briefly, then hard-purged)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml delete /data-assets/{username}/{namespace}/{assetId}","href":"/api-reference/data-assets/soft-delete-a-data-asset-retained-briefly-then-hard-purged"},{"title":"Update a data asset's name and/or description","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml patch /data-assets/{username}/{namespace}/{assetId}","href":"/api-reference/data-assets/update-a-data-assets-name-andor-description"},{"title":"List the versions of a data asset, newest first","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data-assets/{username}/{namespace}/{assetId}/versions","href":"/api-reference/data-assets/list-the-versions-of-a-data-asset-newest-first"},{"title":"Start uploading a new version of a data asset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions","href":"/api-reference/data-assets/start-uploading-a-new-version-of-a-data-asset"},{"title":"Get a presigned download URL for a specific version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}","href":"/api-reference/data-assets/get-a-presigned-download-url-for-a-specific-version"},{"title":"Complete a version upload from the client's part manifest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/finish","href":"/api-reference/data-assets/complete-a-version-upload-from-the-clients-part-manifest"},{"title":"Acknowledge an uploaded chunk, extending the deadline and getting the next chunk's URL","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/parts/{partNumber}/done","href":"/api-reference/data-assets/acknowledge-an-uploaded-chunk-extending-the-deadline-and-getting-the-next-chunks-url"},{"title":"Recover a pending upload - what landed, with ETags, and URLs for what did not","description":"The recovery path, for a client that lost its part manifest or its place. This is the only endpoint that asks S3 what it actually stored, so it is deliberately off the happy path: a normal upload never calls it, and a LIST request per upload is negligible.\nIt returns the ETag of every part S3 holds - which is what makes a lost manifest recoverable, since `finish` otherwise depends entirely on ETags the client captured - plus a fresh upload URL for every part still missing. Also extends the upload's deadline.\n","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml get /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/status","href":"/api-reference/data-assets/recover-a-pending-upload--what-landed-with-etags-and-urls-for-what-did-not"},{"title":"Re-issue upload URLs for specific parts, extending the deadline","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/parts/presign","href":"/api-reference/data-assets/re-issue-upload-urls-for-specific-parts-extending-the-deadline"},{"title":"Abort a pending version upload","description":null,"deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/versions/{versionNo}/abort","href":"/api-reference/data-assets/abort-a-pending-version-upload"},{"title":"Roll back to a retained version by copying it as a new version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yml post /data-assets/{username}/{namespace}/{assetId}/rollback","href":"/api-reference/data-assets/roll-back-to-a-retained-version-by-copying-it-as-a-new-version"}]}]}]},{"tab":"Python SDK","icon":"python","pages":[{"title":"Python SDK","href":"/pythonsdk"}]}]},"basePath":"","title":"Re-issue upload URLs for specific parts, extending the deadline - Documentation","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}