Skip to main content

Overview

POST /v1/videos is the programmatic entry point for the Knowlify Animation Engine. A single call queues 1–50 video generation jobs and returns immediately with a job ID for each one. Videos render asynchronously in the background — use GET /v1/videos/{uuid} to poll, or subscribe to Supabase realtime for live updates.
This endpoint is asynchronous. The response confirms each job was accepted (queued or parked); rendering itself takes minutes and is delivered out-of-band.

Endpoint

Your API_BASE is shown in the Developer tab of your dashboard. The default production base is https://api.knowlify.com.

Authentication

Send your key in the X-API-Key header. Personal keys are scoped to your user; organization keys are scoped to a single org.
See Authentication for full details on key issuance, rotation, and JWT alternatives.

Request body

VideoCreateItem[]
required
Array of 1–50 video specs to queue. Items beyond your concurrency limit are accepted but parked in a waiting list — see Rate Limits.
string
Advisory only — when authenticating with an API key, identity comes from the key itself. Maximum 320 characters; must match [email protected].
string
Optional organization scope. For API keys this must match the org the key belongs to (or be omitted). For JWT callers, the server verifies active membership.

VideoCreateItem

Response

A successful call returns HTTP 200 even when individual items fail — inspect each results[].status to know what to retry.
string
Always "ok" on a 2xx response.
integer
Number of items in the request.
integer
Items dispatched to a worker immediately.
integer
Items accepted but waiting for a free concurrency slot.
integer
Items that failed validation or queueing.
string
UUID of the authenticated caller.
string
Organization ID if the key/JWT is org-scoped, otherwise null.
object[]
One entry per request item, in the same order as videos.

Response headers

Every successful response carries the current rate-limit window state:

Code examples

Example success response

Next step

Each accepted item returns a uuid. Use it with GET /v1/videos/{uuid} to track render progress until the job is complete.

Limits & errors

  • 30 requests / 60 seconds per caller. See Rate Limits.
  • 1–50 items per request; max 3 concurrent jobs per user/org (additional items are parked).
  • Full status code reference: Errors.