---
title: Direct Upload
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/typescript)

[Stream](https://developers.cloudflare.com/api/typescript/resources/stream)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Direct Upload

##### [Upload videos via direct upload URLs](https://developers.cloudflare.com/api/typescript/resources/stream/subresources/direct%5Fupload/methods/create)

client.stream.directUpload.create(DirectUploadCreateParams { account\_id, maxDurationSeconds, allowedOrigins, 8 more } params, RequestOptionsoptions?): [DirectUploadCreateResponse](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.direct%5Fupload%20%3E%20%28model%29%20direct%5Fupload%5Fcreate%5Fresponse%20%3E%20%28schema%29) { scheduledDeletion, uid, uploadURL, watermark } 

POST/accounts/{account\_id}/stream/direct\_upload

##### ModelsExpand Collapse 

DirectUploadCreateResponse { scheduledDeletion, uid, uploadURL, watermark } 

scheduledDeletion?: string

Indicates the date and time at which the video will be deleted. Omit the field to indicate no change, or include with a `null` value to remove an existing scheduled deletion. If specified, must be at least 30 days from upload time.

formatdate-time

uid?: string

A Cloudflare-generated unique identifier for a media item.

maxLength32

uploadURL?: string

The URL an unauthenticated upload can use for a single `HTTP POST multipart/form-data` request.

watermark?: [Watermark](https://developers.cloudflare.com/api/typescript/resources/stream#%28resource%29%20stream.watermarks%20%3E%20%28model%29%20watermark%20%3E%20%28schema%29) { created, downloadedFrom, height, 8 more }