---
title: "Create Video Upload Url"
method: POST
path: "/api/available/video/{task_uid}/upload-url"
tags: ["upload"]
---

# Create Video Upload Url

`POST /api/available/video/{task_uid}/upload-url`

## Request

- Base URL: `https://api.ncspeech.org` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ncspeech.org/api/available/video/{task_uid}/upload-url`
- Auth: HTTP bearer

Mint a resumable GCS upload session for one video attempt.

The object name is server-chosen (Video/<uuid>.<ext>) and the session is
bound to the caller's Origin — the browser PUTs the bytes directly. A repeat
call while an attempt is open supersedes it; after /complete → 409.
Returns the one-time complete token that lets /complete succeed without a
cookie.

## Path parameters

- `task_uid` string, required

## Headers

- `X-Test-UID` string, nullable

## Request body

- VideoUploadUrlPayload: Mint request. `sizeBytes` is only known when the recording already exists (a late mint); the early form, sent when the recording starts, omits it.
  - `contentType` string
  - `sizeBytes` integer, nullable
  - `captureMeta` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ncspeech/apis/advanced-data-collector-api.md) - [All operations](https://skmtc.dev/ncspeech/apis/advanced-data-collector-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ncspeech/apis/advanced-data-collector-api/revisions/fec602f8df8c?raw)
