Request body
prompt— Required creative direction or storyboard.durationSeconds— Required integer between1and20.resolution— Optional preset (720p,1080p, orsquare); defaults to720p.referenceFrames— Optional array of image URLs to guide composition.soundtrack— Optional object describing background audio (e.g.,{ "preset": "ambient" }).webhookUrl— Optional HTTPS URL Horizon should call when the video job finishes.
Sample request
Response
Video jobs always run asynchronously. The API returns202 Accepted with a jobId, statusUrl, and estimated completion etaSeconds. Once finished, the job record includes the MP4 download link, thumbnail URLs, and a storyboard track you can feed into editing tools.
Considerations
- Keep
durationSecondsunder 10 for fastest results; longer clips may take several minutes. - Provide
referenceFrameswhen you need continuity across a series of shots. - Use
GET /jobs/{jobId}(identical tostatusUrl) to poll status or fetch the final video bundle afterward.
x402 flow
Video rendering requires an x402 payment. Unfunded calls return402 Payment Required with a PaymentRequiredResponse payload:
- Send the
acceptsentry to your facilitator (see Client & server responsibilities) and call/verify+/settle. - Replay the request with the facilitator-issued Base64 payload in
X-PAYMENT: - Horizon validates the header, resumes rendering, and, on success, includes settlement data under
X-PAYMENT-RESPONSE.
Body
application/json
Response
Video generation job accepted
Example:
"job_01hx9q9"
Available options:
queued, processing, completed, failed Canonical link to GET /jobs/{jobId} for this job.
Example:
"extract/pdf"
Present when the job completes synchronously.
Estimated seconds until completion.