{"openapi":"3.1.0","info":{"title":"AutoStud API","version":"2026-08-14","description":"The AutoStud public API.\n\nAuthenticate with `Authorization: Bearer sk_live_...` (or `X-Api-Key`).\nEvery key carries scopes, rate limits and an optional monthly quota.\n\nKeys prefixed `sk_test_` run the full request path — authentication, scopes,\nlimits, validation — and stop before any write or credit spend."},"servers":[{"url":"https://autostud.ai"}],"security":[{"ApiKey":[]}],"tags":[{"name":"Discovery"},{"name":"Account"},{"name":"Actions","description":"Everything that makes the platform do something."},{"name":"Webhooks","description":"Outbound events, signed and retried."},{"name":"API keys"},{"name":"Videos","description":"Video projects with their timeline, blocks and generation settings."},{"name":"Folders","description":"Folders organising videos and playground generations."},{"name":"Assets","description":"Files uploaded to the workspace library."},{"name":"Characters","description":"Recurring characters with their visual and voice configuration."},{"name":"Agents","description":"Image and video generation agents."},{"name":"Flows","description":"Automation flows: nodes, edges and variables."},{"name":"Slideshows","description":"Slideshow projects and their slides."},{"name":"Video templates","description":"Saved video templates."},{"name":"Video styles","description":"Reusable style presets applied to timelines."},{"name":"Smart group configs","description":"Custom smart-group definitions used by the timeline editor."},{"name":"Custom video types","description":"User-defined video types available in the editor."},{"name":"AI generations","description":"Every AI generation billed to the workspace: image, video, audio, music."},{"name":"Music generations","description":"AI song generations and their tracks."},{"name":"Scheduled posts","description":"Posts queued for publication on connected social accounts."},{"name":"Social accounts","description":"Connected publishing destinations. Read-only: connect them from the dashboard."},{"name":"Renders","description":"Render jobs and their output files. Start one with the `renders.create` action — it charges credits."},{"name":"Voices","description":"The voice catalog: the shared global library plus the workspace and personal voices."},{"name":"Character tags","description":"Tags used to organise characters."},{"name":"Agent executions","description":"History of agent runs with their prompt, variables and result."},{"name":"Flow executions","description":"Flow runs: status, node states, execution path and credits consumed."},{"name":"Credit transactions","description":"Every credit movement of the workspace: what was charged, by whom, for what."},{"name":"Playground generations","description":"Images and videos generated from the playground gallery."}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"sk_live_...","description":"Available scopes: videos:read, videos:write, videos:delete, videos:execute, renders:read, renders:write, renders:delete, renders:execute, generations:read, generations:write, generations:delete, generations:execute, assets:read, assets:write, assets:delete, folders:read, folders:write, folders:delete, characters:read, characters:write, characters:delete, characters:execute, voices:read, voices:write, voices:delete, voices:execute, templates:read, templates:write, templates:delete, music:read, music:write, music:delete, music:execute, agents:read, agents:write, agents:delete, agents:execute, flows:read, flows:write, flows:delete, flows:execute, publishing:read, publishing:write, publishing:delete, publishing:execute, webhooks:read, webhooks:write, webhooks:delete, workspace:read, workspace:write, usage:read, api_keys:read, api_keys:write, api_keys:delete"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}},"ScopeCatalog":{"type":"object","properties":{"videos":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"renders":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"generations":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"assets":{"type":"array","items":{"type":"string","enum":["read","write","delete"]}},"folders":{"type":"array","items":{"type":"string","enum":["read","write","delete"]}},"characters":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"voices":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"templates":{"type":"array","items":{"type":"string","enum":["read","write","delete"]}},"music":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"agents":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"flows":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"publishing":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"webhooks":{"type":"array","items":{"type":"string","enum":["read","write","delete"]}},"workspace":{"type":"array","items":{"type":"string","enum":["read","write"]}},"usage":{"type":"array","items":{"type":"string","enum":["read"]}},"api_keys":{"type":"array","items":{"type":"string","enum":["read","write","delete"]}}}}}},"paths":{"/api/v1/videos":{"get":{"tags":["Videos"],"summary":"List videos","description":"Video projects with their timeline, blocks and generation settings.","security":[{"ApiKey":["videos:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: video_created_at, video_name, video_last_audios_edition."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: video_json, blocks, groups, composition, smart_groups, faceless_scenes, faceless_template, voice_settings_map, video_captions."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on video_name, video_keyword, video_comment."},{"name":"video_format","in":"query","required":false,"schema":{"type":"string"},"description":"portrait | landscape | square Operators: `video_format[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_type_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_type_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_sub_type_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_sub_type_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_lang","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_lang[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"published","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `published[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_ready_to_be_processed","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `video_ready_to_be_processed[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"folder_ids","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `folder_ids[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"faceless_status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `faceless_status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Videos"],"summary":"Create a video","description":"Video projects with their timeline, blocks and generation settings. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["videos:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created video.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/videos/bulk":{"post":{"tags":["Videos"],"summary":"Bulk video operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["videos:write","videos:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/videos/{id}":{"get":{"tags":["Videos"],"summary":"Fetch a video","security":[{"ApiKey":["videos:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's `video_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The video.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Videos"],"summary":"Update a video","security":[{"ApiKey":["videos:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's `video_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated video.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Videos"],"summary":"Update a video (alias of PATCH)","security":[{"ApiKey":["videos:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's `video_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated video.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Videos"],"summary":"Delete a video","security":[{"ApiKey":["videos:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's `video_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/folders":{"get":{"tags":["Folders"],"summary":"List folders","description":"Folders organising videos and playground generations.","security":[{"ApiKey":["folders:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: folder_order, folder_created_at, folder_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on folder_name."},{"name":"folder_scope","in":"query","required":false,"schema":{"type":"string"},"description":"video | playground Operators: `folder_scope[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"folder_color","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `folder_color[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"folder_created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `folder_created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Folders"],"summary":"Create a folder","description":"Folders organising videos and playground generations. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["folders:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created folder.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/folders/bulk":{"post":{"tags":["Folders"],"summary":"Bulk folder operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["folders:write","folders:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/folders/{id}":{"get":{"tags":["Folders"],"summary":"Fetch a folder","security":[{"ApiKey":["folders:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The folder's `folder_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The folder.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Folders"],"summary":"Update a folder","security":[{"ApiKey":["folders:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The folder's `folder_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated folder.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Folders"],"summary":"Update a folder (alias of PATCH)","security":[{"ApiKey":["folders:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The folder's `folder_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated folder.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Folders"],"summary":"Delete a folder","security":[{"ApiKey":["folders:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The folder's `folder_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/assets":{"get":{"tags":["Assets"],"summary":"List assets","description":"Files uploaded to the workspace library.","security":[{"ApiKey":["assets:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: provider_date_time_uploaded, provider_file_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on provider_file_name."},{"name":"file_mime_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `file_mime_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"sync_method","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `sync_method[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"provider_file_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `provider_file_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"provider_date_time_uploaded","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `provider_date_time_uploaded[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Assets"],"summary":"Create a asset","description":"Files uploaded to the workspace library. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["assets:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created asset.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/assets/bulk":{"post":{"tags":["Assets"],"summary":"Bulk asset operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["assets:write","assets:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/assets/{id}":{"get":{"tags":["Assets"],"summary":"Fetch a asset","security":[{"ApiKey":["assets:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The asset's `_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The asset.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Assets"],"summary":"Delete a asset","security":[{"ApiKey":["assets:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The asset's `_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/characters":{"get":{"tags":["Characters"],"summary":"List characters","description":"Recurring characters with their visual and voice configuration.","security":[{"ApiKey":["characters:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, character_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: media."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on character_name, character_description."},{"name":"character_tags","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `character_tags[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Characters"],"summary":"Create a character","description":"Recurring characters with their visual and voice configuration. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["characters:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created character.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/characters/bulk":{"post":{"tags":["Characters"],"summary":"Bulk character operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["characters:write","characters:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/characters/{id}":{"get":{"tags":["Characters"],"summary":"Fetch a character","security":[{"ApiKey":["characters:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character's `character_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The character.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Characters"],"summary":"Update a character","security":[{"ApiKey":["characters:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character's `character_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated character.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Characters"],"summary":"Update a character (alias of PATCH)","security":[{"ApiKey":["characters:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character's `character_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated character.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Characters"],"summary":"Delete a character","security":[{"ApiKey":["characters:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character's `character_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/agents":{"get":{"tags":["Agents"],"summary":"List agents","description":"Image and video generation agents.","security":[{"ApiKey":["agents:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, agent_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on agent_name, agent_description."},{"name":"agent_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"agent_model","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_model[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_default","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_default[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Agents"],"summary":"Create a agent","description":"Image and video generation agents. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["agents:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created agent.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/agents/bulk":{"post":{"tags":["Agents"],"summary":"Bulk agent operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["agents:write","agents:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/agents/{id}":{"get":{"tags":["Agents"],"summary":"Fetch a agent","security":[{"ApiKey":["agents:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The agent's `agent_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The agent.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Agents"],"summary":"Update a agent","security":[{"ApiKey":["agents:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The agent's `agent_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated agent.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Agents"],"summary":"Update a agent (alias of PATCH)","security":[{"ApiKey":["agents:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The agent's `agent_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated agent.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Agents"],"summary":"Delete a agent","security":[{"ApiKey":["agents:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The agent's `agent_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/flows":{"get":{"tags":["Flows"],"summary":"List flows","description":"Automation flows: nodes, edges and variables.","security":[{"ApiKey":["flows:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, name, usage_count, last_executed_at."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: nodes, edges."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on name, description."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_template","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_template[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_public","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_public[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"template_category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `template_category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Flows"],"summary":"Create a flow","description":"Automation flows: nodes, edges and variables. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["flows:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created flow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/flows/bulk":{"post":{"tags":["Flows"],"summary":"Bulk flow operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["flows:write","flows:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/flows/{id}":{"get":{"tags":["Flows"],"summary":"Fetch a flow","security":[{"ApiKey":["flows:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The flow's `flow_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The flow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Flows"],"summary":"Update a flow","security":[{"ApiKey":["flows:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The flow's `flow_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated flow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Flows"],"summary":"Update a flow (alias of PATCH)","security":[{"ApiKey":["flows:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The flow's `flow_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated flow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Flows"],"summary":"Delete a flow","security":[{"ApiKey":["flows:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The flow's `flow_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/slideshows":{"get":{"tags":["Slideshows"],"summary":"List slideshows","description":"Slideshow projects and their slides.","security":[{"ApiKey":["videos:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, slideshow_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: slides."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on slideshow_name."},{"name":"slideshow_status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `slideshow_status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"character_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `character_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Slideshows"],"summary":"Create a slideshow","description":"Slideshow projects and their slides. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["videos:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created slideshow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/slideshows/bulk":{"post":{"tags":["Slideshows"],"summary":"Bulk slideshow operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["videos:write","videos:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/slideshows/{id}":{"get":{"tags":["Slideshows"],"summary":"Fetch a slideshow","security":[{"ApiKey":["videos:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The slideshow's `slideshow_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The slideshow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Slideshows"],"summary":"Update a slideshow","security":[{"ApiKey":["videos:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The slideshow's `slideshow_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated slideshow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Slideshows"],"summary":"Update a slideshow (alias of PATCH)","security":[{"ApiKey":["videos:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The slideshow's `slideshow_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated slideshow.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Slideshows"],"summary":"Delete a slideshow","security":[{"ApiKey":["videos:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The slideshow's `slideshow_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/templates":{"get":{"tags":["Video templates"],"summary":"List video templates","description":"Saved video templates.","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: template_data, blocks, composition."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on name, description."},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"sub_category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `sub_category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_public","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_public[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Video templates"],"summary":"Create a template","description":"Saved video templates. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["templates:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created template.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/templates/bulk":{"post":{"tags":["Video templates"],"summary":"Bulk template operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["templates:write","templates:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/templates/{id}":{"get":{"tags":["Video templates"],"summary":"Fetch a template","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The template's `template_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The template.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Video templates"],"summary":"Update a template","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The template's `template_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated template.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Video templates"],"summary":"Update a template (alias of PATCH)","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The template's `template_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated template.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Video templates"],"summary":"Delete a template","security":[{"ApiKey":["templates:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The template's `template_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/video_styles":{"get":{"tags":["Video styles"],"summary":"List video styles","description":"Reusable style presets applied to timelines.","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: style_data, layer_styles."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on name, description."},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_public","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_public[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Video styles"],"summary":"Create a video_style","description":"Reusable style presets applied to timelines. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["templates:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created video_style.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/video_styles/bulk":{"post":{"tags":["Video styles"],"summary":"Bulk video_style operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["templates:write","templates:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/video_styles/{id}":{"get":{"tags":["Video styles"],"summary":"Fetch a video_style","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video_style's `style_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The video_style.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Video styles"],"summary":"Update a video_style","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video_style's `style_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated video_style.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Video styles"],"summary":"Update a video_style (alias of PATCH)","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video_style's `style_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated video_style.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Video styles"],"summary":"Delete a video_style","security":[{"ApiKey":["templates:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The video_style's `style_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/smart_group_configs":{"get":{"tags":["Smart group configs"],"summary":"List smart group configs","description":"Custom smart-group definitions used by the timeline editor.","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: layer_mappings."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on name, description."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"base_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `base_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Smart group configs"],"summary":"Create a smart_group_config","description":"Custom smart-group definitions used by the timeline editor. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["templates:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created smart_group_config.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/smart_group_configs/bulk":{"post":{"tags":["Smart group configs"],"summary":"Bulk smart_group_config operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["templates:write","templates:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/smart_group_configs/{id}":{"get":{"tags":["Smart group configs"],"summary":"Fetch a smart_group_config","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The smart_group_config's `config_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The smart_group_config.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Smart group configs"],"summary":"Update a smart_group_config","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The smart_group_config's `config_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated smart_group_config.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Smart group configs"],"summary":"Update a smart_group_config (alias of PATCH)","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The smart_group_config's `config_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated smart_group_config.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Smart group configs"],"summary":"Delete a smart_group_config","security":[{"ApiKey":["templates:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The smart_group_config's `config_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/custom_video_types":{"get":{"tags":["Custom video types"],"summary":"List custom video types","description":"User-defined video types available in the editor.","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on name, description."},{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_public","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_public[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Custom video types"],"summary":"Create a custom_video_type","description":"User-defined video types available in the editor. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["templates:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created custom_video_type.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/custom_video_types/bulk":{"post":{"tags":["Custom video types"],"summary":"Bulk custom_video_type operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["templates:write","templates:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/custom_video_types/{id}":{"get":{"tags":["Custom video types"],"summary":"Fetch a custom_video_type","security":[{"ApiKey":["templates:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The custom_video_type's `config_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The custom_video_type.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Custom video types"],"summary":"Update a custom_video_type","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The custom_video_type's `config_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated custom_video_type.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Custom video types"],"summary":"Update a custom_video_type (alias of PATCH)","security":[{"ApiKey":["templates:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The custom_video_type's `config_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated custom_video_type.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Custom video types"],"summary":"Delete a custom_video_type","security":[{"ApiKey":["templates:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The custom_video_type's `config_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/generations":{"get":{"tags":["AI generations"],"summary":"List ai generations","description":"Every AI generation billed to the workspace: image, video, audio, music.","security":[{"ApiKey":["generations:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, credits_consumed."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: generation_metadata, variables."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on prompt."},{"name":"agent_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"agent_model","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_model[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"agent_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"folder_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `folder_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/generations/{id}":{"get":{"tags":["AI generations"],"summary":"Fetch a generation","security":[{"ApiKey":["generations:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The generation's `generation_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The generation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/music":{"get":{"tags":["Music generations"],"summary":"List music generations","description":"AI song generations and their tracks.","security":[{"ApiKey":["music:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at, credits_consumed."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: tracks, request."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"provider","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `provider[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"model_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `model_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/music/{id}":{"get":{"tags":["Music generations"],"summary":"Fetch a music_generation","security":[{"ApiKey":["music:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The music_generation's `generation_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The music_generation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/scheduled_posts":{"get":{"tags":["Scheduled posts"],"summary":"List scheduled posts","description":"Posts queued for publication on connected social accounts.","security":[{"ApiKey":["publishing:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: scheduled_at, created_at, updated_at."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on caption, title."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"platform","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `platform[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"scheduled_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `scheduled_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Scheduled posts"],"summary":"Create a scheduled_post","description":"Posts queued for publication on connected social accounts. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["publishing:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created scheduled_post.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/scheduled_posts/bulk":{"post":{"tags":["Scheduled posts"],"summary":"Bulk scheduled_post operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["publishing:write","publishing:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/scheduled_posts/{id}":{"get":{"tags":["Scheduled posts"],"summary":"Fetch a scheduled_post","security":[{"ApiKey":["publishing:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The scheduled_post's `_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The scheduled_post.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Scheduled posts"],"summary":"Update a scheduled_post","security":[{"ApiKey":["publishing:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The scheduled_post's `_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated scheduled_post.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Scheduled posts"],"summary":"Update a scheduled_post (alias of PATCH)","security":[{"ApiKey":["publishing:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The scheduled_post's `_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated scheduled_post.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Scheduled posts"],"summary":"Delete a scheduled_post","security":[{"ApiKey":["publishing:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The scheduled_post's `_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/social_accounts":{"get":{"tags":["Social accounts"],"summary":"List social accounts","description":"Connected publishing destinations. Read-only: connect them from the dashboard.","security":[{"ApiKey":["publishing:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, updated_at."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: platform_metadata."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on account_name."},{"name":"platform","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `platform[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/social_accounts/{id}":{"get":{"tags":["Social accounts"],"summary":"Fetch a social_account","security":[{"ApiKey":["publishing:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The social_account's `_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The social_account.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/renders":{"get":{"tags":["Renders"],"summary":"List renders","description":"Render jobs and their output files. Start one with the `renders.create` action — it charges credits.","security":[{"ApiKey":["renders:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: render_creation_date."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"render_status","in":"query","required":false,"schema":{"type":"string"},"description":"not_started | processing | done | error Operators: `render_status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_type_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `video_type_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"render_creation_date","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `render_creation_date[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/renders/{id}":{"get":{"tags":["Renders"],"summary":"Fetch a render","security":[{"ApiKey":["renders:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The render's `render_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The render.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/voices":{"get":{"tags":["Voices"],"summary":"List voices","description":"The voice catalog: the shared global library plus the workspace and personal voices.","security":[{"ApiKey":["voices:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: sort_order, created_at, display_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: provider_meta."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on display_name, description."},{"name":"provider","in":"query","required":false,"schema":{"type":"string"},"description":"elevenlabs | google_cloud | cartesia | fish_audio Operators: `provider[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"scope","in":"query","required":false,"schema":{"type":"string"},"description":"global | workspace | user Operators: `scope[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `kind[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_active[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"labels.language","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `labels.language[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"labels.gender","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `labels.gender[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"labels.accent","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `labels.accent[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"connection_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `connection_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/voices/{id}":{"get":{"tags":["Voices"],"summary":"Fetch a voice","security":[{"ApiKey":["voices:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The voice's `voice_ref`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The voice.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/character_tags":{"get":{"tags":["Character tags"],"summary":"List character tags","description":"Tags used to organise characters.","security":[{"ApiKey":["characters:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, tag_name."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: none."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on tag_name."},{"name":"tag_color","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `tag_color[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Character tags"],"summary":"Create a character_tag","description":"Tags used to organise characters. Identity, ownership and timestamps are set by the API and ignored in the payload.","security":[{"ApiKey":["characters:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created character_tag.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/character_tags/bulk":{"post":{"tags":["Character tags"],"summary":"Bulk character_tag operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["characters:write","characters:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/character_tags/{id}":{"get":{"tags":["Character tags"],"summary":"Fetch a character_tag","security":[{"ApiKey":["characters:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character_tag's `tag_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The character_tag.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Character tags"],"summary":"Update a character_tag","security":[{"ApiKey":["characters:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character_tag's `tag_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated character_tag.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Character tags"],"summary":"Update a character_tag (alias of PATCH)","security":[{"ApiKey":["characters:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character_tag's `tag_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated character_tag.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Character tags"],"summary":"Delete a character_tag","security":[{"ApiKey":["characters:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The character_tag's `tag_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/agent_executions":{"get":{"tags":["Agent executions"],"summary":"List agent executions","description":"History of agent runs with their prompt, variables and result.","security":[{"ApiKey":["agents:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: result, variables_used, execution_metadata."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on prompt_used."},{"name":"agent_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `agent_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/agent_executions/{id}":{"get":{"tags":["Agent executions"],"summary":"Fetch a agent_execution","security":[{"ApiKey":["agents:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The agent_execution's `execution_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The agent_execution.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/flow_executions":{"get":{"tags":["Flow executions"],"summary":"List flow executions","description":"Flow runs: status, node states, execution path and credits consumed.","security":[{"ApiKey":["flows:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, completed_at, total_credits_consumed."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: node_states, context, input_variables, execution_path."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"flow_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `flow_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"pending | running | completed | failed | paused Operators: `status[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/flow_executions/{id}":{"get":{"tags":["Flow executions"],"summary":"Fetch a flow_execution","security":[{"ApiKey":["flows:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The flow_execution's `execution_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The flow_execution.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/credit_transactions":{"get":{"tags":["Credit transactions"],"summary":"List credit transactions","description":"Every credit movement of the workspace: what was charged, by whom, for what.","security":[{"ApiKey":["usage:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at, amount."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: metadata."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"action_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `action_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"amount","in":"query","required":false,"schema":{"type":"number"},"description":"Filter. Operators: `amount[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/credit_transactions/{id}":{"get":{"tags":["Credit transactions"],"summary":"Fetch a credit_transaction","security":[{"ApiKey":["usage:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The credit_transaction's `_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The credit_transaction.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/playground_generations":{"get":{"tags":["Playground generations"],"summary":"List playground generations","description":"Images and videos generated from the playground gallery.","security":[{"ApiKey":["generations:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Page size, 1-100. Defaults to 25."},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from `next_cursor`."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"},"description":"Offset pagination, when page numbers are needed."},{"name":"sort","in":"query","required":false,"schema":{"type":"string"},"description":"Sortable: created_at."},{"name":"order","in":"query","required":false,"schema":{"type":"string"},"description":"`asc` or `desc`. Defaults to `desc`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated sparse fieldset."},{"name":"expand","in":"query","required":false,"schema":{"type":"string"},"description":"Include heavy fields: input_params, result_data."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"`json`, `ndjson` or `csv`."},{"name":"include_total","in":"query","required":false,"schema":{"type":"boolean"},"description":"Adds `total` to the envelope (slower)."},{"name":"created_after","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"created_before","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 8601 date or unix timestamp."},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Free-text search on prompt."},{"name":"folder_id","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `folder_id[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"generation_type","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `generation_type[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"generation_category","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `generation_category[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"created_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `created_at[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."}],"responses":{"200":{"description":"A paginated list.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","enum":["list"]},"data":{"type":"array","items":{"type":"object"}},"has_more":{"type":"boolean"},"next_cursor":{"type":"string","nullable":true},"total":{"type":"integer","nullable":true}}}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/playground_generations/bulk":{"post":{"tags":["Playground generations"],"summary":"Bulk playground_generation operations","description":"Creates, updates and deletes many documents in one call (100 items max). Every item reports its own status; the response is 207 when at least one failed.","security":[{"ApiKey":["generations:write","generations:delete"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"create":{"type":"array","items":{"type":"object"}},"update":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"data":{"type":"object"}},"required":["id","data"]}},"delete":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Every item succeeded.","content":{"application/json":{"schema":{"type":"object"}}}},"207":{"description":"Partial success — read each item.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/playground_generations/{id}":{"get":{"tags":["Playground generations"],"summary":"Fetch a playground_generation","security":[{"ApiKey":["generations:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The playground_generation's `_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The playground_generation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"patch":{"tags":["Playground generations"],"summary":"Update a playground_generation","security":[{"ApiKey":["generations:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The playground_generation's `_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated playground_generation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"post":{"tags":["Playground generations"],"summary":"Update a playground_generation (alias of PATCH)","security":[{"ApiKey":["generations:write"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The playground_generation's `_id`."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated playground_generation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}},"delete":{"tags":["Playground generations"],"summary":"Delete a playground_generation","security":[{"ApiKey":["generations:delete"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The playground_generation's `_id`."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}}}},"/api/v1/actions/renders.create":{"post":{"tags":["Actions"],"summary":"Start a render","description":"Queues a render for a video and returns the render job.\n\nMirrors `/api/videos-renders`. Spends credits.","security":[{"ApiKey":["renders:execute","renders:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"render_settings":{"description":"Action input."}}}}}}}},"/api/v1/actions/renders.list":{"get":{"tags":["Actions"],"summary":"List renders","description":"Render jobs with their status and output URLs.\n\nMirrors `/api/videos-renders`.","security":[{"ApiKey":["renders:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"video_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"page","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/renders.delete":{"post":{"tags":["Actions"],"summary":"Delete a render","description":"Deletes a render job and its output reference.\n\nMirrors `/api/videos-renders`.","security":[{"ApiKey":["renders:delete"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"render_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos.create":{"post":{"tags":["Actions"],"summary":"Create a video","description":"Creates a video through the dashboard controller: applies the template, defaults and workspace stamping.\n\nMirrors `/api/videos`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_name":{"description":"Action input."},"video_type_id":{"description":"Action input."},"video_format":{"description":"Action input."},"video_lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos.update":{"post":{"tags":["Actions"],"summary":"Update a video","description":"Validated update of a video document (same Joi schema as the editor).\n\nMirrors `/api/videos`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos.generate_layer_audio":{"post":{"tags":["Actions"],"summary":"Generate a layer voice-over","description":"Generates the audio of one timeline layer and syncs its timing.\n\nMirrors `/api/videos/{videoId}/generate-layer-audio`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"videoId":{"description":"Action input."},"layer_name":{"description":"Action input."},"text":{"description":"Action input."},"voice_settings":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos.launch_flow":{"post":{"tags":["Actions"],"summary":"Launch a video flow","description":"Runs the end-to-end video flow (generation pipeline) for a video.\n\nMirrors `/api/videos-flows`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"flow_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.generate_audio":{"post":{"tags":["Actions"],"summary":"Generate timeline audio","description":"Generates the voice-over of a block/group and runs Whisper alignment.\n\nMirrors `/api/timeline/generate-audio`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"block_id":{"description":"Action input."},"voice_settings":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.generate_questions":{"post":{"tags":["Actions"],"summary":"Generate quiz questions","description":"Writes quiz questions for a video from a topic or keyword.\n\nMirrors `/api/timeline/generate-questions`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"description":"Action input."},"count":{"description":"Action input."},"lang":{"description":"Action input."},"preset":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.sync_voice":{"post":{"tags":["Actions"],"summary":"Sync voice timings","description":"Recomputes block durations from the audio sequence.\n\nMirrors `/api/timeline/sync-voice`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.whisper_analyze":{"post":{"tags":["Actions"],"summary":"Whisper analysis","description":"Word-level transcription and timing for an audio file.\n\nMirrors `/api/timeline/whisper-analyze`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"audio_url":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.analyze_subtitles":{"post":{"tags":["Actions"],"summary":"Analyse subtitles","description":"Builds subtitle groups from a transcription.\n\nMirrors `/api/timeline/analyze-subtitles`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"audio_url":{"description":"Action input."}}}}}}}},"/api/v1/actions/subtitles.generate":{"post":{"tags":["Actions"],"summary":"Subtitle a video","description":"Transcribes a media URL with Whisper, marks the words to emphasise and writes the subtitle track + layer onto the video. One call between `videos.create` and `renders.create`.\n\nMirrors `/api/timeline/generate-subtitles`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"media_url":{"description":"Action input."},"style_preset":{"description":"Action input."},"words_per_group":{"description":"Action input."},"enable_emphasis":{"description":"Action input."},"enable_diarization":{"description":"Action input."},"video_format":{"description":"Action input."},"restyle_only":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.translate_subtitles":{"post":{"tags":["Actions"],"summary":"Translate subtitles","description":"Translates a subtitle track into a target language.\n\nMirrors `/api/timeline/translate-subtitles`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subtitles":{"description":"Action input."},"target_lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/images.generate":{"post":{"tags":["Actions"],"summary":"Generate an image","description":"Runs an image agent and bills the workspace.\n\nMirrors `/api/agents/generate`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"prompt":{"description":"Action input."},"variables":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos_ai.generate":{"post":{"tags":["Actions"],"summary":"Generate an AI video","description":"Runs a video agent (Veo, Kling, Sora, Seedance...) and bills the workspace.\n\nMirrors `/api/agents/generate-video`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"prompt":{"description":"Action input."},"image_url":{"description":"Action input."},"duration":{"description":"Action input."}}}}}}}},"/api/v1/actions/videos_ai.extend":{"post":{"tags":["Actions"],"summary":"Extend an AI video","description":"Extends a generated video by another segment.\n\nMirrors `/api/agents/extend-video`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"generation_id":{"description":"Action input."},"prompt":{"description":"Action input."}}}}}}}},"/api/v1/actions/agents.execute":{"post":{"tags":["Actions"],"summary":"Execute an agent","description":"Runs any configured agent with its prompt template and variables.\n\nMirrors `/api/agents/execute`. Spends credits.","security":[{"ApiKey":["agents:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"variables":{"description":"Action input."}}}}}}}},"/api/v1/actions/agents.executions":{"get":{"tags":["Actions"],"summary":"List agent executions","description":"History of agent runs with their outputs.\n\nMirrors `/api/agents/executions`.","security":[{"ApiKey":["agents:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/generations.launch":{"post":{"tags":["Actions"],"summary":"Launch a playground generation","description":"The playground pipeline: prompt in, image or video out, billed and stored.\n\nMirrors `/api/ai-generations`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"generation_type":{"description":"Action input."},"prompt":{"description":"Action input."},"model":{"description":"Action input."},"folder_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/music.generate":{"post":{"tags":["Actions"],"summary":"Generate a song","description":"Creates a Suno song from a prompt, lyrics or a style brief.\n\nMirrors `/api/music/generate`. Spends credits.","security":[{"ApiKey":["music:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"description":"Action input."},"lyrics":{"description":"Action input."},"style":{"description":"Action input."},"title":{"description":"Action input."},"instrumental":{"description":"Action input."}}}}}}}},"/api/v1/actions/music.get_task":{"get":{"tags":["Actions"],"summary":"Poll a song generation","description":"Status and tracks of a music generation.\n\nMirrors `/api/music/generate`.","security":[{"ApiKey":["music:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"generation_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/characters.generate_image":{"post":{"tags":["Actions"],"summary":"Generate a character image","description":"Generates a consistent image of a character.\n\nMirrors `/api/characters/generate-image`. Spends credits.","security":[{"ApiKey":["characters:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"character_id":{"description":"Action input."},"prompt":{"description":"Action input."}}}}}}}},"/api/v1/actions/characters.smart_variants":{"post":{"tags":["Actions"],"summary":"Generate character variants","description":"Generates a batch of consistent variants for a character.\n\nMirrors `/api/characters/smart-variants`. Spends credits.","security":[{"ApiKey":["characters:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"character_id":{"description":"Action input."},"count":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.generate_story":{"post":{"tags":["Actions"],"summary":"Write a faceless story","description":"Writes the script of a faceless video from a prompt.\n\nMirrors `/api/faceless-video/generate-story`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"description":"Action input."},"language":{"description":"Action input."},"target_duration":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.generate_outline":{"post":{"tags":["Actions"],"summary":"Outline a faceless video","description":"Produces the act/scene outline before the full script.\n\nMirrors `/api/faceless-video/generate-outline`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"description":"Action input."},"language":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.parse_script":{"post":{"tags":["Actions"],"summary":"Parse a script into scenes","description":"Splits a script into scenes ready for the faceless engine.\n\nMirrors `/api/faceless-video/parse-script`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script":{"description":"Action input."},"video_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.generate_audio":{"post":{"tags":["Actions"],"summary":"Voice a faceless scene","description":"Generates the voice-over of one or more scenes.\n\nMirrors `/api/faceless-video/generate-audio`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"scene_id":{"description":"Action input."},"voice_settings":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.generate_video":{"post":{"tags":["Actions"],"summary":"Generate faceless visuals","description":"Generates the visual of a faceless scene (image or video model).\n\nMirrors `/api/faceless-video/generate-video`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"scene_id":{"description":"Action input."},"prompt":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.check_status":{"post":{"tags":["Actions"],"summary":"Poll a faceless generation","description":"Status of a running faceless scene generation.\n\nMirrors `/api/faceless-video/check-generation-status`.","security":[{"ApiKey":["videos:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task_id":{"description":"Action input."},"video_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.analyze_url":{"post":{"tags":["Actions"],"summary":"Analyse a source URL","description":"Extracts a usable brief from an article or video URL.\n\nMirrors `/api/faceless-video/analyze-url`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"Action input."}}}}}}}},"/api/v1/actions/faceless.detect_characters":{"post":{"tags":["Actions"],"summary":"Detect characters in a script","description":"Finds recurring characters and proposes consistent prompts.\n\nMirrors `/api/faceless-video/detect-characters`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script":{"description":"Action input."},"video_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/smart_groups.generate":{"post":{"tags":["Actions"],"summary":"Generate a smart group","description":"Builds a smart group (quiz, ranking, dialogue...) inside a video.\n\nMirrors `/api/smart-groups/generate`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"type":{"description":"Action input."},"topic":{"description":"Action input."}}}}}}}},"/api/v1/actions/smart_groups.action":{"post":{"tags":["Actions"],"summary":"Run a smart-group action","description":"Executes one of a smart group's declared actions.\n\nMirrors `/api/smart-groups/action`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"group_id":{"description":"Action input."},"action":{"description":"Action input."}}}}}}}},"/api/v1/actions/smart_groups.create_qcm":{"post":{"tags":["Actions"],"summary":"Create a QCM group","description":"Creates a multiple-choice question group from a question set.\n\nMirrors `/api/smart-groups/create-qcm`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"questions":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.generate_from_prompt":{"post":{"tags":["Actions"],"summary":"Generate a video from a prompt","description":"The one-shot tool: a prompt in, a ready video project out.\n\nMirrors `/api/tools/generate-from-prompt`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"description":"Action input."},"format":{"description":"Action input."},"lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.image_to_prompt":{"post":{"tags":["Actions"],"summary":"Describe an image","description":"Turns an image into a reusable generation prompt.\n\nMirrors `/api/tools/image-to-prompt`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.remove_background":{"post":{"tags":["Actions"],"summary":"Remove an image background","description":"Returns a cut-out version of the image.\n\nMirrors `/api/tools/remove-background`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.image_modification":{"post":{"tags":["Actions"],"summary":"Edit an image","description":"Applies an instruction-based edit to an image.\n\nMirrors `/api/tools/image-modification`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."},"prompt":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.image_crop":{"post":{"tags":["Actions"],"summary":"Crop an image","description":"Crops or reframes an image to a target format.\n\nMirrors `/api/tools/image-crop`.","security":[{"ApiKey":["assets:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."},"format":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.reddit_post_to_video":{"post":{"tags":["Actions"],"summary":"Reddit post to video","description":"Fetches a Reddit post and turns it into a video project.\n\nMirrors `/api/tools/reddit-post-to-video`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.youtube_to_karaoke":{"post":{"tags":["Actions"],"summary":"YouTube to karaoke","description":"Builds a karaoke video composition from a YouTube URL.\n\nMirrors `/api/tools/youtube-to-karaoke`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"Action input."}}}}}}}},"/api/v1/actions/slideshows.generate":{"post":{"tags":["Actions"],"summary":"Generate slideshow slides","description":"Generates the visuals of every pending slide.\n\nMirrors `/api/slideshow/{slideshowId}/generate`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slideshowId":{"description":"Action input."}}}}}}}},"/api/v1/actions/slideshows.export":{"post":{"tags":["Actions"],"summary":"Export a slideshow","description":"Exports the finished slideshow.\n\nMirrors `/api/slideshow/{slideshowId}/export`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"slideshowId":{"description":"Action input."},"format":{"description":"Action input."}}}}}}}},"/api/v1/actions/flows.execute":{"post":{"tags":["Actions"],"summary":"Execute a flow","description":"Runs an automation flow and returns its execution.\n\nMirrors `/api/flows/{flowId}/execute`. Spends credits.","security":[{"ApiKey":["flows:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flowId":{"description":"Action input."},"variables":{"description":"Action input."}}}}}}}},"/api/v1/actions/flows.executions":{"get":{"tags":["Actions"],"summary":"List flow executions","description":"Execution history of a flow.\n\nMirrors `/api/flows/{flowId}/executions`.","security":[{"ApiKey":["flows:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"flowId","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/publishing.schedule_post":{"post":{"tags":["Actions"],"summary":"Schedule a post","description":"Queues a video for publication on a connected account.\n\nMirrors `/api/scheduled-posts`. Spends credits.","security":[{"ApiKey":["publishing:execute","publishing:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"account_id":{"description":"Action input."},"scheduled_at":{"description":"Action input."},"caption":{"description":"Action input."}}}}}}}},"/api/v1/actions/publishing.calendar":{"get":{"tags":["Actions"],"summary":"Publication calendar","description":"Scheduled posts grouped by day.\n\nMirrors `/api/scheduled-posts/calendar`.","security":[{"ApiKey":["publishing:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/account.credits":{"get":{"tags":["Actions"],"summary":"Credit balance","description":"Current credit balance of the workspace.\n\nMirrors `/api/me/credits`.","security":[{"ApiKey":["usage:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[]}},"/api/v1/actions/account.limits":{"get":{"tags":["Actions"],"summary":"Plan limits","description":"Plan limits and current consumption.\n\nMirrors `/api/user/limits`.","security":[{"ApiKey":["usage:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[]}},"/api/v1/actions/account.credit_history":{"get":{"tags":["Actions"],"summary":"Credit history","description":"Credit movements, newest first.\n\nMirrors `/api/user/token-history`.","security":[{"ApiKey":["usage:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/image_agents.list":{"get":{"tags":["Actions"],"summary":"List image agents","description":"Image agents configured for the workspace.\n\nMirrors `/api/image-agents`.","security":[{"ApiKey":["agents:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[]}},"/api/v1/actions/image_agents.create":{"post":{"tags":["Actions"],"summary":"Create an image agent","description":"Creates an image agent with its model and default parameters.\n\nMirrors `/api/image-agents`.","security":[{"ApiKey":["agents:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_name":{"description":"Action input."},"agent_model":{"description":"Action input."},"agent_config":{"description":"Action input."}}}}}}}},"/api/v1/actions/image_agents.update":{"post":{"tags":["Actions"],"summary":"Update an image agent","description":"Updates an image agent.\n\nMirrors `/api/image-agents`.","security":[{"ApiKey":["agents:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/image_agents.delete":{"post":{"tags":["Actions"],"summary":"Delete an image agent","description":"Deletes an image agent.\n\nMirrors `/api/image-agents`.","security":[{"ApiKey":["agents:delete"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/image_agents.generate":{"post":{"tags":["Actions"],"summary":"Generate with an image agent","description":"Starts an image generation job. Poll `image_agents.status` for the result.\n\nMirrors `/api/image-agents/generate`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"prompt":{"description":"Action input."},"count":{"description":"Action input."}}}}}}}},"/api/v1/actions/image_agents.status":{"post":{"tags":["Actions"],"summary":"Check generation status","description":"Status of one or more image generation jobs.\n\nMirrors `/api/image-agents/status`.","security":[{"ApiKey":["generations:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"generation_ids":{"description":"Action input."}}}}}}}},"/api/v1/actions/app_screenshots.list":{"get":{"tags":["Actions"],"summary":"List screenshot projects","description":"App-screenshot projects of the workspace.\n\nMirrors `/api/app-screenshot-projects`.","security":[{"ApiKey":["videos:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[]}},"/api/v1/actions/app_screenshots.create":{"post":{"tags":["Actions"],"summary":"Create a screenshot project","description":"Creates an app-screenshot project.\n\nMirrors `/api/app-screenshot-projects`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_name":{"description":"Action input."}}}}}}}},"/api/v1/actions/app_screenshots.update":{"post":{"tags":["Actions"],"summary":"Update a screenshot project","description":"Updates an app-screenshot project.\n\nMirrors `/api/app-screenshot-projects`.","security":[{"ApiKey":["videos:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/app_screenshots.delete":{"post":{"tags":["Actions"],"summary":"Delete a screenshot project","description":"Deletes an app-screenshot project.\n\nMirrors `/api/app-screenshot-projects`.","security":[{"ApiKey":["videos:delete"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/app_screenshots.generate":{"post":{"tags":["Actions"],"summary":"Render a screenshot","description":"Generates one app-store screenshot from a project.\n\nMirrors `/api/app-screenshot-projects/generate`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."},"screen_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/voice_projects.list":{"get":{"tags":["Actions"],"summary":"List voice-over projects","description":"Bulk text-to-voice projects.\n\nMirrors `/api/bulk-text-to-voice-projects`.","security":[{"ApiKey":["voices:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/voice_projects.create":{"post":{"tags":["Actions"],"summary":"Create a voice-over project","description":"Creates a bulk text-to-voice project.\n\nMirrors `/api/bulk-text-to-voice-projects`.","security":[{"ApiKey":["voices:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_name":{"description":"Action input."}}}}}}}},"/api/v1/actions/voice_projects.update":{"post":{"tags":["Actions"],"summary":"Update a voice-over project","description":"Updates a bulk text-to-voice project.\n\nMirrors `/api/bulk-text-to-voice-projects`.","security":[{"ApiKey":["voices:write"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/voice_projects.delete":{"post":{"tags":["Actions"],"summary":"Delete a voice-over project","description":"Deletes a bulk text-to-voice project.\n\nMirrors `/api/bulk-text-to-voice-projects`.","security":[{"ApiKey":["voices:delete"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/playground.random_prompt":{"post":{"tags":["Actions"],"summary":"Write a random prompt","description":"Generates an image prompt from a theme, for exploration.\n\nMirrors `/api/playground/random-prompt`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"theme":{"description":"Action input."},"style":{"description":"Action input."}}}}}}}},"/api/v1/actions/playground.image_to_prompt":{"post":{"tags":["Actions"],"summary":"Describe an image","description":"Turns an image into the prompt that would produce it.\n\nMirrors `/api/playground/image-to-prompt`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."}}}}}}}},"/api/v1/actions/instructions.generate":{"post":{"tags":["Actions"],"summary":"Generate instructions","description":"Writes the instruction set driving a generation from a brief.\n\nMirrors `/api/instructions`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"description":"Action input."},"lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/instructions.generate_with_news":{"post":{"tags":["Actions"],"summary":"Generate instructions from the news","description":"Same, seeded with fresh news on the topic.\n\nMirrors `/api/instructions/news`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"description":"Action input."},"lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.read_comments":{"post":{"tags":["Actions"],"summary":"Read social comments","description":"Fetches the comments of a TikTok or Instagram post.\n\nMirrors `/api/tools/comments-to-song/read`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"Action input."},"limit":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.write_lyrics":{"post":{"tags":["Actions"],"summary":"Write lyrics from comments","description":"Turns comments into song lyrics, each line keeping its comment id.\n\nMirrors `/api/tools/comments-to-song/lyrics`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"description":"Action input."},"style":{"description":"Action input."},"lang":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.variant_analyze":{"post":{"tags":["Actions"],"summary":"Analyse a variant","description":"Analyses a media variant and reports what it contains.\n\nMirrors `/api/tools/variante-analyze`. Spends credits.","security":[{"ApiKey":["generations:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"description":"Action input."}}}}}}}},"/api/v1/actions/timeline.hydrate_tu_preferes":{"post":{"tags":["Actions"],"summary":"Hydrate a \"would you rather\" video","description":"Fills a would-you-rather timeline with generated questions and media.\n\nMirrors `/api/timeline/hydrate-tu-preferes`. Spends credits.","security":[{"ApiKey":["videos:execute"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"count":{"description":"Action input."}}}}}}}},"/api/v1/actions/assets.static_library":{"get":{"tags":["Actions"],"summary":"Static asset library","description":"The platform-provided asset library (backgrounds, overlays, sounds).\n\nMirrors `/api/static-assets`.","security":[{"ApiKey":["assets:read"]}],"responses":{"200":{"description":"The controller payload.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"details":{"type":"object"},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","message","request_id"]}}}}}}},"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1":{"get":{"tags":["Discovery"],"summary":"What this key can do","description":"Resources, actions and limits available to the calling key.","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Capability document.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/me":{"get":{"tags":["Account"],"summary":"The calling identity","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Identity, workspace, scopes, credits.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/usage":{"get":{"tags":["Account"],"summary":"API usage","security":[{"ApiKey":["usage:read"]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer"},"description":"Window length in days (default 30, max 90)."},{"name":"api_key_id","in":"query","required":false,"schema":{"type":"string"},"description":"Narrow to a single key."}],"responses":{"200":{"description":"Totals, daily series and top endpoints.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/logs":{"get":{"tags":["Account"],"summary":"Request logs","security":[{"ApiKey":["usage:read"]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Max rows (default 100, max 500)."},{"name":"api_key_id","in":"query","required":false,"schema":{"type":"string"},"description":"Narrow to a single key."},{"name":"errors_only","in":"query","required":false,"schema":{"type":"boolean"},"description":"Only responses with status >= 400."}],"responses":{"200":{"description":"Recent API calls.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/actions":{"get":{"tags":["Actions"],"summary":"The action catalog","description":"Every action, its scopes, its cost and whether it spends credits.","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Action catalog.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/batch":{"post":{"tags":["Discovery"],"summary":"Run up to 20 calls in one request","description":"Each member is dispatched through its real route: same authentication, scopes, rate limiting and billing. The envelope is always 200 — read each member status.","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parallel":{"type":"boolean","description":"Defaults to false (sequential)."},"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"method":{"type":"string"},"path":{"type":"string","description":"e.g. `/v1/videos?limit=5`"},"body":{"type":"object"}},"required":["path"]}}},"required":["requests"]}}}},"responses":{"200":{"description":"One result per member.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/events":{"get":{"tags":["Webhooks"],"summary":"Subscribable events","description":"The event catalog plus the signature scheme used on deliveries.","security":[{"ApiKey":["webhooks:read","usage:read"]}],"responses":{"200":{"description":"Event catalog.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks":{"get":{"tags":["Webhooks"],"summary":"List endpoints","security":[{"ApiKey":["webhooks:read"]}],"responses":{"200":{"description":"Registered endpoints.","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["Webhooks"],"summary":"Register an endpoint","description":"The signing secret is returned once, in `secret`.","security":[{"ApiKey":["webhooks:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"https only, no private addresses."},"events":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"headers":{"type":"object"},"metadata":{"type":"object"}},"required":["url","events"]}}}},"responses":{"201":{"description":"The endpoint and its secret.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Fetch an endpoint","security":[{"ApiKey":["webhooks:read"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."}],"responses":{"200":{"description":"The endpoint.","content":{"application/json":{"schema":{"type":"object"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Update an endpoint","description":"Send `rotate_secret: true` to mint a new signing secret.","security":[{"ApiKey":["webhooks:write"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The updated endpoint.","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Remove an endpoint","security":[{"ApiKey":["webhooks:delete"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."}],"responses":{"200":{"description":"Deletion confirmation.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks/{webhook_id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"Delivery log","description":"The last 7 days of deliveries, with responses and attempt counts.","security":[{"ApiKey":["webhooks:read"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."},{"name":"status","in":"query","required":false,"schema":{"type":"string"},"description":"`pending`, `succeeded` or `failed`."},{"name":"event","in":"query","required":false,"schema":{"type":"string"},"description":"Narrow to one event type."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Max rows (default 50, max 200)."}],"responses":{"200":{"description":"Deliveries.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks/{webhook_id}/test":{"post":{"tags":["Webhooks"],"summary":"Send a test delivery","description":"Delivers a signed `webhook.test` event and reports the response inline.","security":[{"ApiKey":["webhooks:write"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."}],"responses":{"200":{"description":"The delivery outcome.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/webhooks/{webhook_id}/replay":{"post":{"tags":["Webhooks"],"summary":"Replay a delivery","description":"Re-sends a past delivery byte for byte, with a fresh signature.","security":[{"ApiKey":["webhooks:write"]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string"},"description":"The endpoint id."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"delivery_id":{"type":"string"}},"required":["delivery_id"]}}}},"responses":{"200":{"description":"The replayed delivery.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/api-keys":{"get":{"tags":["API keys"],"summary":"List API keys","security":[{"ApiKey":["api_keys:read"]}],"responses":{"200":{"description":"The workspace keys.","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"tags":["API keys"],"summary":"Create an API key","description":"The secret is returned once, in `secret`. Store it immediately.","security":[{"ApiKey":["api_keys:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"201":{"description":"The created key and its secret.","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}