Create a job
Create or replace a named job. Submitting again with the same name updates a running job (hot-update) when the change is allowed.
curl -X POST "https://api.avflow.dev/v1/jobs" \ -H "Authorization: Bearer ${AVFLOW_API_KEY}" \ -H "Content-Type: application/json" \ -d @job.jsonAuthentication
Section titled “Authentication”Pass your API key as a Bearer token:
Authorization: Bearer <api-key>Request body
Section titled “Request body”A full Job object. The name field identifies the job for later GET/DELETE calls.
Response
Section titled “Response”202 with the job including server fields (id, status: submitted, …). The control plane accepts the job immediately and dispatches it to the runtime asynchronously. Poll GET /v1/jobs/:name or watch webhooks for job.starting → job.started. See Job status.
Update rules
Section titled “Update rules”On update (same name as a running job):
metadatais immutable — placement is fixed at first submit.- You may add or remove sources, nodes, and sinks, and change node/sink
inputsto rewire the DAG (sink rewires use make-before-break switching). - See Job structure — Updating a running job for
configand other fields.
Errors
Section titled “Errors”| HTTP | Meaning |
|---|---|
400 | Invalid JSON, DAG violation, unknown component type, or immutable field changed on update (metadata) |
401 | Missing or invalid API key |
429 | Rate or quota limit |
Example
Section titled “Example”See Mix LiveKit to RTMP for a complete walkthrough.