---
title: "Accept and Upload Video Request"
method: PATCH
path: "/video/{requestId}/accept"
tags: ["Accept Request"]
---

# Accept and Upload Video Request

`PATCH /video/{requestId}/accept`

Calling this endpoint reserves the estimated credits and returns signed URL(s) for **multi-part upload**.

### Video uploads
The Video API uses multi-part upload to receive the video file for processing. You can use a simple byte-division function to create segments for the API to receive.

For example, if you have a 900MB video file and the system returns 3 upload URLs. You would then:

- Upload bytes 0-300,000,000 via HTTP PUT to `urls[0]`
- Upload bytes 300,000,001-600,000,000 via HTTP PUT to `urls[1]`
- Upload bytes 600,000,001-900,000,000 via HTTP PUT to `urls[2]`

If one of the uploads fail, you may reuse the same URL to retry - the action overwrites any partially uploaded data.

A successful response from the PUT request returns an `ETag` value in the header for each segment. Retain the part number and ETag pair for the next step (PATCH /video/{requestId}/complete-upload/).

## Response body

| **Property**  | **Type**   | **Description**                                     |
|---------------|------------|-----------------------------------------------------|
| **uploadId**  | String     | Upload ID for multi-part upload                     |
| **urls**      | Array      | URLs for multi-part uploads                         |

## Path parameters

- `requestId` string, uuid, required

## Response `202`

Successful response

- AcceptResponse
  - `uploadId` string — Upload ID for completing multi-part upload
  - `urls` string[] — URLs to PUT the parts to. The source video should be split into urls.length number of byte ranges.
  - `message` string — The endpoint will return message only if the video will be sourced from an external storage provider

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `402` — Payment required
- `403` — Forbidden
- `404` — Enhancement request with the provided ID not found
- `500` — Internal server error
- `503` — Service unavailable

---

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