{"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":"Scripts","description":"Video scripts: paragraphs, chapters, speakers, takes and the research behind them. Writing goes through the `scripts.*` actions."},{"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":"Backgrounds","description":"The curated background shelf: the stills and loops an admin published for everyone to build on."},{"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, scripts:read, scripts:write, scripts:delete, scripts: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, backgrounds:read, 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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]},"Success":{"type":"object","description":"Every 2xx response, on every endpoint. Never carries an `error` key, and never reports failure through a `success: false` flag.","properties":{"object":{"type":"string","description":"What this is: `video`, `list`, `action_result`, ..."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string","description":"Also sent as `X-Request-Id`. Quote it to support."}},"required":["object","livemode","request_id"]},"ValidationIssue":{"type":"object","properties":{"path":{"type":"string","description":"Dotted path to the field, e.g. `config.fps`."},"message":{"type":"string"},"type":{"type":"string","description":"Stable Joi code, e.g. `object.unknown`, `any.required`."},"allowed":{"type":"array","items":{"type":"string"},"description":"Fields this object does accept. Present when a field was rejected as unknown."},"did_you_mean":{"type":"string","description":"The accepted field closest to the one sent, when there is a near match."}},"required":["path","message"]},"ScopeCatalog":{"type":"object","properties":{"videos":{"type":"array","items":{"type":"string","enum":["read","write","delete","execute"]}},"scripts":{"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"]}},"backgrounds":{"type":"array","items":{"type":"string","enum":["read"]}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/api/v1/scripts":{"get":{"tags":["Scripts"],"summary":"List scripts","description":"Video scripts: paragraphs, chapters, speakers, takes and the research behind them. Writing goes through the `scripts.*` actions.","security":[{"ApiKey":["scripts: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: updated_at, created_at, title."},{"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: paragraphs, snapshots, research, review_notes, sources, chapters."},{"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 title, topic."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `language[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"short | long Operators: `format[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"structure","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `structure[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"video_id","in":"query","required":false,"schema":{"type":"string"},"description":"Set once the script has been handed to a video. Operators: `video_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]`."},{"name":"updated_at","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `updated_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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/api/v1/scripts/{id}":{"get":{"tags":["Scripts"],"summary":"Fetch a script","security":[{"ApiKey":["scripts:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The script's `script_id`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The script.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/api/v1/backgrounds":{"get":{"tags":["Backgrounds"],"summary":"List backgrounds","description":"The curated background shelf: the stills and loops an admin published for everyone to build on.","security":[{"ApiKey":["backgrounds: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, 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, background_ref."},{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"image | video Operators: `kind[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"orientation","in":"query","required":false,"schema":{"type":"string"},"description":"portrait | landscape | square Operators: `orientation[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":"tags","in":"query","required":false,"schema":{"type":"string"},"description":"Filter. Operators: `tags[gt]`, `[gte]`, `[lt]`, `[lte]`, `[ne]`, `[in]`, `[nin]`, `[exists]`, `[contains]`, `[starts_with]`."},{"name":"is_loop","in":"query","required":false,"schema":{"type":"boolean"},"description":"Filter. Operators: `is_loop[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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/api/v1/backgrounds/{id}":{"get":{"tags":["Backgrounds"],"summary":"Fetch a background","security":[{"ApiKey":["backgrounds:read"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"The background's `background_ref`."},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Sparse fieldset."}],"responses":{"200":{"description":"The background.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid credentials.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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 | 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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}}}},"/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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"video_type_id":{"description":"Action input."},"video_format":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"video_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"all_renders","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."},{"name":"render_status","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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_name":{"description":"Action input."},"video_text_publication":{"description":"Action input."},"video_comment":{"description":"Action input."},"video_ready_to_be_processed":{"description":"Action input."},"published":{"description":"Action input."},"platform_published":{"description":"Action input."},"video_template":{"description":"Action input."},"video_format":{"description":"Action input."},"voice_settings":{"description":"Action input."},"config_avatars":{"description":"Action input."},"config":{"description":"Action input."},"video_json":{"description":"Action input."},"video_user_id":{"description":"Action input."},"video_keyword":{"description":"Action input."},"video_id":{"description":"Action input."},"folder_ids":{"description":"Action input."},"video_created_at":{"description":"Action input."},"video_music":{"description":"Action input."},"video_last_audios_edition":{"description":"Action input."},"video_type_id":{"description":"Action input."},"video_script":{"description":"Action input."},"video_sub_type_id":{"description":"Action input."},"video_lang":{"description":"Action input."},"creation_mode":{"description":"Action input."},"studio_origin":{"description":"Action input."},"studio_state":{"description":"Action input."},"studio_setup":{"description":"Action input."},"duplicate":{"description":"Action input."},"video_files_storage_provider":{"description":"Action input."},"video_captions":{"description":"Action input."},"web_infos":{"description":"Action input."},"precise_edit_config":{"description":"Action input."},"composition":{"description":"Action input."},"blocks":{"description":"Action input."},"groups":{"description":"Action input."},"voice_settings_map":{"description":"Action input."},"template_type":{"description":"Action input."},"video_type":{"description":"Action input."},"smart_groups":{"description":"Action input."},"faceless_scenes":{"description":"Action input."},"faceless_script":{"description":"Action input."},"faceless_voice_settings":{"description":"Action input."},"faceless_ai_model":{"description":"Action input."},"faceless_image_agent":{"description":"Action input."},"faceless_image_settings":{"description":"Action input."},"faceless_video_agent":{"description":"Action input."},"faceless_language":{"description":"Action input."},"faceless_style":{"description":"Action input."},"faceless_target_duration":{"description":"Action input."},"faceless_story_prompt":{"description":"Action input."},"faceless_dialogue_prompt":{"description":"Action input."},"faceless_script_prompt_image":{"description":"Action input."},"faceless_script_prompt_video":{"description":"Action input."},"faceless_status":{"description":"Action input."},"faceless_metadata":{"description":"Action input."},"faceless_output_url":{"description":"Action input."},"faceless_thumbnail_url":{"description":"Action input."},"faceless_scene_groups":{"description":"Action input."},"faceless_scene_types":{"description":"Action input."},"faceless_general_prompt":{"description":"Action input."},"faceless_detected_characters":{"description":"Action input."},"faceless_character_style_prompt":{"description":"Action input."},"faceless_selected_characters":{"description":"Action input."},"faceless_template":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_name":{"description":"Action input."},"video_text_publication":{"description":"Action input."},"video_comment":{"description":"Action input."},"video_ready_to_be_processed":{"description":"Action input."},"published":{"description":"Action input."},"platform_published":{"description":"Action input."},"video_template":{"description":"Action input."},"video_format":{"description":"Action input."},"voice_settings":{"description":"Action input."},"config_avatars":{"description":"Action input."},"config":{"description":"Action input."},"video_json":{"description":"Action input."},"video_user_id":{"description":"Action input."},"video_keyword":{"description":"Action input."},"video_id":{"description":"Action input."},"folder_ids":{"description":"Action input."},"video_created_at":{"description":"Action input."},"video_music":{"description":"Action input."},"video_last_audios_edition":{"description":"Action input."},"video_type_id":{"description":"Action input."},"video_script":{"description":"Action input."},"video_sub_type_id":{"description":"Action input."},"video_lang":{"description":"Action input."},"creation_mode":{"description":"Action input."},"studio_origin":{"description":"Action input."},"studio_state":{"description":"Action input."},"studio_setup":{"description":"Action input."},"duplicate":{"description":"Action input."},"video_files_storage_provider":{"description":"Action input."},"video_captions":{"description":"Action input."},"web_infos":{"description":"Action input."},"precise_edit_config":{"description":"Action input."},"composition":{"description":"Action input."},"blocks":{"description":"Action input."},"groups":{"description":"Action input."},"voice_settings_map":{"description":"Action input."},"template_type":{"description":"Action input."},"video_type":{"description":"Action input."},"smart_groups":{"description":"Action input."},"faceless_scenes":{"description":"Action input."},"faceless_script":{"description":"Action input."},"faceless_voice_settings":{"description":"Action input."},"faceless_ai_model":{"description":"Action input."},"faceless_image_agent":{"description":"Action input."},"faceless_image_settings":{"description":"Action input."},"faceless_video_agent":{"description":"Action input."},"faceless_language":{"description":"Action input."},"faceless_style":{"description":"Action input."},"faceless_target_duration":{"description":"Action input."},"faceless_story_prompt":{"description":"Action input."},"faceless_dialogue_prompt":{"description":"Action input."},"faceless_script_prompt_image":{"description":"Action input."},"faceless_script_prompt_video":{"description":"Action input."},"faceless_status":{"description":"Action input."},"faceless_metadata":{"description":"Action input."},"faceless_output_url":{"description":"Action input."},"faceless_thumbnail_url":{"description":"Action input."},"faceless_scene_groups":{"description":"Action input."},"faceless_scene_types":{"description":"Action input."},"faceless_general_prompt":{"description":"Action input."},"faceless_detected_characters":{"description":"Action input."},"faceless_character_style_prompt":{"description":"Action input."},"faceless_selected_characters":{"description":"Action input."},"faceless_template":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"section_id":{"description":"Action input."},"keywords_search":{"description":"Action input."},"video_keyword":{"description":"Action input."},"video_flow_type":{"description":"Action input."},"video_type_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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"scope":{"description":"Action input."},"group_id":{"description":"Action input."},"block_id":{"description":"Action input."},"layer_id":{"description":"Action input."},"force_regenerate":{"description":"Action input."},"blocks":{"description":"Action input."},"groups":{"description":"Action input."},"voice_settings_map":{"description":"Action input."},"video_lang":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"description":"Action input."},"scope":{"description":"Action input."},"group_id":{"description":"Action input."},"block_id":{"description":"Action input."},"blocks":{"description":"Action input."},"groups":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"variables":{"description":"Action input."},"custom_prompt":{"description":"Action input."},"use_ai_optimization":{"description":"Action input."},"preprompt_context":{"description":"Action input."},"video_id":{"description":"Action input."},"count":{"description":"Action input."},"reference_image_url":{"description":"Action input."},"variation_strength":{"description":"Action input."},"temperature":{"description":"Action input."},"settings_overrides":{"description":"Action input."},"folder_id":{"description":"Action input."},"source_generation_id":{"description":"Action input."},"source_image_url":{"description":"Action input."},"action_type":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"custom_prompt":{"description":"Action input."},"variables":{"description":"Action input."},"video_id":{"description":"Action input."},"count":{"description":"Action input."},"use_ai_optimization":{"description":"Action input."},"preprompt_context":{"description":"Action input."},"image_url":{"description":"Action input."},"end_image_url":{"description":"Action input."},"duration":{"description":"Action input."},"aspectRatio":{"description":"Action input."},"nativeAudio":{"description":"Action input."},"tier":{"description":"Action input."},"source":{"description":"Action input."},"folder_id":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task_id":{"description":"Action input."},"prompt":{"description":"Action input."},"model":{"description":"Action input."},"agent_model":{"description":"Action input."},"agent_name":{"description":"Action input."},"agent_id":{"description":"Action input."},"source":{"description":"Action input."},"folder_id":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"variables":{"description":"Action input."},"custom_prompt":{"description":"Action input."},"stream":{"description":"Action input."},"metadata":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_keyword":{"description":"Action input."},"video_id":{"description":"Action input."},"ai_generation_type":{"description":"Action input."},"ai_questions_number":{"description":"Action input."},"video_lang":{"description":"Action input."},"quiz_level_number":{"description":"Action input."},"quiz_questions_number":{"description":"Action input."},"generation_instructions":{"description":"Action input."},"generation_number":{"description":"Action input."},"generation_original_lang":{"description":"Action input."},"generation_translated_lang":{"description":"Action input."},"hooks_number":{"description":"Action input."},"all_questions":{"description":"Action input."},"ai_model_id":{"description":"Action input."},"search_web":{"description":"Action input."},"generation_type":{"description":"Action input."},"number_speakers":{"description":"Action input."},"add_intro_hook":{"description":"Action input."},"text":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"character_id":{"description":"Action input."},"model":{"description":"Action input."},"prompt":{"description":"Action input."},"agent_id":{"description":"Action input."},"reference_image_url":{"description":"Action input."},"variation_strength":{"description":"Action input."},"settings":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"character_id":{"description":"Action input."},"image_url":{"description":"Action input."},"model":{"description":"Action input."},"num_variants":{"description":"Action input."},"variation_strength":{"description":"Action input."},"analyze_only":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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 an image from a prompt","description":"Draws a single image from a text prompt and stores it on the CDN. This is an image tool, not a video one. `videos.create` and the `*_to_video` actions build videos.\n\nMirrors `/api/tools/generate-from-prompt`. Spends credits.","security":[{"ApiKey":["videos:execute","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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"description":"Action input."},"model":{"description":"Action input."},"size":{"description":"Action input."},"quality":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_base64":{"description":"Action input."},"media_type":{"description":"Action input."},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."},"source_generation_id":{"description":"Action input."},"folder_id":{"description":"Action input."},"action_type":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_base64":{"description":"Action input."},"image_url":{"description":"Action input."},"media_type":{"description":"Action input."},"prompt":{"description":"Action input."},"size":{"description":"Action input."},"quality":{"description":"Action input."},"input_fidelity":{"description":"Action input."},"agent_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/tools.image_crop":{"post":{"tags":["Actions"],"summary":"Crop an image","description":"Crops or reframes an image supplied inline as base64. It does not fetch a URL, upload the bytes or crop from an asset you already hold.\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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_base64":{"description":"Action input."},"content_type":{"description":"Action input."},"metadata":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reddit_url":{"description":"Action input."},"comment_limit":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"youtube_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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_name":{"description":"Action input."},"agent_description":{"description":"Action input."},"agent_model":{"description":"Action input."},"agent_prompt_template":{"description":"Action input."},"agent_settings":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"agent_name":{"description":"Action input."},"agent_description":{"description":"Action input."},"agent_model":{"description":"Action input."},"agent_prompt_template":{"description":"Action input."},"agent_settings":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"description":"Action input."},"variables":{"description":"Action input."},"custom_prompt":{"description":"Action input."},"video_id":{"description":"Action input."},"count":{"description":"Action input."},"quality":{"description":"Action input."},"aspect_ratio":{"description":"Action input."},"source":{"description":"Action input."},"reference_image_url":{"description":"Action input."},"additional_reference_image_urls":{"description":"Action input."},"variation_strength":{"description":"Action input."},"folder_id":{"description":"Action input."},"source_generation_id":{"description":"Action input."},"source_image_url":{"description":"Action input."},"action_type":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."},"project_name":{"description":"Action input."},"global_prompt":{"description":"Action input."},"global_references":{"description":"Action input."},"agent_id":{"description":"Action input."},"screens":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."},"screen_id":{"description":"Action input."},"size":{"description":"Action input."},"quality":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"project_id","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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."},"project_name":{"description":"Action input."},"project_status":{"description":"Action input."},"project_original_language":{"description":"Action input."},"project_target_language":{"description":"Action input."},"project_main_voice_details":{"description":"Action input."},"original_text_value":{"description":"Action input."},"original_text_last_edit":{"description":"Action input."},"text_segmented_value":{"description":"Action input."},"translated_text_value":{"description":"Action input."},"translated_text_last_edit":{"description":"Action input."},"project_published":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"description":"Action input."},"project_name":{"description":"Action input."},"project_status":{"description":"Action input."},"project_original_language":{"description":"Action input."},"project_target_language":{"description":"Action input."},"project_main_voice_details":{"description":"Action input."},"original_text_value":{"description":"Action input."},"original_text_last_edit":{"description":"Action input."},"text_segmented_value":{"description":"Action input."},"translated_text_value":{"description":"Action input."},"translated_text_last_edit":{"description":"Action input."},"project_published":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_url":{"description":"Action input."},"comment_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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post":{"description":"Action input."},"comments":{"description":"Action input."},"genre":{"description":"Action input."},"language":{"description":"Action input."},"target_seconds":{"description":"Action input."},"extra_direction":{"description":"Action input."},"clean":{"description":"Action input."},"ai_model_id":{"description":"Action input."},"model_ref":{"description":"Action input."},"workspace_id":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"description":"Action input."},"original_prompt":{"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.list":{"get":{"tags":["Actions"],"summary":"List scripts","description":"The scripts in this workspace, newest edit first, with their id, length, runtime and how much of them has been voiced. Start here: every other script tool takes the `script_id` this returns.\n\nMirrors `/api/scripts (script_list)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"skip","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.create":{"post":{"tags":["Actions"],"summary":"Create a script","description":"Start a new, empty script and return its id. Nothing is written yet: fill it with `script_draft_paragraphs` (from the subject), `script_write_from_source` (from text or a page) or `script_insert_paragraph` (by hand). A script always has one speaker, and every generated line is assigned to it, so `speaker` names the narrator.\n\nMirrors `/api/scripts (script_create)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"description":"Action input."},"topic":{"description":"Action input."},"language":{"description":"Action input."},"format":{"description":"Action input."},"structure":{"description":"Action input."},"target_duration_ms":{"description":"Action input."},"tone":{"description":"Action input."},"audience":{"description":"Action input."},"speaker":{"description":"Action input."},"voice_ref":{"description":"Action input."},"model_ref":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.duplicate":{"post":{"tags":["Actions"],"summary":"Duplicate a script","description":"Copy an existing script into a new one: words, structure, cast and the recordings, which travel because they were paid for and the words they belong to are about to be identical. The credit meter does not: a copy has cost nothing yet. Use it before a rewrite somebody may want to compare against, or to keep a short cut and a long cut of the same video.\n\nMirrors `/api/scripts (script_duplicate)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"title":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.delete":{"post":{"tags":["Actions"],"summary":"Delete a script","description":"Delete a script and everything on it: paragraphs, restore points, review notes and the take history. Not reversible. Confirm with the person before calling it.\n\nMirrors `/api/scripts (script_delete)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.models":{"get":{"tags":["Actions"],"summary":"Models a script can run on","description":"The priced model catalog, as `model_ref` values. A script names one for its whole-document passes and, separately, one for the per-paragraph edits somebody presses forty times an afternoon.\n\nMirrors `/api/scripts (script_models)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[]}},"/api/v1/actions/scripts.voices":{"get":{"tags":["Actions"],"summary":"Voices a script can be read by","description":"The voices this workspace can record with, as `voice_ref` values. Filter by language before choosing: a French script read by an English voice is a take somebody has to notice to undo, and it costs credits either way.\n\nMirrors `/api/scripts (script_voices)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"provider","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"search","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/scripts.ideas":{"post":{"tags":["Actions"],"summary":"Subjects to write about","description":"Subjects for a script that does not exist yet, each with the angle that makes it worth watching. The one writing pass that runs before there is a document, so it does not need a `script_id`. Spends credits.\n\nMirrors `/api/scripts (script_ideas)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"description":"Action input."},"language":{"description":"Action input."},"format":{"description":"Action input."},"count":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.open":{"get":{"tags":["Actions"],"summary":"Open a script","description":"The whole document: every paragraph with its id, role, speaker, lock, recording and words, plus the chapters, the cast, the sources, the research and where the runtime stands against the target. Call this before you change anything -- every other tool addresses paragraphs by the `paragraph_id` it returns.\n\nMirrors `/api/scripts (script_open)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"include_text","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"digest","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.timing":{"get":{"tags":["Actions"],"summary":"Where every line falls","description":"The running order with a timecode on every paragraph: where it starts, how long it runs, and whether that is measured from a real recording or estimated from the word count. Free, no model. This is how you answer \"what is at 0:22\" and \"how much has to come out to make thirty seconds\".\n\nMirrors `/api/scripts (script_timing)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.speech_check":{"get":{"tags":["Actions"],"summary":"What it will sound like","description":"The mechanical read a voice tool can make and a writing tool cannot: digits, symbols, acronyms, URLs, abbreviations and sibilant runs, per paragraph, with what the voice will actually be handed. Free, no model. Run it before spending credits on takes -- \"40%\" reaches the provider verbatim.\n\nMirrors `/api/scripts (script_speech_check)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.settings":{"post":{"tags":["Actions"],"summary":"Model, voice and structure","description":"What the document is written and read BY: the model for whole-document passes, the cheaper model for per-paragraph edits, the default voice, and the structure it is written to. Title, subject, tone, audience, language and target runtime are `script_set_meta`.\n\nMirrors `/api/scripts (script_settings)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"model_ref":{"description":"Action input."},"quick_model_ref":{"description":"Action input."},"default_voice_ref":{"description":"Action input."},"default_voice_name":{"description":"Action input."},"structure":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.write_from_source":{"post":{"tags":["Actions"],"summary":"Write from source material","description":"Turn material into a script: paste the text, or give a URL and it is fetched. REPLACES the paragraphs, so it is the way to start a document from something that already exists, not the way to add to one. `close` keeps the source order and its claims, `loose` takes the substance and rewrites it as a video. Spends credits.\n\nMirrors `/api/scripts (script_write_from_source)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"source_url":{"description":"Action input."},"source_text":{"description":"Action input."},"source_title":{"description":"Action input."},"fidelity":{"description":"Action input."},"instruction":{"description":"Action input."},"paragraph_count":{"description":"Action input."},"replace":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.write_from_link":{"post":{"tags":["Actions"],"summary":"Write from a link, with an opinion","description":"Read one to four pages and write a whole script WITH A STANCE: a review, a comparison, an explainer, a hot take. Unlike `script_write_from_source` this one is fenced -- no number, price, date or version may come from anywhere but the pages, and whatever the model wanted to say and could not verify comes back in `unverified` for somebody to check. Answer the angle honestly: `experience` decides whether the script is allowed a single first-person claim. REPLACES the paragraphs. Spends credits.\n\nMirrors `/api/scripts (script_write_from_link)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"urls":{"description":"Action input."},"angle":{"description":"Action input."},"answers":{"description":"Action input."},"instruction":{"description":"Action input."},"paragraph_count":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.export":{"get":{"tags":["Actions"],"summary":"Export the script","description":"The document rendered as text, in one of: txt, markdown, srt, vtt, teleprompter, csv, shotlist, json. `srt` and `vtt` are timed from the real takes where they exist, `shotlist` carries the visual direction, `csv` is one row per paragraph. Returns the content itself, not a download link.\n\nMirrors `/api/scripts (script_export)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"format","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.to_video":{"post":{"tags":["Actions"],"summary":"Hand the script to a video","description":"Create a video from the script: one scene per paragraph, each carrying its recording where one exists. This is the hand-over to the video side of the platform -- from there it is `videos` and `renders` like any other project. Voice the script first, or the scenes come out timed by an estimate rather than by the real audio.\n\nMirrors `/api/scripts (script_to_video)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"format":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.snapshots":{"get":{"tags":["Actions"],"summary":"Restore points","description":"The restore points on this script, newest first, with what each one was taken before. One is taken automatically before the first write of any call, so there is always something to go back to. Restore one with `script_restore_snapshot`.\n\nMirrors `/api/scripts (script_snapshots)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.changes":{"get":{"tags":["Actions"],"summary":"What changed, and who asked","description":"The edit log: every change to this document, newest first, with the tool that made it and the sentence that asked for it. Filter by `paragraph_id` to see the history of one line.\n\nMirrors `/api/scripts (script_changes)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"before","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.share":{"post":{"tags":["Actions"],"summary":"The review link","description":"Turn the read-only review link on or off, decide whether reviewers may leave notes, or rotate the token so the old URL stops working. The token is minted here and can never be chosen: it is a capability.\n\nMirrors `/api/scripts (script_share)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"enabled":{"description":"Action input."},"allow_notes":{"description":"Action input."},"rotate":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.notes":{"get":{"tags":["Actions"],"summary":"What reviewers said","description":"The notes left through the review link, resolved ones included, each pointing at the paragraph it is about. Posting a note is the reviewer door and is not reachable from here.\n\nMirrors `/api/scripts (script_notes)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"open_only","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.resolve_note":{"post":{"tags":["Actions"],"summary":"Resolve a review note","description":"Mark a reviewer note resolved, reopen it, or delete it. Resolve it once the change it asked for is actually in the document, never to tidy the list.\n\nMirrors `/api/scripts (script_resolve_note)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"note_id":{"description":"Action input."},"resolved":{"description":"Action input."},"delete":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.snippets":{"get":{"tags":["Actions"],"summary":"The workspace snippet shelf","description":"Reusable lines this workspace keeps: sign-offs, disclaimers, calls to action. Drop one into the document with `script_insert_snippet`, save a new one with `script_save_snippet`.\n\nMirrors `/api/scripts (script_snippets)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"search","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.style_guide":{"get":{"tags":["Actions"],"summary":"The house style","description":"This workspace's own rules, in the three kinds that act in three places: `banned` and `preferred` shape the WRITING and are injected into every prompt, `spoken` acts on the VOICE only and is applied between the paragraph and the provider. Add one with `script_add_style_rule`.\n\nMirrors `/api/scripts (script_style_guide)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.speakers":{"get":{"tags":["Actions"],"summary":"Who talks in this script","description":"The cast: every named speaker, the voice they are recorded in, who they are, and how many lines and words are theirs. The FIRST one is the base speaker -- every line written lands on them and they can never be removed. A speaker with no voice of their own is read in the document default, which is what makes a two-hander come back in one voice.\n\nMirrors `/api/scripts (script_speakers)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"with_lines","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.set_speaker_voice":{"post":{"tags":["Actions"],"summary":"Give a speaker their own voice","description":"Record everything this person says in a voice of their own, whatever the document default is. This is what makes a dialogue sound like two people: without it every speaker is read by the same voice and the script is a monologue with names on it. Pass `voice_ref` from `script_voices`, or null to put them back on the default. Changes nothing already recorded -- re-record those with `script_voice` and `force`.\n\nMirrors `/api/scripts (script_set_speaker_voice)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"speaker_id":{"description":"Action input."},"name":{"description":"Action input."},"voice_ref":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.update_speaker":{"post":{"tags":["Actions"],"summary":"Rename a speaker, or say who they are","description":"Change a speaker name or their persona -- the line describing how they talk, which every later AI pass reads before writing for them. Their lines, their voice and their id are untouched, so renaming is safe.\n\nMirrors `/api/scripts (script_update_speaker)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"speaker_id":{"description":"Action input."},"name":{"description":"Action input."},"new_name":{"description":"Action input."},"persona":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.remove_speaker":{"post":{"tags":["Actions"],"summary":"Drop a speaker","description":"Take somebody out of the cast. Their lines are NOT deleted: they go back to the base speaker, which is where an unassigned line belongs. The base speaker themself cannot be removed -- a script is somebody talking, so the list never reaches zero. Rename them instead.\n\nMirrors `/api/scripts (script_remove_speaker)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"speaker_id":{"description":"Action input."},"name":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.voice":{"post":{"tags":["Actions"],"summary":"Record the script","description":"Record paragraphs with a real voice. SPENDS CREDITS, one synthesis per paragraph per take. With no `paragraph_ids` it does the whole script, and it is safe to run twice: a take whose words have not changed is left alone, so it fills the gaps and re-does the stale ones rather than re-buying what is there. `takes` (1 to 3) buys several readings of each paragraph and KEEPS them all -- that is how you compare two performances. The voice is the most specific one that applies: the paragraph, then its speaker, then `voice_ref` here, then the document default. A paragraph with no voice anywhere in that chain is skipped rather than read by an arbitrary one. Listen to the result with `script_listen`.\n\nMirrors `/api/scripts (script_voice)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"voice_ref":{"description":"Action input."},"voice_name":{"description":"Action input."},"takes":{"description":"Action input."},"force":{"description":"Action input."},"dry_run":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.takes":{"get":{"tags":["Actions"],"summary":"Every recording on the script","description":"What has been recorded: per paragraph, every take that was kept, which one is CHOSEN, how long it runs, what voice read it, and whether the words have moved since (a stale take is one somebody has to re-buy). Free.\n\nMirrors `/api/scripts (script_takes)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_ids","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"stale_only","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"missing_only","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.listen":{"get":{"tags":["Actions"],"summary":"Listen to a take","description":"Play a recording back. Returns the audio itself, not a link to it, so you can hear what was bought and say whether it is any good. Name a paragraph for its chosen take, add `take_id` for a particular one, or pass several paragraphs (up to 4) to compare readings. Free: the take already exists.\n\nMirrors `/api/scripts (script_listen)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"take_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_ids","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"all_takes","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.choose_take":{"post":{"tags":["Actions"],"summary":"Keep this take","description":"Make one of a paragraph recordings THE one: the take the player, the export, the subtitle timing and the hand-over to a video all read. The others are kept beside it. Listen before you choose.\n\nMirrors `/api/scripts (script_choose_take)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"take_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.delete_take":{"post":{"tags":["Actions"],"summary":"Throw a take away","description":"Drop a recording you are not going to use. A paragraph keeps a handful of takes and the oldest falls off the end, so clearing out the readings nobody wants is what makes room to try again. If the one you delete was the CHOSEN take, the newest of the rest takes its place; delete the last one and the paragraph is unvoiced again. The credits are already spent either way -- this frees nothing but the list.\n\nMirrors `/api/scripts (script_delete_take)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"take_id":{"description":"Action input."},"take_ids":{"description":"Action input."},"keep_chosen":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.pace":{"post":{"tags":["Actions"],"summary":"How fast a line is meant to run","description":"A paragraph own playback rate, 0.75 to 3, stored ON the document: it is what the page plays it at AND what the audio export writes it out at, so it survives a reload and a re-recording. `null` means FOLLOW whatever the listener or the export is set to, and 1 is NOT null: \"hold this one at 1x while the rest go to 2x\" is a real instruction. Speeding up never raises the pitch.\n\nMirrors `/api/scripts (script_pace)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"rate":{"description":"Action input."},"clear":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.narration":{"get":{"tags":["Actions"],"summary":"The narration end to end","description":"Every chosen take in document order, with the file it lives in, the pace it is written out at and how long the finished narration runs. What is NOT recorded is reported rather than padded with silence: an export that quietly skips half a script is an export that lies about being finished. The joining into one file happens in the browser (it is where the time-stretch runs); this is the plan and the pieces.\n\nMirrors `/api/scripts (script_narration)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"speed","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"container","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.read":{"get":{"tags":["Actions"],"summary":"Read","description":"Read the FULL text of paragraphs. The document block above only shows the first line of each one, so call this before you rewrite, quote, judge or continue anything. Give paragraph_ids, or a from/to range, or a role, or a search term. With no arguments it reads the whole script.\n\nMirrors `/api/scripts (script_read)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_ids","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"from","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"to","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"role","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"query","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.report":{"get":{"tags":["Actions"],"summary":"Report","description":"Measure the script: runtime against its target and how many words that is, the shape of it by role, house-style rules it breaks, paragraphs that repeat an opening, recordings that no longer match their words. Costs nothing and runs no model. Call it before and after any length work.\n\nMirrors `/api/scripts (script_report)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.replace_everywhere":{"post":{"tags":["Actions"],"summary":"Replace everywhere","description":"Swap one string for another across the whole document, changing nothing else. This is the ONLY correct answer to \"replace X with Y\", \"rename X\", \"we say Y now\". Never rewrite a paragraph to perform a swap.\n\nMirrors `/api/scripts (script_replace_everywhere)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"find":{"description":"Action input."},"replace":{"description":"Action input."},"match_case":{"description":"Action input."},"whole_word":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.set_paragraph_text":{"post":{"tags":["Actions"],"summary":"Set paragraph text","description":"Write exact words into one paragraph, keeping its role, its visual, its recording and its history. Use this when YOU wrote the sentence (a hook you drafted in the chat, a typo you fixed). Use rewrite_paragraphs instead when the writing model should do the work.\n\nMirrors `/api/scripts (script_set_paragraph_text)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"text":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.rewrite_paragraphs":{"post":{"tags":["Actions"],"summary":"Rewrite paragraphs","description":"Run the script own writing model over paragraphs with an instruction. This is the same writer the editor buttons use, with this script chosen model and the workspace house style, so the result sounds like the rest of the tool. One model call per paragraph, so keep the list to what the user actually asked for.\n\nMirrors `/api/scripts (script_rewrite_paragraphs)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"instruction":{"description":"Action input."},"operation":{"description":"Action input."},"target_words":{"description":"Action input."},"target_language":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.insert_paragraph":{"post":{"tags":["Actions"],"summary":"Insert paragraph","description":"Add a new paragraph, with your own words, at a chosen place in the document.\n\nMirrors `/api/scripts (script_insert_paragraph)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"text":{"description":"Action input."},"role":{"description":"Action input."},"after_paragraph_id":{"description":"Action input."},"chapter_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.delete_paragraphs":{"post":{"tags":["Actions"],"summary":"Delete paragraphs","description":"Remove paragraphs from the script. The restore point taken at the start of this turn is the way back, so say what you deleted clearly enough for the user to ask for it back.\n\nMirrors `/api/scripts (script_delete_paragraphs)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.move_paragraph":{"post":{"tags":["Actions"],"summary":"Move paragraph","description":"Move one paragraph to another position. `to_index` counts the document AFTER the paragraph is lifted out, so moving index 0 to index 3 puts it fourth. Move one at a time and re-read the map between moves.\n\nMirrors `/api/scripts (script_move_paragraph)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"to_index":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.set_paragraph_role":{"post":{"tags":["Actions"],"summary":"Set paragraph role","description":"Label what a paragraph IS: hook, intro, body, transition, example, punchline, cta, outro. The role drives the colour in the outline and the way later AI passes treat it.\n\nMirrors `/api/scripts (script_set_paragraph_role)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"role":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.lock_paragraphs":{"post":{"tags":["Actions"],"summary":"Lock paragraphs","description":"Lock or unlock paragraphs. A locked paragraph is never touched by any document-wide pass, yours included. Lock freely when the user says a line is final. NEVER unlock without being asked in so many words.\n\nMirrors `/api/scripts (script_lock_paragraphs)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"locked":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.annotate_paragraph":{"post":{"tags":["Actions"],"summary":"Annotate paragraph","description":"Leave a note in the margin of a paragraph. The editor shows it, and every later AI pass on that paragraph is given it as an instruction. Use it to park an idea the user has not asked you to act on yet. Pass an empty string to clear one.\n\nMirrors `/api/scripts (script_annotate_paragraph)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"note":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.set_paragraph_visual":{"post":{"tags":["Actions"],"summary":"Set paragraph visual","description":"Say what is on screen while a paragraph is spoken: one line of direction, what KIND of shot it is, and the keywords somebody would type into a stock library.\n\nMirrors `/api/scripts (script_set_paragraph_visual)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"direction":{"description":"Action input."},"kind":{"description":"Action input."},"broll_keywords":{"description":"Action input."},"image_prompt":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.set_meta":{"post":{"tags":["Actions"],"summary":"Set meta","description":"Change what the document IS rather than what it says: its title, subject, tone, audience, language code, short or long form, and the runtime it is written to. Send only the fields you are changing.\n\nMirrors `/api/scripts (script_set_meta)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"title":{"description":"Action input."},"topic":{"description":"Action input."},"tone":{"description":"Action input."},"audience":{"description":"Action input."},"language":{"description":"Action input."},"format":{"description":"Action input."},"target_duration_ms":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.translate":{"post":{"tags":["Actions"],"summary":"Translate","description":"Translate the WHOLE document in one call: every unlocked paragraph, the title with it, and the document language field. Use this rather than looping rewrite_paragraphs over forty paragraphs.\n\nMirrors `/api/scripts (script_translate)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"target_language":{"description":"Action input."},"language_code":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.snapshot":{"post":{"tags":["Actions"],"summary":"Snapshot","description":"Take a named restore point before something large. One is taken automatically before your first edit of a turn, so only call this when the user asks for a marker, or before a pass you expect them to regret.\n\nMirrors `/api/scripts (script_snapshot)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"label":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.restore_snapshot":{"post":{"tags":["Actions"],"summary":"Restore snapshot","description":"Put the words back to a restore point. Takes its own safety point first, so restoring is itself undoable. The restore points are listed in the document block, newest first.\n\nMirrors `/api/scripts (script_restore_snapshot)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"snapshot_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.history":{"get":{"tags":["Actions"],"summary":"History","description":"Read what has been done to this script: who changed what, when, and what they were asked for. Newest first. Pass a paragraph_id to see only one paragraph's history. Each entry has an edit_id, which `revert_change` takes. Free, no model.\n\nMirrors `/api/scripts (script_history)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.undo_change":{"post":{"tags":["Actions"],"summary":"Undo change","description":"Undo ONE entry from the change log, by edit_id: the paragraphs it rewrote go back to the words they had. Everything done since is left alone (use `restore_snapshot` to go back to a whole earlier state). Locked paragraphs are skipped. Read `read_change_log` first to get the edit_id.\n\nMirrors `/api/scripts (script_undo_change)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"edit_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.check_flow":{"get":{"tags":["Actions"],"summary":"Check flow","description":"Read the SEAMS between paragraphs: abrupt cuts, things said twice, contradictions, pacing, paragraphs that wandered off topic. Returns a score and a list of issues, each with a ready replacement where there is one. Changes nothing. The right first move for \"does this flow?\", \"it feels off\", \"it repeats itself\".\n\nMirrors `/api/scripts (script_check_flow)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"idempotency_key","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.research_all":{"post":{"tags":["Actions"],"summary":"Research all","description":"Fact-check the WHOLE script. It works out which separate subjects the script stands on, searches each one on its own, and files every source on the document along with what could NOT be confirmed. This is the tool for \"research this script\", \"check my facts\", \"is any of this out of date\" and for a script the user has just pasted in. It searches at most 4 subjects and costs one web search per subject. For ONE specific question, use research_topic instead: it is a fraction of the price.\n\nMirrors `/api/scripts (script_research_all)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"question":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.analyze":{"get":{"tags":["Actions"],"summary":"Analyze","description":"Numbers about the script as an object: how dense it is, how strong the opening is, where a listener is most likely to leave, reading level, pace, and the single highest-leverage change. Changes nothing. Use it when asked whether the script is any good, before offering an opinion of your own.\n\nMirrors `/api/scripts (script_analyze)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"idempotency_key","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.suggest_hooks":{"get":{"tags":["Actions"],"summary":"Suggest hooks","description":"Write several openers for this script, each pulling a different lever, with the angle named. Writes NOTHING: read them out and let the user choose, then apply the chosen one with set_paragraph_text.\n\nMirrors `/api/scripts (script_suggest_hooks)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"count","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"idempotency_key","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.suggest_titles":{"get":{"tags":["Actions"],"summary":"Suggest titles","description":"Write several titles for this script. Writes NOTHING: offer them, then set the chosen one with set_script_meta.\n\nMirrors `/api/scripts (script_suggest_titles)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"count","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"idempotency_key","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.write_variants":{"get":{"tags":["Actions"],"summary":"Write variants","description":"Write several alternative versions of ONE paragraph, so the user can compare them side by side. Writes NOTHING. This is the right answer to \"give me options\", \"a few versions\", \"another way of saying it\" -- better than rewriting once and hoping.\n\nMirrors `/api/scripts (script_write_variants)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"count","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"instruction","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"idempotency_key","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.outline":{"post":{"tags":["Actions"],"summary":"Outline","description":"Plan the script before any of it is written: chapters, and the beats each one needs. Writes the CHAPTERS and returns the beats for you to read out. It does not write a single paragraph -- call draft_paragraphs for that, once the user has agreed to the plan.\n\nMirrors `/api/scripts (script_outline)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"instruction":{"description":"Action input."},"chapter_count":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.draft_paragraphs":{"post":{"tags":["Actions"],"summary":"Draft paragraphs","description":"Write the actual script, from its topic, its structure and whatever chapters exist. EXPENSIVE: this is one large model call and it appends a whole draft. Say what you are about to do first. On a document that already has paragraphs it ADDS to them, so outline first, or the user ends up with two scripts in one.\n\nMirrors `/api/scripts (script_draft_paragraphs)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"instruction":{"description":"Action input."},"paragraph_count":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.group_into_chapters":{"post":{"tags":["Actions"],"summary":"Group into chapters","description":"Read the script as it stands and group it into chapters, assigning every paragraph to one. Use it on a document that was written straight through and has grown a shape nobody named.\n\nMirrors `/api/scripts (script_group_into_chapters)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.split_paragraph":{"post":{"tags":["Actions"],"summary":"Split paragraph","description":"Break one paragraph that is doing too much into two or three that each do one thing. The first part KEEPS the original id, its history and its recording; the rest are new. Better than deleting and re-adding.\n\nMirrors `/api/scripts (script_split_paragraph)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.direct_visuals":{"post":{"tags":["Actions"],"summary":"Direct visuals","description":"Write a shot direction for EVERY paragraph in one pass: the kind of shot, the direction, the stock keywords. Use set_paragraph_visual instead when it is one or two paragraphs.\n\nMirrors `/api/scripts (script_direct_visuals)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"instruction":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.polish":{"post":{"tags":["Actions"],"summary":"Polish","description":"One editing pass over the WHOLE document at once: tightening, the same word used twice in a row, sentences that do not say themselves out loud. EXPENSIVE, and it touches many paragraphs, so say what it will do first. Locked paragraphs are skipped and counted.\n\nMirrors `/api/scripts (script_polish)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"instruction":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.research_topic":{"post":{"tags":["Actions"],"summary":"Research topic","description":"Look up facts for this script and store them as SOURCES on the document, so every later pass can cite them instead of guessing. Use it when the user asks whether something is true, asks for numbers, or asks you to back a claim up. It adds sources, it does not edit a paragraph.\n\nMirrors `/api/scripts (script_research_topic)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"question":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.retention":{"get":{"tags":["Actions"],"summary":"Retention","description":"Where a viewer is most likely to stop watching, paragraph by paragraph, with a timecode and the reason. Also finds phrases the script repeats to itself. Costs NOTHING and runs no model, so call it freely: before any length work, and any time the user asks why a video is not being watched to the end.\n\nMirrors `/api/scripts (script_retention)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.add_style_rule":{"get":{"tags":["Actions"],"summary":"Add style rule","description":"Write a rule into the WORKSPACE house style guide. It applies to every script anybody writes here, from now on, and it is attached to every AI pass automatically. Use it when the user states a standing preference (\"we never say X\", \"always write it Y\"), never for a one-off edit. Ask before adding one they only implied.\n\nMirrors `/api/scripts (script_add_style_rule)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"term","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"replacement","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"note","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"brief","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.save_snippet":{"get":{"tags":["Actions"],"summary":"Save snippet","description":"Put a paragraph in the workspace snippet library, so it can be dropped into any future script unchanged. The right answer to \"keep this one\", \"save that line\", \"I always open like this\".\n\nMirrors `/api/scripts (script_save_snippet)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"text","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"title","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"role","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"tags","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.insert_snippet":{"post":{"tags":["Actions"],"summary":"Insert snippet","description":"Drop a saved snippet into this script, word for word. Call it with no `snippet_id` to LIST what is on the shelf first, then again with the one the user picked. The whole value of a snippet is that nothing rewrites it, so never paraphrase one.\n\nMirrors `/api/scripts (script_insert_snippet)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"snippet_id":{"description":"Action input."},"after_paragraph_id":{"description":"Action input."},"query":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.add_source":{"post":{"tags":["Actions"],"summary":"Add source","description":"Read a URL and attach it to the script as a source, with whatever the page declares about itself. Every later AI pass gets those facts, so a rewrite six paragraphs later still knows the number. Use it whenever the user pastes a link or asks where a claim comes from.\n\nMirrors `/api/scripts (script_add_source)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"url":{"description":"Action input."},"snippet":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.add_speaker":{"post":{"tags":["Actions"],"summary":"Add speaker","description":"Add a named speaker to the script, so a paragraph can say who is talking and get its own voice. Use it for a dialogue, an interview, a two-hander. Adding one changes nothing on its own: assign paragraphs to it with assign_speaker.\n\nMirrors `/api/scripts (script_add_speaker)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"name":{"description":"Action input."},"persona":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.assign_speaker":{"post":{"tags":["Actions"],"summary":"Assign speaker","description":"Say which speaker says which paragraphs. Send speaker_id as an empty string to give them back to the base speaker (the first one), which is who says every line nobody else was given.\n\nMirrors `/api/scripts (script_assign_speaker)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"speaker_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.film":{"post":{"tags":["Actions"],"summary":"Film","description":"Film paragraphs: the speaker's photo saying the line, lip-synced to the recording already on it. SPENDS CREDITS, billed per second of clip, so say what it will cost before calling it. It STARTS the jobs and returns AT ONCE: one clip takes one to three minutes, the pending clips are written onto the document, and they finish whether or not anybody is watching. Do NOT poll and do not promise a link in this turn. Each paragraph needs two things, and this reports the ones missing rather than buying them: a face on the speaker (set_speaker_face) and a voice recording (script_voice, or the editor Voice tab). Safe to run twice, a paragraph already filmed against the same recording is left alone unless `force`. Call it with `dry_run` first whenever the user has not agreed to a number.\n\nMirrors `/api/scripts (script_film)`. Spends credits.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_ids":{"description":"Action input."},"model_id":{"description":"Action input."},"prompt":{"description":"Action input."},"force":{"description":"Action input."},"dry_run":{"description":"Action input."},"request":{"description":"Action input."},"idempotency_key":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.set_speaker_face":{"post":{"tags":["Actions"],"summary":"Set speaker face","description":"Give a speaker the photo they are filmed from, or clear it. One face per PERSON rather than per paragraph: it is a property of whoever is talking, so every line they say is filmed from it, including lines written later. The url has to be a public image the lip-sync provider can fetch, which anything in the user own file library is. With no speaker_id it sets the base speaker, who says every line nobody else was given. Free, and nothing is filmed by setting it.\n\nMirrors `/api/scripts (script_set_speaker_face)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"image_url":{"description":"Action input."},"speaker_id":{"description":"Action input."},"aspect":{"description":"Action input."},"clear":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.clips":{"get":{"tags":["Actions"],"summary":"Clips","description":"What has been filmed, and what stands in the way. Per paragraph: whether it has a clip, whether the clip is still running, WHICH MODEL made it, how long it runs and what it cost, plus how many attempts are kept. Also which speakers have a face and which lip-sync models this deployment can run, with the price per second. Free, no model call, so read it before quoting a cost and before saying a clip is late.\n\nMirrors `/api/scripts (script_clips)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"parameters":[{"name":"script_id","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"paragraph_ids","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"pending_only","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."},{"name":"request","in":"query","required":false,"schema":{"type":"string"},"description":"Action input."}]}},"/api/v1/actions/scripts.choose_clip":{"post":{"tags":["Actions"],"summary":"Choose clip","description":"Keep one filmed attempt as the paragraph clip: the one the export and the video editor use. The others stay in the list, so this is reversible and costs nothing. read_film_status names the attempts.\n\nMirrors `/api/scripts (script_choose_clip)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"clip_id":{"description":"Action input."},"request":{"description":"Action input."}}}}}}}},"/api/v1/actions/scripts.delete_clip":{"post":{"tags":["Actions"],"summary":"Delete clip","description":"Drop one filmed attempt from a paragraph list. The mp4 itself is LEFT on storage, exactly as a deleted take leaves its audio: the same url may already sit in a timeline layer, and what this shortens is the list, not the bucket. Deleting the chosen clip promotes the newest survivor rather than leaving the paragraph blank. Nothing is refunded, the clip was already paid for.\n\nMirrors `/api/scripts (script_delete_clip)`.","security":[{"ApiKey":["scripts: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","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"403":{"description":"The key lacks the required scope.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}},"429":{"description":"Rate limit or quota exceeded. See `Retry-After`.","content":{"application/json":{"schema":{"type":"object","description":"Every failing response, on every endpoint. `error` is the only top-level key: a response is a failure if and only if it carries one.","properties":{"error":{"type":"object","properties":{"type":{"type":"string","description":"Error family, e.g. `validation_error`."},"code":{"type":"string","description":"Stable code to branch on."},"status":{"type":"integer","description":"HTTP status, echoed for logs that keep only the body."},"message":{"type":"string"},"param":{"type":"string","description":"The offending field, when the failure is about one."},"details":{"type":"object","description":"Machine-readable context; `issues[]` for a validation failure.","properties":{"issues":{"type":"array","items":{"$ref":"#/components/schemas/ValidationIssue"}}}},"hint":{"type":"string","description":"The call that fixes it, addressed to the caller."},"retryable":{"type":"boolean","description":"Whether repeating the identical request can ever succeed. False for every client error -- do not back off and retry a 4xx."},"livemode":{"type":"boolean","description":"False when a `sk_test_` key produced it."},"request_id":{"type":"string"},"doc_url":{"type":"string"}},"required":["type","code","status","message","retryable","livemode","request_id"]}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"script_id":{"description":"Action input."},"paragraph_id":{"description":"Action input."},"clip_id":{"description":"Action input."},"request":{"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/health":{"get":{"tags":["Discovery"],"summary":"Liveness, without a key","description":"The only /v1 endpoint that answers unauthenticated, so a probe can tell an outage apart from a credential problem. Always 200: a degraded dependency is reported in the body, not through the status code.","security":[],"responses":{"200":{"description":"Service status.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Success"},{"type":"object","properties":{"status":{"type":"string","enum":["ok","degraded"]},"api_version":{"type":"string"},"checks":{"type":"object"},"time":{"type":"string","format":"date-time"}}}]}}}}}}},"/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"}}}}}}}}}