Skip to content
Videos

Complete a video upload

POST/api/v1alpha1/videos/{video_id}/upload/complete

Verifies the direct object or persisted multipart receipt manifest, checks exact stored bytes, and starts processing once. Poll GET /api/v1alpha1/videos/{video_id} for processing status.

AuthorizationBearer <token>

In: header

Path Parameters

video_id*string

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

Header Parameters

Idempotency-Key?string

Optional key for safe retry of this POST. The key is retained for 24 hours and compared with the request payload and concrete path parameters.

Lengthlength <= 255

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

application/problem+json

curl -X POST "https://example.com/api/v1alpha1/videos/vid_0190b5d4-7e1f-7a2b-9c3d-1234567890ab/upload/complete" \  -H "Authorization: Bearer $DEEPFRAME_API_KEY" \  -H "Content-Type: application/json" \  -d '{}'
{  "created_at": "2026-08-08T10:00:00.000Z",  "duration": 183.75,  "error": {    "code": "budget_exhausted",    "detail": "",    "next_action": "",    "title": ""  },  "error_message": "The video could not be processed.",  "filename": "warehouse-inspection-2026-08-08.mp4",  "frame_count": 4410,  "id": "vid_0190b5d4-7e1f-7a2b-9c3d-1234567890ab",  "progress": 100,  "source": "user",  "status": "completed",  "thumbnail_url": "https://cdn.example.test/media/vid_0190b5d4/thumbnail.jpg",  "updated_at": "2026-08-08T10:06:12.000Z"}