---
title: "Request presigned URLs for the remaining chunks"
method: POST
path: "/assets/multipart-uploads/{upload_id}/presigned-urls"
tags: ["multipartUpload"]
---

# Request presigned URLs for the remaining chunks

`POST /assets/multipart-uploads/{upload_id}/presigned-urls`

## Request

- Base URL: `https://api.twelvelabs.io/v1.3`
- URL: `https://api.twelvelabs.io/v1.3/assets/multipart-uploads/{upload_id}/presigned-urls`
- Auth: API key in header `x-api-key`

This method generates new presigned URLs for specific chunks that require uploading. Use this endpoint in the following situations:
- Your initial URLs have expired (URLs expire after one hour).
- The initial set of presigned URLs does not include URLs for all chunks.
- You need to retry failed chunk uploads with new URLs.
To specify which chunks need URLs, use the `start` and `count` parameters. For example, to generate URLs for chunks 21 to 30, use `start=21` and `count=10`.
The response will provide new URLs, each with a fresh expiration time of one hour.

## Path parameters

- `upload_id` string, required

## Request body

- RequestAdditionalPresignedURLsRequest
  - `start` integer, required: The index of the first chunk number to generate URLs for. Chunks are numbered from 1.
  - `count` integer, required: The number of presigned URLs to generate starting from the index. You can request a maximum of 50 URLs in a single API call.

## Response `200`

Additional presigned URLs have been successfully generated.

- RequestAdditionalPresignedURLsResponse
  - `upload_id` string: The unique identifier of the upload session associated with these URLs.
  - `start_index` integer: The index of the first chunk number in this set of URLs. Matches the start value from your request.
  - `count` integer: The number of new URLs created. Matches the count value from your request.
  - `upload_urls` PresignedURLChunk[]: An array of additional presigned URLs for uploading chunks.
    - `chunk_index` integer: The index of this chunk.
    - `url` string, uri: The presigned URL for uploading this chunk. Each URL can only be used once and expires after 1 hour.
    - `expires_at` string, date-time: A string representing the date and time, in RFC 3339 format ("YYYY-MM-DDTHH:mm:ssZ"), when the resource will expire.
  - `generated_at` string, date-time: The date and time, in the RFC 3339 format ("YYYY-MM-DDTHH:mm:ssZ"), when these URLs were created. URLs remain valid for 1 hour from this time.
  - `expires_at` string, date-time: A string representing the date and time, in RFC 3339 format ("YYYY-MM-DDTHH:mm:ssZ"), when the resource will expire.

## Other responses

- `400`: The request has failed.
- `403`: The request has failed.
- `404`: Upload not found.
- `500`: The request has failed.

## Changes

- **2026-09-17** `b8591e05c0ba`: 1 warning, 1 info
  - deleted the `header` request parameter `x-api-key`
  - the endpoint scheme security `x-api-key` was added to the API
- **2026-09-12** `6205c7327cde`: 1 info
  - api operation id `get-additional-presigned-urls` removed and replaced with `multipartUpload_get_additional_presigned_urls`
- **2026-08-22** `fd9d80e384a8`: 3 warning
  - the `count` request property's max was set to `50.00`
  - the `count` request property's min was set to `1.00`
  - the `start` request property's min was set to `1.00`
- **2026-07-31** `5dbd6e8473c9`: 3 warning
  - removed the optional property `docs_url` from the response with the `400` status
  - removed the optional property `docs_url` from the response with the `403` status
  - removed the optional property `docs_url` from the response with the `500` status

[Operation history](https://skmtc.dev/twelvelabs/apis/twelvelabs-api/changes/assets/multipart-uploads/:upload_id/presigned-urls/post.md)

---

[API](https://skmtc.dev/twelvelabs/apis/twelvelabs-api.md) - [All operations](https://skmtc.dev/twelvelabs/apis/twelvelabs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/twelvelabs/apis/twelvelabs-api/revisions/c23c6e18fdd1?raw)
