Skip to content
Esc
↑↓navigate↵open⌘Jpreview

Generate video upload URL

Creates a new video record and returns a presigned URL for uploading the video file to R2 storage. The URL expires after 20 minutes. Deprecated: use POST /api/v2/{team_slug}/{app_slug}/dam/videos instead.

PUT/api/v1/{team_slug}/{app_slug}/videosdeprecated
Authorization
AuthorizationBearer token · headerrequired

Management API token, sent as Authorization: Bearer <token>.

Path parameters
app_slugstringrequired

App slug

team_slugstringrequired

Team slug

Request body
requiredapplication/json

Video payload

content_typestringrequired
descriptionstring
filenamestringrequired
size_bytesintegerrequired
titlestringrequired
video_variantsinternal_pkg_webserver_v1.VideoVariant[]
Show properties
Array of internal_pkg_webserver_v1.VideoVariant
formatstringrequired
heightintegerrequired
widthintegerrequired
Responses
200

Presigned URL generated successfully

datagithub_com_enadhq_nabbit_internal_pkg_webserver_models.VideoUrlrequired
Show properties
constraintsgithub_com_enadhq_nabbit_internal_pkg_webserver_models.Constraint
Show properties
allowed_typesstring[] | null
max_size_bytesinteger
expires_atinteger
idstring
pathstring
upload_urlstring
detailsstring[]

Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes

successbooleanrequired
400

Invalid request

detailsstring[]
messagestring
successbooleanrequired
401

Unauthorized access

detailsstring[]
messagestring
successbooleanrequired
500

Internal server error

detailsstring[]
messagestring
successbooleanrequired
Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X PUT 'https://api.enad.io/api/v1/string/string/videos' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "content_type": "string",
  "description": "string",
  "filename": "string",
  "size_bytes": 0,
  "title": "string",
  "video_variants": [
    {
      "format": "string",
      "height": 0,
      "width": 0
    }
  ]
}'
Response
{
  "data": {
    "constraints": {
      "allowed_types": [
        "string"
      ],
      "max_size_bytes": 0
    },
    "expires_at": 0,
    "id": "string",
    "path": "string",
    "upload_url": "string"
  },
  "details": [
    "string"
  ],
  "success": true
}