Submit a video job
Submits one video capability job (or a raw run_ffmpeg job) for the eachlabs-video-api model and returns a prediction id to poll. Billing is per engine-metered execution second on the chosen tier with deliver-or-don’t-bill semantics: a prediction that does not deliver its artifact settles at $0 in beta (tier rates are on the billing docs page, not in this contract). Input media longer than 3600 seconds is rejected before billing (duration_over_cap); execution is killed at the 3600-metered-seconds cap. Submission is not idempotent on this surface — no idempotency key is exposed, so a timed-out POST may still have created a prediction; poll before resubmitting. The gateway applies no video-specific HTTP request rate limit today (no 429 path); engine-level throttling surfaces asynchronously as an error prediction with error_code PROVIDER_RATE_LIMIT.
Authorizations
Your eachlabs API key (dashboard → API keys), sent as Authorization: Bearer <api_key> on every request. One key authenticates and bills every video operation.
Body
Body of POST /v1/prediction for the video surface.
The job to run: a capability input envelope (dispatch on the capability field) or raw run_ffmpeg mode (mode: "run_ffmpeg"). The gateway tolerates an omitted capability/tier by defaulting to transcode/cpu, but this contract requires capability explicitly — omission is not a supported integration path.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
- Option 19
- Option 20
- Option 21
- Option 22
- Option 23
- Option 24
- Option 25
- Option 26
- Option 27
- Option 28
- Option 29
- Option 30
- Option 31
- Option 32
- Option 33
- Option 34
- Option 35
- Option 36
- Option 37
- Option 38
- Option 39
- Option 40
- Option 41
- Option 42
- Option 43
- Option 44
- Option 45
- Option 46
"eachlabs-video-api"Optional shared secret: the platform signs each webhook body with HMAC-SHA256 so the receiver can verify authenticity.
Optional completion webhook: on a terminal status the platform POSTs a JSON payload (same field family as the poll envelope) to this URL, with bounded retries (~30 s, ~2 min, ~10 min). Payload and delivery-history APIs: https://docs.eachlabs.ai/api/webhooks/payload-reference.
Response
Prediction accepted.
Body of POST /v1/prediction on the happy path.
Poll GET /v1/prediction/{predictionID} until a terminal status.
Reads "success" on the happy path; a failed submit returns a non-200 instead.
Omitted for async predictions — the video surface is async; poll for the result.