---
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`

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

## Headers

- `x-api-key` 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.

---

[API](https://skmtc.net/twelvelabs/apis/twelvelabs-api.md) · [All operations](https://skmtc.net/twelvelabs/apis/twelvelabs-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/twelvelabs/twelvelabs-api/revisions/b6d766c2c340/schema)
