{"openapi":"3.1.0","info":{"title":"AutoReel API","version":"1.0.0","description":"Build reels and run AI models from your own code. Authenticate with a workspace API key: `Authorization: Bearer ar_live_…`. Scopes: `reels:read`, `reels:write`, `generations:read`, `generations:write`, `models:read`, `credits:read`, `files:write`, `webhooks:write`. Responses carry `x-request-id` and IETF `RateLimit-*` headers."},"servers":[{"url":"https://autoreel.app/api"}],"security":[{"apiKey":[]}],"paths":{"/v1/models":{"get":{"summary":"List models","description":"Models the workspace can run, with their parameter schemas. `available` is false for models above the plan's tier.\n\nScope: `models:read`.","operationId":"getV1Models","parameters":[{"name":"category","in":"query","required":false,"schema":{"description":"Filter by category, e.g. `text_to_video`.","type":"string","maxLength":40}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Model"}}},"required":["data"],"additionalProperties":false}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/models/{id}":{"get":{"summary":"Get a model","description":"One model by its id (slug).\n\nScope: `models:read`.","operationId":"getV1ModelsId","parameters":[{"name":"id","in":"path","required":true,"description":"Model id (slug).","schema":{"type":"string"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/generations":{"post":{"summary":"Start a generation","description":"Runs one model. The credits it costs are reserved now and charged when it finishes (returned if it fails). Poll the generation or subscribe to `generation.completed`.\n\nScope: `generations:write`.","operationId":"postV1Generations","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Repeat a request safely: the same key replays the first response for 24 hours.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGeneration"}}}},"responses":{"202":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Generation"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/generations/{id}":{"get":{"summary":"Get a generation","description":"Status, progress, cost and output files (download links last an hour).\n\nScope: `generations:read`.","operationId":"getV1GenerationsId","parameters":[{"name":"id","in":"path","required":true,"description":"Generation id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Generation"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reels":{"get":{"summary":"List reels","description":"Newest first, 30 per page.\n\nScope: `reels:read`.","operationId":"getV1Reels","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["any","building","ready","rendered","failed"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":30}},{"name":"cursor","in":"query","required":false,"schema":{"description":"`nextCursor` from the previous page.","type":"string","maxLength":200}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReelList"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Build a reel","description":"Builds a UGC, slideshow or hook + demo reel from the same settings as the studio. Its steps run as generations and spend credits. When `status` is `ready`, export it.\n\nScope: `reels:write`.","operationId":"postV1Reels","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Repeat a request safely: the same key replays the first response for 24 hours.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReel"}}}},"responses":{"202":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reel"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reels/{id}":{"get":{"summary":"Get a reel","description":"Build progress and the newest export (its MP4 link lasts an hour).\n\nScope: `reels:read`.","operationId":"getV1ReelsId","parameters":[{"name":"id","in":"path","required":true,"description":"Reel id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reel"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reels/{id}/export":{"post":{"summary":"Export a reel","description":"Renders the reel's current version to MP4. Exports are free; Free plans export 720p with a watermark. Subscribe to `reel.exported` or poll the reel.\n\nScope: `reels:write`.","operationId":"postV1ReelsIdExport","parameters":[{"name":"id","in":"path","required":true,"description":"Reel id.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportReel"}}}},"responses":{"202":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reel"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/credits":{"get":{"summary":"Get the credit balance","description":"Spendable credits (subscription first, then purchased).\n\nScope: `credits:read`.","operationId":"getV1Credits","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Credits"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/files":{"post":{"summary":"Upload a file","description":"Returns a signed upload URL. PUT the bytes to it with `uploadHeaders`, then complete the file. Use `ref` as a media parameter.\n\nScope: `files:write`.","operationId":"postV1Files","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFile"}}}},"responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/files/{id}/complete":{"post":{"summary":"Complete an upload","description":"Checks and measures the uploaded file.\n\nScope: `files:write`.","operationId":"postV1FilesIdComplete","parameters":[{"name":"id","in":"path","required":true,"description":"File id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks":{"get":{"summary":"List webhook endpoints","description":"Endpoints and the events they receive.\n\nScope: `webhooks:write`.","operationId":"getV1Webhooks","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}}},"required":["data"],"additionalProperties":false}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Add a webhook endpoint","description":"The signing secret is returned once.\n\nScope: `webhooks:write`.","operationId":"postV1Webhooks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhook"}}}},"responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Webhook"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{id}":{"delete":{"summary":"Remove a webhook endpoint","description":"Stops deliveries to it.\n\nScope: `webhooks:write`.","operationId":"deleteV1WebhooksId","parameters":[{"name":"id","in":"path","required":true,"description":"Endpoint id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits (`INSUFFICIENT_CREDITS`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The plan or the key's scopes don't allow this.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found in this workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflict (e.g. an `Idempotency-Key` reused for another request).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid parameters or body (`VALIDATION`, with `fieldErrors`), or content against the policy (`CONTENT_BLOCKED`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{"generation.completed":{"post":{"summary":"A generation finished","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"generation.failed":{"post":{"summary":"A generation failed","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"reel.ready":{"post":{"summary":"A reel finished building and is ready to edit","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"reel.failed":{"post":{"summary":"A reel build failed","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"reel.exported":{"post":{"summary":"A reel export (MP4) is ready","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"post.published":{"post":{"summary":"A scheduled post went live","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"post.failed":{"post":{"summary":"A scheduled post failed","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"automation.run.completed":{"post":{"summary":"An automation run finished","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}},"automation.run.failed":{"post":{"summary":"An automation run failed","description":"Signed with `AutoReel-Signature: t=<unix>,v1=<hex HMAC-SHA256 of \"<t>.<body>\" with the endpoint secret>`. Answer 2xx within 10 seconds; failed deliveries are retried for about 8 hours.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Event id (use it to ignore repeats)."},"type":{"type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Ids and status of what changed; fetch the resource for details."}},"required":["id","type","createdAt","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Received."}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"ar_live_…"}},"schemas":{"Model":{"type":"object","properties":{"id":{"type":"string","description":"Use as `model` when creating a generation."},"name":{"type":"string"},"description":{"type":["string","null"]},"category":{"type":"string"},"outputKind":{"type":"string","enum":["video","image","audio","text","json"]},"tier":{"type":"string","enum":["standard","pro"]},"available":{"type":"boolean","description":"False when the workspace's plan doesn't include the model's tier."},"expectedDurationSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"JSON Schema of `params`."},"defaults":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","name","description","category","outputKind","tier","available","expectedDurationSeconds","inputSchema","defaults"],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. `VALIDATION`, `INSUFFICIENT_CREDITS`, `RATE_LIMITED`."},"message":{"type":"string"},"fieldErrors":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"CreateGeneration":{"type":"object","properties":{"model":{"type":"string","minLength":1,"maxLength":200,"description":"Model id (its slug), from `GET /v1/models`."},"params":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The model's parameters (its `inputSchema`). Files are `asset:<file id>` from `POST /v1/files`."}},"required":["model","params"]},"Generation":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","submitting","processing","completed","failed","canceled","timed_out"]},"progress":{"type":"integer","minimum":0,"maximum":100},"model":{"type":["string","null"]},"estimatedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditsCharged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/FileOutput"}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},{"type":"null"}]}},"required":["id","status","progress","model","estimatedCredits","creditsCharged","error","outputs","createdAt","completedAt"],"additionalProperties":false},"FileOutput":{"type":"object","properties":{"fileId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"kind":{"type":"string","enum":["video","image","audio"]},"mimeType":{"type":"string"},"url":{"description":"Download link, valid for an hour.","type":["string","null"]},"width":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"sizeBytes":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["fileId","kind","mimeType","url","width","height","durationMs","sizeBytes"],"additionalProperties":false},"ReelList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Reel"}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"],"additionalProperties":false},"Reel":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"title":{"type":"string"},"type":{"type":"string"},"status":{"type":"string","enum":["draft","generating","ready","rendering","rendered","failed","archived"]},"aspectRatio":{"type":"string"},"durationMs":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"build":{"anyOf":[{"type":"object","properties":{"generationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string"},"progress":{"type":"number"},"error":{"type":["string","null"]}},"required":["generationId","status","progress","error"],"additionalProperties":false},{"type":"null"}]},"latestExport":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["queued","rendering","completed","failed","canceled"]},"resolution":{"type":"string"},"url":{"description":"MP4 download link, valid for an hour.","type":["string","null"]},"posterUrl":{"type":["string","null"]}},"required":["id","status","resolution","url","posterUrl"],"additionalProperties":false},{"type":"null"}]},"editorUrl":{"type":"string","description":"Where a person can edit the reel in AutoReel."},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["id","title","type","status","aspectRatio","durationMs","build","latestExport","editorUrl","createdAt"],"additionalProperties":false},"CreateReel":{"type":"object","properties":{"build":{"oneOf":[{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"aspectRatio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"music":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"volume":{"type":"number","minimum":0,"maximum":1}},"required":["assetId","volume"]},{"type":"null"}]},"brandKitId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"type":{"type":"string","const":"ugc"},"creatorAssetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"script":{"type":"string","minLength":10,"maxLength":3000},"voice":{"type":"object","properties":{"modelSlug":{"type":"string","minLength":1,"maxLength":200},"params":{"type":"object","propertyNames":{"type":"string","maxLength":100},"additionalProperties":{}}},"required":["modelSlug","params"]},"avatar":{"type":"object","properties":{"modelSlug":{"type":"string","minLength":1,"maxLength":200},"params":{"type":"object","propertyNames":{"type":"string","maxLength":100},"additionalProperties":{}}},"required":["modelSlug","params"]},"product":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"text":{"type":"string","minLength":1,"maxLength":120}},"required":["assetId","text"]},{"type":"null"}]},"captions":{"type":"object","properties":{"enabled":{"type":"boolean"},"styleId":{"type":"string","enum":["bold-pop","karaoke","boxed","minimal","headline"]},"position":{"type":"string","enum":["top","middle","bottom"]}},"required":["enabled","styleId","position"]}},"required":["title","aspectRatio","music","type","creatorAssetId","script","voice","avatar","product","captions"]},{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"aspectRatio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"music":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"volume":{"type":"number","minimum":0,"maximum":1}},"required":["assetId","volume"]},{"type":"null"}]},"brandKitId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"type":{"type":"string","const":"slideshow"},"hook":{"type":"string","minLength":1,"maxLength":200},"slides":{"minItems":1,"maxItems":12,"type":"array","items":{"type":"object","properties":{"heading":{"type":"string","minLength":1,"maxLength":160},"body":{"type":"string","maxLength":400}},"required":["heading","body"]}},"images":{"minItems":1,"maxItems":13,"type":"array","items":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"imageModel":{"anyOf":[{"type":"object","properties":{"modelSlug":{"type":"string","minLength":1,"maxLength":200},"params":{"type":"object","propertyNames":{"type":"string","maxLength":100},"additionalProperties":{}}},"required":["modelSlug","params"]},{"type":"null"}]},"imageStyle":{"type":"string","maxLength":400},"textStyle":{"type":"string","enum":["title","subtitle","label","outline","highlight"]},"slideDurationMs":{"type":"integer","minimum":1500,"maximum":8000},"transition":{"type":"string","enum":["none","fade","slide","wipe"]}},"required":["title","aspectRatio","music","type","hook","slides","images","imageModel","imageStyle","textStyle","slideDurationMs","transition"]},{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"aspectRatio":{"type":"string","enum":["9:16","1:1","4:5","16:9"]},"music":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"volume":{"type":"number","minimum":0,"maximum":1}},"required":["assetId","volume"]},{"type":"null"}]},"brandKitId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"type":{"type":"string","const":"hook_demo"},"hook":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":200},"videoPrompt":{"type":"string","minLength":3,"maxLength":2000},"video":{"type":"object","properties":{"modelSlug":{"type":"string","minLength":1,"maxLength":200},"params":{"type":"object","propertyNames":{"type":"string","maxLength":100},"additionalProperties":{}}},"required":["modelSlug","params"]},"imageAssetId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"voice":{"anyOf":[{"type":"object","properties":{"modelSlug":{"type":"string","minLength":1,"maxLength":200},"params":{"type":"object","propertyNames":{"type":"string","maxLength":100},"additionalProperties":{}}},"required":["modelSlug","params"]},{"type":"null"}]}},"required":["text","videoPrompt","video","imageAssetId","voice"]},"demo":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"trimStartMs":{"type":"integer","minimum":0,"maximum":9007199254740991},"durationMs":{"anyOf":[{"type":"integer","minimum":1000,"maximum":60000},{"type":"null"}]}},"required":["assetId","trimStartMs","durationMs"]},"textStyle":{"type":"string","enum":["title","subtitle","label","outline","highlight"]}},"required":["title","aspectRatio","music","type","hook","demo","textStyle"]}],"description":"What to build: the same settings as the studio's UGC, slideshow or hook + demo pages."},"templateId":{"description":"The template the reel follows (optional).","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["build"]},"ExportReel":{"type":"object","properties":{"resolution":{"type":"string","enum":["720p","1080p"],"description":"1080p needs a paid plan."}},"required":["resolution"]},"Credits":{"type":"object","properties":{"balance":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"subscriptionCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"purchasedCredits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"plan":{"type":"string"}},"required":["balance","subscriptionCredits","purchasedCredits","plan"],"additionalProperties":false},"CreateFile":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","minLength":3,"maxLength":100,"description":"e.g. `image/png`, `video/mp4`, `audio/mpeg`."},"sizeBytes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["filename","contentType","sizeBytes"]},"File":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"status":{"type":"string","enum":["pending","ready","failed"]},"kind":{"type":"string","enum":["video","image","audio"]},"ref":{"type":"string","description":"Use as a media parameter value: `asset:<id>`."},"uploadUrl":{"description":"PUT the bytes here, then complete the file.","type":["string","null"]},"uploadHeaders":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}],"description":"Headers to send with the PUT, exactly as given."}},"required":["id","status","kind","ref","uploadUrl","uploadHeaders"],"additionalProperties":false},"Webhook":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"url":{"type":"string"},"description":{"type":["string","null"]},"events":{"type":"array","items":{"type":"string","enum":["generation.completed","generation.failed","reel.ready","reel.failed","reel.exported","post.published","post.failed","automation.run.completed","automation.run.failed"]}},"enabled":{"type":"boolean"},"secret":{"description":"Signing secret, returned once when the endpoint is created.","type":"string"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["id","url","description","events","enabled","createdAt"],"additionalProperties":false},"CreateWebhook":{"type":"object","properties":{"url":{"type":"string","maxLength":2000,"format":"uri","description":"HTTPS endpoint that receives the events."},"events":{"minItems":1,"maxItems":9,"type":"array","items":{"type":"string","enum":["generation.completed","generation.failed","reel.ready","reel.failed","reel.exported","post.published","post.failed","automation.run.completed","automation.run.failed"]}},"description":{"type":"string","maxLength":200}},"required":["url","events"]}}}}