---
title: "Retrieve the status of an upload session"
method: GET
path: "/assets/multipart-uploads/{upload_id}"
tags: ["multipartUpload"]
---

# Retrieve the status of an upload session

`GET /assets/multipart-uploads/{upload_id}`

This method provides information about an upload session, including its current status, chunk-level progress, and completion state.

Use this method to:
- Verify upload completion (`status` = `completed`)
- Identify any failed chunks that require a retry
- Monitor the upload progress by comparing `uploaded_size` with `total_size`
- Determine if the session has expired
- Retrieve the status information for each chunk

After you report chunk completion, call this method to confirm the upload session reached the `completed` status. This status means the platform received the file, not that the asset is ready to use. The platform then validates the asset asynchronously. Poll the [Retrieve an asset](/v1.3/api-reference/upload-content/direct-uploads/retrieve) endpoint until the status of the asset is `ready` before you use it.

## Path parameters

- `upload_id` string, required

## Query parameters

- `page` integer
- `page_limit` integer

## Headers

- `x-api-key` string, required

## Response `200`

The status of your upload session has been successfully retrieved.

- GetUploadStatusResponse
  - `upload_id` string — The unique identifier of your upload session.
  - `status` 'active' | 'completed' | 'failed' | 'expired' — The status of your upload session. This field can take one of the following values: - `active`: The upload session is currently in progress. Continue uploading and reporting the completion of each chunk. - `completed`: The platform received the file. The asset is created in the `processing` status and is not yet ready to use. Poll the [Retrieve an asset](/v1.3/api-reference/upload-content/direct-uploads/retrieve) endpoint until the status of the asset is `ready` before you use it. - `failed`: The upload session failed. You must restart with a new session. - `expired`: The upload session expired after 24 hours. You must create a new session.
  - `uploaded_chunks` ChunkInfo[] — Detailed status for each chunk.
    - `index` integer — The index of the chunk. The platform uses 1-based indexing, and this value matches the value of the [`chunk_index`](/v1.3/api-reference/upload-content/multipart-uploads/create#response.body.upload_urls.chunk_index) field in the list of upload URLs.
    - `status` 'completed' | 'pending' | 'failed' — The current status of this chunk. This field can take one of the following values: - `completed`: Successfully uploaded and reported. - `pending`: Not yet reported. A chunk may be in this status if it has been uploaded but not yet reported. - `failed`: The upload process failed; you must retry uploading this chunk.
    - `uploaded_at` string, date-time — The date and time, in the RFC 3339 format ("YYYY-MM-DDTHH:mm:ssZ"), when this chunk was successfully reported as uploaded. The value of this field is `null` for pending or failed chunks.
    - `updated_at` string, date-time — A string representing the date and time, in RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”), when the resource was last updated.
    - `error` string — A detailed error message explaining why this chunk failed. The platform returns this field only when the status is failed.
  - `chunks_completed` integer — The number of chunks successfully uploaded and reported. When this value equals `total_chunks`, the status of your upload session transitions to `completed`.
  - `chunks_failed` integer — The number of chunks that failed to upload. If the number is greater than 0, check the `uploaded_chunks` array for specific failures and retry those chunks.
  - `chunks_pending` integer — The number of chunks not yet successfully uploaded. This value is calculated as: `total_chunks` - `chunks_completed` - `chunks_failed`.
  - `page_info` PageInfo — An object that provides information about pagination.
    - `limit_per_page` integer — The maximum number of items on each page.
    - `page` integer — The page you retrieved.
    - `total_page` integer — The total number of pages.
    - `total_results` integer — The total number of results.
  - `total_size` integer — The size of your file in bytes. You provided this value when you created the upload session.
  - `uploaded_size` integer — The number of bytes successfully uploaded
  - `created_at` string, date-time — A string representing the date and time, in RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”), when the resource was created.
  - `updated_at` string, date-time — A string representing the date and time, in RFC 3339 format (“YYYY-MM-DDTHH:mm:ssZ”), when the resource was last updated.

## 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/versions/5dbd6e8473c9/schema)
