Pular para o conteúdo

Create a direct-upload session

POST
/uploads
curl --request POST \
--url https://api.devstreamcore.com/v1/uploads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "new_video_settings": { "playback_policy": "public" }, "cors_origin": "example", "multipart": true, "file_size_bytes": 1 }'

Returns a presigned PUT URL (single-PUT) or parts[] (multipart, files ≥ 50 MiB).

Media type application/json
object
new_video_settings
object
title
string
>= 1 characters <= 255 characters
description
string
<= 4096 characters
playback_policy
string
default: public
Allowed values: public signed
passthrough
string
<= 2048 characters
quality
string
Allowed values: original 480p 720p 1080p 1440p 4K 8K
mime_type
string
/^(video|audio)\/[a-z0-9.+-]+$/i/
cors_origin
string
multipart
boolean
file_size_bytes
integer
> 0 <= 21474836480

Upload session

Media type application/json

Upload session. url (single-PUT) XOR parts (multipart).

object
id
required
string
video_id
required
string
status
required
string
Allowed values: waiting
timeout
required

Seconds until the session expires

number
cors_origin
required
string | null
url

Presigned PUT URL — present only on single-PUT (small files)

string
upload_id

R2 multipart id — multipart only

string
parts

Presigned PUT URL per chunk — multipart only

Array<object>
object
partNumber
required
number
url
required
string
chunk_size
number
Example
{
"id": "up_a1b2c3d4e5f6a1b2c3d4",
"video_id": "vid_a1b2c3d4e5f6a1b2c3d4",
"status": "waiting"
}

Invalid request

Media type application/json

Error envelope — a single error per response.

object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found rate_limit_error quota_exceeded api_error
code
string
message
required
string
param
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error"
}
}

Missing or invalid API key

Media type application/json

Error envelope — a single error per response.

object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found rate_limit_error quota_exceeded api_error
code
string
message
required
string
param
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error"
}
}

Quota exceeded (encode minutes / duration / views)

Media type application/json

Error envelope — a single error per response.

object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found rate_limit_error quota_exceeded api_error
code
string
message
required
string
param
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error"
}
}

Rate limited — apply backoff

Media type application/json

Error envelope — a single error per response.

object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error permission_error not_found rate_limit_error quota_exceeded api_error
code
string
message
required
string
param
string
request_id
string
Example
{
"error": {
"type": "invalid_request_error"
}
}