Skip to content
Videos

Record uploaded multipart parts

PUT/api/v1alpha1/videos/{video_id}/upload/parts

Records the ETags returned by direct storage. The same part and ETag can be sent again safely. The persisted receipts, not ListParts alone, are the completion manifest.

AuthorizationBearer <token>

In: header

Path Parameters

video_id*string

Identifier of a video, as returned in id by the upload intent.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X PUT "https://example.com/api/v1alpha1/videos/vid_0190b5d4-7e1f-7a2b-9c3d-1234567890ab/upload/parts" \  -H "Authorization: Bearer $DEEPFRAME_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "parts": [      {        "etag": "\\"etag-part-1\\"",        "part_number": 1      }    ]  }'
{  "chunk_size": 10485760,  "completed_parts": 2,  "expires_at": "2026-08-08T10:15:00.000Z",  "file_size": 157286400,  "received_parts": [    1,    3  ],  "reported_bytes": 20971520,  "state": "open",  "strategy": "direct",  "target": {    "expires_at": "2026-08-08T10:15:00.000Z",    "headers": {},    "method": "put",    "part_number": 2,    "url": "https://s3.example.test/upload"  },  "targets": [    {      "expires_at": "2026-08-08T10:15:00.000Z",      "headers": {},      "method": "put",      "part_number": 2,      "url": "https://s3.example.test/upload"    }  ],  "total_chunks": 16,  "uploaded_bytes": 10485760,  "verified_bytes": 0,  "video_id": "vid_0190b5d4-7e1f-7a2b-9c3d-1234567890ab"}