Record uploaded multipart parts
/api/v1alpha1/videos/{video_id}/upload/partsRecords 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.
Authorization
apiKey In: header
Path Parameters
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"}Complete a video upload POST
Verifies the direct object or persisted multipart receipt manifest, checks exact stored bytes, and starts processing once. Poll GET /api/v1alpha1/videos/{videoid} for processing status.
Refresh video upload targets POST
Returns fresh direct-to-storage targets. The server validates every requested multipart part number against its calculated total.