{"openapi":"3.1.0","info":{"title":"Anyreach API","version":"1.0.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/knowledge-base/datasets/{dataset_id}/sources":{"get":{"tags":["datasets","dataset_sources"],"summary":"List Dataset Sources","description":"Get all sources for a specific dataset with pagination","operationId":"list_dataset_sources_knowledge_base_datasets__dataset_id__sources_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter dataset sources created after this datetime","title":"Created After"},"description":"Filter dataset sources created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter dataset sources created before this datetime","title":"Created Before"},"description":"Filter dataset sources created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter dataset sources updated after this datetime","title":"Updated After"},"description":"Filter dataset sources updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter dataset sources updated before this datetime","title":"Updated Before"},"description":"Filter dataset sources updated before this datetime"},{"name":"source_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by source name (case-insensitive)","title":"Source Name"},"description":"Search by source name (case-insensitive)"},{"name":"source_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SourceType"},{"type":"null"}],"description":"Filter by source type: FILE or URL","title":"Source Type"},"description":"Filter by source type: FILE or URL"},{"name":"file_extension","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated extensions, e.g. 'pdf' or 'txt,md'","title":"File Extension"},"description":"Comma-separated extensions, e.g. 'pdf' or 'txt,md'"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Limit"},"description":"Number of items per page"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_DatasetSourceSchema_"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["datasets","dataset_sources"],"summary":"Add Source To Dataset","description":"Add a source to a dataset","operationId":"add_source_to_dataset_knowledge_base_datasets__dataset_id__sources_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetSourceRequestCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/knowledge-base/datasets/{dataset_id}/sources/pattern":{"post":{"tags":["datasets","dataset_sources"],"summary":"Add Sources To Dataset By Pattern","operationId":"add_sources_to_dataset_by_pattern_knowledge_base_datasets__dataset_id__sources_pattern_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSourcesByPatternRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/knowledge-base/datasets/{dataset_id}/sources/{dataset_source_id}":{"delete":{"tags":["datasets","dataset_sources"],"summary":"Remove Source From Dataset","description":"Remove a source from a dataset","operationId":"remove_source_from_dataset_knowledge_base_datasets__dataset_id__sources__dataset_source_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"dataset_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Source Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/knowledge-base/datasets":{"get":{"tags":["datasets"],"summary":"List Dataset","description":"List all datasets with cursor-based pagination.","operationId":"list_dataset_knowledge_base_datasets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated dataset ids to fetch (e.g. recently accessed)","title":"Ids"},"description":"Comma-separated dataset ids to fetch (e.g. recently accessed)"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter datasets created after this datetime","title":"Created After"},"description":"Filter datasets created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter datasets created before this datetime","title":"Created Before"},"description":"Filter datasets created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter datasets updated after this datetime","title":"Updated After"},"description":"Filter datasets updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter datasets updated before this datetime","title":"Updated Before"},"description":"Filter datasets updated before this datetime"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter datasets by name","title":"Name"},"description":"Filter datasets by name"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Limit the number of datasets returned","default":20,"title":"Limit"},"description":"Limit the number of datasets returned"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDatasetResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["datasets"],"summary":"Create Dataset","operationId":"create_dataset_knowledge_base_datasets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetCreateRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/knowledge-base/datasets/{dataset_id}":{"get":{"tags":["datasets"],"summary":"Get Dataset","operationId":"get_dataset_knowledge_base_datasets__dataset_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["datasets"],"summary":"Update Dataset","operationId":"update_dataset_knowledge_base_datasets__dataset_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetUpdateRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["datasets"],"summary":"Delete Dataset","operationId":"delete_dataset_knowledge_base_datasets__dataset_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/knowledge-base/datasets/{dataset_id}/query":{"post":{"tags":["datasets"],"summary":"Get Embeddings For Query","operationId":"get_embeddings_for_query_knowledge_base_datasets__dataset_id__query_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsQueryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsQueryResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/knowledge-base/sources":{"get":{"tags":["sources"],"summary":"List Sources","description":"List all sources with cursor-based pagination.","operationId":"list_sources_knowledge_base_sources_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sources created after this datetime","title":"Created After"},"description":"Filter sources created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sources created before this datetime","title":"Created Before"},"description":"Filter sources created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sources updated after this datetime","title":"Updated After"},"description":"Filter sources updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sources updated before this datetime","title":"Updated Before"},"description":"Filter sources updated before this datetime"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter sources by name","title":"Name"},"description":"Filter sources by name"},{"name":"pattern","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pattern to match source names (PostgREST match)","title":"Pattern"},"description":"Pattern to match source names (PostgREST match)"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Limit the number of sources returned","default":20,"title":"Limit"},"description":"Limit the number of sources returned"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSourceResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["sources"],"summary":"Create Sources","description":"Create a new source.","operationId":"create_sources_knowledge_base_sources_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SourceCreateRequestSchema"},"title":"Sources"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SourceCreateResponseSchema"},"title":"Response Create Sources Knowledge Base Sources Post"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/knowledge-base/sources/pattern-search":{"get":{"tags":["sources"],"summary":"Pattern Search","description":"Search for sources by pattern.","operationId":"pattern_search_knowledge_base_sources_pattern_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"pattern","in":"query","required":false,"schema":{"type":"string","description":"Search for sources by pattern","title":"Pattern"},"description":"Search for sources by pattern"},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SourceType","description":"Filter by source type"},"description":"Filter by source type"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourcePatternSearchResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-base/sources/{source_id}":{"get":{"tags":["sources"],"summary":"Get Source","description":"Get a source by ID.","operationId":"get_source_knowledge_base_sources__source_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["sources"],"summary":"Update Source","description":"Update a source.","operationId":"update_source_knowledge_base_sources__source_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["sources"],"summary":"Delete Source","description":"Delete a source.","operationId":"delete_source_knowledge_base_sources__source_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/knowledge-base/sources/{source_id}/download":{"get":{"tags":["sources"],"summary":"Get Source Download Url","description":"Get a presigned download URL for a source file.","operationId":"get_source_download_url_knowledge_base_sources__source_id__download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-base/webhooks/firecrawl":{"post":{"tags":["webhooks"],"summary":"Firecrawl Webhook","description":"Firecrawl webhook.","operationId":"firecrawl_webhook_knowledge_base_webhooks_firecrawl_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/knowledge-base/webhooks/crawl4ai":{"post":{"tags":["webhooks"],"summary":"Crawl4Ai Webhook","description":"Crawl4AI webhook - receives crawl results from self-hosted Crawl4AI.","operationId":"crawl4ai_webhook_knowledge_base_webhooks_crawl4ai_post","parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","title":"Organization Id"}},{"name":"source_id","in":"query","required":true,"schema":{"type":"string","title":"Source Id"}},{"name":"domain","in":"query","required":false,"schema":{"type":"string","default":"","title":"Domain"}},{"name":"name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Name"}},{"name":"add_to_datasets","in":"query","required":false,"schema":{"type":"string","default":"[]","title":"Add To Datasets"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/website-clone/mirror":{"get":{"tags":["mirror"],"summary":"Mirror Helper","operationId":"mirror_helper_website_clone_mirror_get","parameters":[{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/website-clone/screenshots":{"get":{"tags":["screenshots"],"summary":"Create Screenshot","operationId":"create_screenshot_website_clone_screenshots_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","format":"uri","minLength":1,"maxLength":2083,"title":"Url"}},{"name":"width","in":"query","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Width"}},{"name":"height","in":"query","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Height"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Force re-capture, skipping S3 cache","default":false,"title":"Force"},"description":"Force re-capture, skipping S3 cache"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenshotResponse"}}}},"404":{"description":"Not found"},"403":{"description":"Domain is blacklisted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlacklistedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/website-clone/admin/domain-blacklist":{"get":{"tags":["website-clone-admin"],"summary":"List Blacklist","operationId":"list_blacklist_website_clone_admin_domain_blacklist_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DomainBlacklistEntry"},"type":"array","title":"Response List Blacklist Website Clone Admin Domain Blacklist Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["website-clone-admin"],"summary":"Create Blacklist Entry","operationId":"create_blacklist_entry_website_clone_admin_domain_blacklist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainBlacklistCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainBlacklistEntry"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/website-clone/admin/domain-blacklist/{entry_id}":{"patch":{"tags":["website-clone-admin"],"summary":"Update Blacklist Entry","operationId":"update_blacklist_entry_website_clone_admin_domain_blacklist__entry_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainBlacklistUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainBlacklistEntry"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["website-clone-admin"],"summary":"Delete Blacklist Entry","operationId":"delete_blacklist_entry_website_clone_admin_domain_blacklist__entry_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","title":"Entry Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflows/{workflow_id}/versions":{"get":{"tags":["workflows","workflows"],"summary":"List Workflow Versions","description":"Get all versions for a specific workflow with pagination","operationId":"list_workflow_versions_workflow_workflows__workflow_id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created after this datetime","title":"Created After"},"description":"Filter workflows created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created before this datetime","title":"Created Before"},"description":"Filter workflows created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated after this datetime","title":"Updated After"},"description":"Filter workflows updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated before this datetime","title":"Updated Before"},"description":"Filter workflows updated before this datetime"},{"name":"is_published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter workflows updated before this datetime","title":"Is Published"},"description":"Filter workflows updated before this datetime"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Limit"},"description":"Number of items per page"},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_WorkflowVersionSchema_"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflows","workflows"],"summary":"Create Workflow Version","description":"Create a new version for a specific workflow","operationId":"create_workflow_version_workflow_workflows__workflow_id__versions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/workflow/workflows/{workflow_id}/versions/all":{"get":{"tags":["workflows","workflows"],"summary":"Get Workflow Versions","operationId":"get_workflow_versions_workflow_workflows__workflow_id__versions_all_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SimplifiedWorkflowVersionSchema"},"title":"Response Get Workflow Versions Workflow Workflows  Workflow Id  Versions All Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflows/{workflow_id}/versions/{version_number}":{"get":{"tags":["workflows","workflows"],"summary":"Get Workflow Version","description":"Get a specific workflow version","operationId":"get_workflow_version_workflow_workflows__workflow_id__versions__version_number__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version_number","in":"path","required":true,"schema":{"type":"integer","title":"Version Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["workflows","workflows"],"summary":"Update Workflow Version","description":"Update a specific workflow version","operationId":"update_workflow_version_workflow_workflows__workflow_id__versions__version_number__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version_number","in":"path","required":true,"schema":{"type":"integer","title":"Version Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/workflows/{workflow_id}/versions/{version_number}/publish":{"post":{"tags":["workflows","workflows"],"summary":"Publish Workflow Version","description":"Publish a specific workflow version","operationId":"publish_workflow_version_workflow_workflows__workflow_id__versions__version_number__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version_number","in":"path","required":true,"schema":{"type":"integer","title":"Version Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionPublishSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionPublishSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflows/{workflow_id}/versions/{version_number}/set-live":{"post":{"tags":["workflows","workflows"],"summary":"Set Live Workflow Version","description":"Set a workflow version as live (activate triggers) or take it offline.","operationId":"set_live_workflow_version_workflow_workflows__workflow_id__versions__version_number__set_live_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version_number","in":"path","required":true,"schema":{"type":"integer","title":"Version Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionSetLiveSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers":{"get":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"List Triggers","operationId":"list_triggers_workflow_workflows__workflow_id__versions__version__triggers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by trigger status","title":"Status"},"description":"Filter by trigger status"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedWorkflowTriggerResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Create Trigger","operationId":"create_trigger_workflow_workflows__workflow_id__versions__version__triggers_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}":{"get":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Get Trigger","operationId":"get_trigger_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Update Trigger","operationId":"update_trigger_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Delete Trigger","operationId":"delete_trigger_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}/test-mode":{"post":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Enable Test Mode","operationId":"enable_test_mode_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__test_mode_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerTestModeResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}/test-mode/stop":{"post":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Stop Test Mode","operationId":"stop_test_mode_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__test_mode_stop_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}/activate":{"post":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Activate Trigger","operationId":"activate_trigger_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}/deactivate":{"post":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"Deactivate Trigger","operationId":"deactivate_trigger_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflows/{workflow_id}/versions/{version}/triggers/{trigger_id}/events":{"get":{"tags":["workflows","workflow-triggers","workflow-triggers"],"summary":"List Trigger Events","operationId":"list_trigger_events_workflow_workflows__workflow_id__versions__version__triggers__trigger_id__events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by event status","title":"Status"},"description":"Filter by event status"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedTriggerEventResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflows":{"get":{"tags":["workflows"],"summary":"List Workflow","description":"List workflows.\n\nOffset mode reads api.workflows_index with sort, filters, search and\nlabels. `offset` selects it, as does any of sort, dir, search, labels,\nlive, published, has_trigger, trigger_status, created_by, modified_by or\nlast_run_after/before. The first page (offset 0) carries the match count\nin `pagination.total` and the X-Total-Count header, and\n`pagination.offset` is the next page's offset (null on the last page).\n\nOtherwise, and whenever `cursor` or `ids` is given, it is the original\nlist ordered by created_at: follow `pagination.next_cursor` until it is\nnull.","operationId":"list_workflow_workflow_workflows_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated workflow ids to fetch (e.g. recently accessed), at most 50. Selects cursor mode.","title":"Ids"},"description":"Comma-separated workflow ids to fetch (e.g. recently accessed), at most 50. Selects cursor mode."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset of the first row. Selects offset mode.","title":"Offset"},"description":"Offset of the first row. Selects offset mode."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Limit the number of workflows returned","default":20,"title":"Limit"},"description":"Limit the number of workflows returned"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination. Selects cursor mode.","title":"Cursor"},"description":"Cursor for pagination. Selects cursor mode."},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort by name, created_at, updated_at, created_by, modified_by, total_runs, last_run, live, published or label:<key>. Default created_at.","title":"Sort"},"description":"Sort by name, created_at, updated_at, created_by, modified_by, total_runs, last_run, live, published or label:<key>. Default created_at."},{"name":"dir","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"asc or desc (default desc)","title":"Dir"},"description":"asc or desc (default desc)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive match on the workflow name","title":"Search"},"description":"Case-insensitive match on the workflow name"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter workflows by name (in offset mode, an alias of search)","title":"Name"},"description":"Filter workflows by name (in offset mode, an alias of search)"},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object of label filters: {\"key\": \"value\"}, {\"key\": [\"any\", \"of\"]} or {\"key\": null} for \"not set\"","title":"Labels"},"description":"JSON object of label filters: {\"key\": \"value\"}, {\"key\": [\"any\", \"of\"]} or {\"key\": null} for \"not set\""},{"name":"live","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Has a live version","title":"Live"},"description":"Has a live version"},{"name":"published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Has a published version","title":"Published"},"description":"Has a published version"},{"name":"has_trigger","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"The published (else latest) version has a trigger","title":"Has Trigger"},"description":"The published (else latest) version has a trigger"},{"name":"trigger_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated subset of active, testing, inactive","title":"Trigger Status"},"description":"Comma-separated subset of active, testing, inactive"},{"name":"created_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Creator actor","title":"Created By"},"description":"Creator actor"},{"name":"modified_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last modifier actor","title":"Modified By"},"description":"Last modifier actor"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created after this datetime","title":"Created After"},"description":"Filter workflows created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created before this datetime","title":"Created Before"},"description":"Filter workflows created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated after this datetime","title":"Updated After"},"description":"Filter workflows updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated before this datetime","title":"Updated Before"},"description":"Filter workflows updated before this datetime"},{"name":"last_run_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows last run after this datetime","title":"Last Run After"},"description":"Filter workflows last run after this datetime"},{"name":"last_run_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows last run before this datetime","title":"Last Run Before"},"description":"Filter workflows last run before this datetime"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedWorkflowResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflows"],"summary":"Create Workflow","operationId":"create_workflow_workflow_workflows_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateResponseSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/workflow/workflows/ids":{"get":{"tags":["workflows"],"summary":"List Workflow Ids","description":"Ids of every workflow matching the list's filters, in list order, paged.\n\n`total` is the full match count, so a caller can page until it has them\nall (select-all across pages).","operationId":"list_workflow_ids_workflow_workflows_ids_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Offset of the first id","default":0,"title":"Offset"},"description":"Offset of the first id"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of ids to return","default":1000,"title":"Limit"},"description":"Number of ids to return"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort by name, created_at, updated_at, created_by, modified_by, total_runs, last_run, live, published or label:<key>. Default created_at.","title":"Sort"},"description":"Sort by name, created_at, updated_at, created_by, modified_by, total_runs, last_run, live, published or label:<key>. Default created_at."},{"name":"dir","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"asc or desc (default desc)","title":"Dir"},"description":"asc or desc (default desc)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive match on the workflow name","title":"Search"},"description":"Case-insensitive match on the workflow name"},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter workflows by name (in offset mode, an alias of search)","title":"Name"},"description":"Filter workflows by name (in offset mode, an alias of search)"},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object of label filters: {\"key\": \"value\"}, {\"key\": [\"any\", \"of\"]} or {\"key\": null} for \"not set\"","title":"Labels"},"description":"JSON object of label filters: {\"key\": \"value\"}, {\"key\": [\"any\", \"of\"]} or {\"key\": null} for \"not set\""},{"name":"live","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Has a live version","title":"Live"},"description":"Has a live version"},{"name":"published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Has a published version","title":"Published"},"description":"Has a published version"},{"name":"has_trigger","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"The published (else latest) version has a trigger","title":"Has Trigger"},"description":"The published (else latest) version has a trigger"},{"name":"trigger_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated subset of active, testing, inactive","title":"Trigger Status"},"description":"Comma-separated subset of active, testing, inactive"},{"name":"created_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Creator actor","title":"Created By"},"description":"Creator actor"},{"name":"modified_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last modifier actor","title":"Modified By"},"description":"Last modifier actor"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created after this datetime","title":"Created After"},"description":"Filter workflows created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows created before this datetime","title":"Created Before"},"description":"Filter workflows created before this datetime"},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated after this datetime","title":"Updated After"},"description":"Filter workflows updated after this datetime"},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows updated before this datetime","title":"Updated Before"},"description":"Filter workflows updated before this datetime"},{"name":"last_run_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows last run after this datetime","title":"Last Run After"},"description":"Filter workflows last run after this datetime"},{"name":"last_run_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter workflows last run before this datetime","title":"Last Run Before"},"description":"Filter workflows last run before this datetime"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdsPage"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflows/labels":{"patch":{"tags":["workflows"],"summary":"Set Workflow Labels","description":"Set, add, remove or clear labels on up to 500 workflows at once.\n\n`updated` counts the workflows whose labels actually changed.","operationId":"set_workflow_labels_workflow_workflows_labels_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLabelsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLabelsResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/workflows/{workflow_id}":{"get":{"tags":["workflows"],"summary":"Get Workflow","operationId":"get_workflow_workflow_workflows__workflow_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["workflows"],"summary":"Update Workflow","operationId":"update_workflow_workflow_workflows__workflow_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["workflows"],"summary":"Delete Workflow","operationId":"delete_workflow_workflow_workflows__workflow_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/credentials":{"get":{"tags":["workflow-credentials"],"summary":"List Credentials","description":"List the organization's credentials (metadata only — never values).","operationId":"list_credentials_workflow_credentials_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter credentials by name","title":"Name"},"description":"Filter credentials by name"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":20,"title":"Limit"},"description":"Number of items per page"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedCredentialResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflow-credentials"],"summary":"Create Credential","description":"Create a credential. Any `secrets` in the body are stored encrypted and\nnever returned.","operationId":"create_credential_workflow_credentials_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialCreateRequestSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/workflow/credentials/{credential_id}":{"get":{"tags":["workflow-credentials"],"summary":"Get Credential","operationId":"get_credential_workflow_credentials__credential_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["workflow-credentials"],"summary":"Update Credential","operationId":"update_credential_workflow_credentials__credential_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["workflow-credentials"],"summary":"Delete Credential","description":"Delete a credential, its secrets (cascade) and its refresh schedule.\n\nWorkflows still referencing it start failing with an \"unknown credential\"\nstep error — deliberately loud rather than silently unauthenticated.","operationId":"delete_credential_workflow_credentials__credential_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/credentials/{credential_id}/secrets/{key}":{"put":{"tags":["workflow-credentials"],"summary":"Set Credential Secret","description":"Set or rotate one setup secret. Write-only: there is no matching GET.","operationId":"set_credential_secret_workflow_credentials__credential_id__secrets__key__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialSecretWriteSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["workflow-credentials"],"summary":"Delete Credential Secret","operationId":"delete_credential_secret_workflow_credentials__credential_id__secrets__key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/credentials/{credential_id}/value":{"put":{"tags":["workflow-credentials"],"summary":"Set Credential Value","description":"Set a static credential's value. Write-only: there is no matching GET.\n\nOnly for a credential with no refresher — one whose material is typed in\nrather than minted. The RPC enforces that too, so the 409 here is the\nreadable error rather than the guard.","operationId":"set_credential_value_workflow_credentials__credential_id__value_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialValueWriteSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"patch":{"tags":["workflow-credentials"],"summary":"Patch Credential Value","description":"Add, overwrite or remove individual keys of a static credential's value.\n\nThe whole-value PUT cannot express this: the value is one encrypted blob the\nclient is never allowed to read, so replacing it wholesale would silently\ndrop every key the caller did not happen to retype. The merge belongs on the\nserver, which is the only side that can decrypt.","operationId":"patch_credential_value_workflow_credentials__credential_id__value_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialValuePatchSchema"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/credentials/{credential_id}/refresh":{"post":{"tags":["workflow-credentials"],"summary":"Refresh Credential","description":"Run the refresher now. Returns immediately; the run is asynchronous.\n\nAn already-running refresh is reported as `already_running`, not as an error:\nsaving a non-manual policy starts one of its own, so a user who saves and\nthen presses Refresh is racing themselves through no fault of their own. The\noutcome they wanted — a refresh is running — is already true.","operationId":"refresh_credential_workflow_credentials__credential_id__refresh_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialRefreshResponseSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/workflow/python-functions":{"get":{"tags":["workflow-python-functions"],"summary":"List Python Functions","description":"The organization's functions, each with its versions (no source).","operationId":"list_python_functions_workflow_python_functions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PythonFunctionSchema"},"title":"Response List Python Functions Workflow Python Functions Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/{function_id}":{"get":{"tags":["workflow-python-functions"],"summary":"Get Python Function","operationId":"get_python_function_workflow_python_functions__function_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"function_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Function Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PythonFunctionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/{function_id}/versions/{version_hash}":{"get":{"tags":["workflow-python-functions"],"summary":"Get Python Function Version","description":"One version, source included.","operationId":"get_python_function_version_workflow_python_functions__function_id__versions__version_hash__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"function_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Function Id"}},{"name":"version_hash","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Version Hash"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PythonFunctionVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/{function_id}/audit":{"get":{"tags":["workflow-python-functions"],"summary":"Get Python Function Audit","description":"Who saved, pinned, revoked and disabled what, newest first.","operationId":"get_python_function_audit_workflow_python_functions__function_id__audit_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"function_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Function Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PythonFunctionAuditEntrySchema"},"title":"Response Get Python Function Audit Workflow Python Functions  Function Id  Audit Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/staff/orgs/{org_id}/versions":{"post":{"tags":["workflow-python-functions"],"summary":"Save Python Function Version","description":"Check a source with the runner and store it as a new version.\n\nCreates the function on its first save. Saving source the function already\nhas returns that version.","operationId":"save_python_function_version_workflow_python_functions_staff_orgs__org_id__versions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveVersionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PythonFunctionVersionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/staff/orgs/{org_id}/versions/{version_id}/revoke":{"post":{"tags":["workflow-python-functions"],"summary":"Revoke Python Function Version","description":"Revoke a version, optionally redirecting its pins to a replacement.","operationId":"revoke_python_function_version_workflow_python_functions_staff_orgs__org_id__versions__version_id__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeVersionRequest"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/staff/orgs/{org_id}/versions/{version_id}/pins":{"post":{"tags":["workflow-python-functions"],"summary":"Record Python Function Pin","description":"Log that a workflow step was pointed at this version.","operationId":"record_python_function_pin_workflow_python_functions_staff_orgs__org_id__versions__version_id__pins_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinVersionRequest"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/python-functions/staff/orgs/{org_id}/functions/{function_id}/disabled":{"put":{"tags":["workflow-python-functions"],"summary":"Set Python Function Disabled","description":"The kill switch: every version of the function stops running.","operationId":"set_python_function_disabled_workflow_python_functions_staff_orgs__org_id__functions__function_id__disabled_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}},{"name":"function_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Function Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDisabledRequest"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflow-executions":{"get":{"tags":["workflow-executions"],"summary":"Get Workflow Executions","description":"Get all workflow executions with pagination and filters","operationId":"get_workflow_executions_workflow_workflow_executions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter executions by workflow ID","title":"Workflow Id"},"description":"Filter executions by workflow ID"},{"name":"version_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter executions by version ID","title":"Version Id"},"description":"Filter executions by version ID"},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter executions created after this datetime","title":"Created After"},"description":"Filter executions created after this datetime"},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter executions created before this datetime","title":"Created Before"},"description":"Filter executions created before this datetime"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["success","failed","in_progress","pending","waiting"],"type":"string"},{"type":"null"}],"description":"Filter executions by status","title":"Status"},"description":"Filter executions by status"},{"name":"id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter executions by ID","title":"Id"},"description":"Filter executions by ID"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Limit the number of executions returned","title":"Limit"},"description":"Limit the number of executions returned"},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for pagination","title":"Cursor"},"description":"Cursor for pagination"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedWorkflowExecutionResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflow-executions"],"summary":"Create Workflow Execution","description":"Create a workflow execution","operationId":"create_workflow_execution_workflow_workflow_executions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionCreateResponseSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/workflow-executions/{execution_id}":{"get":{"tags":["workflow-executions"],"summary":"Get Workflow Execution","description":"Get a specific workflow execution by ID","operationId":"get_workflow_execution_workflow_workflow_executions__execution_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Execution Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/workflow-executions/async":{"post":{"tags":["workflow-executions"],"summary":"Create Workflow Execution Async","description":"Create a workflow execution","operationId":"create_workflow_execution_async_workflow_workflow_executions_async_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionCreateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionAsyncSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/code-steps/preview":{"post":{"tags":["code-steps"],"summary":"Preview Code Step","description":"Run Python code in the same sandbox path as a workflow code step (no workflow execution).\n\nSync handler so ``run_code_preview`` (sandbox + user code) runs in FastAPI's thread pool\ninstead of blocking the asyncio event loop.","operationId":"preview_code_step_workflow_code_steps_preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodePreviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodePreviewResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/http-steps/preview":{"post":{"tags":["http-steps"],"summary":"Preview Http Step","description":"Run a single HTTP step against a provided context (no workflow execution).\n\nSync handler so the blocking ``requests`` call runs in FastAPI's thread pool\ninstead of blocking the asyncio event loop.","operationId":"preview_http_step_workflow_http_steps_preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpPreviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpPreviewResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/public/workflows/{workflow_id}/{version}/execute":{"post":{"tags":["public-workflows"],"summary":"Execute Public Workflow","description":"Execute a public workflow without authentication.\n\n`version` is either an integer or the string \"latest\".","operationId":"execute_public_workflow_workflow_public_workflows__workflow_id___version__execute_post","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}},{"name":"initial_step","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Step"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Input Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowExecutionAsyncSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/webhooks/pipedream/triggers/{trigger_id}":{"post":{"tags":["webhooks-pipedream"],"summary":"Receive Pipedream Trigger Event","description":"Receive trigger events from Pipedream Connect.","operationId":"receive_pipedream_trigger_event_workflow_webhooks_pipedream_triggers__trigger_id__post","parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/webhooks/anyreach/triggers/{trigger_id}":{"post":{"tags":["webhooks-anyreach"],"summary":"Receive Anyreach Trigger Event","description":"Receive trigger events from Anyreach-native dispatchers.","operationId":"receive_anyreach_trigger_event_workflow_webhooks_anyreach_triggers__trigger_id__post","parameters":[{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/anyreach/actions/entities":{"get":{"tags":["anyreach"],"summary":"List Entities","operationId":"list_entities_workflow_anyreach_actions_entities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitiesListResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflow/anyreach/actions/entities/{entity_key}/actions":{"get":{"tags":["anyreach"],"summary":"List Entity Actions","operationId":"list_entity_actions_workflow_anyreach_actions_entities__entity_key__actions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entity_key","in":"path","required":true,"schema":{"type":"string","title":"Entity Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemsListResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/anyreach/actions/{action_key}":{"get":{"tags":["anyreach"],"summary":"Get Action Detail","operationId":"get_action_detail_workflow_anyreach_actions__action_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/anyreach/actions/{action_key}/remote-options":{"post":{"tags":["anyreach"],"summary":"Get Remote Options","operationId":"get_remote_options_workflow_anyreach_actions__action_key__remote_options_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoteOptionsResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/workflow/anyreach/actions/{action_key}/test":{"post":{"tags":["anyreach"],"summary":"Test Action","operationId":"test_action_workflow_anyreach_actions__action_key__test_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"action_key","in":"path","required":true,"schema":{"type":"string","title":"Action Key"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestActionResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/workflow/anyreach/triggers/entities":{"get":{"tags":["anyreach"],"summary":"List Trigger Entities","operationId":"list_trigger_entities_workflow_anyreach_triggers_entities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitiesListResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/workflow/anyreach/triggers/entities/{entity_key}/triggers":{"get":{"tags":["anyreach"],"summary":"List Entity Triggers","operationId":"list_entity_triggers_workflow_anyreach_triggers_entities__entity_key__triggers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entity_key","in":"path","required":true,"schema":{"type":"string","title":"Entity Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemsListResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/workflow/anyreach/triggers/{trigger_key}":{"get":{"tags":["anyreach"],"summary":"Get Trigger Detail","operationId":"get_trigger_detail_workflow_anyreach_triggers__trigger_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"trigger_key","in":"path","required":true,"schema":{"type":"string","title":"Trigger Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign/timezones":{"get":{"tags":["configurations"],"summary":"List Timezones","description":"Return all valid IANA timezone identifiers.","operationId":"list_timezones_campaign_timezones_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response List Timezones Campaign Timezones Get"}}}}}}},"/campaign/campaigns":{"post":{"tags":["campaigns"],"summary":"Create Campaign","description":"Create a new campaign.\n\nCreates a campaign and starts its Temporal workflow in paused state.","operationId":"create_campaign_campaign_campaigns_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"},"get":{"tags":["campaigns"],"summary":"List Campaigns","description":"List campaigns with optional filtering and cursor pagination.","operationId":"list_campaigns_campaign_campaigns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ids"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CampaignResponse"},"title":"Response List Campaigns Campaign Campaigns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign/campaigns/{campaign_id}":{"get":{"tags":["campaigns"],"summary":"Get Campaign","description":"Get a campaign by ID or external_id.","operationId":"get_campaign_campaign_campaigns__campaign_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["campaigns"],"summary":"Update Campaign","description":"Update a campaign's configuration by ID or external_id.","operationId":"update_campaign_campaign_campaigns__campaign_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/campaign/campaigns/{campaign_id}/start":{"post":{"tags":["campaigns"],"summary":"Start Campaign","description":"Start or resume a campaign by ID or external_id.","operationId":"start_campaign_campaign_campaigns__campaign_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Start Campaign Campaign Campaigns  Campaign Id  Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/campaign/campaigns/{campaign_id}/pause":{"post":{"tags":["campaigns"],"summary":"Pause Campaign","description":"Pause a running campaign by ID or external_id.","operationId":"pause_campaign_campaign_campaigns__campaign_id__pause_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Pause Campaign Campaign Campaigns  Campaign Id  Pause Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/campaign/campaigns/{campaign_id}/close":{"post":{"tags":["campaigns"],"summary":"Close Campaign","description":"Close a campaign permanently by ID or external_id.","operationId":"close_campaign_campaign_campaigns__campaign_id__close_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Close Campaign Campaign Campaigns  Campaign Id  Close Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/campaign/configurations":{"post":{"tags":["configurations"],"summary":"Create Configuration","description":"Create a new configuration.","operationId":"create_configuration_campaign_configurations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"},"get":{"tags":["configurations"],"summary":"List Configurations","description":"List all configurations for the organization.","operationId":"list_configurations_campaign_configurations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConfigurationResponse"},"title":"Response List Configurations Campaign Configurations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign/configurations/{config_id}":{"get":{"tags":["configurations"],"summary":"Get Configuration","description":"Get a configuration by ID.","operationId":"get_configuration_campaign_configurations__config_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["configurations"],"summary":"Update Configuration","description":"Update a configuration and propagate changes to active campaigns.","operationId":"update_configuration_campaign_configurations__config_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["configurations"],"summary":"Delete Configuration","description":"Delete a configuration. Fails if campaigns reference it.","operationId":"delete_configuration_campaign_configurations__config_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/campaign/campaigns/{campaign_id}/contacts":{"post":{"tags":["contacts"],"summary":"Add Contacts","description":"Upsert contacts to a campaign by ID or external_id.\n\nUse campaign_id=\"default\" to add contacts without a campaign (ad-hoc calls);\neach such contact must name its agent with agent_id or agent_config.\nUpdates contacts if id or external_id matches, inserts otherwise.\n\nContacts must include phone_numbers as a pre-validated E.164 list.","operationId":"add_contacts_campaign_campaigns__campaign_id__contacts_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactBulkCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpsertResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"get":{"tags":["contacts"],"summary":"List Contacts","description":"List contacts for a campaign with their attempts.","operationId":"list_contacts_campaign_campaigns__campaign_id__contacts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactWithAttemptsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign/campaigns/{campaign_id}/contacts/{contact_id}":{"get":{"tags":["contacts"],"summary":"Get Contact","description":"Get a contact by ID or external_id within a campaign, with its attempts.\n\nEach attempt carries the `conversation_id` of the call it placed, which is\nhow you get from a contact to its conversations without paging the whole\ncampaign through `GET /campaigns/{campaign_id}/contacts`.","operationId":"get_contact_campaign_campaigns__campaign_id__contacts__contact_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactWithAttemptsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["contacts"],"summary":"Delete Contact","description":"Delete a contact by ID or external_id within a campaign.","operationId":"delete_contact_campaign_campaigns__campaign_id__contacts__contact_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/campaign/concurrency-settings":{"get":{"tags":["concurrency-settings"],"summary":"Get Concurrency Settings","description":"Get concurrency settings for the organization.","operationId":"get_concurrency_settings_campaign_concurrency_settings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcurrencySettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["concurrency-settings"],"summary":"Upsert Concurrency Settings","description":"Create or update concurrency settings for the organization.","operationId":"upsert_concurrency_settings_campaign_concurrency_settings_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcurrencySettingsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcurrencySettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/campaign/campaigns/{campaign_id}/stats":{"get":{"tags":["stats"],"summary":"Get Stats","description":"Get statistics for a campaign.\n\nReturns contact counts by status, total attempt counts,\nand current active calls count.","operationId":"get_stats_campaign_campaigns__campaign_id__stats_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Stats Campaign Campaigns  Campaign Id  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/campaign/webhooks/call-ended":{"post":{"tags":["webhooks"],"summary":"Call Ended","description":"Handle call ended webhook from voice platform.\n\nSignals the AttemptWorkflow with the call result so it can\nupdate the attempt record and handle the outcome.","operationId":"call_ended_campaign_webhooks_call_ended_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallEndedPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Call Ended Campaign Webhooks Call Ended Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/core/trunks":{"get":{"tags":["Trunks"],"summary":"List Trunks","description":"List all trunks.","operationId":"list_trunks_core_trunks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Trunk"},"title":"Response List Trunks Core Trunks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Trunks"],"summary":"Create Trunk","description":"Create a trunk.","operationId":"create_trunk_core_trunks_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrunkCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Trunk"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/trunks/sip-uri":{"get":{"tags":["Trunks"],"summary":"Get Trunk Sip Uri","description":"The SIP URI carriers should send inbound calls to.","operationId":"get_trunk_sip_uri_core_trunks_sip_uri_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrunkSipUriResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/trunks/{id}":{"get":{"tags":["Trunks"],"summary":"Get Trunk","description":"Get a specific trunk.","operationId":"get_trunk_core_trunks__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Trunk"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Trunks"],"summary":"Update Trunk","description":"Update a trunk.","operationId":"update_trunk_core_trunks__id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrunkUpdateSchema"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Trunk"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["Trunks"],"summary":"Delete Trunk","description":"Delete a trunk.","operationId":"delete_trunk_core_trunks__id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/phone-numbers":{"get":{"tags":["Phone Numbers"],"summary":"List Phone Numbers","description":"List all phone numbers.","operationId":"list_phone_numbers_core_phone_numbers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"}},{"name":"trunk_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trunk Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumber"},"title":"Response List Phone Numbers Core Phone Numbers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Phone Numbers"],"summary":"Create Phone Number","description":"Create a phone number.","operationId":"create_phone_number_core_phone_numbers_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumberCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumber"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/phone-numbers/{phone_number}":{"get":{"tags":["Phone Numbers"],"summary":"Get Phone Number","description":"Get a specific phone number.","operationId":"get_phone_number_core_phone_numbers__phone_number__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"path","required":true,"schema":{"type":"string","title":"Phone Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumber"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Phone Numbers"],"summary":"Update Phone Number","description":"Update mutable fields on a phone number. Only fields present in the\nrequest body are applied.","operationId":"update_phone_number_core_phone_numbers__phone_number__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"path","required":true,"schema":{"type":"string","title":"Phone Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumberUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumber"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["Phone Numbers"],"summary":"Delete Phone Number","description":"Delete a phone number.","operationId":"delete_phone_number_core_phone_numbers__phone_number__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"path","required":true,"schema":{"type":"string","title":"Phone Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/phone-numbers/{phone_number}/deletion-preview":{"get":{"tags":["Phone Numbers"],"summary":"Preview Phone Number Deletion","description":"Describe what deleting this phone number will do. A number on the\nshared Anyreach account is released at the provider on delete, so the\ncaller can warn about that before confirming.","operationId":"preview_phone_number_deletion_core_phone_numbers__phone_number__deletion_preview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"path","required":true,"schema":{"type":"string","title":"Phone Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumberDeletionPreview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations":{"get":{"tags":["Conversations"],"summary":"List Conversations","description":"List all conversations.","operationId":"list_conversations_core_conversations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"agent_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"agent_version_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"}},{"name":"web_widget_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web Widget Id"}},{"name":"trunk_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trunk Id"}},{"name":"experiment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Id"}},{"name":"experiment_variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Variant"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"duration_above","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Above"}},{"name":"duration_below","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Below"}},{"name":"user_turn_count_above","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Turn Count Above"}},{"name":"user_turn_count_below","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Turn Count Below"}},{"name":"service_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Version"}},{"name":"custom_metadata","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Metadata"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"columns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Columns"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConversationPartial"},"title":"Response List Conversations Core Conversations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Conversations"],"summary":"Create Conversation","description":"Create a new conversation.\n\nFor telephone channels, the call is enqueued via campaign-service\nand will be placed by the dialer. Returns a contact_id with HTTP 202.\nFor WebRTC channels, the conversation is created immediately.","operationId":"create_conversation_core_conversations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Conversation Core Conversations Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/conversations/{conversation_id}":{"get":{"tags":["Conversations"],"summary":"Get Conversation","description":"Get a specific conversation.\n\nLarge JSONB blobs (``agent_config``, ``trunk_config``) are excluded by\ndefault for performance. Request them with a comma-separated\n``include_fields`` query param, e.g. ``?include_fields=agent_config``.","operationId":"get_conversation_core_conversations__conversation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"include_fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include Fields"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationPartial"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/identity":{"get":{"tags":["Conversations"],"summary":"Get Conversation Identity","description":"Verified identities (expired included), pending runs, bindings and\nverification attempts of one conversation.","operationId":"get_conversation_identity_core_conversations__conversation_id__identity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationIdentityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/listener-token":{"post":{"tags":["Conversations"],"summary":"Create Conversation Listener Token","description":"Mint a listen-only LiveKit token for an active conversation.\n\nLets an authorized client subscribe to the live audio + transcription\ndata of an in-progress conversation without being able to publish or be\nseen by the other participants. Used by the conversation detail page\nand exposed publicly for SDK consumers building monitoring tools.","operationId":"create_conversation_listener_token_core_conversations__conversation_id__listener_token_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationListenerTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/conversations/dial":{"post":{"tags":["Conversations"],"summary":"Dial Conversation","description":"Directly place a call (internal use by campaign-service only).\n\nThis endpoint initiates the call immediately via LiveKit/telephony.\nExternal callers should use POST /conversations to enqueue instead.\nRequires the 'conversations:dial' scope, which should only be granted\nto the campaign-service M2M application.","operationId":"dial_conversation_core_conversations_dial_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dial Conversation Core Conversations Dial Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/conversations/{conversation_id}/messages":{"post":{"tags":["Conversations"],"summary":"Post Text Message","description":"Send a user message to a TEXT conversation; reply returned synchronously.\n\nValid only for ``channel=\"text\"`` (409 otherwise). Runs the async engine\ninline — no Temporal workflow.","operationId":"post_text_message_core_conversations__conversation_id__messages_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Post Text Message Core Conversations  Conversation Id  Messages Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/conversations/{conversation_id}/end":{"post":{"tags":["Conversations"],"summary":"End Text Conversation","description":"End a TEXT conversation (status -> completed).\n\nValid only for ``channel=\"text\"`` (409 otherwise). Finalizes the\nconversation — computes duration, writes a gated summary, and runs the\nagent's post-conversation workflow. Idempotent: ending an already-closed\nconversation returns 200 with the existing record (no re-close).\n\n``transferred`` counts as already-closed here. A handed-off conversation\nis finalized by ``close_handoff``, which sets that status and has already\nrun the post-conversation workflow; treating it as \"not completed\" would\nturn the widget's ordinary end-of-chat call into a 409, and treating it\nas endable would run the workflow a second time and overwrite the\nbot-phase duration with wall clock.","operationId":"end_text_conversation_core_conversations__conversation_id__end_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response End Text Conversation Core Conversations  Conversation Id  End Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/conversations/{conversation_id}/review":{"get":{"tags":["Conversations"],"summary":"Get Conversation Review","description":"The conversation's reviewer feedback, and the agent's current form.","operationId":"get_conversation_review_core_conversations__conversation_id__review_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationReview"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Conversations"],"summary":"Put Conversation Review","description":"Save a reviewer's answers to the agent's feedback form.\n\nReplaces any earlier review of this conversation. Stored with the\nquestions it answers, apart from the visitor's own feedback, which is\nleft as it is.","operationId":"put_conversation_review_core_conversations__conversation_id__review_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewerFeedback"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/conversations/{conversation_id}/feedback":{"post":{"tags":["Conversations"],"summary":"Submit Conversation Feedback","description":"Submit post-conversation feedback from the platform (authenticated).\n\nStaff-facing counterpart to the public widget feedback endpoint: lets an\nauthenticated user record the agent's configured feedback form for a\nconversation that has no widget of its own (e.g. a phone call). The\ncaller supplies ``widget_id`` — the widget whose form defines the\naccepted fields — which must belong to the same organization (enforced\nimplicitly by the org-scoped DB) and the same agent as the conversation.\nStored under ``custom_metadata.feedback_form``; unlike the public\nwidget path, resubmitting overwrites the existing feedback so\nreviewers can correct or extend it while auditing a transcript.","operationId":"submit_conversation_feedback_core_conversations__conversation_id__feedback_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationFeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackSubmitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/conversations/import":{"post":{"tags":["Conversations"],"summary":"Import Conversations","description":"Import historical conversations into the database (no dispatch side-effects).\n\nThis endpoint is intended for bulk CSV/ETL loads. It only inserts rows in the\n`conversations` table and stores transcripts in the `conversation` JSON field.","operationId":"import_conversations_core_conversations_import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationImportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationImportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/conversations/{conversation_id}/attachments":{"post":{"tags":["Conversation Attachments"],"summary":"Create Attachment","operationId":"create_attachment_core_conversations__conversation_id__attachments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttachmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttachmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Conversation Attachments"],"summary":"List Attachments","operationId":"list_attachments_core_conversations__conversation_id__attachments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Attachments Core Conversations  Conversation Id  Attachments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/attachments/{attachment_id}/complete":{"post":{"tags":["Conversation Attachments"],"summary":"Complete Attachment","operationId":"complete_attachment_core_conversations__conversation_id__attachments__attachment_id__complete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Complete Attachment Core Conversations  Conversation Id  Attachments  Attachment Id  Complete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/attachments/{attachment_id}":{"delete":{"tags":["Conversation Attachments"],"summary":"Delete Attachment","operationId":"delete_attachment_core_conversations__conversation_id__attachments__attachment_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Attachment Core Conversations  Conversation Id  Attachments  Attachment Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/attachments/{attachment_id}/url":{"get":{"tags":["Conversation Attachments"],"summary":"Attachment Url","operationId":"attachment_url_core_conversations__conversation_id__attachments__attachment_id__url_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Attachment Url Core Conversations  Conversation Id  Attachments  Attachment Id  Url Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/analytics/image-summary":{"get":{"tags":["Conversation Attachments"],"summary":"Image Analysis Summary","description":"Aggregate image-analysis stats for the Analytics 'Images' cards.\n\nServer-side via the ``image_analysis_summary`` RPC (SECURITY INVOKER → org-scoped by\nRLS). Returns the single aggregate row (see the RPC's RETURNS TABLE).","operationId":"image_analysis_summary_core_conversations_analytics_image_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Before"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Image Analysis Summary Core Conversations Analytics Image Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents":{"get":{"tags":["Agents"],"summary":"List Agents","description":"List agents.\n\n`offset`, or any of sort, dir, search, labels, deployed, channels,\ncreated_by, modified_by or last_activity_after/before, pages\napi.agents_index: it searches name, company name and phone number,\nfilters by labels and the other query parameters, and sets\nX-Total-Count on the first page (offset 0). Its page size defaults to\n100. Otherwise, and whenever `cursor` or `ids` is given, it is the\noriginal listing, which returns every matching agent when no limit is\ngiven.","operationId":"list_agents_core_agents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated agent ids, at most 50. Bypasses paging.","title":"Ids"},"description":"Comma-separated agent ids, at most 50. Bypasses paging."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Rows to skip. Not combinable with cursor.","title":"Offset"},"description":"Rows to skip. Not combinable with cursor."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Page size, 1-1000. Defaults to 100 whenever offset, sort, search or a newer filter is given. The original listing, selected by none of those or by cursor or ids, returns every matching agent when no limit is given.","title":"Limit"},"description":"Page size, 1-1000. Defaults to 100 whenever offset, sort, search or a newer filter is given. The original listing, selected by none of those or by cursor or ids, returns every matching agent when no limit is given."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Legacy created_at cursor. Selects the original listing, which ignores sort, offset and the newer filters.","title":"Cursor"},"description":"Legacy created_at cursor. Selects the original listing, which ignores sort, offset and the newer filters."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Matches the name, the company name, or phone number digits.","title":"Search"},"description":"Matches the name, the company name, or phone number digits."},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor or ids mode: name contains this. Otherwise an alias of search, used when search is absent.","title":"Name"},"description":"Cursor or ids mode: name contains this. Otherwise an alias of search, used when search is absent."},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of name, created_at, updated_at, created_by, modified_by, total_conversations, last_activity, deployed or label:<key>. Defaults to created_at.","title":"Sort"},"description":"One of name, created_at, updated_at, created_by, modified_by, total_conversations, last_activity, deployed or label:<key>. Defaults to created_at."},{"name":"dir","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"asc or desc. Defaults to desc.","title":"Dir"},"description":"asc or desc. Defaults to desc."},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object mapping a label key to a value, a list of values (any of them) or null (not set), e.g. {\"industry\": [\"Telecom\"]}.","title":"Labels"},"description":"JSON object mapping a label key to a value, a list of values (any of them) or null (not set), e.g. {\"industry\": [\"Telecom\"]}."},{"name":"deployed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deployed"}},{"name":"channels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated subset of voice, chat, demo. Matches agents with all of them.","title":"Channels"},"description":"Comma-separated subset of voice, chat, demo. Matches agents with all of them."},{"name":"created_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},{"name":"modified_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"last_activity_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity After"}},{"name":"last_activity_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity Before"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},{"name":"is_demo","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo"}},{"name":"metadata","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object the agent's metadata must contain.","title":"Metadata"},"description":"JSON object the agent's metadata must contain."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentResponse"},"title":"Response List Agents Core Agents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Agents"],"summary":"Create Agent","description":"Create an agent.","operationId":"create_agent_core_agents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/ids":{"get":{"tags":["Agents"],"summary":"List Agent Ids","description":"The ids of every agent matching the list's search and filters, in\nlist order, with the total. Select-all pages through this.","operationId":"list_agent_ids_core_agents_ids_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"1-1000.","default":1000,"title":"Limit"},"description":"1-1000."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Matches the name, the company name, or phone number digits.","title":"Search"},"description":"Matches the name, the company name, or phone number digits."},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor or ids mode: name contains this. Otherwise an alias of search, used when search is absent.","title":"Name"},"description":"Cursor or ids mode: name contains this. Otherwise an alias of search, used when search is absent."},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of name, created_at, updated_at, created_by, modified_by, total_conversations, last_activity, deployed or label:<key>. Defaults to created_at.","title":"Sort"},"description":"One of name, created_at, updated_at, created_by, modified_by, total_conversations, last_activity, deployed or label:<key>. Defaults to created_at."},{"name":"dir","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"asc or desc. Defaults to desc.","title":"Dir"},"description":"asc or desc. Defaults to desc."},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object mapping a label key to a value, a list of values (any of them) or null (not set), e.g. {\"industry\": [\"Telecom\"]}.","title":"Labels"},"description":"JSON object mapping a label key to a value, a list of values (any of them) or null (not set), e.g. {\"industry\": [\"Telecom\"]}."},{"name":"deployed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Deployed"}},{"name":"channels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated subset of voice, chat, demo. Matches agents with all of them.","title":"Channels"},"description":"Comma-separated subset of voice, chat, demo. Matches agents with all of them."},{"name":"created_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},{"name":"modified_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"last_activity_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity After"}},{"name":"last_activity_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity Before"}},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},{"name":"is_demo","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo"}},{"name":"metadata","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object the agent's metadata must contain.","title":"Metadata"},"description":"JSON object the agent's metadata must contain."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/labels":{"patch":{"tags":["Agents"],"summary":"Set Agent Labels","description":"Set, add, remove or clear labels on up to 500 agents at once.\n\n`set` replaces a key's value, `add` and `remove` edit a multi-valued\nkey's list, `clear` drops keys. Returns how many agents changed.","operationId":"set_agent_labels_core_agents_labels_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLabelsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLabelsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{id}":{"get":{"tags":["Agents"],"summary":"Get Agent","description":"Get a specific agent.","operationId":"get_agent_core_agents__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Agents"],"summary":"Update Agent","description":"Update an agent.","operationId":"update_agent_core_agents__id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Agents"],"summary":"Delete Agent","description":"Delete an agent.","operationId":"delete_agent_core_agents__id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{id}/clone":{"post":{"tags":["Agents"],"summary":"Clone Agent","description":"Clone an agent's configuration into a brand-new agent.\n\nCopies only the configuration JSON (plus the instruction-builder inputs\nthat produced it) from one version of the source agent — by default its\nlatest version, or ``request.version`` when given — into version 1 of a\nnew agent named ``request.name``. The clone starts unpublished and\nundeployed: phone numbers, widgets, SIP endpoints, inbound routing and\nconversations all stay with the source, since those bindings are\none-agent-only. Demo plumbing (``is_demo`` and the demo/creation\nmetadata) is dropped too — the clone is a regular agent.\n\nA failed config copy rolls the new agent back; see ``_roll_back_clone``\nfor why a shell must not survive.","operationId":"clone_agent_core_agents__id__clone_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCloneRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/{id}/activation":{"put":{"tags":["Agents"],"summary":"Set Agent Activation","description":"Activate or deactivate an agent.\n\nA trigger on agents logs the change, with who made it, to the\nactivation history. Setting the state the agent is already in is a\nno-op and logs nothing.","operationId":"set_agent_activation_core_agents__id__activation_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentActivationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Agent"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/agents/{id}/activation-events":{"get":{"tags":["Agents"],"summary":"List Agent Activation Events","description":"The agent's activation history in this organization, newest first.","operationId":"list_agent_activation_events_core_agents__id__activation_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentActivationEvent"},"title":"Response List Agent Activation Events Core Agents  Id  Activation Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{id}/feedback-form":{"get":{"tags":["Agents"],"summary":"Get Agent Feedback Form","description":"The form reviewers answer about this agent's conversations, as stored.","operationId":"get_agent_feedback_form_core_agents__id__feedback_form_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFeedbackFormResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Agents"],"summary":"Put Agent Feedback Form","description":"Set (or, with ``form: null``, remove) the agent's feedback form.\n\nApplies to every conversation at once, with no publish: it is not part\nof the versioned config. Saved reviews keep the questions they were\nanswered with.","operationId":"put_agent_feedback_form_core_agents__id__feedback_form_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFeedbackFormRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentFeedbackFormResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{id}/versions":{"get":{"tags":["Agents"],"summary":"List Agent Versions","description":"List all versions for a specific agent.","operationId":"list_agent_versions_core_agents__id__versions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},{"name":"published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentVersion"},"title":"Response List Agent Versions Core Agents  Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Agents"],"summary":"Create Agent Version","description":"Create a new version for an agent.","operationId":"create_agent_version_core_agents__id__versions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersion"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/{id}/version-summaries":{"get":{"tags":["Agents"],"summary":"List Agent Version Summaries","description":"List an agent's versions without their config, newest first.","operationId":"list_agent_version_summaries_core_agents__id__version_summaries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentVersionSummary"},"title":"Response List Agent Version Summaries Core Agents  Id  Version Summaries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{id}/versions/{version}":{"get":{"tags":["Agents"],"summary":"Get Agent Version","description":"Get a specific version of an agent.","operationId":"get_agent_version_core_agents__id__versions__version__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersion"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Agents"],"summary":"Update Agent Version","description":"Update a specific version of an agent.","operationId":"update_agent_version_core_agents__id__versions__version__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersion"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{id}/versions/{version}/revision":{"get":{"tags":["Agents"],"summary":"Get Agent Version Revision","description":"A version's revision (`updated_at`) and who made it, without its config.\n\nFor an editor checking whether its copy is still current: the config can\nrun to hundreds of kilobytes, and this is read on every tab focus.","operationId":"get_agent_version_revision_core_agents__id__versions__version__revision_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionRevision"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{id}/versions/compare":{"post":{"tags":["Agents"],"summary":"Compare Agent Versions","description":"Stream an LLM-generated summary of the differences between two versions.\n\nComputes a structured JSON diff of the two version configs and asks\nClaude Opus 4.8 to summarize them, streaming the markdown back to the\nclient as Server-Sent Events (``text/event-stream``).","operationId":"compare_agent_versions_core_agents__id__versions_compare_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionCompareRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/suggest-action-grid":{"post":{"tags":["Agents"],"summary":"Suggest Action Grid Endpoint","description":"Suggest a starting-message action grid from the agent's instructions.\n\nAsks Claude Sonnet, via structured outputs, to propose a small set of\nquick-action buttons. Stateless — operates on the instructions in the\nrequest body so it works on unsaved drafts.","operationId":"suggest_action_grid_endpoint_core_agents_suggest_action_grid_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestActionGridRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartingActionGrid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/{id}/versions/{version}/starting-message/audio":{"post":{"tags":["Agents"],"summary":"Generate Starting Message Audio","description":"Pre-generate static-greeting audio for a ``bot_initiates_static`` opening.\n\nSynthesizes ``request.text`` with the version's configured TTS voice and\nstores the MP3 in the recording S3 bucket under a content-addressed key\n(org + a fingerprint over the text + full TTS config). Returns a\nshort-lived presigned URL for immediate builder playback. The builder\nthen sets ``starting_message.pregenerated_greeting_audio = true``; at\nruntime the agent recomputes the same fingerprint from the rendered text\n+ TTS config and plays the stored file instead of synthesizing TTS.\n\nPre-generation is only supported for non-templated text: the runtime\nfingerprint is over the *rendered* greeting, so a Jinja greeting would\nnever match a stored object.\n\n``text`` comes from the request so it works on unsaved drafts; the voice\nis read from the saved version's primary TTS model.","operationId":"generate_starting_message_audio_core_agents__id__versions__version__starting_message_audio_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GreetingAudioRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GreetingAudioResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/agents/{id}/versions/{version}/starting-message/audio/playback-url":{"post":{"tags":["Agents"],"summary":"Resolve Greeting Audio Playback Url","description":"Mint a short-lived presigned GET URL to re-preview greeting audio.\n\nRecomputes the content fingerprint from ``request.text`` + the version's\nTTS config (the same way the runtime does), then presigns the stored\nobject. Returns 404 if no recording exists for that exact text+voice\n(e.g. the text was edited but not regenerated). The bucket and org come\nfrom trusted server state, so there is no caller-supplied location.\n\nFor an agent with a randomized voice pool, *every* pool voice must have\na recording before this reports success: a partial set still plays, but\nthe calls that draw a missing voice fall back to live TTS, and the\nbuilder saying \"pre-generated\" while some calls are not would be the\nlie this endpoint exists to prevent. One presigned URL is returned per\npool voice so each can be auditioned.","operationId":"resolve_greeting_audio_playback_url_core_agents__id__versions__version__starting_message_audio_playback_url_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"string","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GreetingAudioRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GreetingAudioResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/{id}/versions/{version}/publish":{"post":{"tags":["Agents"],"summary":"Publish Agent Version","description":"Publish and deploy a specific agent version to phone numbers.","operationId":"publish_agent_version_core_agents__id__versions__version__publish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentPublishRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumber"},"title":"Response Publish Agent Version Core Agents  Id  Versions  Version  Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/agents/{id}/deploy-as-sip":{"post":{"tags":["Agents"],"summary":"Deploy Agent As Sip Endpoint","description":"Expose the agent as sip:<agent-uuid>@<LIVEKIT_SIP_URI>.","operationId":"deploy_agent_as_sip_endpoint_core_agents__id__deploy_as_sip_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSipEndpointResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["Agents"],"summary":"Undeploy Agent As Sip Endpoint","description":"Remove the agent's SIP endpoint from the org's Agent SIP Trunk.","operationId":"undeploy_agent_as_sip_endpoint_core_agents__id__deploy_as_sip_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/agents/{id}/assist/improve-instructions":{"post":{"tags":["Agents"],"summary":"Improve Instructions Endpoint","description":"Start a per-agent Improve workflow (terminating any in-flight one) and\nreturn immediately. Poll GET .../assist/improve-instructions/result.","operationId":"improve_instructions_endpoint_core_agents__id__assist_improve_instructions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructionAssistRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/{id}/assist/improve-instructions/result":{"get":{"tags":["Agents"],"summary":"Improve Instructions Result Endpoint","description":"Poll the latest Improve run for this agent.","operationId":"improve_instructions_result_endpoint_core_agents__id__assist_improve_instructions_result_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{id}/assist/improve-instructions/resolve":{"post":{"tags":["Agents"],"summary":"Improve Instructions Resolve Endpoint","description":"Signal the latest Improve run that the user resolved the suggestion\n(Accepted/Rejected/closed) so it completes and is never shown again.","operationId":"improve_instructions_resolve_endpoint_core_agents__id__assist_improve_instructions_resolve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{id}/assist/audit-instructions":{"post":{"tags":["Agents"],"summary":"Audit Instructions Endpoint","description":"Start a per-agent Audit workflow (terminating any in-flight one) and\nreturn immediately. Poll GET .../assist/audit-instructions/result.","operationId":"audit_instructions_endpoint_core_agents__id__assist_audit_instructions_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstructionAssistRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/{id}/assist/audit-instructions/result":{"get":{"tags":["Agents"],"summary":"Audit Instructions Result Endpoint","description":"Poll the latest Audit run for this agent.","operationId":"audit_instructions_result_endpoint_core_agents__id__assist_audit_instructions_result_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/create-from-website":{"post":{"tags":["Agents"],"summary":"Create Agent From Website","description":"Start the CreateAgentViaWebsite Temporal workflow.","operationId":"create_agent_from_website_core_agents_create_from_website_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentFromWebsiteRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/create-demo":{"post":{"tags":["Agents"],"summary":"Create Demo Agent","description":"Start the CreateDemo Temporal workflow.","operationId":"create_demo_agent_core_agents_create_demo_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDemoRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/create-demo-batch":{"post":{"tags":["Agents"],"summary":"Create Demo Agent Batch","description":"Start a BatchCreateDemoWorkflow for multiple company websites.","operationId":"create_demo_agent_batch_core_agents_create_demo_batch_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCreateDemoRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/agents/workflows/{workflow_id}/status":{"get":{"tags":["Agents"],"summary":"Get Agent Workflow Status","description":"Query the status of a CreateAgentViaWebsite, CreateDemo, or BatchCreateDemo workflow.","operationId":"get_agent_workflow_status_core_agents_workflows__workflow_id__status_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/managed-accounts":{"get":{"tags":["Managed Accounts"],"summary":"List Managed Accounts","description":"List all managed accounts.","operationId":"list_managed_accounts_core_managed_accounts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProviderType"},{"type":"null"}],"title":"Type"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ManagedAccount_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Managed Accounts"],"summary":"Create Managed Account","description":"Create a new managed account.","operationId":"create_managed_account_core_managed_accounts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccountCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccount"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/managed-accounts/{managed_account_id}":{"get":{"tags":["Managed Accounts"],"summary":"Get Managed Account","description":"Get a specific managed account.","operationId":"get_managed_account_core_managed_accounts__managed_account_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccount"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Managed Accounts"],"summary":"Update Managed Account","description":"Update a specific managed account.","operationId":"update_managed_account_core_managed_accounts__managed_account_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccountUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccount"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Managed Accounts"],"summary":"Delete Managed Account","description":"Delete a specific managed account.","operationId":"delete_managed_account_core_managed_accounts__managed_account_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/managed-accounts/{managed_account_id}/search-numbers":{"get":{"tags":["Managed Accounts"],"summary":"Search Phone Numbers","description":"Search for phone numbers.","operationId":"search_phone_numbers_core_managed_accounts__managed_account_id__search_numbers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}},{"name":"area_code","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Area Code"}},{"name":"sms_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sms Enabled"}},{"name":"mms_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Mms Enabled"}},{"name":"voice_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Voice Enabled"}},{"name":"in_postal_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Postal Code"}},{"name":"in_region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"In Region"}},{"name":"country_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"US","title":"Country Code"}},{"name":"exclude_address_required","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exclude Address Required"}},{"name":"phone_number_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TelephonyIntegrationPhoneNumberSearchType","default":"local"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TelephonyIntegrationPhoneNumberSchema"},"title":"Response Search Phone Numbers Core Managed Accounts  Managed Account Id  Search Numbers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/managed-accounts/{managed_account_id}/purchase-number":{"post":{"tags":["Managed Accounts"],"summary":"Purchase Phone Number","description":"Purchase a phone number.","operationId":"purchase_phone_number_core_managed_accounts__managed_account_id__purchase_number_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagedAccountPhoneNumberPurchaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneNumber"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/managed-accounts/{managed_account_id}/organization-shared-trunk":{"post":{"tags":["Managed Accounts"],"summary":"Create Organization Shared Trunk","description":"Create a shared trunk for an organization.","operationId":"create_organization_shared_trunk_core_managed_accounts__managed_account_id__organization_shared_trunk_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"managed_account_id","in":"path","required":true,"schema":{"type":"string","title":"Managed Account Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSharedTrunkForOrganizationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Trunk"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/dashboard":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard","operationId":"get_dashboard_core_dashboard_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"compare_to","in":"query","required":false,"schema":{"type":"string","description":"previous_period (default) or none.","default":"previous_period","title":"Compare To"},"description":"previous_period (default) or none."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days.","title":"Period"},"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days."},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted.","title":"Timezone"},"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted."},{"name":"exclude_duration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false.","title":"Exclude Duration"},"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false."},{"name":"exclude_turns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text).","title":"Exclude Turns"},"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text)."},{"name":"exclude_callers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only.","title":"Exclude Callers"},"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only."},{"name":"keep_transferred","in":"query","required":false,"schema":{"type":"boolean","description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short.","default":true,"title":"Keep Transferred"},"description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/aggregate":{"post":{"tags":["Dashboard"],"summary":"Aggregate Conversations","description":"Group conversations by any combination of the supported dimensions.\n\nPOST rather than GET because the filter set is a nested object with a status\nlist; encoding that in a query string buys nothing and costs a parser.","operationId":"aggregate_conversations_core_dashboard_aggregate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationAggregateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConversationAggregateBucket"},"title":"Response Aggregate Conversations Core Dashboard Aggregate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/dashboard/funnel":{"get":{"tags":["Dashboard"],"summary":"Conversation Funnel","description":"initiated → connected → engaged → retained → resolved.\n\nEach step ANDs the ones above it, so the series is monotonic and renders as\na funnel. Note `resolved` therefore means \"engaged and completed\", not\n\"completed\" — the absolute completed count is in status_counts on\nGET /core/dashboard.","operationId":"conversation_funnel_core_dashboard_funnel_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days.","title":"Period"},"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days."},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted.","title":"Timezone"},"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted."},{"name":"exclude_duration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false.","title":"Exclude Duration"},"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false."},{"name":"exclude_turns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text).","title":"Exclude Turns"},"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text)."},{"name":"exclude_callers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only.","title":"Exclude Callers"},"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only."},{"name":"keep_transferred","in":"query","required":false,"schema":{"type":"boolean","description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short.","default":true,"title":"Keep Transferred"},"description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConversationFunnelStep"},"title":"Response Conversation Funnel Core Dashboard Funnel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/agent-health":{"get":{"tags":["Dashboard"],"summary":"Agent Health","description":"Per-agent volume, completion, containment and AHT for the window.\n\nA sibling of GET /core/agents rather than an `include=health` parameter on\nit: the roster and its health have different cache lifetimes (the roster\nchanges when someone edits an agent, the health numbers change constantly),\nand keeping them separate lets the client refetch one without the other.","operationId":"agent_health_core_dashboard_agent_health_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated agent ids. Omit for every agent.","title":"Agent Ids"},"description":"Comma-separated agent ids. Omit for every agent."},{"name":"labels","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON label filter, as on GET /core/agents: only agents whose labels match, e.g. {\"industry\": [\"Telecom\"]}.","title":"Labels"},"description":"JSON label filter, as on GET /core/agents: only agents whose labels match, e.g. {\"industry\": [\"Telecom\"]}."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days.","title":"Period"},"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days."},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted.","title":"Timezone"},"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted."},{"name":"exclude_duration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false.","title":"Exclude Duration"},"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false."},{"name":"exclude_turns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text).","title":"Exclude Turns"},"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text)."},{"name":"exclude_callers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only.","title":"Exclude Callers"},"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only."},{"name":"keep_transferred","in":"query","required":false,"schema":{"type":"boolean","description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short.","default":true,"title":"Keep Transferred"},"description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentHealthItem"},"title":"Response Agent Health Core Dashboard Agent Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/layout":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard Layout","operationId":"get_dashboard_layout_core_dashboard_layout_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardLayoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Dashboard"],"summary":"Put Dashboard Layout","operationId":"put_dashboard_layout_core_dashboard_layout_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardLayoutUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardLayoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/dashboard/entity-trends":{"get":{"tags":["Dashboard"],"summary":"Entity Trends","description":"Per-day created and cumulative counts for agents and phone numbers.","operationId":"entity_trends_core_dashboard_entity_trends_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone the day buckets are computed in. UTC if omitted.","title":"Timezone"},"description":"IANA zone the day buckets are computed in. UTC if omitted."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityDailyCount"},"title":"Response Entity Trends Core Dashboard Entity Trends Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/demo-summary":{"get":{"tags":["Dashboard"],"summary":"Demo Summary","description":"Demo totals by status and interest band.\n\nUnwindowed on purpose: the interest bands are computed from LIFETIME\nengagement totals, which is what the browser version did. See the migration.","operationId":"demo_summary_core_dashboard_demo_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/demo-interest":{"get":{"tags":["Dashboard"],"summary":"Demo Interest","description":"agent_id -> status, interest band.\n\nOne row per demo, so the caller can attribute the per-day conversation\ncounts it already has (from /dashboard/aggregate grouped by day+agent) to\nthe right series without a second aggregate over conversations.","operationId":"demo_interest_core_dashboard_demo_interest_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DemoInterest"},"title":"Response Demo Interest Core Dashboard Demo Interest Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/workflow-runs":{"get":{"tags":["Dashboard"],"summary":"Workflow Runs","description":"Org-wide workflow executions per day, with failures separated.","operationId":"workflow_runs_core_dashboard_workflow_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowRunDay"},"title":"Response Workflow Runs Core Dashboard Workflow Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/live":{"get":{"tags":["Dashboard"],"summary":"Dashboard Live","description":"The Live view's status strip.\n\nIts own window, fixed at LIVE_LOOKBACK, because Live answers \"what is\nhappening\" and the page's period filter answers \"how did the period go\".\nWiring the strip to the filter would let a reader select \"last 90 days\" and\nread the result as a count of calls in progress.\n\nDeliberately absent: average wait. Nothing records when a caller started\nwaiting — there is no queue-entry timestamp on the conversation — so the\nfigure the design asks for cannot be measured, and an invented one would be\nread as an SLA.","operationId":"dashboard_live_core_dashboard_live_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone that 'today' and 'yesterday' are cut in.","title":"Timezone"},"description":"IANA zone that 'today' and 'yesterday' are cut in."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardLive"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/pivot":{"get":{"tags":["Dashboard"],"summary":"Dashboard Pivot","description":"Per-group volume, share, resolution, containment and handle time.\n\nOne RPC call grouped by (dimension, status) answers all five columns. The\nrates are computed HERE rather than in the browser for a reason that is not\ntidiness: resolution and containment have different denominators —\ncontainment divides by completed+transferred, not by everything — and a\nclient that reconstructs them from bucket counts will eventually pick the\nobvious denominator and be quietly wrong.","operationId":"dashboard_pivot_core_dashboard_pivot_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"group_by","in":"query","required":false,"schema":{"type":"string","description":"channel | direction | agent | label:<key>, where <key> is a single-valued label key; agents without it group as Unlabelled.","default":"channel","title":"Group By"},"description":"channel | direction | agent | label:<key>, where <key> is a single-valued label key; agents without it group as Unlabelled."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days.","title":"Period"},"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days."},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted.","title":"Timezone"},"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted."},{"name":"exclude_duration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false.","title":"Exclude Duration"},"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false."},{"name":"exclude_turns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text).","title":"Exclude Turns"},"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text)."},{"name":"exclude_callers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only.","title":"Exclude Callers"},"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only."},{"name":"keep_transferred","in":"query","required":false,"schema":{"type":"boolean","description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short.","default":true,"title":"Keep Transferred"},"description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PivotRow"},"title":"Response Dashboard Pivot Core Dashboard Pivot Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/dashboard/brief":{"post":{"tags":["Dashboard"],"summary":"Dashboard Brief","description":"Narrate the window's rollups with Claude.\n\nThe measurements are gathered here and handed to the model whole; the model\ncontributes prose, never arithmetic and never a cause. See\nservices/dashboard_brief.py for why the prompt forbids explaining WHY a\nnumber moved.","operationId":"dashboard_brief_core_dashboard_brief_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","description":"Bypass the cache — what Regenerate sends.","default":false,"title":"Refresh"},"description":"Bypass the cache — what Regenerate sends."},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days.","title":"Period"},"description":"Named window: today, mtd, qtd, ytd, or a count like 24h / 7d / 30d / 90d. Ignored when created_after is given. Defaults to 30 days."},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"timezone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted.","title":"Timezone"},"description":"IANA zone, e.g. America/New_York. Day buckets and named periods follow it. UTC if omitted."},{"name":"exclude_duration","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false.","title":"Exclude Duration"},"description":"Leave out conversations by duration in seconds: comma-separated op:value rules, op lte or gte (e.g. lte:10,gte:3600). Never removes one without a duration, nor a transferred one unless keep_transferred is false."},{"name":"exclude_turns","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text).","title":"Exclude Turns"},"description":"Leave out conversations by caller turns, as exclude_duration (e.g. lte:0). Never removes one without a turn count (email, text)."},{"name":"exclude_callers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only.","title":"Exclude Callers"},"description":"Comma-separated caller numbers in international format to leave out; matches telephone conversations only."},{"name":"keep_transferred","in":"query","required":false,"schema":{"type":"boolean","description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short.","default":true,"title":"Keep Transferred"},"description":"False applies exclude_duration and exclude_turns to transferred conversations too. By default a transferred call is always counted, however short."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBrief"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/label-keys":{"get":{"tags":["Labels"],"summary":"List Label Keys","description":"The organisation's label keys, ordered by name.","operationId":"list_label_keys_core_label_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"in_use_for","in":"query","required":false,"schema":{"anyOf":[{"enum":["agent","workflow"],"type":"string"},{"type":"null"}],"description":"Only keys at least one agent (or workflow) currently uses.","title":"In Use For"},"description":"Only keys at least one agent (or workflow) currently uses."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabelKeyResponse"},"title":"Response List Label Keys Core Label Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Labels"],"summary":"Create Label Key","description":"Create a key. A key cannot be renamed afterwards; its name can.","operationId":"create_label_key_core_label_keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelKeyCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/label-keys/{key_id}/values":{"get":{"tags":["Labels"],"summary":"Label Value Usage","description":"Every value in use under this key with its agent and workflow counts,\nplus the key's curated values nobody uses yet (at zero).","operationId":"label_value_usage_core_label_keys__key_id__values_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LabelValueUsage"},"title":"Response Label Value Usage Core Label Keys  Key Id  Values Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Labels"],"summary":"Add Label Value","description":"Append a value to a curated key's list. A no-op when the value is\nalready listed or the key accepts any value.","operationId":"add_label_value_core_label_keys__key_id__values_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelValueRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/label-keys/{key_id}":{"patch":{"tags":["Labels"],"summary":"Update Label Key","description":"Change a key's name, values list or multi flag. The key itself is fixed.\n\n`multi` can change only while no agent or workflow uses the key: turning a\nstring into a list (or back) under live data is a rewrite nobody asked for.","operationId":"update_label_key_core_label_keys__key_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Remove values in use that the new values list no longer allows, from every agent and workflow, instead of answering 409.","default":false,"title":"Force"},"description":"Remove values in use that the new values list no longer allows, from every agent and workflow, instead of answering 409."},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelKeyUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Labels"],"summary":"Delete Label Key","description":"Delete a key, stripping it from every agent, workflow and saved view.\nReturns how many of each changed.","operationId":"delete_label_key_core_label_keys__key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelChangeCounts"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/label-keys/{key_id}/rename-value":{"post":{"tags":["Labels"],"summary":"Rename Label Value","description":"Rename a value (or remove it, with `to: null`) on the key, every agent\nand workflow holding it, and every saved view filtering on it. Renaming\nonto a value that already exists merges the two.","operationId":"rename_label_value_core_label_keys__key_id__rename_value_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelRenameRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelChangeCounts"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/saved-views":{"get":{"tags":["Saved views"],"summary":"List Saved Views","description":"The organisation's views for this list, then the caller's own.","operationId":"list_saved_views_core_saved_views_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"entity_type","in":"query","required":true,"schema":{"enum":["agent","workflow","dashboard","conversation"],"type":"string","title":"Entity Type"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SavedViewResponse"},"title":"Response List Saved Views Core Saved Views Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Saved views"],"summary":"Create Saved View","operationId":"create_saved_view_core_saved_views_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/saved-views/{view_id}":{"patch":{"tags":["Saved views"],"summary":"Update Saved View","description":"Rename a view, replace its state, or share a personal view with the\norganisation (`organization: true`). An organisation view is never made\npersonal again.","operationId":"update_saved_view_core_saved_views__view_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Saved views"],"summary":"Delete Saved View","operationId":"delete_saved_view_core_saved_views__view_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/labels/suggest":{"post":{"tags":["Labels"],"summary":"Suggest Labels","description":"Propose a value of a curated label for each agent or workflow.\n\nNever writes. Context per entity is its name, description, company name\nand URL, and for agents the start of the published instructions.","operationId":"suggest_labels_core_labels_suggest_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelSuggestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelSuggestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/metrics":{"get":{"tags":["Metrics"],"summary":"List Metrics","description":"List all metrics (with their active criteria).","operationId":"list_metrics_core_metrics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"}},{"name":"metric_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Kind"}},{"name":"modality","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modality"}},{"name":"scored_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scored By"}},{"name":"certified","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Certified"}},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Metrics"],"summary":"Create Metric","description":"Create a metric with its atomic criteria (FR-A1/A2).","operationId":"create_metric_core_metrics_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/metrics/{metric_id}":{"get":{"tags":["Metrics"],"summary":"Get Metric","description":"Get a specific metric with its criteria.","operationId":"get_metric_core_metrics__metric_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Metrics"],"summary":"Update Metric","description":"Update a metric; providing `criteria` replaces the criteria set and\nbumps definition_version (PRD §7-I versioning).","operationId":"update_metric_core_metrics__metric_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/metrics/{metric_id}/lint":{"post":{"tags":["Metrics"],"summary":"Lint Metric","description":"Abstractness lint (FR-C1..C6): static pass always; LLM\nname-the-evidence + suggestions when llm=true (default); empirical\nself-consistency over sample conversations when requested.\nWarns and demonstrates — never hard-blocks (FR-C5).","operationId":"lint_metric_core_metrics__metric_id__lint_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricLintRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/metrics/{metric_id}/preview":{"post":{"tags":["Metrics"],"summary":"Preview Metric","description":"Test-as-you-author (FR-D6): run the judge over sample conversations\n(no persistence) and show verdicts + evidence + self-consistency.","operationId":"preview_metric_core_metrics__metric_id__preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricPreviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/metrics/{metric_id}/agreement":{"get":{"tags":["Metrics"],"summary":"Get Metric Agreement","description":"Gate 1 / Gate 2 / proxy agreement + scored_by status (FR-E3/F5).","operationId":"get_metric_agreement_core_metrics__metric_id__agreement_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/metrics/{metric_id}/recompute-status":{"post":{"tags":["Metrics"],"summary":"Recompute Metric Status","description":"Re-derive scored_by from measured evidence (FR-F2); graduation to\n`auto` requires confirm_graduation (FR-F4); manual override is\nrecorded + flagged, never silent (FR-F6).","operationId":"recompute_metric_status_core_metrics__metric_id__recompute_status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/metrics/{metric_id}/suggest-precondition-atom":{"post":{"tags":["Metrics"],"summary":"Suggest Precondition Atom Endpoint","description":"AI extract-to-atom: classify a criterion's free-text na_rule and\npropose a deterministic predicate or an observable atom to make the\nprecondition reproducible. The author applies the proposal.","operationId":"suggest_precondition_atom_endpoint_core_metrics__metric_id__suggest_precondition_atom_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"metric_id","in":"path","required":true,"schema":{"type":"string","title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestAtomRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/predicates/compile":{"post":{"tags":["Predicates"],"summary":"Compile Predicate Endpoint","description":"Compile a predicate from natural language, or re-describe + validate\nan edited JSONLogic predicate (FR-A4). Returns {logic, description,\nerrors}; stateless (no metric needed, so it works while authoring).","operationId":"compile_predicate_endpoint_core_predicates_compile_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompilePredicateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/evaluations":{"get":{"tags":["Evaluations"],"summary":"List Evaluations","description":"List all evaluations.","operationId":"list_evaluations_core_evaluations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"archived","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Archived"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Evaluation"},"title":"Response List Evaluations Core Evaluations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Evaluations"],"summary":"Create Evaluation","description":"Create an evaluation (a bundle of metrics + judge config).","operationId":"create_evaluation_core_evaluations_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/evaluations/metric-summary":{"get":{"tags":["Evaluations"],"summary":"Evaluation Metric Summary","description":"Per-metric compliance aggregate for the analytics overview.\n\nServer-side via the ``evaluation_metric_summary`` RPC (SECURITY INVOKER →\norg-scoped by RLS), so it is exact over the full dataset — no client-side\n2,000-verdict truncation — and filterable by evaluation / assessor / date.","operationId":"evaluation_metric_summary_core_evaluations_metric_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Id"}},{"name":"assessor_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["ai","human"],"type":"string"},{"type":"null"}],"title":"Assessor Type"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created Before"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/evaluations/{evaluation_id}":{"get":{"tags":["Evaluations"],"summary":"Get Evaluation","description":"Get a specific evaluation.","operationId":"get_evaluation_core_evaluations__evaluation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Evaluations"],"summary":"Update Evaluation","description":"Update an evaluation.","operationId":"update_evaluation_core_evaluations__evaluation_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Evaluation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/evaluations/{evaluation_id}/agreement":{"get":{"tags":["Evaluations"],"summary":"Evaluation Ai Human Agreement","description":"Ad-hoc AI-vs-human agreement over this evaluation's EXISTING runs.\n\nPairs each conversation's AI verdict against its human verdict per\ncriterion and returns Cohen's κ + percent agreement — the same κ math as\na calibration set's Gate 2, computed on-the-fly over the runs that\nalready exist (no calibration set required).\n\nDELIBERATE divergence from a formal calibration set: this takes the\nsingle MOST-RECENT run per (conversation, assessor) rather than pooling\nevery assignment into a consensus, so the two can differ when a\nconversation has multiple runs by the same assessor. `na` outcomes are\nexcluded from κ (an N/A is \"doesn't apply\", not a disagreement); for a\nrigorous, multi-rater, applicability-aware measure, use a calibration set.","operationId":"evaluation_ai_human_agreement_core_evaluations__evaluation_id__agreement_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/evaluation-runs":{"get":{"tags":["Evaluation Runs"],"summary":"List Evaluation Runs","description":"List all evaluation runs.","operationId":"list_evaluation_runs_core_evaluation_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Id"}},{"name":"conversation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"assessor_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["ai","human"],"type":"string"},{"type":"null"}],"title":"Assessor Type"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EvaluationRun"},"title":"Response List Evaluation Runs Core Evaluation Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Evaluation Runs"],"summary":"Create Evaluation Run","description":"Trigger a new evaluation run via Temporal workflow.","operationId":"create_evaluation_run_core_evaluation_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationRunCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/evaluation-runs/{run_id}":{"get":{"tags":["Evaluation Runs"],"summary":"Get Evaluation Run","description":"Get a specific evaluation run with its per-criterion results.","operationId":"get_evaluation_run_core_evaluation_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/evaluation-runs/{run_id}/confirm":{"post":{"tags":["Evaluation Runs"],"summary":"Confirm Evaluation Run","description":"Human confirm/correct over AI pre-fill (FR-H2/H8).\n\nConfirming an AI run creates a new completed human run carrying the\nsubmitted atoms; confirming a pending human run (e.g. a calibration\nassignment) fills it in place. The tagger's Logto user id is recorded\nas assessor_id. Flips vs. the AI run are derivable by diffing runs —\nthey are the AI↔human disagreement data feeding calibration.","operationId":"confirm_evaluation_run_core_evaluation_runs__run_id__confirm_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/evaluation-runs/upload-url":{"post":{"tags":["Evaluation Runs"],"summary":"Get Audio Upload Url","description":"Generate a presigned S3 URL for uploading an audio file for assessment.","operationId":"get_audio_upload_url_core_evaluation_runs_upload_url_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioUploadUrlRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioUploadUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/criterion-results":{"get":{"tags":["Criterion Results"],"summary":"List Criterion Results","description":"List criterion results (per-atom verdicts with evidence quotes).\n\nPass ``desc=true`` so a ``limit`` returns the most recent verdicts\n(the analytics overview) rather than the oldest.","operationId":"list_criterion_results_core_criterion_results_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"evaluation_run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Run Id"}},{"name":"criterion_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criterion Id"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"enum":["true","false","abstain","na"],"type":"string"},{"type":"null"}],"title":"Outcome"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"desc","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Desc"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CriterionResult"},"title":"Response List Criterion Results Core Criterion Results Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/calibration-sets":{"get":{"tags":["Calibration"],"summary":"List Calibration Sets","description":"List calibration sets.","operationId":"list_calibration_sets_core_calibration_sets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Calibration"],"summary":"Create Calibration Set","description":"Create a calibration set targeting a metric or an evaluation (FR-E1).","operationId":"create_calibration_set_core_calibration_sets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationSetCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/calibration-sets/{set_id}":{"get":{"tags":["Calibration"],"summary":"Get Calibration Set","description":"Get a calibration set with its items and assignments.","operationId":"get_calibration_set_core_calibration_sets__set_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/calibration-sets/{set_id}/items":{"post":{"tags":["Calibration"],"summary":"Add Calibration Items","description":"Add conversations to a calibration set (blocked once frozen).","operationId":"add_calibration_items_core_calibration_sets__set_id__items_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationItemsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/calibration-sets/{set_id}/freeze":{"post":{"tags":["Calibration"],"summary":"Freeze Calibration Set","description":"Freeze the set so agreement runs over an immutable population.","operationId":"freeze_calibration_set_core_calibration_sets__set_id__freeze_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/calibration-sets/{set_id}/assignments":{"post":{"tags":["Calibration"],"summary":"Assign Calibration Raters","description":"Assign raters across the set (FR-E2/E7/E8): one assignment per\n(rater, conversation). AI raters get triggered evaluation runs; human\nraters get pending runs the grading UI fills via /confirm. Human\nrater_id defaults to the caller's Logto user id (FR-H8).","operationId":"assign_calibration_raters_core_calibration_sets__set_id__assignments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalibrationAssignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/calibration-sets/{set_id}/compute-agreement":{"post":{"tags":["Calibration"],"summary":"Compute Agreement","description":"Compute & store Gate 1 / Gate 2 / proxy agreement (FR-E3/E9).\n\nInline for bounded sets (≤500 conversations, §12); the service is\npure so it can move behind a Temporal activity unchanged.","operationId":"compute_agreement_core_calibration_sets__set_id__compute_agreement_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/calibration-sets/{set_id}/agreement":{"get":{"tags":["Calibration"],"summary":"Get Calibration Agreement","description":"Stored agreement rows for the set.","operationId":"get_calibration_agreement_core_calibration_sets__set_id__agreement_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/calibration-sets/{set_id}/disagreements":{"get":{"tags":["Calibration"],"summary":"Get Calibration Disagreements","description":"The disagreement queue (FR-E4): every split (criterion, conversation)\nwith each rater's verdict, contested flag, and clustered-vs-idiosyncratic\nhint. Each resolves to a rubric fix or a grader error.","operationId":"get_calibration_disagreements_core_calibration_sets__set_id__disagreements_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/calibration-sets/{set_id}/golden-labels":{"get":{"tags":["Calibration"],"summary":"Get Golden Labels","description":"Golden labels (agreed ground truth) for the set (FR-E5).","operationId":"get_golden_labels_core_calibration_sets__set_id__golden_labels_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Calibration"],"summary":"Upsert Golden Labels","description":"Upsert golden labels — the regression gate for new judge versions.","operationId":"upsert_golden_labels_core_calibration_sets__set_id__golden_labels_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"set_id","in":"path","required":true,"schema":{"type":"string","title":"Set Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoldenLabelsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/anchor-examples":{"get":{"tags":["Anchor Examples"],"summary":"List Anchor Examples","description":"List anchors for a criterion or all of a metric's criteria.","operationId":"list_anchor_examples_core_anchor_examples_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"criterion_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Criterion Id"}},{"name":"metric_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Anchor Examples"],"summary":"Create Anchor Example","description":"Attach a real conversation as a pass/fail/borderline anchor.","operationId":"create_anchor_example_core_anchor_examples_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchorExampleCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/anchor-examples/{anchor_id}":{"delete":{"tags":["Anchor Examples"],"summary":"Delete Anchor Example","description":"Remove an anchor.","operationId":"delete_anchor_example_core_anchor_examples__anchor_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"anchor_id","in":"path","required":true,"schema":{"type":"string","title":"Anchor Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agent-assist/{phone_number}":{"get":{"tags":["Agent Assist"],"summary":"Get Agent Assist","description":"Get agent assist portal data for the latest conversation with a phone number.","operationId":"get_agent_assist_core_agent_assist__phone_number__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"phone_number","in":"path","required":true,"schema":{"type":"string","title":"Phone Number"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentAssistPortal"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/screen-pop/{caller}":{"get":{"tags":["Agent Assist"],"summary":"Get Screen Pop","operationId":"get_screen_pop_core_screen_pop__caller__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"caller","in":"path","required":true,"schema":{"type":"string","title":"Caller"}},{"name":"target","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Target"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScreenPopResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/web-widgets":{"get":{"tags":["Web Widgets"],"summary":"List Web Widgets","description":"List all web widgets.","operationId":"list_web_widgets_core_web_widgets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ids"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"agent_version_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"}},{"name":"published","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"}},{"name":"preset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"}},{"name":"created_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"}},{"name":"created_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"}},{"name":"updated_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated After"}},{"name":"updated_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated Before"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebWidget"},"title":"Response List Web Widgets Core Web Widgets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Web Widgets"],"summary":"Create Web Widget","description":"Create a web widget.","operationId":"create_web_widget_core_web_widgets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidget"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/web-widgets/{id}":{"get":{"tags":["Web Widgets"],"summary":"Get Web Widget","description":"Get a specific web widget.","operationId":"get_web_widget_core_web_widgets__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidget"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Web Widgets"],"summary":"Update Web Widget","description":"Update a web widget.","operationId":"update_web_widget_core_web_widgets__id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidget"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Web Widgets"],"summary":"Delete Web Widget","description":"Delete a web widget.","operationId":"delete_web_widget_core_web_widgets__id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/web-widgets/{id}/auto-brand":{"post":{"tags":["Web Widgets"],"summary":"Auto Brand Web Widget","description":"Fetch brand data for a domain via brand.dev API.","operationId":"auto_brand_web_widget_core_web_widgets__id__auto_brand_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetAutoBrandRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/web-widgets/translate":{"post":{"tags":["Web Widgets"],"summary":"Translate Web Widget Texts","description":"Translate a widget's texts into one of its languages with Claude.\n\nStateless, so it works on unsaved edits and on presets. A text whose\ntranslation would change its ``{{placeholders}}`` is left out.","operationId":"translate_web_widget_texts_core_web_widgets_translate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetTranslateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetTranslateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/web-widget-presets":{"get":{"tags":["Web Widget Presets"],"summary":"List Web Widget Presets","operationId":"list_web_widget_presets_core_web_widget_presets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebWidgetPresetSummary"},"title":"Response List Web Widget Presets Core Web Widget Presets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Web Widget Presets"],"summary":"Create Web Widget Preset","operationId":"create_web_widget_preset_core_web_widget_presets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPreset"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/web-widget-presets/{id}":{"get":{"tags":["Web Widget Presets"],"summary":"Get Web Widget Preset","operationId":"get_web_widget_preset_core_web_widget_presets__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Web Widget Presets"],"summary":"Update Web Widget Preset","operationId":"update_web_widget_preset_core_web_widget_presets__id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPreset"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Web Widget Presets"],"summary":"Delete Web Widget Preset","description":"Delete a preset. Widgets that follow it keep its values as their own.","operationId":"delete_web_widget_preset_core_web_widget_presets__id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/web-widget-presets/{id}/apply":{"post":{"tags":["Web Widget Presets"],"summary":"Apply Preset To Web Widgets","description":"Make widgets follow this preset's `sections`, or copy them in once.\n\nWith `dry_run`, nothing is written and the response says which sections\nwould change on each widget, for the confirmation step.","operationId":"apply_preset_to_web_widgets_core_web_widget_presets__id__apply_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetApplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetApplyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/web-widget-presets/{id}/auto-brand":{"post":{"tags":["Web Widget Presets"],"summary":"Auto Brand Web Widget Preset","description":"Fetch brand data for a domain via brand.dev API.","operationId":"auto_brand_web_widget_preset_core_web_widget_presets__id__auto_brand_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebWidgetPresetAutoBrandRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/experiments":{"get":{"tags":["Experiments"],"summary":"List Experiments","description":"List experiments, optionally only those covering one widget.","operationId":"list_experiments_core_experiments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"scope_type","in":"query","required":false,"schema":{"const":"web_widget","type":"string","default":"web_widget","title":"Scope Type"}},{"name":"scope_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentOut"},"title":"Response List Experiments Core Experiments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Experiments"],"summary":"Create Experiment","description":"Create a draft experiment. Start it to split traffic.","operationId":"create_experiment_core_experiments_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/experiments/{id}":{"get":{"tags":["Experiments"],"summary":"Get Experiment","operationId":"get_experiment_core_experiments__id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Experiments"],"summary":"Update Experiment","operationId":"update_experiment_core_experiments__id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Experiments"],"summary":"Delete Experiment","description":"Delete a draft. Experiments that have run are kept as history.","operationId":"delete_experiment_core_experiments__id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/experiments/{id}/results":{"get":{"tags":["Experiments"],"summary":"Get Experiment Results","description":"Conversation outcomes per variant, and per widget and variant.\n\nCounts only, no significance testing. Visitor-level numbers come from\nwidget analytics (``GET /widget-analytics/experiments/{id}``); this is\nwhat experiments that ran before it was collected still show.","operationId":"get_experiment_results_core_experiments__id__results_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentResults"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/experiments/{id}/start":{"post":{"tags":["Experiments"],"summary":"Start Experiment","description":"Start splitting traffic. A widget can be in one running experiment at a time.","operationId":"start_experiment_core_experiments__id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/experiments/{id}/pause":{"post":{"tags":["Experiments"],"summary":"Pause Experiment","description":"Every visitor sees the widget as it is until the experiment resumes.","operationId":"pause_experiment_core_experiments__id__pause_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/experiments/{id}/resume":{"post":{"tags":["Experiments"],"summary":"Resume Experiment","operationId":"resume_experiment_core_experiments__id__resume_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExperimentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/experiments/{id}/conclude":{"post":{"tags":["Experiments"],"summary":"Conclude Experiment","description":"End the experiment and keep one variant.\n\nKeeping `control` changes no widget. Keeping another variant writes its\noverlay into every widget in the experiment, and its agent version if it\nswaps one, in one transaction. A widget that follows a preset section the\nwinner changes stops following it, or the preset would undo the change.","operationId":"conclude_experiment_core_experiments__id__conclude_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcludeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcludeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/widget-analytics/widgets/{widget_id}":{"get":{"tags":["Widget Analytics"],"summary":"Get Widget Analytics","description":"One widget's analytics over the last ``days`` days, counts only.\n\nUTM filters are ``traffic_source`` and ``traffic_campaign``; ``utm_*`` query\nnames get stripped as tracking parameters before they reach us.","operationId":"get_widget_analytics_core_widget_analytics_widgets__widget_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","default":"UTC","title":"Timezone"}},{"name":"device_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["desktop","mobile","tablet"],"type":"string"},{"type":"null"}],"title":"Device Type"}},{"name":"is_returning","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Returning"}},{"name":"traffic_source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traffic Source"}},{"name":"traffic_campaign","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traffic Campaign"}},{"name":"landing_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landing Path"}},{"name":"locale","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Country"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/widget-analytics/experiments/{experiment_id}":{"get":{"tags":["Widget Analytics"],"summary":"Get Experiment Analytics","description":"An experiment's analytics per variant, over the time it ran.","operationId":"get_experiment_analytics_core_widget_analytics_experiments__experiment_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id"}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","default":"UTC","title":"Timezone"}},{"name":"widget_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Id"}},{"name":"device_type","in":"query","required":false,"schema":{"anyOf":[{"enum":["desktop","mobile","tablet"],"type":"string"},{"type":"null"}],"title":"Device Type"}},{"name":"is_returning","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Returning"}},{"name":"traffic_source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traffic Source"}},{"name":"traffic_campaign","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Traffic Campaign"}},{"name":"landing_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Landing Path"}},{"name":"locale","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Country"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/widget-analytics/visitors/{anonymous_id}":{"delete":{"tags":["Widget Analytics"],"summary":"Delete Widget Visitor","description":"Delete one visitor's analytics across the organization's widgets.\n\nFor a data-subject request: the visitor's ``anonymous_id`` is what the\nloader stores in the browser (``window.anyreach.getContext()``).","operationId":"delete_widget_visitor_core_widget_analytics_visitors__anonymous_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"anonymous_id","in":"path","required":true,"schema":{"type":"string","title":"Anonymous Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorDeleted"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables":{"get":{"tags":["custom_data"],"summary":"List Custom Tables","description":"List this organization's Custom Data tables.","operationId":"list_custom_tables_core_custom_data_tables_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CustomTableSchema"},"title":"Response List Custom Tables Core Custom Data Tables Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["custom_data"],"summary":"Create Custom Table","description":"Declare a table. Configuration only: no deploy, no migration.","operationId":"create_custom_table_core_custom_data_tables_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTableCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTableSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/custom-data/tables/{name}":{"get":{"tags":["custom_data"],"summary":"Get Custom Table","description":"One table, with its row counts and derived freshness.","operationId":"get_custom_table_core_custom_data_tables__name__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTableSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["custom_data"],"summary":"Update Custom Table","description":"Edit a table's declared schema, and regenerate its typed view.\n\nAgent tools already generated from the previous schema are NOT rewritten:\nnothing silently mutates a live agent's tool surface. Regenerating is an\nexplicit call to `/tool-schema` followed by an agent-config edit.","operationId":"update_custom_table_core_custom_data_tables__name__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTableUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTableSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["custom_data"],"summary":"Delete Custom Table","description":"Drop a table and every row in it.","operationId":"delete_custom_table_core_custom_data_tables__name__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/sync-view":{"post":{"tags":["custom_data"],"summary":"Sync Custom Table View","description":"Rebuild the sandbox view from the current declared schema.\n\nBreak-glass: the two operations that change a schema already rebuild it.\nRebuilding marks every stored query on the table stale, because the view's\nOID is what they are validated against.","operationId":"sync_custom_table_view_core_custom_data_tables__name__sync_view_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sync Custom Table View Core Custom Data Tables  Name  Sync View Post"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/tool-schema":{"get":{"tags":["custom_data"],"summary":"Get Custom Table Tool Schema","description":"Every agent tool this table produces.\n\nReturns complete `ToolCall` blocks — parameter schema AND the actions that\nexecute them — ready to drop into an agent config's `tools`. Generated, not\nhand-written per deal: that is the scaling win the declared schema buys.\n\nThe pair derived from the declared schema comes first, then one tool per\nstored query that an agent could actually use. Both live in one response on\npurpose: this endpoint is what a caller reads to answer \"what can an agent do\nwith this table\", and a second endpoint would let that answer be half right.\nA query that is broken, turned off or stale contributes nothing — handing an\nagent a tool the validator has stopped vouching for fails mid-call.","operationId":"get_custom_table_tool_schema_core_custom_data_tables__name__tool_schema_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Default number of records the search tool returns","default":5,"title":"Limit"},"description":"Default number of records the search tool returns"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolSchemaResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/custom-data/tables/{name}/claim":{"post":{"tags":["custom_data"],"summary":"Claim Custom Row","description":"Atomically take one matching row and mark it.\n\nThe operation a query plus an upsert cannot express: two callers doing that\nboth read the same row before either writes, and upsert has no precondition\nto refuse the second. Here the select and the mark are one statement.\n\nAn empty result is a 200 with ``found: false`` — running out of rows is an\nanswer the caller acts on, not an error.","operationId":"claim_custom_row_core_custom_data_tables__name__claim_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/replace":{"post":{"tags":["custom_data"],"summary":"Replace Custom Table","description":"Replace the table's entire contents with this snapshot.\n\nThe only operation that detects absence, and absence is how upstream\ndeletion propagates: anything absent from the snapshot is tombstoned, and\na tombstoned row returns if its key reappears in a later write.","operationId":"replace_custom_table_core_custom_data_tables__name__replace_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplaceTableRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteResultSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/upsert":{"post":{"tags":["custom_data"],"summary":"Upsert Custom Rows","description":"Write 1..N rows. Additive — cannot delete by omission, so no guard.","operationId":"upsert_custom_rows_core_custom_data_tables__name__upsert_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertRowsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteResultSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/delete-rows":{"post":{"tags":["custom_data"],"summary":"Delete Custom Rows","description":"Tombstone the named keys. Idempotent on an already-dead key.","operationId":"delete_custom_rows_core_custom_data_tables__name__delete_rows_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteResultSchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/rows/{row_key}":{"get":{"tags":["custom_data"],"summary":"Get Custom Row","description":"One live row by key. A tombstoned row reads as absent.","operationId":"get_custom_row_core_custom_data_tables__name__rows__row_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"row_key","in":"path","required":true,"schema":{"type":"string","title":"Row Key"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Custom Row Core Custom Data Tables  Name  Rows  Row Key  Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/custom-data/tables/{name}/query":{"post":{"tags":["custom_data"],"summary":"Query Custom Table","description":"Filtered, sorted, limited live rows — the same call agent tools make.","operationId":"query_custom_table_core_custom_data_tables__name__query_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/QueryRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowsResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/custom-data/tables/{name}/embeddings/sync":{"post":{"tags":["custom_data"],"summary":"Sync Custom Table Embeddings","description":"Start embedding this table's pending rows now.\n\nWrites already start the job, and an hourly sweep catches any start that\nTemporal missed. This is for when a table shows pending rows and the caller\ndoes not want to wait for the sweep. Unlike the write path, a failure to\nstart is reported, because starting is the whole request.","operationId":"sync_custom_table_embeddings_core_custom_data_tables__name__embeddings_sync_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sync Custom Table Embeddings Core Custom Data Tables  Name  Embeddings Sync Post"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/search":{"post":{"tags":["custom_data"],"summary":"Search Custom Table","description":"Find rows by meaning, by words, or both — the same call agent tools make.\n\nThe query is embedded here. If that does not finish in time, a hybrid\nsearch answers by keyword and says so in `mode_used`; a semantic search\nreturns 503, because the caller asked for something that cannot be done.","operationId":"search_custom_table_core_custom_data_tables__name__search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/custom-data/tables/{name}/queries":{"get":{"tags":["custom_data"],"summary":"List Custom Queries","description":"Stored queries on a table, with their status and derived staleness.","operationId":"list_custom_queries_core_custom_data_tables__name__queries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SavedQuerySchema"},"title":"Response List Custom Queries Core Custom Data Tables  Name  Queries Get"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/custom-data/tables/{name}/queries/{query_name}":{"put":{"tags":["custom_data"],"summary":"Save Custom Query","description":"Create or replace a stored query. Validates in the same call.\n\nA query that fails validation is still saved, as a draft with a reason —\nbut it cannot be enabled, and re-saving a previously-working one that now\nfails turns it off.","operationId":"save_custom_query_core_custom_data_tables__name__queries__query_name__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"query_name","in":"path","required":true,"schema":{"type":"string","title":"Query Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQueryCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQuerySchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["custom_data"],"summary":"Delete Custom Query","operationId":"delete_custom_query_core_custom_data_tables__name__queries__query_name__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"query_name","in":"path","required":true,"schema":{"type":"string","title":"Query Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/queries/dry-run":{"post":{"tags":["custom_data"],"summary":"Dry Run Custom Query","description":"Run unsaved SQL against live rows, for the authoring surface.\n\nThe only endpoint that takes SQL as a parameter, which is exactly why it is\nbehind the authoring scope and separate from the agent path.","operationId":"dry_run_custom_query_core_custom_data_tables__name__queries_dry_run_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQueryDryRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRunResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/custom-data/tables/{name}/queries/{query_name}/enabled":{"post":{"tags":["custom_data"],"summary":"Set Custom Query Enabled","description":"Turn a stored query on or off for agents.","operationId":"set_custom_query_enabled_core_custom_data_tables__name__queries__query_name__enabled_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"query_name","in":"path","required":true,"schema":{"type":"string","title":"Query Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQueryEnabledRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQuerySchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/queries/{query_name}/cache":{"post":{"tags":["custom_data"],"summary":"Set Custom Query Cached","description":"Let a stored query's repeat runs be answered from the cache, or never.\n\nOn by default. Turn it off for a query whose answer depends on something\nbesides the table's rows and the arguments, such as one that casts 'today'\nor 'now'. Nothing detects that automatically.","operationId":"set_custom_query_cached_core_custom_data_tables__name__queries__query_name__cache_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"query_name","in":"path","required":true,"schema":{"type":"string","title":"Query Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQueryCacheRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedQuerySchema"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/custom-data/tables/{name}/queries/{query_name}/run":{"post":{"tags":["custom_data"],"summary":"Run Custom Query","description":"Run a saved query — the same call an agent tool makes.\n\nEmbedding arguments take words and are embedded here. Which arguments those\nare comes from the stored query's own declaration, read first; an agent tool\ncarries the list in its config instead, so the live path skips that read.","operationId":"run_custom_query_core_custom_data_tables__name__queries__query_name__run_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"query_name","in":"path","required":true,"schema":{"type":"string","title":"Query Name"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SavedQueryRunRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowsResponse"}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/public/web-widgets/{id}":{"get":{"tags":["Public Web Widgets"],"summary":"Get Public Web Widget","description":"Return widget only if request Origin matches widget domains.\n\nWith a running experiment, `experiment` carries every variant's config\nfor the loader to bucket on; `variant` returns that variant's config as\n`config` (an unknown key, or no running experiment, returns the widget's\nown). Which variant a conversation is stamped with is decided on create.","operationId":"get_public_web_widget_core_public_web_widgets__id__get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicWebWidget"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{id}/conversations":{"get":{"tags":["Public Web Widgets"],"summary":"List Public Widget Conversations","operationId":"list_public_widget_conversations_core_public_web_widgets__id__conversations_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ids"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicConversationListItem"},"title":"Response List Public Widget Conversations Core Public Web Widgets  Id  Conversations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Public Web Widgets"],"summary":"Create Public Widget Conversation","operationId":"create_public_widget_conversation_core_public_web_widgets__id__conversations_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetConversationCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicConversationCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{id}/conversations/{conversation_id}/feedback":{"post":{"tags":["Public Web Widgets"],"summary":"Submit Public Widget Feedback","description":"Store post-conversation feedback on the conversation's custom_metadata.\n\nFeedback arrives after the conversation already exists, so the submitted\nfield values are merged directly into ``custom_metadata.feedback_form``\nrather than provided at creation time. This is a public, unauthenticated\nendpoint, so the payload is size-capped, restricted to the widget's\nconfigured feedback-form field ids, and only accepted once per\nconversation.","operationId":"submit_public_widget_feedback_core_public_web_widgets__id__conversations__conversation_id__feedback_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetFeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackSubmitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{id}/events":{"post":{"tags":["Public Web Widgets"],"summary":"Record Widget Events","description":"Widget events from the embed loader. Always 204.","operationId":"record_widget_events_core_public_web_widgets__id__events_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/identity":{"post":{"tags":["Public Web Widgets"],"summary":"Post Widget Identity","description":"Verify the host page's identify() payload, or sign out with ``null``.","operationId":"post_widget_identity_core_public_web_widgets__widget_id__identity_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetIdentityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetIdentityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/attachments":{"post":{"tags":["Public Conversation Attachments"],"summary":"Public Create Attachment","operationId":"public_create_attachment_core_public_web_widgets__widget_id__conversations__conversation_id__attachments_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttachmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAttachmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Public Conversation Attachments"],"summary":"Public List Attachments","operationId":"public_list_attachments_core_public_web_widgets__widget_id__conversations__conversation_id__attachments_get","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Public List Attachments Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Attachments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/attachments/{attachment_id}/complete":{"post":{"tags":["Public Conversation Attachments"],"summary":"Public Complete Attachment","operationId":"public_complete_attachment_core_public_web_widgets__widget_id__conversations__conversation_id__attachments__attachment_id__complete_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Complete Attachment Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Attachments  Attachment Id  Complete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/attachments/{attachment_id}":{"delete":{"tags":["Public Conversation Attachments"],"summary":"Public Delete Attachment","operationId":"public_delete_attachment_core_public_web_widgets__widget_id__conversations__conversation_id__attachments__attachment_id__delete","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Delete Attachment Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Attachments  Attachment Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/attachments/{attachment_id}/url":{"get":{"tags":["Public Conversation Attachments"],"summary":"Public Attachment Url","operationId":"public_attachment_url_core_public_web_widgets__widget_id__conversations__conversation_id__attachments__attachment_id__url_get","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Attachment Url Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Attachments  Attachment Id  Url Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/conversations/{conversation_id}/events":{"get":{"tags":["Conversation Events"],"summary":"Conversation Events","description":"Stream this conversation's outbox as Server-Sent Events.\n\nThe connection is held open indefinitely (heartbeat comments every 15s, a\nserver-side cap after which the client reconnects and resumes from\n``Last-Event-ID``), so the database client is acquired once, here, and never\ninside the poll loop. It outlives the request, so it is minted a token of\nits own rather than reusing one that may expire mid-stream.","operationId":"conversation_events_core_conversations__conversation_id__events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Resume point: replay every event with seq > since. -1 (or omitted with no Last-Event-ID header) starts from now with no replay.","title":"Since"},"description":"Resume point: replay every event with seq > since. -1 (or omitted with no Last-Event-ID header) starts from now with no replay."},{"name":"Last-Event-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last-Event-Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/events/ticket":{"post":{"tags":["Conversation Events"],"summary":"Public Conversation Events Ticket","description":"A short-lived ticket for this conversation's event stream, so the SSE URL\nnever carries the identity JWT. Names the JWT's subjects and never outlives it.","operationId":"public_conversation_events_ticket_core_public_web_widgets__widget_id__conversations__conversation_id__events_ticket_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StreamTicketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/events":{"get":{"tags":["Conversation Events"],"summary":"Public Conversation Events","description":"Stream a widget conversation's outbox to the browser as Server-Sent Events.\n\nThis is the downlink the widget opens when a handoff starts (and the transport the\nasync TEXT migration needs anyway). The ``hello`` frame is the readiness signal the\nwidget waits for before tearing its LiveKit room down (PRD §9.1.1).","operationId":"public_conversation_events_core_public_web_widgets__widget_id__conversations__conversation_id__events_get","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"Per-conversation capability token (EventSource cannot send headers, so it rides in the query string).","title":"Token"},"description":"Per-conversation capability token (EventSource cannot send headers, so it rides in the query string)."},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Resume point: replay every event with seq > since. -1 (or omitted with no Last-Event-ID header) starts from now with no replay.","title":"Since"},"description":"Resume point: replay every event with seq > since. -1 (or omitted with no Last-Event-ID header) starts from now with no replay."},{"name":"ticket","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Stream ticket from POST .../events/ticket; required for a conversation a widget identity session verified. Never the identity JWT itself.","title":"Ticket"},"description":"Stream ticket from POST .../events/ticket; required for a conversation a widget identity session verified. Never the identity JWT itself."},{"name":"Last-Event-ID","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last-Event-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/handoff/webhook/{provider}/{connection_id}":{"post":{"tags":["handoff-webhooks"],"summary":"Handoff Webhook","description":"Receive one provider webhook for a specific handoff connection.\n\nThe raw body is read before anything else and the signature verified over those\nexact bytes; only then is the JSON parsed. Everything the handler cannot act on —\nan unknown event type, an event for a handoff we cannot correlate, a redelivery —\nis answered ``200`` so the provider stops retrying. The genuine failures are\n``403`` (bad signature) and ``404``/``400`` (unknown or unusable connection),\nnone of which a retry would fix.","operationId":"handoff_webhook_core_handoff_webhook__provider___connection_id__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/handoff/connections":{"get":{"tags":["Human Handoff"],"summary":"List Handoff Connections","description":"List this organization's handoff connections (credentials never included).","operationId":"list_handoff_connections_core_handoff_connections_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HandoffConnectionResponse"},"title":"Response List Handoff Connections Core Handoff Connections Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Human Handoff"],"summary":"Create Handoff Connection","description":"Create a handoff connection for the caller's organization.\n\nCredentials go in through ``api.save_handoff_connection`` — the ``api``\nview has no writable ``auth_details`` column at all — and the row is read back\nthrough the view, so what comes out has never carried the token.","operationId":"create_handoff_connection_core_handoff_connections_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffConnectionCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/handoff/connections/{connection_id}":{"get":{"tags":["Human Handoff"],"summary":"Get Handoff Connection","description":"Get one handoff connection.","operationId":"get_handoff_connection_core_handoff_connections__connection_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Human Handoff"],"summary":"Update Handoff Connection","description":"Update a handoff connection; unsupplied fields keep their current value.","operationId":"update_handoff_connection_core_handoff_connections__connection_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffConnectionUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["Human Handoff"],"summary":"Delete Handoff Connection","description":"Delete a handoff connection.\n\nLive handoffs keep working: ``conversation_handoffs.connection_id`` is\n``ON DELETE SET NULL``, so an in-flight relay degrades to \"cannot deliver\"\nrather than losing the conversation.","operationId":"delete_handoff_connection_core_handoff_connections__connection_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Handoff Connection Core Handoff Connections  Connection Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/handoff/connections/{connection_id}/test":{"post":{"tags":["Human Handoff"],"summary":"Test Handoff Connection","description":"Check that a connection's credentials still authenticate.\n\nReads the row through ``api.get_handoff_connection`` (the only path carrying the\ntoken) and issues one read-only provider call. Returns ``{ok, status, detail}``;\na vendor outage or a rejected credential is a body, not an exception.","operationId":"test_handoff_connection_core_handoff_connections__connection_id__test_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Test Handoff Connection Core Handoff Connections  Connection Id  Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/messages":{"post":{"tags":["Public Human Handoff"],"summary":"Public Post Conversation Message","description":"Send one customer message from the widget.\n\nWhile a handoff is live this is the uplink half of the relay: the message is\nappended to the transcript, mirrored to the outbox (so the sender's own tab and\nevery other tab echo it) and delivered to the human agent — answered ``202`` with\nthe outbox ``seq`` rather than a reply body, because no reply is coming from us\n(PRD §9.2). With no handoff, a TEXT conversation still gets an ordinary engine\nturn; a WEBRTC conversation is answered over LiveKit and is a ``409`` here.","operationId":"public_post_conversation_message_core_public_web_widgets__widget_id__conversations__conversation_id__messages_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHandoffMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Post Conversation Message Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Messages Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/end":{"post":{"tags":["Public Human Handoff"],"summary":"Public End Conversation","description":"End a text-only widget (``webchat``) conversation from the widget.\n\nThe widget's \"end chat\" and its inactivity timer call this instead of\ndropping a LiveKit room. Idempotent on an already-closed conversation; a\nconversation a human is relaying is closed through the handoff, not here.","operationId":"public_end_conversation_core_public_web_widgets__widget_id__conversations__conversation_id__end_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEndRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public End Conversation Core Public Web Widgets  Widget Id  Conversations  Conversation Id  End Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/handoff/identity":{"post":{"tags":["Public Human Handoff"],"summary":"Public Submit Handoff Identity","description":"Complete an escalation that was waiting on the customer's contact details.\n\nThis is a DIRECT path on purpose. The widget's other form submits are\nformatted into a text message and handed back to the model, which cannot\ngive the deterministic trigger this feature promises — the model might not\nre-call the escalating tool, or might call a different one, or might answer\nthe form as though it were conversation. Here the submitted value completes\nthe exact pending handoff the form was rendered for, with no model in the\nloop.\n\nEverything is re-validated server-side. The form is served over a public\nroute to a browser, so what arrives is client input: the same checks that\ndecided a form was needed have to decide it is satisfied, or the requirement\nis only as strong as the page.","operationId":"public_submit_handoff_identity_core_public_web_widgets__widget_id__conversations__conversation_id__handoff_identity_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHandoffIdentityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Submit Handoff Identity Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Handoff Identity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/events/read":{"post":{"tags":["Public Human Handoff"],"summary":"Public Mark Conversation Events Read","description":"Report that the browser has displayed everything up to ``seq``.\n\nThis is the READ rung of the provider's delivery ladder (PRD §9.3), which is what\nkeeps the human agent's messaging capacity accounting honest. A watermark is kept\non the handoff row so a client that re-reports the same seq — or reports a lower\none after a reload — never re-acknowledges a message. Entirely advisory: nothing\nhere can fail the call.","operationId":"public_mark_conversation_events_read_core_public_web_widgets__widget_id__conversations__conversation_id__events_read_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicReadReceiptRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Mark Conversation Events Read Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Events Read Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/web-widgets/{widget_id}/conversations/{conversation_id}/client-actions/{action_id}/result":{"post":{"tags":["Public Client Actions"],"summary":"Public Post Client Action Result","description":"Record the outcome of an action this conversation sent to the widget.","operationId":"public_post_client_action_result_core_public_web_widgets__widget_id__conversations__conversation_id__client_actions__action_id__result_post","parameters":[{"name":"widget_id","in":"path","required":true,"schema":{"type":"string","title":"Widget Id"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}},{"name":"X-Conversation-Token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Conversation-Token"}},{"name":"X-Anyreach-Identity","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Anyreach-Identity"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientActionOutcomeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Post Client Action Result Core Public Web Widgets  Widget Id  Conversations  Conversation Id  Client Actions  Action Id  Result Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/public/attachments/{attachment_id}":{"get":{"tags":["Public Attachment Download"],"summary":"Public Attachment Download","description":"Stream one attachment to any holder of the signed URL. No auth by design.\n\nThis exists because a human-handoff provider needs a URL that still resolves when an\nagent reopens the conversation days later, and a presigned S3 GET cannot do that:\nSigV4 caps expiry at 7 days, and a URL signed with ECS task-role credentials dies\nwith the STS session (hours). So the bucket stays private and we proxy.\n\nThe HMAC in ``sig`` is the whole capability; ``org`` rides along because the\n``conversation_attachments`` RLS policy keys off the JWT's organization claim, and a\nglobal-scope client would silently read zero rows rather than error. It is inside\nthe MAC, so it cannot be swapped for another org's.","operationId":"public_attachment_download_core_public_attachments__attachment_id__get","parameters":[{"name":"attachment_id","in":"path","required":true,"schema":{"type":"string","title":"Attachment Id"}},{"name":"org","in":"query","required":true,"schema":{"type":"string","title":"Org"}},{"name":"sig","in":"query","required":true,"schema":{"type":"string","title":"Sig"}},{"name":"fmt","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fmt"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/inbound-routing-config":{"get":{"tags":["Inbound Routing Config"],"summary":"Get Inbound Routing Config","description":"Get the inbound routing config for the current organization.","operationId":"get_inbound_routing_config_core_inbound_routing_config_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/InboundRoutingConfig"},{"type":"null"}],"title":"Response Get Inbound Routing Config Core Inbound Routing Config Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Inbound Routing Config"],"summary":"Create Inbound Routing Config","description":"Create an inbound routing config for the current organization.","operationId":"create_inbound_routing_config_core_inbound_routing_config_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundRoutingConfigCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundRoutingConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"put":{"tags":["Inbound Routing Config"],"summary":"Update Inbound Routing Config","description":"Update the inbound routing config for the current organization.","operationId":"update_inbound_routing_config_core_inbound_routing_config_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundRoutingConfigUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundRoutingConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["Inbound Routing Config"],"summary":"Delete Inbound Routing Config","description":"Delete the inbound routing config for the current organization.","operationId":"delete_inbound_routing_config_core_inbound_routing_config_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/admin-controls/agents":{"get":{"tags":["Admin Controls"],"summary":"Admin List Agents For Organization","description":"List agents in an arbitrary organization. Used by the Admin Controls\nagent-picker for cross-org transfers.","operationId":"admin_list_agents_for_organization_core_admin_controls_agents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","description":"Organization to list agents for","title":"Organization Id"},"description":"Organization to list agents for"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Substring matched against agent name (ILIKE)","title":"Search"},"description":"Substring matched against agent name (ILIKE)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdminAgentListItem"},"title":"Response Admin List Agents For Organization Core Admin Controls Agents Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/admin-controls/agent-activation":{"get":{"tags":["Admin Controls"],"summary":"Admin Agent Activation Report","description":"Agents that belonged to the organization at some moment in\n[from, to), each marked active if it was switched on at any moment of\nthat window, with the counts the Admin Controls report shows.","operationId":"admin_agent_activation_report_core_admin_controls_agent_activation_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Organization Id"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"From"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentActivationReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/admin-controls/agents/transfer":{"post":{"tags":["Admin Controls"],"summary":"Admin Transfer Agent","description":"Move an agent (with its versions, widgets, conversations) to a new\norganization. Fails if the agent is SIP-deployed or is referenced by\nthe source org's inbound_routing_configs.fallback_agent_id.","operationId":"admin_transfer_agent_core_admin_controls_agents_transfer_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTransferRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTransferResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/core/agent-activation/events":{"get":{"tags":["Agent Activation"],"summary":"List Org Activation Events","description":"Every activation event in the organization, newest first, over\n[from, to) when given. X-Total-Count is set on every page.","operationId":"list_org_activation_events_core_agent_activation_events_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated subset of agent.activated, agent.deactivated, agent.transferred_out, agent.transferred_in, agent.deleted","title":"Event Type"},"description":"Comma-separated subset of agent.activated, agent.deactivated, agent.transferred_out, agent.transferred_in, agent.deleted"},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentActivationEvent"},"title":"Response List Org Activation Events Core Agent Activation Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agent-activation/report":{"get":{"tags":["Agent Activation"],"summary":"Org Agent Activation Report","description":"The Admin Controls activation report, for the caller's own\norganization only: the RPC reads the org from the token.","operationId":"org_agent_activation_report_core_agent_activation_report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"From"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time","title":"To"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentActivationReport"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/email-addresses":{"get":{"tags":["Email Addresses"],"summary":"List Email Addresses","operationId":"list_email_addresses_core_email_addresses_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response List Email Addresses Core Email Addresses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Email Addresses"],"summary":"Create Email Address","operationId":"create_email_address_core_email_addresses_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailAddressCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Email Address Core Email Addresses Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/email-addresses/{address_id}":{"patch":{"tags":["Email Addresses"],"summary":"Update Email Address","operationId":"update_email_address_core_email_addresses__address_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailAddressUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Email Address Core Email Addresses  Address Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"},"delete":{"tags":["Email Addresses"],"summary":"Delete Email Address","operationId":"delete_email_address_core_email_addresses__address_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"address_id","in":"path","required":true,"schema":{"type":"string","title":"Address Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Email Address Core Email Addresses  Address Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/demo-email-requests":{"get":{"tags":["Demo Email Requests"],"summary":"List Demo Email Requests","description":"Demo requests received by this organization's demo-handler addresses.\n\nRead-only: rows are written by the inbound webhook and the request\nworkflow, never from the dashboard.","operationId":"list_demo_email_requests_core_demo_email_requests_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response List Demo Email Requests Core Demo Email Requests Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/demo-email-requests/{request_id}":{"get":{"tags":["Demo Email Requests"],"summary":"Get Demo Email Request","operationId":"get_demo_email_request_core_demo_email_requests__request_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Demo Email Request Core Demo Email Requests  Request Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/email-domains":{"get":{"tags":["Email Domains"],"summary":"List Email Domains","operationId":"list_email_domains_core_email_domains_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response List Email Domains Core Email Domains Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Email Domains"],"summary":"Create Email Domain","operationId":"create_email_domain_core_email_domains_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDomainCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Email Domain Core Email Domains Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/email-domains/{domain_id}":{"get":{"tags":["Email Domains"],"summary":"Get Email Domain","operationId":"get_email_domain_core_email_domains__domain_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Email Domain Core Email Domains  Domain Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Email Domains"],"summary":"Delete Email Domain","operationId":"delete_email_domain_core_email_domains__domain_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Email Domain Core Email Domains  Domain Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/email-domains/{domain_id}/verify":{"post":{"tags":["Email Domains"],"summary":"Verify Email Domain","description":"Initiate provider DNS verification (POST verify), then read the\nresult. Records verification_initiated_at so the UI shows Re-verify\nafterwards and the passive top-level action stays a status refresh.","operationId":"verify_email_domain_core_email_domains__domain_id__verify_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Verify Email Domain Core Email Domains  Domain Id  Verify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/email-domains/{domain_id}/refresh":{"post":{"tags":["Email Domains"],"summary":"Refresh Email Domain","description":"Re-read the current provider status + records (GET only). Does NOT\nre-initiate verification — used by the top-level status refresh.","operationId":"refresh_email_domain_core_email_domains__domain_id__refresh_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"domain_id","in":"path","required":true,"schema":{"type":"string","title":"Domain Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Email Domain Core Email Domains  Domain Id  Refresh Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/unsubscribes":{"get":{"tags":["Unsubscribes"],"summary":"List Suppressions","operationId":"list_suppressions_core_unsubscribes_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{},"title":"Response List Suppressions Core Unsubscribes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Unsubscribes"],"summary":"Add Suppression","description":"List an address by hand. A ``telephone`` entry is the organization's\ndo-not-test list: no Side-by-side call or audit caller dials it.","operationId":"add_suppression_core_unsubscribes_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Suppression Core Unsubscribes Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/unsubscribes/{suppression_id}":{"delete":{"tags":["Unsubscribes"],"summary":"Delete Suppression","description":"Resubscribe — remove a suppression row.","operationId":"delete_suppression_core_unsubscribes__suppression_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"suppression_id","in":"path","required":true,"schema":{"type":"string","title":"Suppression Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Suppression Core Unsubscribes  Suppression Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/platform/do-not-test":{"get":{"tags":["Unsubscribes"],"summary":"List Do Not Test","operationId":"list_do_not_test_core_platform_do_not_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{},"type":"array","title":"Response List Do Not Test Core Platform Do Not Test Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Unsubscribes"],"summary":"Add Do Not Test","operationId":"add_do_not_test_core_platform_do_not_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoNotTestIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Add Do Not Test Core Platform Do Not Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-mcp-risk":"create"}},"/core/platform/do-not-test/{suppression_id}":{"delete":{"tags":["Unsubscribes"],"summary":"Delete Do Not Test","operationId":"delete_do_not_test_core_platform_do_not_test__suppression_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"suppression_id","in":"path","required":true,"schema":{"type":"string","title":"Suppression Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Do Not Test Core Platform Do Not Test  Suppression Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/messaging/preview":{"post":{"tags":["Messaging Preview"],"summary":"Messaging Preview","operationId":"messaging_preview_core_messaging_preview_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagingPreviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Messaging Preview Core Messaging Preview Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/messaging/translate":{"post":{"tags":["Messaging Preview"],"summary":"Messaging Translate","description":"Write a channel's own words (the email signature) in another\nlanguage with Claude, for the agent editor. Stateless.","operationId":"messaging_translate_core_messaging_translate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagingTranslateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagingTranslateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/messaging/webhook/{provider}":{"post":{"tags":["messaging-webhooks"],"summary":"Unified Webhook","description":"Single endpoint for a provider — dispatches by event type.","operationId":"unified_webhook_core_messaging_webhook__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/messaging/status/{provider}":{"post":{"tags":["messaging-webhooks"],"summary":"Status Webhook","description":"Receive a delivery-status callback; record it + suppress on bounce.\n\nTolerant of misconfiguration: if an inbound event arrives here\n(single-endpoint setups), it's dispatched to the inbound path instead.","operationId":"status_webhook_core_messaging_status__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{agent_id}/capability-document/preflight":{"post":{"tags":["capability_documents"],"summary":"Preflight Capability Document","operationId":"preflight_capability_document_core_agents__agent_id__capability_document_preflight_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"config_version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Config Version"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreflightResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/{agent_id}/capability-document":{"post":{"tags":["capability_documents"],"summary":"Generate Capability Document","description":"Start a generation. Manual trigger only — nothing calls this automatically.\n\n`one_opus` is the default: it is the engine the reference documents were written by,\nwhich is checkable rather than assumed — it titles a document the way a writer would\n(\"GameStop\"), and the staged engine cannot, because `extract` deliberately keeps the\nplatform label out of the persona and the title comes from the persona (\"The\nassistant\"). Its coverage headers are written per document for the same reason.\n\nBoth engines now face `check_structure`, so neither can report a clean run on a\ndocument with no sample conversation in it. `engine=question` still selects the staged\nengine: it asks one question per capability and repairs what the checks reject, which\nis the better shape when a config is thin enough that a single call has little to go on.","operationId":"generate_capability_document_core_agents__agent_id__capability_document_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"config_version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Config Version"}},{"name":"engine","in":"query","required":false,"schema":{"type":"string","default":"one_opus","title":"Engine"}},{"name":"org_slug","in":"query","required":false,"schema":{"type":"string","default":"","title":"Org Slug"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"},"get":{"tags":["capability_documents"],"summary":"Get Capability Document","description":"The agent's document for the builder panel and the in-app viewer.\n\nCarries the check failures and the residue: the caller is an authenticated operator,\nand what a run could not corroborate is what makes a generated document reviewable.","operationId":"get_capability_document_core_agents__agent_id__capability_document_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CapabilityDocument"},{"type":"null"}],"title":"Response Get Capability Document Core Agents  Agent Id  Capability Document Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{agent_id}/capability-document/visibility":{"patch":{"tags":["capability_documents"],"summary":"Set Capability Document Visibility","description":"Turn the shared link on or off.\n\nRevocation is immediate: the public reader checks the flag on every request, so a link\nalready in the wild stops resolving without anything having to be re-minted.","operationId":"set_capability_document_visibility_core_agents__agent_id__capability_document_visibility_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisibilityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{agent_id}/capability-document/share":{"get":{"tags":["capability_documents"],"summary":"Share Capability Document","description":"Mint the shareable link for an already-authorised caller.\n\nThe token is disclosed only here, behind agents:manage — it is the whole of the access\ncontrol on the public page, so it must never be handed out for an agent id the caller\nmerely names.","operationId":"share_capability_document_core_agents__agent_id__capability_document_share_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/passthrough-targets":{"get":{"tags":["demos"],"summary":"List Passthrough Targets","operationId":"list_passthrough_targets_core_passthrough_targets_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Target"},"title":"Response List Passthrough Targets Core Passthrough Targets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["demos"],"summary":"Create Passthrough Target","operationId":"create_passthrough_target_core_passthrough_targets_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/passthrough-targets/{target_id}":{"put":{"tags":["demos"],"summary":"Update Passthrough Target","operationId":"update_passthrough_target_core_passthrough_targets__target_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Target Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"},"delete":{"tags":["demos"],"summary":"Delete Passthrough Target","operationId":"delete_passthrough_target_core_passthrough_targets__target_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Target Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{agent_id}/demo-config":{"get":{"tags":["demos"],"summary":"Get Demo Config","description":"The agent's demo config, or the full default config when none is saved.","operationId":"get_demo_config_core_agents__agent_id__demo_config_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["demos"],"summary":"Save Demo Config","operationId":"save_demo_config_core_agents__agent_id__demo_config_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoConfigIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{agent_id}/demo-runs":{"get":{"tags":["demos"],"summary":"List Demo Runs","operationId":"list_demo_runs_core_agents__agent_id__demo_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core___shared__entities__demos__schemas__RunsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["demos"],"summary":"Create Demo Run","description":"Start a run from the agent's saved config and phone line, snapshotted.","operationId":"create_demo_run_core_agents__agent_id__demo_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DemoRunCreate"},{"type":"null"}],"title":"Body"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"create"}},"/core/demo-runs/{run_id}/legs/ivr":{"post":{"tags":["demos"],"summary":"Start Ivr Leg","description":"A room for the IVR leg. Joining it dispatches the worker in passthrough\nmode, which dials the run's phone line into the room.","operationId":"start_ivr_leg_core_demo_runs__run_id__legs_ivr_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/demo-runs/{run_id}/legs/agent":{"post":{"tags":["demos"],"summary":"Start Agent Leg","description":"A web call to the agent's published version, tagged as this run's agent leg.","operationId":"start_agent_leg_core_demo_runs__run_id__legs_agent_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/demo-runs/{run_id}/legs/chat":{"post":{"tags":["demos"],"summary":"Start Chat Leg","description":"A second web conversation to the agent, which the browser runs in chat mode.","operationId":"start_chat_leg_core_demo_runs__run_id__legs_chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/demo-runs/{run_id}/end":{"post":{"tags":["demos"],"summary":"End Demo Run","description":"Mark the run completed. Ending an ended run changes nothing.","operationId":"end_demo_run_core_demo_runs__run_id__end_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Run"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/demo-runs/{run_id}":{"get":{"tags":["demos"],"summary":"Get Demo Run","description":"The run, every persisted event (by side, then seq) and its recordings.","operationId":"get_demo_run_core_demo_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core___shared__entities__demos__schemas__RunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agents/{agent_id}/ivr-swarm/config":{"get":{"tags":["ivr-swarm"],"summary":"Get Swarm Config","operationId":"get_swarm_config_core_agents__agent_id__ivr_swarm_config_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwarmConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["ivr-swarm"],"summary":"Save Swarm Config","operationId":"save_swarm_config_core_agents__agent_id__ivr_swarm_config_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwarmConfigIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwarmConfigOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/passthrough-targets/{target_id}/swarm-settings":{"put":{"tags":["ivr-swarm"],"summary":"Save Line Swarm Settings","description":"Company details and the load-test attestation. Turning the attestation on\nrecords who made it and when; turning it off clears both.","operationId":"save_line_swarm_settings_core_passthrough_targets__target_id__swarm_settings_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"target_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Target Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineSwarmSettingsIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"change"}},"/core/agents/{agent_id}/ivr-swarm/seed-profiles":{"post":{"tags":["ivr-swarm"],"summary":"Seed Swarm Profiles","description":"Realistic, never-real caller profiles. Nothing is saved until the config\nis.","operationId":"seed_swarm_profiles_core_agents__agent_id__ivr_swarm_seed_profiles_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedProfilesIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfilesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/{agent_id}/ivr-swarm/suggest-goals":{"post":{"tags":["ivr-swarm"],"summary":"Suggest Swarm Goals","description":"Caller goals from the line's company name and website. Nothing is saved\nuntil the config is.","operationId":"suggest_swarm_goals_core_agents__agent_id__ivr_swarm_suggest_goals_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuggestGoalsIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoalsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"read"}},"/core/agents/{agent_id}/ivr-swarm/runs":{"get":{"tags":["ivr-swarm"],"summary":"List Swarm Runs","operationId":"list_swarm_runs_core_agents__agent_id__ivr_swarm_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core__ivr_swarm__RunsPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ivr-swarm"],"summary":"Create Swarm Run","description":"Snapshot the config, the line and the caller agent, plan one call per\ncaller, and start the run's workflow.","operationId":"create_swarm_run_core_agents__agent_id__ivr_swarm_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core__ivr_swarm__RunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/ivr-swarm/runs/{run_id}":{"get":{"tags":["ivr-swarm"],"summary":"Get Swarm Run","description":"A run and its calls. Polled once a second while the run is live, so the\ncalls carry only what the run card shows unless ``full`` is set.","operationId":"get_swarm_run_core_ivr_swarm_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"full","in":"query","required":false,"schema":{"type":"boolean","description":"Include each call's summary and timeline","default":false,"title":"Full"},"description":"Include each call's summary and timeline"},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core__ivr_swarm__RunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/ivr-swarm/runs/{run_id}/stop":{"post":{"tags":["ivr-swarm"],"summary":"Stop Swarm Run","description":"Stop launching calls and end the ones in flight. Idempotent.","operationId":"stop_swarm_run_core_ivr_swarm_runs__run_id__stop_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"x-anyreach-org","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization ID for user PATs (pat_ prefix tokens)","title":"X-Anyreach-Org"},"description":"Organization ID for user PATs (pat_ prefix tokens)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/routes__core__ivr_swarm__RunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-mcp-risk":"live"}},"/core/platform-settings/ivr-swarm-caller":{"get":{"tags":["ivr-swarm"],"summary":"Get Swarm Caller","operationId":"get_swarm_caller_core_platform_settings_ivr_swarm_caller_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallerSettingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["ivr-swarm"],"summary":"Save Swarm Caller","description":"Point every swarm at an agent. It must have a published version (or the\npinned one must exist).","operationId":"save_swarm_caller_core_platform_settings_ivr_swarm_caller_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallerSettingIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallerSettingOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}],"x-mcp-risk":"change"}},"/core/public/capability-documents/{agent_id}":{"get":{"tags":["capability_documents"],"summary":"Read Public Capability Document","description":"The document behind a shared link.\n\nEvery failure mode returns the same 404 on purpose: a bad token, a revoked link, an\nagent that never generated and an agent that does not exist must be indistinguishable,\nor the endpoint becomes an oracle for which agent ids are real.","operationId":"read_public_capability_document_core_public_capability_documents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"t","in":"query","required":false,"schema":{"type":"string","description":"Capability token from the shared link","default":"","title":"T"},"description":"Capability token from the shared link"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCapabilityDocument"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/core/agent-config-schema":{"get":{"tags":["Agents"],"summary":"Agent Config Schema","description":"agent_config_schema endpoint","operationId":"agent_config_schema_core_agent_config_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Agent Config Schema Core Agent Config Schema Get"}}}}}}}},"components":{"schemas":{"ActionEntityResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"icon":{"type":"string","title":"Icon"},"description":{"type":"string","title":"Description"},"service":{"type":"string","title":"Service","default":""},"type":{"type":"string","const":"action","title":"Type","default":"action"}},"type":"object","required":["key","label","icon","description"],"title":"ActionEntityResponse"},"ActionField":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"required":{"type":"boolean","title":"Required"},"default":{"title":"Default"},"enum":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum"},"param_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Param Type"},"has_remote_options":{"type":"boolean","title":"Has Remote Options","default":false},"sub_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Type"}},"type":"object","required":["name","type","label","description","required"],"title":"ActionField"},"ActionResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"entity_key":{"type":"string","title":"Entity Key"},"method":{"type":"string","title":"Method","default":""},"type":{"type":"string","const":"action","title":"Type","default":"action"},"input_schema":{"items":{"$ref":"#/components/schemas/ActionField"},"type":"array","title":"Input Schema"},"output_schema":{"additionalProperties":true,"type":"object","title":"Output Schema"}},"type":"object","required":["key","label","description","entity_key","input_schema","output_schema"],"title":"ActionResponse"},"AddSourcesByPatternRequestSchema":{"properties":{"pattern":{"type":"string","title":"Pattern"},"type":{"$ref":"#/components/schemas/SourceType"}},"type":"object","required":["pattern","type"],"title":"AddSourcesByPatternRequestSchema"},"AdminAgentListItem":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"active":{"type":"boolean","title":"Active","default":true},"is_demo":{"type":"boolean","title":"Is Demo","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","name","created_at","updated_at"],"title":"AdminAgentListItem","description":"Slim agent payload for the cross-org admin picker."},"Agent":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"active":{"type":"boolean","title":"Active"},"is_demo":{"type":"boolean","title":"Is Demo"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"labels":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Labels"},"feedback_form":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Feedback Form"}},"type":"object","required":["id","organization_id","name","description","active","is_demo","created_at","updated_at"],"title":"Agent","description":"Agent entity representing an agent configuration."},"AgentActivationEvent":{"properties":{"id":{"type":"integer","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"event_type":{"type":"string","title":"Event Type"},"active":{"type":"boolean","title":"Active"},"actor":{"type":"string","title":"Actor"},"occurred_at":{"type":"string","format":"date-time","title":"Occurred At"},"source":{"type":"string","title":"Source"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","required":["id","agent_id","event_type","active","actor","occurred_at","source"],"title":"AgentActivationEvent","description":"One row of an agent's activation history, as this org sees it."},"AgentActivationReport":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"from":{"type":"string","format":"date-time","title":"From"},"to":{"type":"string","format":"date-time","title":"To"},"active_agents":{"type":"integer","title":"Active Agents"},"inactive_agents":{"type":"integer","title":"Inactive Agents"},"agents_in_period":{"type":"integer","title":"Agents In Period"},"agents":{"items":{"$ref":"#/components/schemas/AgentActivationReportRow"},"type":"array","title":"Agents"}},"type":"object","required":["organization_id","from","to","active_agents","inactive_agents","agents_in_period","agents"],"title":"AgentActivationReport","description":"Counts and rows for one organization over [from, to)."},"AgentActivationReportRow":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"},"left_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Left At"},"status_in_period":{"type":"string","enum":["active","inactive"],"title":"Status In Period"},"state_at_start":{"type":"string","title":"State At Start"},"state_at_end":{"type":"string","title":"State At End"},"last_change_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Change At"},"last_changed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Changed By"}},"type":"object","required":["agent_id","joined_at","status_in_period","state_at_start","state_at_end"],"title":"AgentActivationReportRow","description":"One agent in the Admin Controls activation report."},"AgentActivationRequest":{"properties":{"active":{"type":"boolean","title":"Active"}},"additionalProperties":false,"type":"object","required":["active"],"title":"AgentActivationRequest","description":"Body of PUT /agents/{id}/activation."},"AgentAssistHeader":{"properties":{"caller_name":{"type":"string","title":"Caller Name","description":"Name of the caller"},"phone_number":{"type":"string","title":"Phone Number","description":"Phone number of the caller"},"call_duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Duration Seconds","description":"Duration of the call in seconds"},"sentiment":{"$ref":"#/components/schemas/SentimentInfo","description":"Overall sentiment of the caller"}},"type":"object","required":["caller_name","phone_number","sentiment"],"title":"AgentAssistHeader"},"AgentAssistPortal":{"properties":{"header":{"$ref":"#/components/schemas/AgentAssistHeader"},"transfer_reason":{"type":"string","title":"Transfer Reason","description":"Why the call is being transferred to a human agent"},"call_summary":{"items":{"type":"string"},"type":"array","title":"Call Summary","description":"3-5 bullet point summary of the call"},"information_collected":{"items":{"$ref":"#/components/schemas/InformationItem"},"type":"array","title":"Information Collected","description":"Key-value pairs of information collected during the call"},"suggested_next_steps":{"items":{"$ref":"#/components/schemas/SuggestedStep"},"type":"array","title":"Suggested Next Steps","description":"1-3 suggested next steps for the agent"},"transcript":{"items":{"$ref":"#/components/schemas/TranscriptEntry"},"type":"array","title":"Transcript","description":"Full conversation transcript with markers"},"compliance_flags":{"items":{"$ref":"#/components/schemas/ComplianceFlag"},"type":"array","title":"Compliance Flags","description":"Compliance flags, empty if none"}},"type":"object","required":["header","transfer_reason","call_summary","information_collected","suggested_next_steps","transcript"],"title":"AgentAssistPortal"},"AgentCloneRequest":{"properties":{"name":{"type":"string","title":"Name"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","required":["name"],"title":"AgentCloneRequest","description":"Schema for API requests to clone an existing agent."},"AgentConfig":{"properties":{"version":{"type":"string","const":"1","title":"Version","default":"1"},"agent":{"oneOf":[{"$ref":"#/components/schemas/StaticPromptAgent"}],"title":"Agent","discriminator":{"propertyName":"type","mapping":{"static_prompt":"#/components/schemas/StaticPromptAgent"}}},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"noise_cancellation":{"anyOf":[{"$ref":"#/components/schemas/NoiseCancellation"},{"type":"null"}],"title":"Noise Cancellation"},"custom_recording_locations":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/S3RecordingLocation"},{"$ref":"#/components/schemas/GcpRecordingLocation"},{"$ref":"#/components/schemas/AzureRecordingLocation"}],"discriminator":{"propertyName":"provider","mapping":{"azure":"#/components/schemas/AzureRecordingLocation","gcp":"#/components/schemas/GcpRecordingLocation","s3":"#/components/schemas/S3RecordingLocation"}}},"type":"array","minItems":1},{"type":"null"}],"title":"Custom Recording Locations"},"pre_conversation_workflow":{"anyOf":[{"$ref":"#/components/schemas/WorkflowAction"},{"type":"null"}],"title":"Pre Conversation Workflow"},"identity_verifiers":{"items":{"$ref":"#/components/schemas/IdentityVerifier"},"type":"array","title":"Identity Verifiers"},"post_conversation_workflow":{"anyOf":[{"$ref":"#/components/schemas/WorkflowAction"},{"type":"null"}],"title":"Post Conversation Workflow"},"extraction_workflow":{"anyOf":[{"$ref":"#/components/schemas/WorkflowAction"},{"type":"null"}],"title":"Extraction Workflow","description":"Extracts attributes (e.g. product, serial) into conversations.extracted_data when the conversation ends, at the same points as the post-conversation workflow."},"on_idle":{"anyOf":[{"$ref":"#/components/schemas/OnIdleConfig"},{"type":"null"}],"title":"On Idle","description":"Choose where a quiet conversation is filed in the helpdesk. Blank files it under the first escalation rule with a connection."},"scorecard_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scorecard IDs"},"voicemail_detection":{"anyOf":[{"$ref":"#/components/schemas/VoicemailDetectionConfig"},{"type":"null"}],"title":"Voicemail Detection"},"inactivity_nudge":{"$ref":"#/components/schemas/InactivityNudgeConfig","title":"Inactivity Nudge"},"screen_pop":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ScreenPopTarget"},"type":"object"},{"type":"null"}],"title":"Screen Pop","description":"Named links that /<org>/screen-pop/<caller>?target=<name> opens for a human taking over a call from this agent."}},"type":"object","required":["agent"],"title":"AgentConfig","description":"Top-level agent configuration."},"AgentCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","default":""},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active","default":true},"is_demo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo","default":false},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name"],"title":"AgentCreateRequest","description":"Schema for API requests to create a new agent (excludes organization_id)."},"AgentDeploymentDirection":{"type":"string","enum":["inbound","outbound","both"],"title":"AgentDeploymentDirection","description":"Direction for agent deployment."},"AgentFeedbackFormRequest":{"properties":{"form":{"anyOf":[{"$ref":"#/components/schemas/FormDefinition"},{"type":"null"}],"description":"The questions reviewers answer about a conversation"}},"type":"object","title":"AgentFeedbackFormRequest","description":"Set an agent's reviewer feedback form; ``form: null`` removes it.\n\nPer-field validation patterns are dropped: reviewer forms do not use them."},"AgentFeedbackFormResponse":{"properties":{"form":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Form","description":"The questions reviewers answer about a conversation"}},"type":"object","title":"AgentFeedbackFormResponse","description":"An agent's reviewer feedback form, as stored; null when it has none.\n\nReturned as saved, even if it no longer passes today's rules, so the\neditor can still open it to fix or remove it."},"AgentHealthItem":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"conversations":{"type":"integer","title":"Conversations"},"completed":{"type":"integer","title":"Completed"},"transferred":{"type":"integer","title":"Transferred"},"engaged":{"type":"integer","title":"Engaged"},"completion_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Completion Rate"},"containment_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Rate"},"aht_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Aht Seconds"},"last_conversation_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Conversation At"},"health_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Health Score"},"health_score_formula":{"type":"string","title":"Health Score Formula","default":"0.60*containment + 0.40*completion"},"health_status":{"type":"string","title":"Health Status"}},"type":"object","required":["agent_id","conversations","completed","transferred","engaged","health_status"],"title":"AgentHealthItem"},"AgentLanguage":{"properties":{"languages":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Languages"}},"type":"object","required":["languages"],"title":"AgentLanguage","description":"Agent language configuration."},"AgentPublishRequest":{"properties":{"phone_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Phone Numbers","description":"Optional list of phone numbers to deploy to"},"unassign_phone_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Unassign Phone Numbers","description":"Optional list of phone numbers to unassign from this agent"},"direction":{"$ref":"#/components/schemas/AgentDeploymentDirection","description":"Deployment direction: inbound, outbound, or both","default":"inbound"}},"type":"object","title":"AgentPublishRequest","description":"Request schema for agent publishing."},"AgentResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"active":{"type":"boolean","title":"Active"},"is_demo":{"type":"boolean","title":"Is Demo"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"labels":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Labels","default":{}},"versions":{"items":{"$ref":"#/components/schemas/SimpleAgentVersionResponse"},"type":"array","title":"Versions"},"has_published_version":{"type":"boolean","title":"Has Published Version"},"published_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Published Version"},"phone_numbers":{"items":{"$ref":"#/components/schemas/SimplePhoneNumberResponse"},"type":"array","title":"Phone Numbers"},"widgets":{"items":{"$ref":"#/components/schemas/SimpleWebWidgetResponse"},"type":"array","title":"Widgets","default":[]},"sip_endpoint":{"anyOf":[{"$ref":"#/components/schemas/AgentSipEndpointResponse"},{"type":"null"}]},"total_conversations":{"type":"integer","title":"Total Conversations","default":0},"total_duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Duration"},"average_duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Duration"},"last_conversation_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Conversation Date"},"widget_count":{"type":"integer","title":"Widget Count","default":0},"today_conversations":{"type":"integer","title":"Today Conversations","default":0},"daily_conversation_counts":{"items":{"type":"integer"},"type":"array","title":"Daily Conversation Counts","default":[]},"latest_version":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Latest Version"}},"type":"object","required":["id","name","description","active","is_demo","created_at","updated_at","versions","has_published_version","phone_numbers"],"title":"AgentResponse"},"AgentSipEndpointResponse":{"properties":{"uri":{"type":"string","title":"Uri"},"deployed":{"type":"boolean","title":"Deployed"}},"type":"object","required":["uri","deployed"],"title":"AgentSipEndpointResponse"},"AgentTransferRequest":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"source_organization_id":{"type":"string","title":"Source Organization Id"},"target_organization_id":{"type":"string","title":"Target Organization Id"}},"additionalProperties":false,"type":"object","required":["agent_id","source_organization_id","target_organization_id"],"title":"AgentTransferRequest","description":"Request body for the Admin Controls agent transfer."},"AgentTransferResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"source_organization_id":{"type":"string","title":"Source Organization Id"},"target_organization_id":{"type":"string","title":"Target Organization Id"},"versions_moved":{"type":"integer","title":"Versions Moved"},"widgets_moved":{"type":"integer","title":"Widgets Moved"},"conversations_moved":{"type":"integer","title":"Conversations Moved"},"phone_number_inbound_refs_cleared":{"type":"integer","title":"Phone Number Inbound Refs Cleared"},"phone_number_outbound_refs_cleared":{"type":"integer","title":"Phone Number Outbound Refs Cleared"},"version_configs_sanitized":{"type":"integer","title":"Version Configs Sanitized"},"workflow_refs_cleared":{"type":"integer","title":"Workflow Refs Cleared"},"default_contacts_moved":{"type":"integer","title":"Default Contacts Moved"},"attempts_moved":{"type":"integer","title":"Attempts Moved"}},"type":"object","required":["agent_id","source_organization_id","target_organization_id","versions_moved","widgets_moved","conversations_moved","phone_number_inbound_refs_cleared","phone_number_outbound_refs_cleared","version_configs_sanitized","workflow_refs_cleared","default_contacts_moved","attempts_moved"],"title":"AgentTransferResponse","description":"Summary counts returned by api.transfer_agent."},"AgentUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_demo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"AgentUpdateRequest","description":"Schema for API requests to update an agent."},"AgentVersion":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"agent_id":{"type":"string","title":"Agent Id"},"version":{"type":"integer","title":"Version"},"config":{"$ref":"#/components/schemas/AgentConfig"},"published":{"type":"boolean","title":"Published"},"instruction_builder_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Instruction Builder Inputs"},"trained_instruction_builder_inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trained Instruction Builder Inputs"},"generation_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generation Timestamp"},"manually_edited":{"type":"boolean","title":"Manually Edited","default":false},"is_updated":{"type":"boolean","title":"Is Updated","default":false},"cache_fingerprints":{"items":{"type":"string"},"type":"array","title":"Cache Fingerprints"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","agent_id","version","config","published","created_at","updated_at"],"title":"AgentVersion","description":"Agent version entity representing a version of an agent with configuration."},"AgentVersionCompareRequest":{"properties":{"from_version":{"type":"integer","title":"From Version","description":"The base version number to compare from"},"to_version":{"type":"integer","title":"To Version","description":"The version number to compare to"}},"type":"object","required":["from_version","to_version"],"title":"AgentVersionCompareRequest","description":"Request schema for comparing two agent versions.\n\nThe response is a streamed, LLM-generated natural-language summary of the\ndifferences between ``from_version`` and ``to_version``."},"AgentVersionCreateRequest":{"properties":{"config":{"anyOf":[{"$ref":"#/components/schemas/AgentConfig"},{"type":"null"}]},"base_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Base Version"}},"type":"object","title":"AgentVersionCreateRequest","description":"Schema for API requests to create a new agent version (excludes organization_id, agent_id, version, and published)."},"AgentVersionRevision":{"properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"published":{"type":"boolean","title":"Published"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","version","published","updated_at"],"title":"AgentVersionRevision","description":"Just enough of a version to tell whether it changed since it was loaded.\n\n`updated_at` is the revision token a save sends back as\n`expected_updated_at`."},"AgentVersionSummary":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"version":{"type":"integer","title":"Version"},"published":{"type":"boolean","title":"Published"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","agent_id","version","published","created_at","updated_at"],"title":"AgentVersionSummary","description":"An agent version without its config, for version pickers."},"AgentVersionUpdateRequest":{"properties":{"config":{"anyOf":[{"$ref":"#/components/schemas/AgentConfig"},{"type":"null"}]},"instruction_builder_inputs":{"anyOf":[{"$ref":"#/components/schemas/InstructionBuilderInputs"},{"type":"null"}]},"expected_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expected Updated At","description":"The version's `updated_at` as the caller last loaded it. When set, the save is refused with 409 if the version changed since, instead of overwriting that change. Send back exactly the value the API returned: it carries microseconds."}},"type":"object","title":"AgentVersionUpdateRequest","description":"Schema for API requests to update an agent version."},"AgentVolumeItem":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"call_count":{"type":"integer","title":"Call Count"}},"type":"object","required":["agent_id","agent_name","call_count"],"title":"AgentVolumeItem"},"AiConfig":{"properties":{"provider":{"type":"string","title":"Provider","default":"openai"},"model":{"type":"string","title":"Model","default":"gpt-5.1"}},"type":"object","title":"AiConfig"},"AnalyticsGroup":{"properties":{"variant_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Key"},"name":{"type":"string","title":"Name","default":""},"weight":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Weight"},"summary":{"$ref":"#/components/schemas/Summary"},"daily":{"items":{"$ref":"#/components/schemas/DailyPoint"},"type":"array","title":"Daily"},"opens":{"items":{"$ref":"#/components/schemas/OpenTrigger"},"type":"array","title":"Opens"},"proactive_items":{"items":{"$ref":"#/components/schemas/ProactiveItem"},"type":"array","title":"Proactive Items"},"proactive_rules":{"items":{"$ref":"#/components/schemas/ProactiveRule"},"type":"array","title":"Proactive Rules"},"conversations":{"$ref":"#/components/schemas/Conversations"},"conversions":{"$ref":"#/components/schemas/Conversions"},"countries":{"items":{"$ref":"#/components/schemas/CountryCount"},"type":"array","title":"Countries"}},"type":"object","title":"AnalyticsGroup"},"AnalyticsRange":{"properties":{"start":{"type":"string","format":"date-time","title":"Start"},"end":{"type":"string","format":"date-time","title":"End"},"timezone":{"type":"string","title":"Timezone"},"days":{"items":{"type":"string"},"type":"array","title":"Days"}},"type":"object","required":["start","end","timezone","days"],"title":"AnalyticsRange"},"AnalyticsResult":{"properties":{"range":{"$ref":"#/components/schemas/AnalyticsRange"},"groups":{"items":{"$ref":"#/components/schemas/AnalyticsGroup"},"type":"array","title":"Groups"},"filter_options":{"additionalProperties":{"items":{"$ref":"#/components/schemas/FilterOption"},"type":"array"},"type":"object","title":"Filter Options"}},"type":"object","required":["range","groups"],"title":"AnalyticsResult"},"AnchorExampleCreateRequest":{"properties":{"criterion_id":{"type":"string","title":"Criterion Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"},"level":{"type":"string","enum":["pass","fail","borderline"],"title":"Level"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["criterion_id","conversation_id","level"],"title":"AnchorExampleCreateRequest","description":"Schema for POST /anchor-examples (FR-D3/G2)."},"AnyReachDefaultModel":{"properties":{"name":{"type":"string","const":"default","title":"Name","default":"default"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/AnyReachDefaultParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"default","description":"Anyreach default STT model — resolved at runtime."},"AnyReachDefaultParameters":{"properties":{"vocabulary":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Vocabulary","description":"Domain-specific vocabulary terms. Maps to Deepgram keyterms or Gladia custom_vocabulary."}},"type":"object","title":"AnyReachDefaultParameters","description":"Parameters for Anyreach default STT model."},"AnyReachSttProvider":{"properties":{"provider":{"type":"string","const":"anyreach","title":"Provider","default":"anyreach"},"model":{"$ref":"#/components/schemas/AnyReachDefaultModel"}},"type":"object","required":["model"],"title":"AnyReachSttProvider","description":"Anyreach meta STT provider — resolved at runtime based on agent language."},"AnyreachMultilingualModel":{"properties":{"name":{"type":"string","const":"multilingual","title":"Name","default":"multilingual"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/AnyreachMultilingualModelParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"multilingual","description":"Anyreach Multilingual turn detection model configuration."},"AnyreachMultilingualModelParameters":{"properties":{"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"API Key"},"timeout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout"},"fallback_threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fallback Threshold"},"max_context_items":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Context Items"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"type":"object","title":"AnyreachMultilingualModelParameters","description":"Parameters for Anyreach Multilingual model."},"AnyreachSide":{"properties":{"label":{"type":"string","title":"Label","default":"Anyreach"},"column_title":{"type":"string","title":"Column Title","default":"One front door, no menu"},"eyebrow":{"type":"string","title":"Eyebrow","default":"The Anyreach way"},"start_button":{"type":"string","title":"Start Button","default":"Call Anyreach"},"assistant_name":{"type":"string","title":"Assistant Name","default":"Your agent"},"line_label":{"type":"string","title":"Line Label","default":"demo line"},"intents":{"items":{"type":"string","maxLength":80,"minLength":1},"type":"array","maxItems":10,"title":"Intents"},"tools":{"$ref":"#/components/schemas/AnyreachTools"},"government":{"type":"null","title":"Government"}},"additionalProperties":false,"type":"object","title":"AnyreachSide"},"AnyreachTools":{"properties":{"verify":{"items":{"type":"string"},"type":"array","title":"Verify"},"results":{"items":{"type":"string"},"type":"array","title":"Results"},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels"}},"additionalProperties":false,"type":"object","title":"AnyreachTools","description":"Which of the agent's tools verify the caller and which return results,\nand the label each is shown under."},"AnyreachTurnDetectionProvider":{"properties":{"provider":{"type":"string","const":"anyreach","title":"Provider","default":"anyreach"},"model":{"oneOf":[{"$ref":"#/components/schemas/AnyreachMultilingualModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"multilingual":"#/components/schemas/AnyreachMultilingualModel"}}}},"type":"object","required":["model"],"title":"AnyreachTurnDetectionProvider","description":"Anyreach turn detection provider."},"AppStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"app","title":"Type","default":"app"},"source":{"type":"string","title":"Source","description":"e.g. 'http', 'pipedream'"},"operation":{"type":"string","title":"Operation"},"operation_input":{"additionalProperties":true,"type":"object","title":"Operation Input","default":{}}},"type":"object","required":["id","source","operation"],"title":"AppStep"},"Assumptions":{"properties":{"calls":{"type":"integer","minimum":0.0,"title":"Calls","default":6000000},"ivr_per_min":{"type":"number","minimum":0.0,"title":"Ivr Per Min","default":0.045},"agent_per_min":{"type":"number","minimum":0.0,"title":"Agent Per Min","default":1.35},"agent_tail_min":{"type":"number","minimum":0.0,"title":"Agent Tail Min","default":4.5},"ai_per_min":{"type":"number","minimum":0.0,"title":"Ai Per Min","default":0.22},"old_esc":{"type":"number","minimum":0.0,"title":"Old Esc","default":0.52},"new_esc":{"type":"number","minimum":0.0,"title":"New Esc","default":0.35},"old_agent_min":{"type":"number","minimum":0.0,"title":"Old Agent Min","default":4.65},"new_agent_min":{"type":"number","minimum":0.0,"title":"New Agent Min","default":3.0}},"additionalProperties":false,"type":"object","title":"Assumptions"},"AttemptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"contact_id":{"type":"string","format":"uuid","title":"Contact Id"},"campaign_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Id"},"phone_number":{"type":"string","title":"Phone Number"},"conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversation Id"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"status":{"type":"string","title":"Status"}},"type":"object","required":["id","organization_id","contact_id","phone_number","started_at","status"],"title":"AttemptResponse"},"AttributeSource":{"properties":{"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Workflow Version"},"extracted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extracted At"}},"type":"object","title":"AttributeSource","description":"Where an attribute's stored value came from."},"AudioUploadUrlRequest":{"properties":{"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type","default":"audio/wav"}},"type":"object","required":["filename"],"title":"AudioUploadUrlRequest","description":"Schema for requesting a presigned S3 upload URL for audio files."},"AudioUploadUrlResponse":{"properties":{"upload_url":{"type":"string","title":"Upload Url"},"file_url":{"type":"string","title":"File Url"},"s3_key":{"type":"string","title":"S3 Key"}},"type":"object","required":["upload_url","file_url","s3_key"],"title":"AudioUploadUrlResponse","description":"Schema for the presigned upload URL response."},"AzureOpenAIGPT4_1Model":{"properties":{"name":{"type":"string","const":"gpt-4.1","title":"Name","default":"gpt-4.1"},"parameters":{"$ref":"#/components/schemas/AzureOpenAIGPT4_1Parameters","title":"Parameters"}},"type":"object","required":["parameters"],"title":"gpt-4.1","description":"Azure OpenAI GPT-4.1 model configuration."},"AzureOpenAIGPT4_1Parameters":{"properties":{"azure_deployment":{"type":"string","title":"Azure Deployment"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"}},"type":"object","required":["azure_deployment"],"title":"AzureOpenAIGPT4_1Parameters","description":"Parameters for Azure OpenAI GPT-4.1 model."},"AzureOpenAIGPT4oModel":{"properties":{"name":{"type":"string","const":"gpt-4o","title":"Name","default":"gpt-4o"},"parameters":{"$ref":"#/components/schemas/AzureOpenAIGPT4oParameters","title":"Parameters"}},"type":"object","required":["parameters"],"title":"gpt-4o","description":"Azure OpenAI GPT-4o model configuration."},"AzureOpenAIGPT4oParameters":{"properties":{"azure_deployment":{"type":"string","title":"Azure Deployment"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"}},"type":"object","required":["azure_deployment"],"title":"AzureOpenAIGPT4oParameters","description":"Parameters for Azure OpenAI GPT-4o model."},"AzureOpenAIProvider":{"properties":{"provider":{"type":"string","const":"azure_openai","title":"Provider","default":"azure_openai"},"model":{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIGPT4oModel"},{"$ref":"#/components/schemas/AzureOpenAIGPT4_1Model"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"gpt-4.1":"#/components/schemas/AzureOpenAIGPT4_1Model","gpt-4o":"#/components/schemas/AzureOpenAIGPT4oModel"}}}},"type":"object","required":["model"],"title":"Azure OpenAI","description":"Azure OpenAI LLM provider."},"AzureRecordingLocation":{"properties":{"provider":{"type":"string","const":"azure","title":"Provider","default":"azure"},"container_name":{"type":"string","title":"Container Name"},"account_name":{"type":"string","title":"Account Name"},"account_key":{"type":"string","title":"Account Key"},"file_type":{"type":"string","enum":["ogg","mp4"],"title":"File Type","default":"ogg"}},"type":"object","required":["container_name","account_name","account_key"],"title":"AzureRecordingLocation","description":"Azure recording location provider."},"BatchCreateDemoRequest":{"properties":{"company_websites":{"items":{"type":"string"},"type":"array","title":"Company Websites"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"include_phone_number":{"type":"boolean","title":"Include Phone Number","default":false}},"type":"object","required":["company_websites"],"title":"BatchCreateDemoRequest","description":"Request body for POST /agents/create-demo-batch."},"BeforeExpiryRefreshPolicy":{"properties":{"type":{"type":"string","const":"before_expiry","title":"Type","default":"before_expiry"},"seconds_before":{"type":"integer","maximum":86400.0,"minimum":30.0,"title":"Seconds Before","default":600},"fallback_interval_seconds":{"type":"integer","maximum":604800.0,"minimum":300.0,"title":"Fallback Interval Seconds","default":3600}},"type":"object","title":"BeforeExpiryRefreshPolicy","description":"Refreshed ahead of expiry, rescheduled after every successful refresh.\n\n`fallback_interval_seconds` covers credentials whose refresher does not\nreport an expiry — without it there would be nothing to schedule against."},"BlacklistedResponse":{"properties":{"detail":{"type":"string","title":"Detail"},"blacklisted":{"type":"boolean","title":"Blacklisted"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["detail","blacklisted","domain"],"title":"BlacklistedResponse","description":"403 body shape shared by the mirror/screenshot endpoints. Declared so the\ngenerated client can model the policy-block response."},"BodyCompression":{"type":"string","enum":["none","gzip","gzip_payload"],"title":"BodyCompression","description":"Whether the request body is gzipped, and whether that is declared.\n\nThe two gzip modes are not a style choice. ``GZIP`` is the HTTP-correct\none: the body is a compressed representation of the payload and\n``Content-Encoding: gzip`` tells the server to decompress it before\nhanding it to the application.\n\n``GZIP_PAYLOAD`` sends the same bytes and says nothing. That is what an\nobject store needs: GCS and S3 read ``Content-Encoding`` on an upload as\nthe *stored object's* encoding, so declaring it there produces an object\nthat is transparently decompressed on read — which then fails to load as\na ``.jsonl.gz`` in BigQuery. Uploading a gzip file means the gzip bytes\nare the payload, not a transfer encoding."},"BodyType":{"type":"string","enum":["json","form","raw"],"title":"BodyType"},"BotInitiatesDynamicMessage":{"properties":{"type":{"type":"string","const":"bot_initiates_dynamic","title":"Use Instructions","default":"bot_initiates_dynamic"},"prompt":{"type":"string","title":"Instructions"},"allow_interruptions":{"type":"boolean","title":"Allow Interruptions","default":true},"action_grid":{"anyOf":[{"$ref":"#/components/schemas/StartingActionGrid"},{"type":"null"}],"title":"Action Grid"}},"type":"object","required":["prompt"],"title":"BotInitiatesDynamicMessage","description":"Bot initiates dynamic starting message configuration."},"BotInitiatesStaticMessage":{"properties":{"type":{"type":"string","const":"bot_initiates_static","title":"Exact Text","default":"bot_initiates_static"},"text":{"type":"string","title":"Text"},"literal":{"type":"boolean","title":"Literal","description":"Say the text exactly as written, without rendering it as a template. Set on text that holds values from outside the agent config, such as a web widget's conversation starters.","default":false},"allow_interruptions":{"type":"boolean","title":"Allow Interruptions","default":true},"action_grid":{"anyOf":[{"$ref":"#/components/schemas/StartingActionGrid"},{"type":"null"}],"title":"Action Grid"},"pregenerated_greeting_audio":{"type":"boolean","title":"Pre-generated Greeting Audio","description":"When true, the agent looks up a pre-generated recording of this greeting — synthesized once with the configured TTS voice and stored in the recording S3 bucket, content-addressed over ``text`` + the full TTS config — and plays it instead of synthesizing ``text`` with TTS on every conversation. Useful for truly-static greetings (e.g. inbound) where the same opening line is spoken every time. The recording is keyed by a fingerprint the runtime recomputes from the rendered text + TTS config, so if no recording matches (e.g. the text was edited but not regenerated, or the voice changed) the agent transparently falls back to live TTS. Only meaningful for non-templated ``text``; the builder pre-generates the recording.","default":false}},"type":"object","required":["text"],"title":"BotInitiatesStaticMessage","description":"Bot initiates static starting message configuration."},"BriefDriver":{"properties":{"text":{"type":"string","title":"Text"},"direction":{"type":"string","title":"Direction"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},"type":"object","required":["text","direction"],"title":"BriefDriver"},"BuiltInTools":{"properties":{"time_tool":{"anyOf":[{"$ref":"#/components/schemas/TimeToolConfig"},{"type":"null"}],"title":"Time Tool"},"widgets":{"anyOf":[{"$ref":"#/components/schemas/WidgetsConfig"},{"type":"null"}],"title":"Widgets"},"forms":{"anyOf":[{"$ref":"#/components/schemas/FormsConfig"},{"type":"null"}],"title":"Forms"},"web_search":{"anyOf":[{"$ref":"#/components/schemas/WebSearchToolConfig"},{"type":"null"}],"title":"Web Search"},"retrieve_webpage":{"anyOf":[{"$ref":"#/components/schemas/RetrieveWebpageToolConfig"},{"type":"null"}],"title":"Retrieve Webpage"},"continue_on_phone":{"anyOf":[{"$ref":"#/components/schemas/ContinueOnPhoneToolConfig"},{"type":"null"}],"title":"Continue on Phone"},"images":{"anyOf":[{"$ref":"#/components/schemas/ImagesToolConfig"},{"type":"null"}],"title":"Images"},"cart":{"anyOf":[{"$ref":"#/components/schemas/CartToolConfig"},{"type":"null"}],"title":"Cart"}},"type":"object","title":"BuiltInTools","description":"Configuration for platform built-in tools."},"BulkLabelsRequest":{"properties":{"ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":500,"minItems":1,"title":"Ids"},"set":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Set"},"add":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Add"},"remove":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Remove"},"clear":{"items":{"type":"string"},"type":"array","title":"Clear"}},"type":"object","required":["ids"],"title":"BulkLabelsRequest"},"BulkLabelsResponse":{"properties":{"updated":{"type":"integer","title":"Updated"}},"type":"object","required":["updated"],"title":"BulkLabelsResponse"},"CalibrationAssignRequest":{"properties":{"raters":{"items":{"$ref":"#/components/schemas/CalibrationRaterRequest"},"type":"array","title":"Raters"},"evaluation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Id"}},"type":"object","required":["raters"],"title":"CalibrationAssignRequest","description":"Schema for POST /calibration-sets/{id}/assignments."},"CalibrationItemsRequest":{"properties":{"conversation_ids":{"items":{"type":"string"},"type":"array","title":"Conversation Ids"}},"type":"object","required":["conversation_ids"],"title":"CalibrationItemsRequest","description":"Schema for POST /calibration-sets/{id}/items."},"CalibrationRaterRequest":{"properties":{"rater_type":{"type":"string","enum":["human","ai"],"title":"Rater Type"},"rater_pool":{"type":"string","enum":["internal","customer","ai"],"title":"Rater Pool","default":"internal"},"rater_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rater Id"}},"type":"object","required":["rater_type"],"title":"CalibrationRaterRequest","description":"One rater to assign across a calibration set (FR-E2/E7)."},"CalibrationSetCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"metric_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metric Id"},"evaluation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluation Id"},"panel_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Panel Size"}},"type":"object","required":["name"],"title":"CalibrationSetCreateRequest","description":"Schema for POST /calibration-sets (FR-E1)."},"CallEndedPayload":{"properties":{"attempt_id":{"type":"string","title":"Attempt Id"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"completed":{"type":"boolean","title":"Completed","default":false}},"type":"object","required":["attempt_id"],"title":"CallEndedPayload","description":"Payload for call ended webhook."},"CallTimer":{"properties":{"seconds":{"type":"integer","title":"Seconds","default":60}},"additionalProperties":false,"type":"object","title":"CallTimer","description":"The countdown each call runs against; the call is ended when it hits\nzero. The target's ``max_duration_s`` stays the safety limit behind it."},"CallerSettingIn":{"properties":{"organization_id":{"type":"string","maxLength":255,"minLength":1,"title":"Organization Id"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"version":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Version"}},"type":"object","required":["organization_id","agent_id"],"title":"CallerSettingIn"},"CallerSettingOut":{"properties":{"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name"},"resolved_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved Version"},"resolved_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved Version Id"}},"type":"object","title":"CallerSettingOut"},"CampaignCreate":{"properties":{"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"name":{"type":"string","title":"Name"},"configuration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Configuration Id"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"priority":{"type":"integer","maximum":999999.0,"minimum":0.0,"title":"Priority","default":1},"agent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"contacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/ContactInput"},"type":"array","maxItems":5000},{"type":"null"}],"title":"Contacts"}},"type":"object","required":["name"],"title":"CampaignCreate"},"CampaignResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"configuration_id":{"type":"string","format":"uuid","title":"Configuration Id"},"agent_number":{"type":"string","title":"Agent Number","default":""},"priority":{"type":"integer","maximum":999999.0,"minimum":0.0,"title":"Priority","default":1},"agent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"}},"type":"object","required":["id","organization_id","name","status","configuration_id","created_at","updated_at"],"title":"CampaignResponse"},"CampaignUpdate":{"properties":{"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"configuration_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Configuration Id"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"priority":{"anyOf":[{"type":"integer","maximum":999999.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"agent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"contacts":{"anyOf":[{"items":{"$ref":"#/components/schemas/ContactInput"},"type":"array","maxItems":5000},{"type":"null"}],"title":"Contacts"}},"type":"object","title":"CampaignUpdate"},"CapabilityDocument":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"agent_id":{"type":"string","title":"Agent Id"},"source_config_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Config Version"},"status":{"type":"string","enum":["pending","running","ready","quality_failed","failed","ineligible"],"title":"Status"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"content":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Content"},"is_public":{"type":"boolean","title":"Is Public","default":true},"check_failures":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Check Failures"},"residue":{"items":{"type":"string"},"type":"array","title":"Residue"},"generated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated By"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"stale":{"type":"boolean","title":"Stale","default":false}},"type":"object","required":["id","organization_id","agent_id","status"],"title":"CapabilityDocument","description":"One agent's capability document.\n\n``content`` is null until a generation has succeeded, and a later failure leaves the\nlast good content in place — so a row with ``status == \"failed\"`` and content present\nis a published document whose refresh failed, not a broken one."},"CartToolConfig":{"properties":{"max_quantity_per_line":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max quantity per line","description":"The most of one item the agent can add or set in one call.","default":10},"action_timeout_seconds":{"type":"number","maximum":20.0,"minimum":3.0,"title":"Action timeout (seconds)","description":"How long the agent waits for the shopper's browser to confirm.","default":10.0}},"type":"object","title":"CartToolConfig","description":"Lets the agent add to, change and open the shopper's cart on the\nwebsite, through the web widget. Platform-\nneutral: the widget's own ``v1.cart`` switch decides whether a site carries\nthe actions out, and the embed loader's adapter for the store's platform\n(Shopify today) does them."},"CartesiaProvider":{"properties":{"provider":{"type":"string","const":"cartesia","title":"Provider","default":"cartesia"},"model":{"oneOf":[{"$ref":"#/components/schemas/CartesiaSonic3Model"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"sonic-3":"#/components/schemas/CartesiaSonic3Model"}}}},"type":"object","required":["model"],"title":"CartesiaProvider","description":"Cartesia TTS provider."},"CartesiaSonic3Model":{"properties":{"name":{"type":"string","const":"sonic-3","title":"Name","default":"sonic-3"},"parameters":{"$ref":"#/components/schemas/CartesiaSonic3Parameters","title":"Parameters"}},"type":"object","required":["parameters"],"title":"sonic-3","description":"Cartesia Sonic-3 model configuration."},"CartesiaSonic3Parameters":{"properties":{"voice":{"anyOf":[{"type":"string"},{"items":{"type":"number"},"type":"array"}],"title":"Voice"},"language":{"anyOf":[{"type":"string","enum":["en","fr","de","es","pt","zh","ja","hi","it","ko","nl","pl","ru","sv","tr","tl","bg","ro","ar","cs","el","fi","hr","ms","sk","da","ta","uk","hu","no","vi","bn","th","he","ka","id","te","gu","kn","ml","mr","pa"]},{"type":"null"}],"title":"Language","default":"en"},"speed":{"anyOf":[{"type":"number","maximum":1.5,"minimum":0.6},{"type":"null"}],"title":"Speed","default":1.0},"emotion":{"anyOf":[{"type":"string","enum":["neutral","angry","excited","content","sad","scared","happy","enthusiastic","elated","euphoric","triumphant","amazed","surprised","flirtatious","joking/comedic","curious","peaceful","serene","calm","grateful","affectionate","trust","sympathetic","anticipation","mysterious","mad","outraged","frustrated","agitated","threatened","disgusted","contempt","envious","sarcastic","ironic","dejected","melancholic","disappointed","hurt","guilty","bored","tired","rejected","nostalgic","wistful","apologetic","hesitant","insecure","confused","resigned","anxious","panicked","alarmed","proud","confident","distant","skeptical","contemplative","determined"]},{"type":"null"}],"title":"Emotion"},"volume":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.5},{"type":"null"}],"title":"Volume","default":1.0}},"type":"object","required":["voice"],"title":"CartesiaSonic3Parameters","description":"Parameters for Cartesia Sonic-3 model.\n\nBased on:\n- https://docs.cartesia.ai/build-with-cartesia/sonic-3/volume-speed-emotion\n- https://docs.cartesia.ai/build-with-cartesia/tts-models/latest#language-support\n\nNote: Parameters like emotion and language support are specific to Sonic-3."},"CerebrasLlama3_3_70bModel":{"properties":{"name":{"type":"string","const":"llama-3.3-70b","title":"Name","default":"llama-3.3-70b"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/CerebrasLlama3_3_70bParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"llama-3.3-70b","description":"Cerebras Llama 3.3 70B model configuration."},"CerebrasLlama3_3_70bParameters":{"properties":{"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_completion_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Completion Tokens"}},"type":"object","title":"CerebrasLlama3_3_70bParameters","description":"Parameters for Cerebras Llama 3.3 70B model."},"CerebrasProvider":{"properties":{"provider":{"type":"string","const":"cerebras","title":"Provider","default":"cerebras"},"model":{"oneOf":[{"$ref":"#/components/schemas/CerebrasLlama3_3_70bModel"},{"$ref":"#/components/schemas/CerebrasZaiGlm4_7Model"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"llama-3.3-70b":"#/components/schemas/CerebrasLlama3_3_70bModel","zai-glm-4.7":"#/components/schemas/CerebrasZaiGlm4_7Model"}}}},"type":"object","required":["model"],"title":"Cerebras","description":"Cerebras LLM provider."},"CerebrasZaiGlm4_7Model":{"properties":{"name":{"type":"string","const":"zai-glm-4.7","title":"Name","default":"zai-glm-4.7"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/CerebrasZaiGlm4_7Parameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"zai-glm-4.7","description":"Cerebras ZAI-GLM 4.7 model configuration."},"CerebrasZaiGlm4_7Parameters":{"properties":{"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_completion_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Completion Tokens"}},"type":"object","title":"CerebrasZaiGlm4_7Parameters","description":"Parameters for Cerebras ZAI-GLM 4.7 model."},"Channel":{"type":"string","enum":["telephone","webrtc","email","text","webchat"],"title":"Channel","description":"Channel type for the conversation."},"ChannelCount":{"properties":{"channel":{"type":"string","title":"Channel"},"count":{"type":"integer","title":"Count"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["channel","count","percent"],"title":"ChannelCount"},"ChannelInstructionMode":{"type":"string","enum":["append","replace"],"title":"ChannelInstructionMode","description":"How per-channel instructions combine with the base instructions."},"ChannelKey":{"type":"string","enum":["telephone","webrtc","sms","email","text","webchat"],"title":"ChannelKey","description":"Conversation channel a per-channel config block applies to."},"ChannelOverride":{"properties":{"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"instructions_mode":{"$ref":"#/components/schemas/ChannelInstructionMode","title":"Instructions Mode","default":"append"},"starting_message":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/UserInitiatesMessage"},{"$ref":"#/components/schemas/BotInitiatesStaticMessage"},{"$ref":"#/components/schemas/BotInitiatesDynamicMessage"}],"discriminator":{"propertyName":"type","mapping":{"bot_initiates_dynamic":"#/components/schemas/BotInitiatesDynamicMessage","bot_initiates_static":"#/components/schemas/BotInitiatesStaticMessage","user_initiates":"#/components/schemas/UserInitiatesMessage"}}},{"type":"null"}],"title":"Starting Message"},"max_tool_steps":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tool Steps"},"llm":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIProvider"},{"$ref":"#/components/schemas/CerebrasProvider"},{"$ref":"#/components/schemas/GoogleProvider"},{"$ref":"#/components/schemas/LiveKitInferenceProvider"},{"$ref":"#/components/schemas/OpenAIProvider"},{"$ref":"#/components/schemas/VercelProvider"}],"title":"Provider","discriminator":{"propertyName":"provider","mapping":{"azure_openai":"#/components/schemas/AzureOpenAIProvider","cerebras":"#/components/schemas/CerebrasProvider","google":"#/components/schemas/GoogleProvider","livekit":"#/components/schemas/LiveKitInferenceProvider","openai":"#/components/schemas/OpenAIProvider","vercel":"#/components/schemas/VercelProvider"}}},{"type":"null"}],"title":"LLM Override","description":"Override the base stack LLM for this channel. Async channels only (openai, google, cerebras, vercel, azure_openai)."}},"type":"object","title":"ChannelOverride","description":"Group 1 — per-channel LLM-inference steering (fine-tune the base prompt).\n\nConsumed by the async engine (``resolve_channel_config``): it changes how\nthe agent *thinks/responds* on a channel, not how the reply is rendered."},"Charts":{"properties":{"sentiment":{"type":"string","enum":["combined","split"],"title":"Sentiment","default":"combined"}},"additionalProperties":false,"type":"object","title":"Charts","description":"How the comparison draws its charts: member sentiment as one chart\nwith both calls on it, or the chart per call it used to be."},"ChatLane":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"label":{"type":"string","title":"Label","default":"Chat widget"},"delay_s":{"type":"number","minimum":0.0,"title":"Delay S","default":10},"prompt":{"type":"string","title":"Prompt","default":"The question the caller asks on both calls"}},"additionalProperties":false,"type":"object","title":"ChatLane"},"ChunkingMethod":{"type":"string","enum":["fixed","structure_based"],"title":"ChunkingMethod"},"ChunkingStrategy":{"properties":{"method":{"$ref":"#/components/schemas/ChunkingMethod"},"chunk_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chunk Size","default":1000}},"type":"object","required":["method"],"title":"ChunkingStrategy"},"ClaimRequest":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/QueryFilter"},"type":"array","title":"Filters"},"order":{"items":{"$ref":"#/components/schemas/QuerySort"},"type":"array","title":"Order"},"patch":{"additionalProperties":true,"type":"object","title":"Patch","description":"Declared properties to set on the claimed row, merged over what is already there. Cannot include the row key."}},"type":"object","required":["patch"],"title":"ClaimRequest","description":"Take one matching row and mark it.\n\nSame filter and sort vocabulary as a query — the row you claim is the row\nthat query would have returned first. `patch` is what changes about it, and\nit is deliberately not a filter: the caller says which row, the config says\nwhat happens to it."},"ClaimResponse":{"properties":{"found":{"type":"boolean","title":"Found"},"record":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Record"}},"type":"object","required":["found"],"title":"ClaimResponse"},"Client":{"properties":{"name":{"type":"string","title":"Name","default":"Your organization"},"desktop_label":{"type":"string","title":"Desktop Label","default":"Agent desktop"},"interaction_id_prefix":{"type":"string","title":"Interaction Id Prefix","default":"AR"}},"additionalProperties":false,"type":"object","title":"Client"},"ClientActionOutcomeRequest":{"properties":{"status":{"type":"string","pattern":"^[a-z][a-z_]{0,31}$","title":"Status"},"result":{"additionalProperties":true,"type":"object","title":"Result"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Per-conversation capability token (or X-Conversation-Token)"}},"type":"object","required":["status"],"title":"ClientActionOutcomeRequest","description":"Body for an action's outcome."},"CodePreviewRequest":{"properties":{"code":{"type":"string","title":"Code","description":"Python function body for the code step"},"packages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Packages","description":"pip packages to install before run; defaults to service default"},"context_data":{"additionalProperties":true,"type":"object","title":"Context Data","description":"Workflow JSONata context (WorkflowContext.data) for preview"},"step_id":{"type":"string","title":"Step Id","description":"Step id used for ctx.current_step_id and recorded outputs","default":"preview"}},"type":"object","required":["code"],"title":"CodePreviewRequest"},"CodePreviewResponse":{"properties":{"status":{"type":"string","title":"Status","description":"SUCCESS or FAILURE"},"output":{"anyOf":[{},{"type":"null"}],"title":"Output","description":"Parsed return value"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Step-level error message"},"stdout":{"type":"string","title":"Stdout","default":""},"stderr":{"type":"string","title":"Stderr","default":""},"execution_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Error","description":"Interpreter/sandbox error string if any"}},"type":"object","required":["status"],"title":"CodePreviewResponse"},"CodeStep-Input":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"code","title":"Type","default":"code"},"language":{"type":"string","const":"python","title":"Language","default":"python"},"code":{"type":"string","title":"Code"},"packages":{"items":{"type":"string"},"type":"array","title":"Packages","default":["requests"]},"return_value_schema":{"anyOf":[{"$ref":"#/components/schemas/DataSchema-Input"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["id","code"],"title":"CodeStep"},"CodeStep-Output":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"code","title":"Type","default":"code"},"language":{"type":"string","const":"python","title":"Language","default":"python"},"code":{"type":"string","title":"Code"},"packages":{"items":{"type":"string"},"type":"array","title":"Packages","default":["requests"]},"return_value_schema":{"anyOf":[{"$ref":"#/components/schemas/DataSchema-Output"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["id","code"],"title":"CodeStep"},"ColdTransferAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"cold_transfer","title":"Type","default":"cold_transfer"},"transfer_number":{"type":"string","title":"Transfer Number"},"displayed_number":{"$ref":"#/components/schemas/DisplayedNumberType","title":"Displayed Number","default":"transferee_number"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["transfer_number"],"title":"Cold Transfer","description":"Cold transfer configuration."},"CompilePredicateRequest":{"properties":{"mode":{"type":"string","enum":["gating","deterministic"],"title":"Mode","default":"gating"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction"},"logic":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Logic"},"criteria":{"items":{"type":"string"},"type":"array","title":"Criteria","default":[]},"metrics":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Metrics","default":[]}},"type":"object","title":"CompilePredicateRequest","description":"Schema for POST /predicates/compile — AI predicate authoring (FR-A4 UX).\n\nTwo directions: give `instruction` (natural language) to generate JSONLogic\n+ a human-readable description, or give `logic` (e.g. after a manual JSON\nedit) to re-describe + validate it. `criteria`/`metrics` scope the\nreferences the generator may use ('gating'); 'deterministic' rules reference\nconversation fields only."},"ComplianceFlag":{"properties":{"type":{"type":"string","title":"Type","description":"Compliance flag type"},"description":{"type":"string","title":"Description","description":"Description of the compliance issue"}},"type":"object","required":["type","description"],"title":"ComplianceFlag"},"ConcludeRequest":{"properties":{"winner_key":{"type":"string","title":"Winner Key","description":"The variant to keep. Anything but `control` is written into every widget in the experiment."},"dry_run":{"type":"boolean","title":"Dry Run","description":"Report what would change, write nothing.","default":false}},"type":"object","required":["winner_key"],"title":"ConcludeRequest"},"ConcludeResponse":{"properties":{"concluded":{"type":"boolean","title":"Concluded"},"experiment":{"$ref":"#/components/schemas/ExperimentOut"},"widgets":{"items":{"$ref":"#/components/schemas/ConcludedWidget"},"type":"array","title":"Widgets"}},"type":"object","required":["concluded","experiment","widgets"],"title":"ConcludeResponse"},"ConcludedWidget":{"properties":{"widget_id":{"type":"string","title":"Widget Id"},"unlinked_sections":{"items":{"type":"string"},"type":"array","title":"Unlinked Sections","default":[]},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"}},"type":"object","required":["widget_id"],"title":"ConcludedWidget"},"ConcurrencySettingsResponse":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"concurrency_limit":{"type":"integer","title":"Concurrency Limit"},"active":{"type":"integer","title":"Active","default":0},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["organization_id","concurrency_limit"],"title":"ConcurrencySettingsResponse"},"ConcurrencySettingsUpdate":{"properties":{"concurrency_limit":{"type":"integer","maximum":10000.0,"exclusiveMinimum":0.0,"title":"Concurrency Limit"}},"type":"object","required":["concurrency_limit"],"title":"ConcurrencySettingsUpdate"},"Condition":{"properties":{"condition":{"type":"string","title":"Condition"},"label":{"type":"string","title":"Label","default":""},"ai_instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Instruction"},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ui_config":{"$ref":"#/components/schemas/UiConfig"}},"type":"object","required":["condition"],"title":"Condition"},"ConditionStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"condition","title":"Type","default":"condition"},"conditions":{"items":{"$ref":"#/components/schemas/Condition"},"type":"array","title":"Conditions"}},"additionalProperties":false,"type":"object","required":["id","conditions"],"title":"ConditionStep"},"ConferenceAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"conference","title":"Type","default":"conference"},"conference_number":{"type":"string","title":"Conference Number"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["conference_number"],"title":"Add to Conference","description":"Conference configuration."},"ConfigurationCreate":{"properties":{"name":{"type":"string","title":"Name"},"is_default":{"type":"boolean","title":"Is Default","default":false},"default_timezone":{"type":"string","title":"Default Timezone","default":"America/New_York"},"default_windows":{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array","title":"Default Windows","default":[]},"overrides":{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array","title":"Overrides","default":[]},"scheduled_windows":{"anyOf":[{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array"},{"type":"null"}],"title":"Scheduled Windows"},"scheduled_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array"},{"type":"null"}],"title":"Scheduled Overrides"},"max_attempts_per_phone_number":{"type":"integer","title":"Max Attempts Per Phone Number","default":2},"default_country_code":{"type":"string","title":"Default Country Code","default":"+1"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","required":["name","agent_id"],"title":"ConfigurationCreate"},"ConfigurationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"is_default":{"type":"boolean","title":"Is Default"},"default_timezone":{"type":"string","title":"Default Timezone"},"default_windows":{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array","title":"Default Windows"},"overrides":{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array","title":"Overrides"},"scheduled_windows":{"anyOf":[{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array"},{"type":"null"}],"title":"Scheduled Windows"},"scheduled_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array"},{"type":"null"}],"title":"Scheduled Overrides"},"max_attempts_per_phone_number":{"type":"integer","title":"Max Attempts Per Phone Number"},"default_country_code":{"type":"string","title":"Default Country Code"},"agent_id":{"type":"string","title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","name","is_default","default_timezone","default_windows","overrides","max_attempts_per_phone_number","default_country_code","agent_id","created_at","updated_at"],"title":"ConfigurationResponse"},"ConfigurationUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"default_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Timezone"},"default_windows":{"anyOf":[{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array"},{"type":"null"}],"title":"Default Windows"},"overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array"},{"type":"null"}],"title":"Overrides"},"scheduled_windows":{"anyOf":[{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array"},{"type":"null"}],"title":"Scheduled Windows"},"scheduled_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ScheduleOverride"},"type":"array"},{"type":"null"}],"title":"Scheduled Overrides"},"max_attempts_per_phone_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Attempts Per Phone Number"},"default_country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Country Code"},"agent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","title":"ConfigurationUpdate"},"ConfirmCriterionItem":{"properties":{"criterion_id":{"type":"string","title":"Criterion Id"},"outcome":{"type":"string","enum":["true","false","abstain","na"],"title":"Outcome"},"quote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning"}},"type":"object","required":["criterion_id","outcome"],"title":"ConfirmCriterionItem","description":"A single atom verdict in a human confirm/correct submission (FR-H2/H3)."},"ConfirmRunRequest":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ConfirmCriterionItem"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"ConfirmRunRequest","description":"Schema for POST /evaluation-runs/{id}/confirm.\n\nThe human's final state for the run's criteria (AI pre-fill + flips).\nConfirming an AI run creates a new human run; confirming a pending human\nrun (calibration assignment) fills it in place. Every flip vs. the AI run\nis an AI↔human disagreement datum (feeds the calibration engine, FR-H2)."},"ContactBulkCreate":{"properties":{"contacts":{"items":{"$ref":"#/components/schemas/ContactInput"},"type":"array","maxItems":1000,"title":"Contacts"}},"type":"object","required":["contacts"],"title":"ContactBulkCreate"},"ContactInput":{"properties":{"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"phone_numbers":{"items":{"type":"string"},"type":"array","title":"Phone Numbers","default":[]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"agent_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Config"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"agent_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Version"},"initial_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Context"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","title":"ContactInput","description":"Structured contact input mirroring the DB schema."},"ContactUpsertResult":{"properties":{"inserted":{"type":"integer","title":"Inserted"},"updated":{"type":"integer","title":"Updated"},"failed":{"items":{"$ref":"#/components/schemas/FailedContact"},"type":"array","title":"Failed","default":[]},"warnings":{"items":{"$ref":"#/components/schemas/FailedContact"},"type":"array","title":"Warnings","default":[]},"contact_ids":{"items":{"type":"string"},"type":"array","title":"Contact Ids","default":[]}},"type":"object","required":["inserted","updated"],"title":"ContactUpsertResult"},"ContactWithAttemptsListResponse":{"properties":{"contacts":{"items":{"$ref":"#/components/schemas/ContactWithAttemptsResponse"},"type":"array","title":"Contacts"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["contacts","total","limit","offset"],"title":"ContactWithAttemptsListResponse"},"ContactWithAttemptsResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"organization_id":{"type":"string","title":"Organization Id"},"campaign_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Campaign Id"},"data":{"additionalProperties":true,"type":"object","title":"Data"},"status":{"type":"string","title":"Status"},"retry_after":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Retry After"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"phone_numbers":{"items":{"type":"string"},"type":"array","title":"Phone Numbers","default":[]},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"agent_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Config"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"agent_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Agent Version"},"initial_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Context"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"attempts":{"items":{"$ref":"#/components/schemas/AttemptResponse"},"type":"array","title":"Attempts","default":[]}},"type":"object","required":["id","organization_id","data","status","created_at","updated_at"],"title":"ContactWithAttemptsResponse"},"ContinueOnPhoneToolConfig":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent ID","description":"Agent to use for the phone call. Falls back to the current agent if not set."},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version","description":"Specific agent version number. Only used with agent_id. Uses latest published if not set."},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number","description":"E.164 phone number to call FROM. Falls back to the number assigned to the agent if not set."}},"type":"object","title":"ContinueOnPhoneToolConfig","description":"Configuration for the continue_on_phone built-in tool."},"ConversationAgent":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","required":["id","name"],"title":"ConversationAgent","description":"Agent reference with id and name."},"ConversationAggregateBucket":{"properties":{"dims":{"additionalProperties":true,"type":"object","title":"Dims"},"conversations":{"type":"integer","title":"Conversations"},"avg_duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration"},"avg_turns":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Turns"},"total_duration":{"type":"integer","title":"Total Duration"},"duration_samples":{"type":"integer","title":"Duration Samples"},"turns_samples":{"type":"integer","title":"Turns Samples"}},"type":"object","required":["dims","conversations","total_duration","duration_samples","turns_samples"],"title":"ConversationAggregateBucket"},"ConversationAggregateFilters":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"created_after":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created After"},"created_before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Before"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"status":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Status"},"is_demo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Demo"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"include_token_created":{"type":"boolean","title":"Include Token Created","default":false},"exclude":{"anyOf":[{"$ref":"#/components/schemas/ConversationExclusions"},{"type":"null"}]}},"type":"object","title":"ConversationAggregateFilters"},"ConversationAggregateRequest":{"properties":{"filters":{"$ref":"#/components/schemas/ConversationAggregateFilters","default":{"include_token_created":false}},"group_by":{"items":{"type":"string"},"type":"array","title":"Group By","description":"Dimensions to group by. Besides the built-in ones, at most one label:<key> groups by a single-valued label key."}},"type":"object","title":"ConversationAggregateRequest"},"ConversationCreateRequest":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Optional conversation ID for idempotent creation. If provided and a conversation with this ID already exists, the existing conversation is returned."},"channel":{"$ref":"#/components/schemas/Channel","description":"Channel type: telephone, webrtc, or text"},"user_id":{"type":"string","title":"User Id","description":"User ID (must be +E.164 phone number for telephony)"},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Custom Metadata","description":"Optional custom metadata"},"agent_config":{"anyOf":[{"$ref":"#/components/schemas/AgentConfig"},{"type":"null"}],"description":"Agent configuration (conditional)"},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id","description":"Agent version ID (for webrtc)"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Parent agent ID (resolves latest published version)"},"version":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Version","description":"Agent version (used with agent_id): a version number, or the tag 'latest' for the highest published version (same as omitting it)"},"initial_context":{"type":"string","title":"Initial Context","description":"Context to inject into the agent's system prompt at conversation start","default":""},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number","description":"Agent number (required for telephony)"},"to_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Address","description":"Recipient address (email outbound-initiated)"},"from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Address","description":"Sender address (email outbound-initiated)"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"Subject line for an outbound-initiated email. If omitted, the agent's configured email default_subject is used."}},"type":"object","required":["channel","user_id"],"title":"ConversationCreateRequest","description":"Schema for API requests to create a new conversation."},"ConversationDirection":{"type":"string","enum":["inbound","outbound"],"title":"ConversationDirection","description":"Direction of the conversation."},"ConversationExclusions":{"properties":{"duration":{"items":{"$ref":"#/components/schemas/ExclusionRule"},"type":"array","maxItems":10,"title":"Duration"},"turns":{"items":{"$ref":"#/components/schemas/ExclusionRule"},"type":"array","maxItems":10,"title":"Turns"},"callers":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Callers"},"keep_transferred":{"type":"boolean","title":"Keep Transferred","default":true}},"type":"object","title":"ConversationExclusions","description":"Rules that remove conversations from every dashboard number; they are\napplied in conversation_aggregate (migration 1785200000000)."},"ConversationFeedbackRequest":{"properties":{"widget_id":{"type":"string","title":"Widget Id","description":"Widget whose feedback form defines the accepted fields"},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Submitted feedback field values keyed by field id"}},"type":"object","required":["widget_id","data"],"title":"ConversationFeedbackRequest","description":"Schema for submitting feedback on a conversation from the platform.\n\nUnlike ``WidgetFeedbackRequest`` (public, keyed by widget id in the path),\nthis authenticated variant is keyed by conversation id and carries the\n``widget_id`` whose feedback form to validate against — the conversation may\nhave no widget of its own (e.g. a phone call)."},"ConversationFunnelStep":{"properties":{"step":{"type":"string","title":"Step"},"step_order":{"type":"integer","title":"Step Order"},"conversations":{"type":"integer","title":"Conversations"},"drop_off":{"type":"integer","title":"Drop Off"},"drop_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Drop Percent"},"pct_of_initiated":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pct Of Initiated"},"unknown_signal":{"type":"integer","title":"Unknown Signal"}},"type":"object","required":["step","step_order","conversations","drop_off","unknown_signal"],"title":"ConversationFunnelStep"},"ConversationIdentityResponse":{"properties":{"verified_identities":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Verified Identities"},"identity_pending":{"additionalProperties":true,"type":"object","title":"Identity Pending"},"bindings":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Bindings"},"attempts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Attempts"},"redacted":{"type":"boolean","title":"Redacted","default":false},"uses_verified_identity":{"type":"boolean","title":"Uses Verified Identity","default":false}},"type":"object","title":"ConversationIdentityResponse","description":"A conversation's verification record, for the dashboard."},"ConversationImportItem":{"properties":{"channel":{"$ref":"#/components/schemas/Channel"},"user_id":{"type":"string","title":"User Id"},"direction":{"$ref":"#/components/schemas/ConversationDirection"},"agent_config":{"anyOf":[{"$ref":"#/components/schemas/AgentConfig"},{"type":"null"}]},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trunk Id"},"trunk_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trunk Config"},"web_widget_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web Widget Id"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"recording_details":{"anyOf":[{"$ref":"#/components/schemas/RecordingDetail"},{"type":"null"}]},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Custom Metadata"},"conversation":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation","description":"Arbitrary JSON payload; recommended to store transcript here"},"sip":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sip"},"status":{"$ref":"#/components/schemas/ConversationStatus","default":"completed"},"service_version":{"type":"string","title":"Service Version","default":"import"},"live_transcription_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Live Transcription Enabled","deprecated":true}},"additionalProperties":false,"type":"object","required":["channel","user_id","direction"],"title":"ConversationImportItem","description":"Schema for importing (inserting) a conversation with transcript payload.\n\nNotes:\n- Transcript should be stored in the `conversation` field (JSON).\n- This is intended for historical imports; it should not trigger call dispatching."},"ConversationImportRequest":{"properties":{"conversations":{"items":{"$ref":"#/components/schemas/ConversationImportItem"},"type":"array","title":"Conversations"}},"additionalProperties":false,"type":"object","required":["conversations"],"title":"ConversationImportRequest"},"ConversationImportResponse":{"properties":{"inserted":{"type":"integer","title":"Inserted"},"conversation_ids":{"items":{"type":"string"},"type":"array","title":"Conversation Ids"}},"type":"object","required":["inserted","conversation_ids"],"title":"ConversationImportResponse"},"ConversationListenerTokenResponse":{"properties":{"url":{"type":"string","title":"Url","description":"LiveKit server URL"},"token":{"type":"string","title":"Token","description":"Listener JWT (subscribe-only, hidden, audio + data)"},"room_name":{"type":"string","title":"Room Name","description":"LiveKit room the conversation is in"},"expires_at":{"type":"string","format":"date-time","title":"Expires At","description":"Listener token expiry (UTC)"}},"type":"object","required":["url","token","room_name","expires_at"],"title":"ConversationListenerTokenResponse","description":"Response shape for the listener-token endpoint.\n\nHolds everything the client needs to subscribe to a live conversation as a\nread-only observer."},"ConversationPartial":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trunk Id"},"trunk_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trunk Config"},"direction":{"anyOf":[{"$ref":"#/components/schemas/ConversationDirection"},{"type":"null"}]},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"},"web_widget_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web Widget Id"},"agent_config":{},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"agent_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Number"},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"user_turn_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Turn Count"},"user_name":{"type":"string","title":"User Name","default":""},"recording_details":{"anyOf":[{"$ref":"#/components/schemas/RecordingDetailResponse"},{"type":"null"}]},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Custom Metadata"},"system_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"System Metadata"},"conversation":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation"},"sip":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sip"},"initial_context":{"type":"string","title":"Initial Context","default":""},"summary":{"type":"string","title":"Summary","default":""},"status":{"anyOf":[{"$ref":"#/components/schemas/ConversationStatus"},{"type":"null"}]},"service_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Version"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"extracted_data":{"anyOf":[{"$ref":"#/components/schemas/ExtractedData"},{"type":"null"}]},"experiment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Id"},"experiment_variant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Experiment Variant"},"agent":{"anyOf":[{"$ref":"#/components/schemas/ConversationAgent"},{"type":"null"}]}},"type":"object","title":"ConversationPartial","description":"Partial conversation schema for list responses with specific columns."},"ConversationReview":{"properties":{"form":{"anyOf":[{"$ref":"#/components/schemas/FormDefinition"},{"type":"null"}],"description":"The agent's current feedback form; null when it has none"},"review":{"anyOf":[{"$ref":"#/components/schemas/ReviewerFeedback"},{"type":"null"}],"description":"The saved review; null until a reviewer saves one"}},"type":"object","title":"ConversationReview","description":"A conversation's reviewer feedback and the form a reviewer answers."},"ConversationReviewRequest":{"properties":{"answers":{"additionalProperties":true,"type":"object","title":"Answers","description":"Answers keyed by field id"}},"type":"object","required":["answers"],"title":"ConversationReviewRequest","description":"Answers to the agent's feedback form, keyed by field id."},"ConversationStatus":{"type":"string","enum":["token_created","triggered","ringing","in_progress","completed","failed","cancelled","transferred","unanswered"],"title":"ConversationStatus","description":"Status of the conversation."},"Conversations":{"properties":{"conversations":{"type":"integer","title":"Conversations","default":0},"messages_sent":{"type":"integer","title":"Messages Sent","default":0},"left_waiting":{"type":"integer","title":"Left Waiting","default":0},"first_reply_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Reply P50"},"first_reply_p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Reply P90"},"handoff_requested":{"type":"integer","title":"Handoff Requested","default":0},"handoff_completed":{"type":"integer","title":"Handoff Completed","default":0},"handoff_failed":{"type":"integer","title":"Handoff Failed","default":0},"handoff_wait_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Handoff Wait P50"},"end_reasons":{"additionalProperties":{"type":"integer"},"type":"object","title":"End Reasons"},"quick_actions":{"additionalProperties":{"type":"integer"},"type":"object","title":"Quick Actions"},"forms":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object","title":"Forms"}},"type":"object","title":"Conversations"},"Conversions":{"properties":{"link_clicks":{"type":"integer","title":"Link Clicks","default":0},"link_visitors":{"type":"integer","title":"Link Visitors","default":0},"top_links":{"items":{"$ref":"#/components/schemas/LinkCount"},"type":"array","title":"Top Links"},"cart_adds":{"type":"integer","title":"Cart Adds","default":0},"cart_visitors":{"type":"integer","title":"Cart Visitors","default":0},"cart_items":{"type":"integer","title":"Cart Items","default":0},"cart_value":{"additionalProperties":{"type":"integer"},"type":"object","title":"Cart Value"},"cart_by_source":{"additionalProperties":{"$ref":"#/components/schemas/SourceCount"},"type":"object","title":"Cart By Source"}},"type":"object","title":"Conversions"},"CountryCount":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"visitors":{"type":"integer","title":"Visitors","default":0},"sessions":{"type":"integer","title":"Sessions","default":0},"opened_visitors":{"type":"integer","title":"Opened Visitors","default":0},"chatted_visitors":{"type":"integer","title":"Chatted Visitors","default":0}},"type":"object","title":"CountryCount"},"CrawlOptions":{"properties":{"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","default":10},"max_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Depth","default":3},"max_discovery_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Discovery Depth","default":3},"include_paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Include Paths"},"exclude_paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude Paths"},"add_to_datasets":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Add To Datasets"},"crawler_provider":{"anyOf":[{"$ref":"#/components/schemas/CrawlerProvider"},{"type":"null"}],"description":"Crawler provider to use. If not specified, defaults to environment CRAWLER_MODE setting.","default":"firecrawl"}},"type":"object","title":"CrawlOptions"},"CrawlerProvider":{"type":"string","enum":["firecrawl","crawl4ai"],"title":"CrawlerProvider"},"CreateAgentFromWebsiteRequest":{"properties":{"company_name":{"type":"string","title":"Company Name"},"company_website":{"type":"string","title":"Company Website"},"company_overview":{"type":"string","title":"Company Overview","default":""},"is_demo":{"type":"boolean","title":"Is Demo","default":false},"skip_deployment":{"type":"boolean","title":"Skip Deployment","default":false},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"existing_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Agent Id"},"existing_collection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Collection Id"},"demo_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Demo Type"}},"type":"object","required":["company_name","company_website"],"title":"CreateAgentFromWebsiteRequest","description":"Request body for POST /agents/create-from-website."},"CreateAttachmentRequest":{"properties":{"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"size_bytes":{"type":"integer","title":"Size Bytes"},"source":{"type":"string","title":"Source","default":"upload"}},"type":"object","required":["filename","content_type","size_bytes"],"title":"CreateAttachmentRequest"},"CreateAttachmentResponse":{"properties":{"attachment_id":{"type":"string","title":"Attachment Id"},"url":{"type":"string","title":"Url"},"fields":{"additionalProperties":true,"type":"object","title":"Fields"},"s3_key":{"type":"string","title":"S3 Key"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["attachment_id","url","fields","s3_key","expires_in"],"title":"CreateAttachmentResponse"},"CreateDemoRequest":{"properties":{"company_website":{"type":"string","title":"Company Website"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"include_phone_number":{"type":"boolean","title":"Include Phone Number","default":false}},"type":"object","required":["company_website"],"title":"CreateDemoRequest","description":"Request body for POST /agents/create-demo."},"CreateSharedTrunkForOrganizationRequest":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"trunk_external_id":{"type":"string","title":"Trunk External Id"},"trunk_domain_name":{"type":"string","title":"Trunk Domain Name"}},"type":"object","required":["organization_id","trunk_external_id","trunk_domain_name"],"title":"CreateSharedTrunkForOrganizationRequest","description":"Schema for API requests to create a shared trunk for an organization."},"CredentialCreateRequestSchema":{"properties":{"name":{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.-]*$","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"refresher_workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Refresher Workflow Id"},"refresh_input":{"additionalProperties":true,"type":"object","title":"Refresh Input","default":{}},"refresh_policy":{"oneOf":[{"$ref":"#/components/schemas/ManualRefreshPolicy"},{"$ref":"#/components/schemas/CronRefreshPolicy"},{"$ref":"#/components/schemas/BeforeExpiryRefreshPolicy"}],"title":"Refresh Policy","default":{"type":"manual"},"discriminator":{"propertyName":"type","mapping":{"before_expiry":"#/components/schemas/BeforeExpiryRefreshPolicy","cron":"#/components/schemas/CronRefreshPolicy","manual":"#/components/schemas/ManualRefreshPolicy"}}},"secrets":{"additionalProperties":{"type":"string"},"type":"object","title":"Secrets","default":{}}},"type":"object","required":["name"],"title":"CredentialCreateRequestSchema"},"CredentialRefreshResponseSchema":{"properties":{"credential_id":{"type":"string","format":"uuid","title":"Credential Id"},"status":{"type":"string","enum":["started","already_running"],"title":"Status"},"temporal_workflow_id":{"type":"string","title":"Temporal Workflow Id"}},"type":"object","required":["credential_id","status","temporal_workflow_id"],"title":"CredentialRefreshResponseSchema","description":"Result of asking for a refresh — the run itself is asynchronous."},"CredentialSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"refresher_workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Refresher Workflow Id"},"refresh_input":{"additionalProperties":true,"type":"object","title":"Refresh Input","default":{}},"refresh_policy":{"oneOf":[{"$ref":"#/components/schemas/ManualRefreshPolicy"},{"$ref":"#/components/schemas/CronRefreshPolicy"},{"$ref":"#/components/schemas/BeforeExpiryRefreshPolicy"}],"title":"Refresh Policy","default":{"type":"manual"},"discriminator":{"propertyName":"type","mapping":{"before_expiry":"#/components/schemas/BeforeExpiryRefreshPolicy","cron":"#/components/schemas/CronRefreshPolicy","manual":"#/components/schemas/ManualRefreshPolicy"}}},"has_value":{"type":"boolean","title":"Has Value","default":false},"value_keys":{"items":{"type":"string"},"type":"array","title":"Value Keys","default":[]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"last_refresh_status":{"anyOf":[{"type":"string","enum":["success","failed","in_progress"]},{"type":"null"}],"title":"Last Refresh Status"},"last_refresh_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Refresh At"},"last_refresh_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Refresh Error"},"last_refresh_execution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Last Refresh Execution Id"},"refresh_locked_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Refresh Locked Until"},"is_refreshing":{"type":"boolean","title":"Is Refreshing","default":false},"temporal_schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temporal Schedule Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"secrets":{"items":{"$ref":"#/components/schemas/CredentialSecretSchema"},"type":"array","title":"Secrets","default":[]}},"type":"object","required":["id","organization_id","name","created_at","updated_at"],"title":"CredentialSchema"},"CredentialSecretSchema":{"properties":{"key":{"type":"string","title":"Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["key","created_at","updated_at"],"title":"CredentialSecretSchema","description":"A setup secret, by name only. The value is never returned."},"CredentialSecretWriteSchema":{"properties":{"value":{"type":"string","minLength":1,"title":"Value"}},"type":"object","required":["value"],"title":"CredentialSecretWriteSchema"},"CredentialUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":64,"pattern":"^[A-Za-z0-9][A-Za-z0-9_.-]*$"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"refresher_workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Refresher Workflow Id"},"refresh_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Refresh Input"},"refresh_policy":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ManualRefreshPolicy"},{"$ref":"#/components/schemas/CronRefreshPolicy"},{"$ref":"#/components/schemas/BeforeExpiryRefreshPolicy"}],"discriminator":{"propertyName":"type","mapping":{"before_expiry":"#/components/schemas/BeforeExpiryRefreshPolicy","cron":"#/components/schemas/CronRefreshPolicy","manual":"#/components/schemas/ManualRefreshPolicy"}}},{"type":"null"}],"title":"Refresh Policy"}},"type":"object","title":"CredentialUpdateSchema"},"CredentialValuePatchSchema":{"properties":{"set":{"additionalProperties":{"type":"string"},"type":"object","title":"Set","default":{}},"delete":{"items":{"type":"string"},"type":"array","title":"Delete","default":[]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"CredentialValuePatchSchema","description":"A partial edit of a static credential's value.\n\nPer-key rather than whole-value because the value is a single encrypted blob\nthe client cannot read: to overwrite one key without wiping the rest, the\nmerge has to happen on the server, which is the only side that can decrypt."},"CredentialValueWriteSchema":{"properties":{"value":{"additionalProperties":true,"type":"object","minProperties":1,"title":"Value"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["value"],"title":"CredentialValueWriteSchema","description":"The value of a static credential — one with no refresher to mint it.\n\nAn object rather than a bare string because `$credential('name')` is indexed\nby key everywhere else; a static credential holding {\"api_key\": \"...\"} reads\nidentically to a refreshed one holding {\"access_token\": \"...\"}."},"CriterionItemRequest":{"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"question":{"type":"string","title":"Question"},"expected_value":{"type":"boolean","title":"Expected Value","default":true},"evidence_required":{"type":"boolean","title":"Evidence Required","default":true},"na_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Na Rule"},"applies_when":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Applies When"},"applies_when_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Applies When Description"},"source":{"type":"string","enum":["judge","deterministic"],"title":"Source","default":"judge"},"rule":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rule"},"rule_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Description"},"widget_hint":{"type":"string","enum":["single_select","checklist"],"title":"Widget Hint","default":"checklist"},"display_order":{"type":"integer","title":"Display Order","default":0}},"type":"object","required":["question"],"title":"CriterionItemRequest","description":"A criterion within a metric create/replace request (FR-A1).\n\nWord the question for detectability (\"did <behavior> occur?\"); polarity\nlives in expected_value (FR-A1a). `key` is optional — when omitted the\nserver slugifies it from the question (FR keys auto-generated).\n\n`source` selects how the outcome is produced: `judge` (the LLM) or\n`deterministic` (computed from `rule`, a JSONLogic expression over the\nconversation record)."},"CriterionResult":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"evaluation_run_id":{"type":"string","title":"Evaluation Run Id"},"criterion_id":{"type":"string","title":"Criterion Id"},"outcome":{"type":"string","enum":["true","false","abstain","na"],"title":"Outcome"},"quote":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quote"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning"},"judge_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Judge Version Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","evaluation_run_id","criterion_id","outcome","created_at","updated_at"],"title":"CriterionResult","description":"CriterionResult entity — one atom's verdict for one evaluation run.\n\nEvidence is a verbatim `quote` (substring-validated against the source,\nFR-B1/B2); structured span anchoring is deferred (PRD §13.4)."},"CronRefreshPolicy":{"properties":{"type":{"type":"string","const":"cron","title":"Type","default":"cron"},"cron_expression":{"type":"string","title":"Cron Expression"},"timezone":{"type":"string","title":"Timezone","default":"UTC"}},"type":"object","required":["cron_expression"],"title":"CronRefreshPolicy","description":"Refreshed on a fixed schedule, whatever the credential's expiry says.\n\nThe cron expression and timezone are validated here, during request parsing,\nso an invalid policy is a 422 before anything is written. Validating later\n(when the Temporal schedule is built) would leave the bad policy persisted\nand the previous working schedule already gone."},"CustomDataAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"custom_data","title":"Type","default":"custom_data"},"table":{"type":"string","title":"Table Name"},"operation":{"type":"string","enum":["get_row","query","saved_query","claim","search"],"title":"Operation","default":"query"},"search_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Text Template","description":"For search: a Jinja template resolving to what the caller is looking for, in their own words."},"mode":{"type":"string","enum":["hybrid","semantic","keyword"],"title":"Search Mode","description":"For search: hybrid ranks by meaning and wording together and falls back to wording alone if the query cannot be embedded in time; semantic ranks by meaning only; keyword by wording only.","default":"hybrid"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stored Query","description":"For saved_query: the name of a stored SQL query on this table. Arguments are bound, never templated into the SQL."},"embed_arguments":{"items":{"type":"string"},"type":"array","title":"Embedded Arguments","description":"For saved_query: the query's embedding parameters. The model passes words; they are embedded before binding, so the query receives a vector. Generated with the tool."},"patch":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Claim Patch","description":"For claim: the declared properties to set on the row that is taken, e.g. {\"used\": true}. STATIC — it comes from this config, never from the model's arguments, so the model chooses which row and a human decides what happens to it. Cannot touch the row key."},"row_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Row Key Template","description":"For get_row: a Jinja template resolving to the record's key."},"filters":{"items":{"$ref":"#/components/schemas/CustomDataFilter"},"type":"array","title":"Filters"},"order":{"items":{"$ref":"#/components/schemas/CustomDataSort"},"type":"array","title":"Sort"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":5},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["table"],"title":"Custom Data","description":"Read a Custom Data table during the call.\n\nReads are served from Postgres in-VPC with no call to any external system on\nthe live path. Filters and sorts address schema-declared properties only,\nand the SQL casts come from the declared types — so a price sorts as a\nnumber and a date as a date.\n\nReads are the bulk of it. The one write is `claim`, which is deliberately\nthe narrowest write that could exist: a fixed statement, a patch declared in\nconfig rather than supplied by the model, and no way to name a row directly.\nEverything wider stays out of the agent path (docs/prd/custom-data.md §5)."},"CustomDataFilter":{"properties":{"property":{"type":"string","title":"Property"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","contains","starts_with"],"title":"Operator","default":"eq"},"value":{"type":"string","title":"Value Template"}},"type":"object","required":["property","value"],"title":"Custom Data Filter","description":"One predicate against a Custom Data table.\n\n``value`` is a Jinja template rendered per call. A template that renders\nempty is DROPPED, which is what lets a generated tool declare one optional\nfilter per property and still issue a single-predicate query when the caller\nnamed a single constraint. See docs/prd/custom-data.md §6."},"CustomDataSort":{"properties":{"property":{"type":"string","title":"Property"},"direction":{"type":"string","enum":["asc","desc"],"title":"Direction","default":"asc"}},"type":"object","required":["property"],"title":"Custom Data Sort"},"CustomTableCreateRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Lowercase identifier, unique within the organization. Referenced by writers, agent tools and the generated typed view."},"schema":{"additionalProperties":true,"type":"object","title":"Schema","description":"Restricted JSON Schema profile: a flat object of scalar properties, exactly one carrying \"x-key\": true."}},"type":"object","required":["name","schema"],"title":"CustomTableCreateRequest"},"CustomTableSchema":{"properties":{"id":{"type":"integer","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"schema":{"additionalProperties":true,"type":"object","title":"Schema"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"live_rows":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Live Rows"},"tombstoned_rows":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tombstoned Rows"},"last_changed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Changed At"},"embeddable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Embeddable"},"embedded_rows":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Embedded Rows"},"pending_rows":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pending Rows"}},"type":"object","required":["id","organization_id","name","schema"],"title":"CustomTableSchema","description":"A table row. Stats fields are present only on the single-table read."},"CustomTableUpdateRequest":{"properties":{"schema":{"additionalProperties":true,"type":"object","title":"Schema"}},"type":"object","required":["schema"],"title":"CustomTableUpdateRequest"},"DailyPoint":{"properties":{"day":{"type":"string","title":"Day"},"visitors":{"type":"integer","title":"Visitors","default":0},"sessions":{"type":"integer","title":"Sessions","default":0},"page_views":{"type":"integer","title":"Page Views","default":0},"opened_visitors":{"type":"integer","title":"Opened Visitors","default":0},"chatted_visitors":{"type":"integer","title":"Chatted Visitors","default":0}},"type":"object","required":["day"],"title":"DailyPoint"},"DashboardBrief":{"properties":{"headline":{"type":"string","title":"Headline"},"summary":{"type":"string","title":"Summary"},"drivers":{"items":{"$ref":"#/components/schemas/BriefDriver"},"type":"array","title":"Drivers","default":[]},"window":{"$ref":"#/components/schemas/DashboardWindow"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"},"model":{"type":"string","title":"Model"},"cached":{"type":"boolean","title":"Cached","default":false}},"type":"object","required":["headline","summary","window","generated_at","model"],"title":"DashboardBrief"},"DashboardComparison":{"properties":{"window":{"$ref":"#/components/schemas/DashboardWindow"},"total_conversations":{"type":"integer","title":"Total Conversations"},"completed_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Completed Percent"},"transferred_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transferred Percent"},"containment_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Percent"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"}},"type":"object","required":["window","total_conversations"],"title":"DashboardComparison","description":"Headline numbers for the comparison window."},"DashboardDeltas":{"properties":{"avg_duration_seconds_delta":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds Delta"},"total_conversations_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Conversations Percent"},"completed_percent_points":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Completed Percent Points"},"transferred_percent_points":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transferred Percent Points"},"containment_percent_points":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Percent Points"}},"type":"object","title":"DashboardDeltas","description":"Current minus previous.\n\nVolume is a RELATIVE change (percent of the previous count); the rates are\nabsolute PERCENTAGE-POINT moves, because the percent change of a percentage\nis what makes \"completion fell 5%\" ambiguous. The field names carry the\ndistinction so a caller cannot mix them up."},"DashboardLayoutResponse":{"properties":{"layout":{"additionalProperties":true,"type":"object","title":"Layout"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["layout"],"title":"DashboardLayoutResponse"},"DashboardLayoutUpdateRequest":{"properties":{"layout":{"additionalProperties":true,"type":"object","title":"Layout"}},"type":"object","required":["layout"],"title":"DashboardLayoutUpdateRequest"},"DashboardLive":{"properties":{"active_conversations":{"type":"integer","title":"Active Conversations"},"ringing":{"type":"integer","title":"Ringing"},"active_agents":{"type":"integer","title":"Active Agents"},"deployed_agents":{"type":"integer","title":"Deployed Agents"},"total_agents":{"type":"integer","title":"Total Agents"},"active_by_channel":{"items":{"$ref":"#/components/schemas/LiveChannelCount"},"type":"array","title":"Active By Channel","default":[]},"today_conversations":{"type":"integer","title":"Today Conversations"},"yesterday_conversations":{"type":"integer","title":"Yesterday Conversations"},"today_vs_yesterday_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Today Vs Yesterday Percent"}},"type":"object","required":["active_conversations","ringing","active_agents","deployed_agents","total_agents","today_conversations","yesterday_conversations"],"title":"DashboardLive","description":"The Live view's status strip, counted in the database.\n\nEvery field here is a count or a server-computed delta. The strip used to be\nderived from whatever page of rows the browser happened to hold."},"DashboardResponse":{"properties":{"total_agents":{"type":"integer","title":"Total Agents"},"live_agents":{"type":"integer","title":"Live Agents"},"total_conversations":{"type":"integer","title":"Total Conversations"},"agent_call_volume":{"items":{"$ref":"#/components/schemas/AgentVolumeItem"},"type":"array","title":"Agent Call Volume"},"call_volume_trend_30d":{"items":{"$ref":"#/components/schemas/TrendPoint"},"type":"array","title":"Call Volume Trend 30D"},"direction_distribution":{"$ref":"#/components/schemas/PercentageBreakdown"},"status_distribution":{"$ref":"#/components/schemas/StatusBreakdown"},"window":{"anyOf":[{"$ref":"#/components/schemas/DashboardWindow"},{"type":"null"}]},"live_conversations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Live Conversations"},"containment_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Percent"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"},"status_counts":{"items":{"$ref":"#/components/schemas/StatusCount"},"type":"array","title":"Status Counts","default":[]},"channel_counts":{"items":{"$ref":"#/components/schemas/ChannelCount"},"type":"array","title":"Channel Counts","default":[]},"previous":{"anyOf":[{"$ref":"#/components/schemas/DashboardComparison"},{"type":"null"}]},"deltas":{"anyOf":[{"$ref":"#/components/schemas/DashboardDeltas"},{"type":"null"}]},"excluded_conversations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Excluded Conversations"}},"type":"object","required":["total_agents","live_agents","total_conversations","agent_call_volume","call_volume_trend_30d","direction_distribution","status_distribution"],"title":"DashboardResponse"},"DashboardWindow":{"properties":{"created_after":{"type":"string","format":"date-time","title":"Created After"},"created_before":{"type":"string","format":"date-time","title":"Created Before"}},"type":"object","required":["created_after","created_before"],"title":"DashboardWindow","description":"The window actually used, echoed back because `period` is resolved\nserver-side and the client needs to label the chart with the real dates."},"DataSchema-Input":{"properties":{"data_type":{"$ref":"#/components/schemas/DataType","description":"The type of the data, could be one of the following: 'string', 'number', 'boolean', 'array', 'object'"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the data","default":""},"choices":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Choices","description":"The choices of the data as per the data type","default":[]},"is_required":{"type":"boolean","title":"Is Required","description":"Whether the data is required","default":false},"children":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Input"},"type":"object"},{"type":"null"}],"title":"Children","description":"Nested schema for object-type data"}},"type":"object","required":["data_type"],"title":"DataSchema"},"DataSchema-Output":{"properties":{"data_type":{"$ref":"#/components/schemas/DataType","description":"The type of the data, could be one of the following: 'string', 'number', 'boolean', 'array', 'object'"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"The description of the data","default":""},"choices":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Choices","description":"The choices of the data as per the data type","default":[]},"is_required":{"type":"boolean","title":"Is Required","description":"Whether the data is required","default":false},"children":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Output"},"type":"object"},{"type":"null"}],"title":"Children","description":"Nested schema for object-type data"}},"type":"object","required":["data_type"],"title":"DataSchema"},"DataType":{"type":"string","enum":["string","number","boolean","array","object"],"title":"DataType"},"DatasetCreateRequestSchema":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModel"},"embedding_dimension":{"$ref":"#/components/schemas/EmbeddingDimension"}},"type":"object","required":["name","embedding_model","embedding_dimension"],"title":"DatasetCreateRequestSchema"},"DatasetSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModel"},"embedding_dimension":{"$ref":"#/components/schemas/EmbeddingDimension"},"source_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Count"},"today_sources":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Today Sources","default":0},"daily_source_counts":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Daily Source Counts"},"last_source_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Source Date"}},"type":"object","required":["id","created_at","updated_at","organization_id","name","embedding_model","embedding_dimension"],"title":"DatasetSchema"},"DatasetSourceRequestCreateSchema":{"properties":{"source_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Source Ids"}},"type":"object","required":["source_ids"],"title":"DatasetSourceRequestCreateSchema"},"DatasetSourceSchema":{"properties":{"id":{"type":"integer","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"source_id":{"type":"string","format":"uuid","title":"Source Id"},"dataset_id":{"type":"string","format":"uuid","title":"Dataset Id"},"status":{"$ref":"#/components/schemas/DatasetSourceStatus"},"chunking_strategy":{"anyOf":[{"$ref":"#/components/schemas/ChunkingStrategy"},{"type":"null"}]},"file_processor":{"anyOf":[{"$ref":"#/components/schemas/FileProcessor"},{"type":"null"}]},"total_chunks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Chunks","default":0},"processed_chunks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processed Chunks","default":0},"sources":{"$ref":"#/components/schemas/SourceSchema"},"datasets":{"$ref":"#/components/schemas/DatasetSchema"}},"type":"object","required":["id","organization_id","created_at","updated_at","source_id","dataset_id","status","sources","datasets"],"title":"DatasetSourceSchema"},"DatasetSourceStatus":{"type":"string","enum":["PENDING","CONVERTING_TO_MARKDOWN","CHUNKING","EMBEDDING","READY","FAILED"],"title":"DatasetSourceStatus"},"DatasetUpdateRequestSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"embedding_model":{"anyOf":[{"$ref":"#/components/schemas/EmbeddingModel"},{"type":"null"}]},"embedding_dimension":{"anyOf":[{"$ref":"#/components/schemas/EmbeddingDimension"},{"type":"null"}]}},"type":"object","title":"DatasetUpdateRequestSchema"},"DeepgramNova2GeneralModel":{"properties":{"name":{"type":"string","const":"nova-2-general","title":"Name","default":"nova-2-general"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/DeepgramNova2GeneralParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"nova-2-general","description":"Deepgram Nova 2 General model configuration."},"DeepgramNova2GeneralParameters":{"properties":{"keywords":{"anyOf":[{"items":{"$ref":"#/components/schemas/DeepgramNova2GeneralParametersKeyword"},"type":"array"},{"type":"null"}],"title":"Keywords"},"language":{"anyOf":[{"type":"string","enum":["multi","bg","ca","zh","zh-CN","zh-Hans","zh-TW","zh-Hant","zh-HK","cs","da","da-DK","nl","en","en-US","en-AU","en-GB","en-NZ","en-IN","et","fi","nl-BE","fr","fr-CA","de","de-CH","el","hi","hu","id","it","ja","ko","ko-KR","lv","lt","ms","no","pl","pt","pt-BR","pt-PT","ro","ru","sk","es","es-419","sv","sv-SE","th","th-TH","tr","uk","vi"]},{"type":"null"}],"title":"Language"}},"type":"object","title":"DeepgramNova2GeneralParameters","description":"Parameters for Deepgram Nova 2 General model."},"DeepgramNova2GeneralParametersKeyword":{"properties":{"keyword":{"type":"string","title":"Keyword"},"intensifier":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intensifier"}},"type":"object","required":["keyword"],"title":"Keyword"},"DeepgramNova3GeneralModel":{"properties":{"name":{"type":"string","const":"nova-3-general","title":"Name","default":"nova-3-general"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/DeepgramNova3GeneralParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"nova-3-general","description":"Deepgram Nova 3 General model configuration."},"DeepgramNova3GeneralParameters":{"properties":{"keyterms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Terms"},"language":{"anyOf":[{"type":"string","enum":["multi","ar","ar-AE","ar-SA","ar-QA","ar-KW","ar-SY","ar-LB","ar-PS","ar-JO","ar-EG","ar-SD","ar-TD","ar-MA","ar-DZ","ar-TN","ar-IQ","ar-IR","be","bn","bs","bg","ca","zh-HK","hr","cs","da","da-DK","nl","nl-BE","en","en-US","en-AU","en-GB","en-IN","en-NZ","et","fi","fr","fr-CA","de","de-CH","el","he","hi","hu","id","it","ja","kn","ko","ko-KR","lv","lt","mk","ms","mr","no","fa","pl","pt","pt-BR","pt-PT","ro","ru","sr","sk","sl","es","es-419","sv","sv-SE","tl","ta","te","th","th-TH","tr","uk","ur","vi"]},{"type":"null"}],"title":"Language"}},"type":"object","title":"DeepgramNova3GeneralParameters","description":"Parameters for Deepgram Nova 3 General model."},"DeepgramProvider":{"properties":{"provider":{"type":"string","const":"deepgram","title":"Provider","default":"deepgram"},"model":{"oneOf":[{"$ref":"#/components/schemas/DeepgramNova2GeneralModel"},{"$ref":"#/components/schemas/DeepgramNova3GeneralModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"nova-2-general":"#/components/schemas/DeepgramNova2GeneralModel","nova-3-general":"#/components/schemas/DeepgramNova3GeneralModel"}}}},"type":"object","required":["model"],"title":"DeepgramProvider","description":"Deepgram STT provider."},"DeleteRowsRequest":{"properties":{"keys":{"items":{"type":"string"},"type":"array","title":"Keys"}},"type":"object","required":["keys"],"title":"DeleteRowsRequest"},"DemoConfig":{"properties":{"v":{"type":"integer","const":1,"title":"V","default":1},"headline":{"type":"string","title":"Headline","default":"Live call: today's IVR vs. Anyreach"},"subline":{"type":"string","title":"Subline","default":"Both calls transcribed, scored and costed in real time"},"scenario":{"$ref":"#/components/schemas/Scenario"},"timer":{"$ref":"#/components/schemas/CallTimer"},"client":{"$ref":"#/components/schemas/Client"},"ivr":{"$ref":"#/components/schemas/IvrSide"},"anyreach":{"$ref":"#/components/schemas/AnyreachSide"},"assumptions":{"$ref":"#/components/schemas/Assumptions"},"scorecard":{"$ref":"#/components/schemas/Scorecard"},"runs":{"$ref":"#/components/schemas/RunsList"},"charts":{"$ref":"#/components/schemas/Charts"},"record_card":{"$ref":"#/components/schemas/RecordCard"},"lanes":{"$ref":"#/components/schemas/Lanes"},"rehearsal":{"$ref":"#/components/schemas/Rehearsal"}},"additionalProperties":false,"type":"object","title":"DemoConfig"},"DemoConfigIn":{"properties":{"target_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Target Id"},"config":{"$ref":"#/components/schemas/DemoConfig"}},"type":"object","required":["config"],"title":"DemoConfigIn"},"DemoConfigOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"kind":{"type":"string","const":"compare_ivr","title":"Kind","default":"compare_ivr"},"target_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Id"},"target":{"anyOf":[{"$ref":"#/components/schemas/Target"},{"type":"null"}]},"config":{"$ref":"#/components/schemas/DemoConfig"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"is_default":{"type":"boolean","title":"Is Default"}},"type":"object","required":["agent_id","config","is_default"],"title":"DemoConfigOut","description":"The agent's demo config; the full default config when none is saved."},"DemoHandlerConfig":{"properties":{"include_phone_number":{"type":"boolean","title":"Include Phone Number","description":"Purchase a Twilio number for each demo. Off by default: every request would otherwise buy a number. When off, the completion email omits the phone row entirely rather than showing a blank.","default":false},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions","description":"Extra steering passed to demo research/generation."},"from_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Display Name","description":"Display name on outbound demo mail."},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature","description":"Plain-text signature appended to demo mail."},"reply_to_all":{"type":"boolean","title":"Reply To All","description":"CC everyone else on the inbound thread on replies.","default":true},"ignore_senders":{"items":{"type":"string"},"type":"array","title":"Ignore Senders","description":"Addresses or bare domains that may never trigger a demo build from this address. For senders the auto-generated header guard misses — another demo mailer, a helpdesk autoresponder — which would otherwise read the company URL out of our own reply and loop."}},"type":"object","title":"DemoHandlerConfig","description":"``email_addresses.handler_config`` for a ``handler = 'demo'`` address.\n\nStored as jsonb, so every field needs a default — an address created before\na field existed must still resolve."},"DemoInterest":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"status":{"type":"string","title":"Status"},"interest":{"type":"string","title":"Interest"}},"type":"object","required":["agent_id","status","interest"],"title":"DemoInterest"},"DemoRunCreate":{"properties":{"variant":{"type":"string","const":"commercial","title":"Variant","default":"commercial"}},"type":"object","title":"DemoRunCreate"},"DemoSummary":{"properties":{"total":{"type":"integer","title":"Total"},"active":{"type":"integer","title":"Active"},"in_progress":{"type":"integer","title":"In Progress"},"inactive":{"type":"integer","title":"Inactive"},"high_interest":{"type":"integer","title":"High Interest"},"medium_interest":{"type":"integer","title":"Medium Interest"},"low_interest":{"type":"integer","title":"Low Interest"}},"type":"object","required":["total","active","in_progress","inactive","high_interest","medium_interest","low_interest"],"title":"DemoSummary"},"DigitGroupSeparator":{"type":"string","enum":["none","comma","ellipsis","period"],"title":"DigitGroupSeparator","description":"Punctuation inserted between groups of a spelled-out digit run.\n\nKeep in sync with:\n  backend/text-normalization-service/src/services/normalizer.py\n    :DIGIT_GROUP_SEPARATORS (source of truth)\n  backend/text-normalization-service/src/schemas/normalize.py\n    :DigitGroupSeparator"},"DisplayedNumberType":{"type":"string","enum":["agent_number","transferee_number"],"title":"DisplayedNumberType","description":"Supported displayed number types for cold transfer."},"DoNotTestIn":{"properties":{"number":{"type":"string","title":"Number"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["number"],"title":"DoNotTestIn"},"DomainBlacklistCreate":{"properties":{"domain":{"type":"string","title":"Domain"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["domain"],"title":"DomainBlacklistCreate"},"DomainBlacklistEntry":{"properties":{"id":{"type":"string","title":"Id"},"domain":{"type":"string","title":"Domain"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["id","domain","created_at","updated_at"],"title":"DomainBlacklistEntry"},"DomainBlacklistUpdate":{"properties":{"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","title":"DomainBlacklistUpdate"},"DryRunResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Records"},"count":{"type":"integer","title":"Count","default":0},"referenced_columns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referenced Columns"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["ok"],"title":"DryRunResponse"},"DtmfAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"dtmf","title":"Type","default":"dtmf"},"input":{"type":"string","title":"Input","description":"String to send - alphanumeric characters, *, or #"},"multi_tap_method":{"type":"string","title":"Multi-Tap Method","description":"For letters: use multi-tap method (like old phone texting). Accepts boolean values or template variables.","default":"False"},"min_delay":{"type":"number","title":"Min Delay (seconds)","description":"Minimum delay in seconds between DTMF codes","default":0.8},"max_delay":{"type":"number","title":"Max Delay (seconds)","description":"Maximum delay in seconds between DTMF codes","default":1.5},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["input"],"title":"Send DTMF","description":"DTMF action configuration."},"ElevenLabsModel":{"properties":{"name":{"type":"string","enum":["eleven_turbo_v2","eleven_turbo_v2_5","eleven_flash_v2","eleven_flash_v2_5","eleven_v3"],"title":"Model","default":"eleven_turbo_v2_5"},"parameters":{"$ref":"#/components/schemas/ElevenLabsParameters","title":"Parameters"}},"type":"object","required":["parameters"],"title":"ElevenLabsModel","description":"ElevenLabs TTS model configuration."},"ElevenLabsOutputFormat":{"properties":{"telephone":{"anyOf":[{"type":"string","enum":["mp3_22050_32","mp3_24000_48","mp3_44100","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000"]},{"type":"null"}],"title":"Telephone Encoding"},"webrtc":{"anyOf":[{"type":"string","enum":["mp3_22050_32","mp3_24000_48","mp3_44100","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000"]},{"type":"null"}],"title":"WebRTC Encoding"},"default":{"anyOf":[{"type":"string","enum":["mp3_22050_32","mp3_24000_48","mp3_44100","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","opus_48000_32","opus_48000_64","opus_48000_96","opus_48000_128","opus_48000_192","pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_32000","pcm_44100","pcm_48000"]},{"type":"null"}],"title":"Default Encoding"}},"type":"object","title":"ElevenLabsOutputFormat","description":"Per-channel ElevenLabs audio output encoding.\n\nResolved at TTS construction time against the conversation channel:\nthe matching field (``telephone`` / ``webrtc``) is used; if unset,\n``default`` is used; if that is also unset, the ElevenLabs plugin\ndefault (mp3_22050_32) applies. Typical use: ``telephone=\"pcm_8000\"``\nto cut latency by skipping MP3 decode + resample on the phone path,\nwhile ``webrtc`` keeps a high-quality format for web/chat."},"ElevenLabsParameters":{"properties":{"voice_id":{"type":"string","title":"Voice ID"},"voice_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Voice ID Pool","description":"Optional pool of ElevenLabs voice IDs. When it holds two or more entries, one is picked per conversation and used for the whole call; every other consumer of the config (builder UI, greeting pre-generation, agent transfer) still reads ``voice_id``, which is normalized to the first pool entry so it always names a voice the agent can actually speak in. Unset — or a single entry — means ``voice_id`` is always used."},"voice_settings":{"anyOf":[{"$ref":"#/components/schemas/ElevenLabsVoiceSettings"},{"type":"null"}],"title":"Voice Settings"},"output_format":{"anyOf":[{"$ref":"#/components/schemas/ElevenLabsOutputFormat"},{"type":"null"}],"title":"Output Format","description":"Per-channel ElevenLabs audio output encoding object with telephone / webrtc / default keys. Unset (or the active channel unset with no default) -> ElevenLabs plugin default (mp3_22050_32). Set default to apply one encoding to every channel; set telephone to pcm_8000 to cut latency on the phone path by skipping MP3 decode + resample."}},"type":"object","required":["voice_id"],"title":"ElevenLabsParameters","description":"Shared parameters for every ElevenLabs TTS model.\n\nParameters are identical across turbo/flash models — the model name is\njust passed through to ElevenLabs — so a single class is used instead\nof one pair per model."},"ElevenLabsProvider":{"properties":{"provider":{"type":"string","const":"elevenlabs","title":"Provider","default":"elevenlabs"},"model":{"$ref":"#/components/schemas/ElevenLabsModel"}},"type":"object","required":["model"],"title":"ElevenLabsProvider","description":"ElevenLabs TTS provider."},"ElevenLabsVoiceSettings":{"properties":{"stability":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Stability"},"similarity_boost":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Similarity Boost"},"speed":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.1},{"type":"null"}],"title":"Speed"}},"type":"object","title":"ElevenLabsVoiceSettings","description":"Voice settings for ElevenLabs TTS."},"EmailAddressCreateRequest":{"properties":{"address":{"type":"string","title":"Address","description":"Inbound mailbox address"},"provider":{"type":"string","title":"Provider","description":"Email provider","default":"resend"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"Agent to answer this address (its latest published version is resolved). Alternative to inbound_agent_version_id."},"inbound_agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Version Id","description":"Agent version that answers mail to this address"},"outbound_from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outbound From Address","description":"Verified sender used for replies (defaults to address)"},"enabled":{"type":"boolean","title":"Enabled","description":"Serve the agent on this address","default":true},"handler":{"type":"string","enum":["agent","demo"],"title":"Handler","description":"What answers this address. 'agent' routes mail to an agent version; 'demo' builds a demo agent from the company URL in the mail and emails the requester when it's live.","default":"agent"},"handler_config":{"anyOf":[{"$ref":"#/components/schemas/DemoHandlerConfig"},{"type":"null"}],"description":"Options for handler='demo' (ignored otherwise)"}},"type":"object","required":["address"],"title":"EmailAddressCreateRequest","description":"Create an inbound email routing address."},"EmailAddressUpdateRequest":{"properties":{"inbound_agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Version Id"},"outbound_from_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outbound From Address"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"handler":{"anyOf":[{"type":"string","enum":["agent","demo"]},{"type":"null"}],"title":"Handler"},"handler_config":{"anyOf":[{"$ref":"#/components/schemas/DemoHandlerConfig"},{"type":"null"}]}},"type":"object","title":"EmailAddressUpdateRequest","description":"Patch an inbound email routing address."},"EmailDomainCreateRequest":{"properties":{"domain":{"type":"string","title":"Domain","description":"Custom domain, e.g. acme.com"},"provider":{"type":"string","title":"Provider","description":"Email provider","default":"resend"}},"type":"object","required":["domain"],"title":"EmailDomainCreateRequest","description":"Register a custom sending/receiving domain with the email provider."},"EmailHelpdeskReview":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection","description":"handoff_connections row the review conversations open through."},"entry_point_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Point Address","description":"Provider-side entry point review conversations land in (Gladly: the Entry Point 'Address')."},"custom_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Channel ID","description":"Provider channel id the messages are posted to (Gladly: 'View Integration Data')."},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group ID","description":"Optional message-group id, sent alongside the entry point."},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name","description":"Optional message-group name, sent alongside group_id."}},"type":"object","title":"Review In The Helpdesk","description":"Every email reply is drafted for a person to send from the helpdesk.\n\nIts own route, not an escalation rule's: drafts go to a review inbox, and\nthe agent's escalation rules keep working as they do without review."},"EmailProperties":{"properties":{"channel":{"type":"string","const":"email","title":"Channel","default":"email"},"enabled":{"type":"boolean","title":"Enabled","default":true},"body_template":{"type":"string","title":"Body Template","default":"{{agent_response}}"},"body_format":{"type":"string","enum":["multipart","html","plaintext"],"title":"Body Format","default":"multipart"},"subject_template":{"type":"string","title":"Subject Template","default":"Re: {{subject}}"},"default_subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Subject"},"from_display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Display Name"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"signature_translations":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Signature Translations","description":"The signature by language code (``fr``, ``de``). A reply written in one of these languages carries that signature; any other carries ``signature``."},"template_wrapper":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Wrapper"},"include_unsubscribe_footer":{"type":"boolean","title":"Include Unsubscribe Footer","default":true},"quote_history":{"type":"boolean","title":"Quote History","default":false},"cc_reply_policy":{"type":"string","enum":["conditional","never","always"],"title":"CC Reply Policy","default":"conditional"},"require_dmarc_pass":{"type":"boolean","title":"Require DMARC Pass","default":false},"auto_close_on_conclusion":{"type":"boolean","title":"Auto Close On Conclusion","default":true},"helpdesk_review":{"anyOf":[{"$ref":"#/components/schemas/EmailHelpdeskReview"},{"type":"null"}],"title":"Review In The Helpdesk","description":"Draft every reply for a person to send from the helpdesk. The assistant sends the customer nothing it wrote itself; escalations still open as usual and send their fixed messages."}},"type":"object","title":"EmailProperties","description":"Group 2 — Email-exclusive transport/presentation properties."},"EmbeddingDimension":{"type":"integer","enum":[768,1536,3072],"title":"EmbeddingDimension"},"EmbeddingModel":{"type":"string","enum":["text-embedding-3-small","text-embedding-3-large"],"title":"EmbeddingModel"},"EmbeddingsQueryRequest":{"properties":{"query":{"type":"string","title":"Query"},"results_count":{"type":"integer","title":"Results Count","default":5}},"type":"object","required":["query"],"title":"EmbeddingsQueryRequest"},"EmbeddingsQueryResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/EmbeddingsQueryResult"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"EmbeddingsQueryResponse"},"EmbeddingsQueryResult":{"properties":{"content":{"type":"string","title":"Content"},"score":{"type":"number","title":"Score"},"source_id":{"type":"string","title":"Source Id"},"dataset_id":{"type":"string","title":"Dataset Id"}},"type":"object","required":["content","score","source_id","dataset_id"],"title":"EmbeddingsQueryResult"},"EndpointingConfig":{"properties":{"min_delay":{"type":"number","title":"Min Endpointing Delay (seconds)","default":0.05},"max_delay":{"type":"number","title":"Max Endpointing Delay (seconds)","default":1.5}},"type":"object","title":"EndpointingConfig","description":"Endpointing configuration."},"EntitiesListResponse":{"properties":{"entities":{"items":{"anyOf":[{"$ref":"#/components/schemas/ActionEntityResponse"},{"$ref":"#/components/schemas/TriggerEntityResponse"}]},"type":"array","title":"Entities"}},"type":"object","required":["entities"],"title":"EntitiesListResponse"},"EntityDailyCount":{"properties":{"entity":{"type":"string","title":"Entity"},"day":{"type":"string","title":"Day"},"created":{"type":"integer","title":"Created"},"cumulative":{"type":"integer","title":"Cumulative"}},"type":"object","required":["entity","day","created","cumulative"],"title":"EntityDailyCount","description":"One day of an entity's existence curve.\n\n`cumulative` is how many existed as of the END of that day, counted from\nthe beginning of time — NOT a running total of the window. That distinction\nis the whole point: the browser version could only ever total the rows a\ncapped list returned, so the curve started near zero for an org that had\nbeen running for a year."},"EntitySummaryResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"entity_key":{"type":"string","title":"Entity Key"},"method":{"type":"string","title":"Method","default":""},"type":{"type":"string","enum":["action","trigger"],"title":"Type"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"}},"type":"object","required":["key","label","description","entity_key","type"],"title":"EntitySummaryResponse","description":"Lightweight summary used in list endpoints for both actions and triggers."},"Evaluation":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"metric_ids":{"items":{"type":"string"},"type":"array","title":"Metric Ids"},"transcription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Transcription"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","name","metric_ids","created_at","updated_at"],"title":"Evaluation","description":"Evaluation entity — a bundle of metrics (+ optional shared framing).\n\nRenamed from Scorecard: \"scorecard\" connotes a *score* (a rollup), which\nis deferred to the derived layer (PRD §13.1). Many evaluations may run on\none conversation (compliance vs quality vs sales bundles). The judge is\nalways Gemini Pro and the content needed is derived from the metrics'\nmodalities — so there's no per-evaluation input/judge_config."},"EvaluationCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"metric_ids":{"items":{"type":"string"},"type":"array","title":"Metric Ids"},"transcription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Transcription"}},"type":"object","required":["name","metric_ids"],"title":"EvaluationCreateRequest","description":"Schema for API requests to create a new evaluation (metric bundle).\n\nNo `input`/`judge_config`: the judge is always Gemini Pro and the content\nto resolve is derived from the bundle's metrics' modalities."},"EvaluationRun":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"evaluation_id":{"type":"string","title":"Evaluation Id"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"transcript":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"},"assessor_type":{"type":"string","enum":["ai","human"],"title":"Assessor Type"},"assessor_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assessor Id"},"status":{"type":"string","title":"Status"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","evaluation_id","assessor_type","status","created_at","updated_at"],"title":"EvaluationRun","description":"EvaluationRun entity — one assessment execution (renamed from ScorecardRun)."},"EvaluationRunCreateRequest":{"properties":{"evaluation_id":{"type":"string","title":"Evaluation Id"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"transcript":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript"},"audio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Url"}},"type":"object","required":["evaluation_id"],"title":"EvaluationRunCreateRequest","description":"Schema for API requests to trigger a new evaluation run."},"EvaluationUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"metric_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Metric Ids"},"transcription":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Transcription"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"}},"type":"object","title":"EvaluationUpdateRequest","description":"Schema for API requests to update an evaluation."},"ExclusionRule":{"properties":{"op":{"type":"string","enum":["lte","gte"],"title":"Op"},"value":{"type":"integer","maximum":999999999.0,"minimum":0.0,"title":"Value"}},"type":"object","required":["op","value"],"title":"ExclusionRule","description":"Leave out conversations whose value is <= or >= `value`."},"ExperimentCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"hypothesis":{"type":"string","title":"Hypothesis","default":""},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"widget_ids":{"items":{"type":"string"},"type":"array","title":"Widget Ids","description":"Web widgets whose visitors are split."},"variants":{"items":{"$ref":"#/components/schemas/VariantInput"},"type":"array","title":"Variants"}},"type":"object","required":["name","widget_ids","variants"],"title":"ExperimentCreateRequest"},"ExperimentOut":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"hypothesis":{"type":"string","title":"Hypothesis","default":""},"unit":{"type":"string","title":"Unit","default":"visitor"},"status":{"type":"string","enum":["draft","running","paused","concluded"],"title":"Status"},"salt":{"type":"string","title":"Salt"},"variants":{"items":{"$ref":"#/components/schemas/ExperimentVariant"},"type":"array","title":"Variants"},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"winner_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Winner Key"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"scopes":{"items":{"$ref":"#/components/schemas/ExperimentScope"},"type":"array","title":"Scopes"},"touched_sections":{"items":{"type":"string"},"type":"array","title":"Touched Sections","default":[]},"swaps_agent_version":{"type":"boolean","title":"Swaps Agent Version","default":false},"metric_options":{"items":{"type":"string"},"type":"array","title":"Metric Options","default":[]}},"type":"object","required":["id","organization_id","name","status","salt","variants","created_at","updated_at"],"title":"ExperimentOut","description":"An experiment, plus what its variants change, for the editors."},"ExperimentResults":{"properties":{"experiment_id":{"type":"string","title":"Experiment Id"},"variants":{"items":{"$ref":"#/components/schemas/VariantOutcome"},"type":"array","title":"Variants"},"widgets":{"items":{"$ref":"#/components/schemas/WidgetVariantOutcome"},"type":"array","title":"Widgets"}},"type":"object","required":["experiment_id","variants","widgets"],"title":"ExperimentResults"},"ExperimentScope":{"properties":{"scope_type":{"type":"string","enum":["web_widget","phone_number","email_address","agent"],"title":"Scope Type"},"scope_id":{"type":"string","title":"Scope Id"},"active":{"type":"boolean","title":"Active","default":false}},"type":"object","required":["scope_type","scope_id"],"title":"ExperimentScope"},"ExperimentUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"hypothesis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hypothesis"},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"widget_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Widget Ids"},"variants":{"anyOf":[{"items":{"$ref":"#/components/schemas/VariantInput"},"type":"array"},{"type":"null"}],"title":"Variants"}},"type":"object","title":"ExperimentUpdateRequest","description":"Name, hypothesis and metric can change any time; widgets and variants only in draft."},"ExperimentVariant":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name","default":""},"weight":{"type":"integer","title":"Weight"},"overlay":{"additionalProperties":true,"type":"object","title":"Overlay"}},"type":"object","required":["key","weight"],"title":"ExperimentVariant"},"ExtractedData":{"properties":{"schema_version":{"type":"integer","title":"Schema Version","default":1},"topics":{"items":{"$ref":"#/components/schemas/TopicAssignment"},"type":"array","title":"Topics"},"attributes":{"additionalProperties":true,"type":"object","title":"Attributes"},"attribute_sources":{"additionalProperties":{"$ref":"#/components/schemas/AttributeSource"},"type":"object","title":"Attribute Sources"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"}},"type":"object","title":"ExtractedData","description":"The column's contract. Unknown top-level keys are ignored, and\nattribute values are read as stored: guardrails apply on write, so a\nvalue outside them never fails a read."},"FailedContact":{"properties":{"index":{"type":"integer","title":"Index"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"}},"type":"object","required":["index","errors"],"title":"FailedContact"},"FeedbackSubmitResponse":{"properties":{"status":{"type":"string","title":"Status","default":"ok"}},"type":"object","title":"FeedbackSubmitResponse","description":"Response for a successful feedback submission."},"FileProcessor":{"type":"string","enum":["pymupdf"],"title":"FileProcessor"},"FilterOption":{"properties":{"value":{"type":"string","title":"Value"},"sessions":{"type":"integer","title":"Sessions","default":0}},"type":"object","required":["value"],"title":"FilterOption"},"FormDefinition":{"properties":{"id":{"type":"string","title":"Form ID","description":"Unique identifier for this form within the agent, e.g. 'contact_info'."},"name":{"type":"string","title":"Form Name","description":"Display name in the builder UI."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Tool description for the LLM to understand when to show this form."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Form Title","description":"Title shown in the rendered form."},"submit_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submit Label","default":"Submit"},"fields":{"items":{"$ref":"#/components/schemas/FormField"},"type":"array","minItems":1,"title":"Fields"}},"type":"object","required":["id","name","fields"],"title":"FormDefinition","description":"A form that can be shown as a widget during conversations."},"FormField":{"properties":{"id":{"type":"string","title":"Field ID","description":"Unique identifier within the form, used as the JSON key in submission data."},"type":{"$ref":"#/components/schemas/FormFieldType","title":"Field Type"},"label":{"type":"string","title":"Label"},"placeholder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Placeholder"},"required":{"type":"boolean","title":"Required","default":false},"default_value":{"anyOf":[{},{"type":"null"}],"title":"Default Value","description":"Default value: string for input/textarea/single_select, bool for boolean, number for rating, list of strings for multi_select."},"options":{"anyOf":[{"items":{"$ref":"#/components/schemas/FormFieldOption"},"type":"array"},{"type":"null"}],"title":"Options","description":"Options for single_select and multi_select field types."},"display_mode":{"anyOf":[{"$ref":"#/components/schemas/FormFieldDisplay"},{"type":"null"}],"title":"Display Mode","description":"How single_select/multi_select options render: 'dropdown' (default) or 'buttons'."},"allow_other":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Other","description":"When true, single_select/multi_select fields show an 'Other' choice with a free-text input."},"true_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"True Label","description":"Label for the 'true' button on boolean fields (e.g. 'Yes')."},"false_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"False Label","description":"Label for the 'false' button on boolean fields (e.g. 'No')."},"max_rating":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Rating","description":"Number of stars (between 2 and 10, defaults to 5) shown for a rating field."},"validation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Pattern","description":"Regex pattern for validating text input values."},"validation_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Message","description":"Error message shown when validation fails."}},"type":"object","required":["id","type","label"],"title":"FormField","description":"A single field in a form definition."},"FormFieldDisplay":{"type":"string","enum":["dropdown","buttons"],"title":"FormFieldDisplay","description":"How single_select/multi_select options are rendered."},"FormFieldOption":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["label","value"],"title":"FormFieldOption","description":"An option for select-type form fields."},"FormFieldType":{"type":"string","enum":["input","textarea","boolean","rating","single_select","multi_select","display"],"title":"FormFieldType","description":"Supported form field types."},"FormsConfig":{"properties":{"forms":{"items":{"$ref":"#/components/schemas/FormDefinition"},"type":"array","minItems":1,"title":"Forms","description":"Data-collection forms that can be shown as widgets during conversations."}},"type":"object","required":["forms"],"title":"FormsConfig","description":"Configuration for data-collection form tools shown during conversations."},"GcpRecordingLocation":{"properties":{"provider":{"type":"string","const":"gcp","title":"Provider","default":"gcp"},"bucket":{"type":"string","title":"Bucket"},"credentials":{"type":"string","title":"Credentials"},"file_type":{"type":"string","enum":["ogg","mp4"],"title":"File Type","default":"ogg"}},"type":"object","required":["bucket","credentials"],"title":"GcpRecordingLocation","description":"GCP recording location provider."},"GenerateResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"workflow_id":{"type":"string","title":"Workflow Id"},"status":{"type":"string","enum":["pending","running","ready","quality_failed","failed","ineligible"],"title":"Status"}},"type":"object","required":["agent_id","workflow_id","status"],"title":"GenerateResponse"},"GenericInputStep-Input":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"input","title":"Type","default":"input"},"input_type":{"type":"string","const":"generic_input","title":"Input Type","default":"generic_input"},"data_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Input"},"type":"object","title":"Data Schema"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"}},"additionalProperties":false,"type":"object","required":["id"],"title":"GenericInputStep"},"GenericInputStep-Output":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"input","title":"Type","default":"input"},"input_type":{"type":"string","const":"generic_input","title":"Input Type","default":"generic_input"},"data_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Output"},"type":"object","title":"Data Schema"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"}},"additionalProperties":false,"type":"object","required":["id"],"title":"GenericInputStep"},"GladiaProvider":{"properties":{"provider":{"type":"string","const":"gladia","title":"Provider","default":"gladia"},"model":{"oneOf":[{"$ref":"#/components/schemas/GladiaSolaria1Model"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"solaria-1":"#/components/schemas/GladiaSolaria1Model"}}}},"type":"object","required":["model"],"title":"GladiaProvider","description":"Gladia STT provider."},"GladiaSolaria1Model":{"properties":{"name":{"type":"string","const":"solaria-1","title":"Name","default":"solaria-1"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/GladiaSolaria1Parameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"solaria-1","description":"Gladia Solaria-1 model configuration."},"GladiaSolaria1Parameters":{"properties":{"languages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Languages","description":"List of language codes. Empty list = auto-detect.","default":["en","es"]},"code_switching":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Code Switching","description":"Enable switching between languages during recognition.","default":true},"endpointing":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Endpointing","description":"Silence duration (seconds) to consider utterance finished."},"maximum_duration_without_endpointing":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Duration Without Endpointing","description":"Max duration without detecting speech before stopping."},"custom_vocabulary":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Custom Vocabulary","description":"Domain-specific vocabulary terms."},"region":{"anyOf":[{"type":"string","enum":["us-west","eu-west"]},{"type":"null"}],"title":"Region","description":"API region for Gladia."}},"type":"object","title":"GladiaSolaria1Parameters","description":"Parameters for Gladia Solaria-1 model."},"Goal":{"properties":{"key":{"type":"string","maxLength":60,"minLength":1,"pattern":"^[a-z0-9_]+$","title":"Key"},"label":{"type":"string","maxLength":80,"minLength":1,"title":"Label"},"spoken_ask":{"type":"string","maxLength":200,"minLength":1,"title":"Spoken Ask"},"expected_answer":{"type":"string","maxLength":300,"title":"Expected Answer","default":""},"source":{"type":"string","enum":["generated","manual","builtin"],"title":"Source","default":"manual"}},"additionalProperties":false,"type":"object","required":["key","label","spoken_ask"],"title":"Goal","description":"One thing a caller wants from the IVR."},"GoalsOut":{"properties":{"goals":{"items":{"$ref":"#/components/schemas/Goal"},"type":"array","title":"Goals"}},"type":"object","required":["goals"],"title":"GoalsOut"},"GoldenLabelItemRequest":{"properties":{"conversation_id":{"type":"string","title":"Conversation Id"},"criterion_id":{"type":"string","title":"Criterion Id"},"outcome":{"type":"string","enum":["true","false","na"],"title":"Outcome"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"}},"type":"object","required":["conversation_id","criterion_id","outcome"],"title":"GoldenLabelItemRequest","description":"One golden label (agreed ground truth, FR-E5)."},"GoldenLabelsRequest":{"properties":{"labels":{"items":{"$ref":"#/components/schemas/GoldenLabelItemRequest"},"type":"array","title":"Labels"}},"type":"object","required":["labels"],"title":"GoldenLabelsRequest","description":"Schema for POST /calibration-sets/{id}/golden-labels."},"GoogleGemini25FlashLiteModel":{"properties":{"name":{"type":"string","const":"gemini-2.5-flash-lite","title":"Name","default":"gemini-2.5-flash-lite"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/GoogleGeminiParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gemini-2.5-flash-lite","description":"Google Gemini 2.5 Flash-Lite model configuration."},"GoogleGemini25FlashModel":{"properties":{"name":{"type":"string","const":"gemini-2.5-flash","title":"Name","default":"gemini-2.5-flash"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/GoogleGeminiParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gemini-2.5-flash","description":"Google Gemini 2.5 Flash model configuration."},"GoogleGemini25ProModel":{"properties":{"name":{"type":"string","const":"gemini-2.5-pro","title":"Name","default":"gemini-2.5-pro"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/GoogleGeminiParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gemini-2.5-pro","description":"Google Gemini 2.5 Pro model configuration."},"GoogleGemini35FlashModel":{"properties":{"name":{"type":"string","const":"gemini-3.5-flash","title":"Name","default":"gemini-3.5-flash"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/GoogleGeminiParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gemini-3.5-flash","description":"Google Gemini 3.5 Flash model configuration.\n\nReasoning is controlled by ``thinking_level``; ``temperature`` / ``top_p`` /\n``top_k`` still validate but Google discourages setting them on 3.x."},"GoogleGeminiParameters":{"properties":{"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_output_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Output Tokens"},"thinking_budget":{"anyOf":[{"type":"integer","minimum":-1.0},{"type":"null"}],"title":"Thinking Budget","description":"Gemini 2.5 reasoning token budget. -1 = dynamic, 0 = disabled (Flash / Flash-Lite only; Pro cannot disable thinking). Out-of-range values are rejected by the Gemini API. On 3.x models prefer thinking_level."},"thinking_level":{"anyOf":[{"type":"string","enum":["minimal","low","medium","high"]},{"type":"null"}],"title":"Thinking Level","description":"Gemini 3.x reasoning effort, the replacement for thinking_budget. Mutually exclusive with it: the Gemini API rejects a request that sets both."},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Top P"},"top_k":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Top K"},"presence_penalty":{"anyOf":[{"type":"number","maximum":2.0,"minimum":-2.0},{"type":"null"}],"title":"Presence Penalty"},"frequency_penalty":{"anyOf":[{"type":"number","maximum":2.0,"minimum":-2.0},{"type":"null"}],"title":"Frequency Penalty"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"extra_kwargs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Kwargs","description":"Passthrough for additional google.LLM constructor params not exposed above (e.g. safety_settings, retrieval_config). Keys that are not valid constructor params, and the platform-managed ones (vertexai, project, location, credentials, api_key, cached_content), are dropped with a warning. http_options is limited to timeout and the X-Vertex-AI-LLM-Request-Type header."}},"type":"object","title":"GoogleGeminiParameters","description":"Generation parameters shared by all direct Gemini models.\n\nA single class is used for every Gemini model (the schemas are identical),\nmirroring the shared ``ElevenLabsParameters`` pattern above. Values map 1:1\nto ``livekit.plugins.google.LLM`` constructor kwargs. Per-model ranges\n(e.g. Pro's thinking_budget floor) are enforced by the Gemini API, not here."},"GoogleProvider":{"properties":{"provider":{"type":"string","const":"google","title":"Provider","default":"google"},"model":{"oneOf":[{"$ref":"#/components/schemas/GoogleGemini25FlashModel"},{"$ref":"#/components/schemas/GoogleGemini25FlashLiteModel"},{"$ref":"#/components/schemas/GoogleGemini25ProModel"},{"$ref":"#/components/schemas/GoogleGemini35FlashModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"gemini-2.5-flash":"#/components/schemas/GoogleGemini25FlashModel","gemini-2.5-flash-lite":"#/components/schemas/GoogleGemini25FlashLiteModel","gemini-2.5-pro":"#/components/schemas/GoogleGemini25ProModel","gemini-3.5-flash":"#/components/schemas/GoogleGemini35FlashModel"}}}},"type":"object","required":["model"],"title":"Google","description":"Google Gemini LLM provider.\n\nPrompt-cache state for this provider lives in the ``core_service.llm_caches``\ntable, referenced by ``agent_versions.cache_fingerprints`` — not inline on\nthe config."},"GreetingAudioRecording":{"properties":{"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"playback_url":{"type":"string","title":"Playback Url"}},"type":"object","required":["playback_url"],"title":"GreetingAudioRecording","description":"One pre-generated greeting recording, in one voice."},"GreetingAudioRequest":{"properties":{"text":{"type":"string","title":"Text"},"force":{"type":"boolean","title":"Force","default":false}},"type":"object","required":["text"],"title":"GreetingAudioRequest","description":"Request to pre-generate (or re-preview) static-greeting audio.\n\n``text`` is supplied by the caller so it works on unsaved drafts (mirrors\n``suggest-action-grid``). The TTS voice is read from the saved version's\nconfigured TTS model, and the stored object is content-addressed over\n``text`` + that config, so the same body identifies the same recording."},"GreetingAudioResponse":{"properties":{"recordings":{"items":{"$ref":"#/components/schemas/GreetingAudioRecording"},"type":"array","title":"Recordings"},"playback_url":{"type":"string","title":"Playback Url","description":"The primary voice's recording (pool entry 0 when there is a pool).\n\nSerialized alongside ``recordings`` so a client that predates the\nper-voice list keeps working — including across a deploy where the\nbackend rolls out ahead of the builder.","readOnly":true}},"type":"object","required":["recordings","playback_url"],"title":"GreetingAudioResponse","description":"Short-lived presigned URLs for playing/previewing greeting audio.\n\nAn agent with a randomized voice pool has one recording per pool voice —\nany of them can open a real call, so all of them are auditionable."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HandoffAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"handoff","title":"Type","default":"handoff"},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection","description":"handoff_connections row to escalate through — the helpdesk, its credentials and its timers."},"entry_point_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Point Address","description":"Provider-side inbox this escalation lands in (Gladly: the Entry Point 'Address'). This is the queue."},"custom_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Channel ID","description":"Usually blank. Entry points under one custom channel share its id; set this only if this queue is on a different channel."},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group ID","description":"Optional message-group id, sent alongside the entry point."},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name","description":"Optional message-group name, sent alongside group_id."},"channels":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/HandoffChannelRoute"},"propertyNames":{"$ref":"#/components/schemas/ChannelKey"},"type":"object"},{"type":"null"}],"title":"Per-channel Routing","description":"Override where this rule lands, per channel. One helpdesk usually needs a different connection for chat than for email, and this is the same rule either way — same name, same description, same copy. Only the channels with a relay can escalate at all (see handoff_intent.RELAY_CHANNELS); an entry for any other is inert."},"handoff_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handoff Message","description":"Deterministic reply sent the moment this handoff opens (the model never paraphrases it)."},"send_handoff_message":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Send The Handoff Message","description":"EMAIL ONLY. Turn off to open the escalation silently: the helpdesk gets the conversation and the customer's next mail is the human's reply, with no 'connecting you' message in between. Some teams read that message as a second automated reply to an inbox that already auto-acknowledged. On chat and voice the copy is always sent — silence there reads as the agent having stopped answering."},"waiting_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Waiting Message","description":"Posted when no human has replied within the connection's no-reply window."},"unavailable_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unavailable Message","description":"Said to the customer when this handoff could not be opened. The bot must never promise a human it cannot reach."},"on_unavailable":{"anyOf":[{"type":"string","enum":["stay_with_bot","end"]},{"type":"null"}],"title":"On Unavailable","description":"What to do when the handoff cannot be opened."},"require_identity":{"anyOf":[{"type":"string","enum":["off","email","phone","either"]},{"type":"null"}],"title":"Require Identity","description":"Contact details this escalation must have before it opens. When the conversation does not already contain them, the customer is shown a form and the handoff opens on submit. 'off' (the default) escalates immediately."},"identity_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Request Message","description":"Said to the customer when the form is shown, in place of the handoff message."},"identity_form_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Form Title","description":"Heading on the form shown to the customer."},"include_attachments":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Send Attachments","description":"Forward the photos and files the customer shared with the agent to the human, and note them in the pushed transcript. Off by default: an escalation about a late order should not carry the ID photo someone uploaded earlier to verify a discount. A message that was nothing but attachments is still noted as such when off, or it would vanish from the transcript entirely."},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Escalate to a human","description":"Hand this conversation to a human, as an action on any config tool.\n\nThis is the ONLY way to define an escalation — there is no built-in handoff\ntool, exactly as there is no built-in cold transfer. The reason is routing:\nwith Gladly the entry point + group IS the queue, so a support desk with\nbilling / returns / technical needs one rule each. Domain-named tools\n(``escalate_billing_dispute``) also make the model markedly better at\nchoosing than one generic tool plus a free-text reason.\n\nEverything here is per-ROUTE. Everything that belongs to the helpdesk rather\nthan the route — the credentials, how long it takes to answer, what context\nit wants — lives on the ``handoff_connections`` row and is folded in by\n``handoff_intent.resolve_handoff_action_config``. The split test is simply\nwhether the value depends on the helpdesk or on this particular escalation.\n\nCustomer-facing copy is deliberately here and not on the connection: it is\nspoken in the agent's voice and language, and one connection is shared by\nevery agent in the org.\n\n``custom_channel_id`` is rarely set. In Gladly a custom channel CONTAINS\nentry points, so queues under one channel share its id and only the entry\npoint address varies; it exists for the one-channel-per-queue topology.\n\nThe route fields above are the DEFAULT route. ``channels`` overrides them\nper channel, because a helpdesk generally exposes chat and email as separate\nintegrations: same escalation, same description the model routes on, two\ndestinations. Nothing else is per-channel — the copy is spoken in the\nagent's voice regardless of the medium.\n\nLike every other action this records INTENT and returns; the runtime opens\nthe handoff at its own boundary. Nothing here raises across layers."},"HandoffAuthDetails":{"properties":{"base_url":{"type":"string","title":"Base Url"},"username":{"type":"string","title":"Username"},"api_token":{"type":"string","title":"Api Token"}},"type":"object","required":["base_url","username","api_token"],"title":"HandoffAuthDetails","description":"Credentials for one handoff connection (``handoff_connections.auth_details``).\n\nDeliberately stored on the connection row rather than in the agent config:\nagent configs are versioned and snapshotted onto every conversation, so a\ntoken in there would be copied into thousands of rows (PRD §6)."},"HandoffChannelRoute":{"properties":{"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection","description":"handoff_connections row this channel escalates through. Blank inherits the rule's."},"entry_point_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Point Address","description":"Provider-side inbox this channel's escalations land in (Gladly: the Entry Point 'Address')."},"custom_channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Channel ID","description":"Provider channel id the messages are posted to (Gladly: 'View Integration Data')."},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group ID","description":"Optional message-group id, sent alongside the entry point."},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name","description":"Optional message-group name, sent alongside group_id."}},"type":"object","title":"Channel Route","description":"Per-channel override of an escalation rule's ROUTE — where it lands.\n\nA helpdesk does not necessarily expose one integration per company: in\nGladly a chat custom channel and an email entry point are separate objects,\nfrequently under separate API users, so \"escalate a billing dispute\" is one\nrule the model routes on and two different destinations depending on where\nthe conversation is happening. Only the route varies — the tool name, the\ndescription the model chooses on, the copy the customer hears and the\nidentity requirement are all channel-neutral and stay on the rule.\n\nInheritance is field by field: anything left blank falls back to the rule's\nbase route. The one exception is a block that names its OWN\n``connection_id``. Entry point addresses, custom channel ids and group ids\nare identifiers minted INSIDE one helpdesk account, so inheriting them\nacross a connection boundary would address another account's channel — when\nthis block points at a different connection than the rule does, nothing is\ninherited and the block is the whole route. See\n``handoff_intent.resolve_handoff_action_config``."},"HandoffConnectionCreateRequest":{"properties":{"provider":{"type":"string","title":"Provider","description":"Handoff provider. Only 'gladly' is supported today.","default":"gladly"},"name":{"type":"string","title":"Name","description":"Human-readable label for this connection"},"auth_details":{"$ref":"#/components/schemas/HandoffAuthDetails","description":"Provider credentials — write-only, never returned"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret","description":"Shared secret used to verify inbound webhook signatures"},"settings":{"anyOf":[{"$ref":"#/components/schemas/HandoffConnectionSettings"},{"type":"null"}],"description":"How this helpdesk behaves — SLA timers and what context it is sent. Shared by every agent that escalates through this connection."},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["name","auth_details"],"title":"HandoffConnectionCreateRequest","description":"Body for ``POST /handoff/connections``."},"HandoffConnectionResponse":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"provider":{"type":"string","title":"Provider"},"name":{"type":"string","title":"Name"},"auth_details":{"additionalProperties":true,"type":"object","title":"Auth Details"},"has_webhook_secret":{"type":"boolean","title":"Has Webhook Secret","default":false},"settings":{"$ref":"#/components/schemas/HandoffConnectionSettings"},"enabled":{"type":"boolean","title":"Enabled","default":true},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","provider","name"],"title":"HandoffConnectionResponse","description":"A handoff connection as any caller is allowed to see it.\n\nExplicitly modelled rather than returning the entity, so no future field added to\n``HandoffConnection`` can leak a credential by default. ``auth_details`` here is\nthe ``{base_url, username}`` pair only."},"HandoffConnectionSettings":{"properties":{"no_reply_after_seconds":{"type":"integer","minimum":1.0,"title":"No Reply After Seconds","description":"Post the rule's waiting message when no human has replied for this long.","default":180},"idle_close_after_minutes":{"type":"integer","minimum":1.0,"title":"Idle Close After Minutes","description":"Close an idle handoff — and finalize the conversation — after this long with no activity.","default":120},"context_mode":{"type":"string","enum":["summary","transcript","both"],"title":"Context Mode","description":"What the human agent is handed when the handoff opens.","default":"both"},"idle_archive_after_minutes":{"type":"integer","minimum":0.0,"title":"Idle Archive After Minutes","description":"Push every chat and email conversation on an agent that escalates through this helpdesk into it as a CLOSED conversation, once the customer has sent nothing for this long. Only what was not already pushed is sent, under the same customer identity, so a thread that picks up again lands in the same place. 0 turns it off.","default":30},"topics_workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topics Workflow","description":"Workflow that chooses the helpdesk topics for a conversation. Run once per record the helpdesk receives — when an escalation opens and each time the idle archive files a segment — with the conversation, the segment and the helpdesk's topic catalog as input; its `topicIds` output is added to the helpdesk conversation. Always runs the workflow's live version (else its newest published one), so publishing is deploying. Blank means no topics are set from here."}},"type":"object","title":"HandoffConnectionSettings","description":"How this helpdesk behaves — as opposed to how to reach it.\n\nThese sit on the connection rather than on an escalation rule because they\ndescribe the HELPDESK, not the route: how fast that team answers and what\ncontext it wants to receive. Change one here and every agent routing through\nthis connection follows, which is the point — an SLA is not a per-agent\nsetting.\n\nCustomer-facing copy deliberately does NOT live here. It is spoken in the\nagent's voice and language, and one connection is shared by every agent in\nthe org, so a shared waiting message would put the wrong language in front\nof somebody. That stays on the rule."},"HandoffConnectionUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"auth_details":{"anyOf":[{"$ref":"#/components/schemas/HandoffAuthDetails"},{"type":"null"}]},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"settings":{"anyOf":[{"$ref":"#/components/schemas/HandoffConnectionSettings"},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"HandoffConnectionUpdateRequest","description":"Body for ``PUT /handoff/connections/{id}``.\n\nEvery field is optional and only the ones actually supplied are written, so a\nrename never has to re-send the credentials. Credentials can be rotated through\nthis route but not cleared — an empty ``auth_details`` is rejected by the schema."},"HangupAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"hangup","title":"Type","default":"hangup"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Hangup"},"HttpMethod":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],"title":"HttpMethod"},"HttpPreviewRequest":{"properties":{"method":{"$ref":"#/components/schemas/HttpMethod","default":"GET"},"url":{"type":"string","title":"Url","default":""},"headers":{"additionalProperties":true,"type":"object","title":"Headers"},"query_params":{"additionalProperties":true,"type":"object","title":"Query Params"},"body_type":{"$ref":"#/components/schemas/BodyType","default":"json"},"body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}],"title":"Body"},"compress":{"$ref":"#/components/schemas/BodyCompression","default":"none"},"context_data":{"additionalProperties":true,"type":"object","title":"Context Data","description":"Workflow JSONata context (WorkflowContext.data) for preview"},"step_id":{"type":"string","title":"Step Id","description":"Step id used for ctx.current_step_id and recorded outputs","default":"preview"}},"type":"object","title":"HttpPreviewRequest"},"HttpPreviewResponse":{"properties":{"status":{"type":"string","title":"Status","description":"SUCCESS or FAILURE"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Step-level error message"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"request":{"anyOf":[{},{"type":"null"}],"title":"Request","description":"The evaluated request (method, url, headers, ...)"},"response":{"anyOf":[{},{"type":"null"}],"title":"Response","description":"The full response (status, headers, body, elapsed_ms); absent when the request never completed"}},"type":"object","required":["status"],"title":"HttpPreviewResponse"},"HttpStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"http","title":"Type","default":"http"},"method":{"$ref":"#/components/schemas/HttpMethod","default":"GET"},"url":{"type":"string","title":"Url","default":""},"headers":{"additionalProperties":true,"type":"object","title":"Headers"},"query_params":{"additionalProperties":true,"type":"object","title":"Query Params"},"body_type":{"$ref":"#/components/schemas/BodyType","default":"json"},"body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"string"}],"title":"Body"},"compress":{"$ref":"#/components/schemas/BodyCompression","default":"none"}},"additionalProperties":false,"type":"object","required":["id"],"title":"HttpStep"},"IdentityVerifier":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"workflow","title":"Type","default":"workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow ID"},"workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Workflow Version"},"initial_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Step"},"definition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inline Workflow Definition","description":"Inline workflow definition (mutually exclusive with workflow_id/workflow_version)"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"},"reject_on_error":{"type":"boolean","title":"Reject On Error","description":"If true, abort the conversation when the workflow fails","default":false},"verifies_identity":{"anyOf":[{"$ref":"#/components/schemas/VerifiesIdentity"},{"type":"null"}],"title":"Verifies Identity"},"input_exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude From Input","description":"Conversation parts left out of the workflow's input: agent_instructions, transcript, tool_outputs, transcript_internals. Unset sends everything"},"include_page_view":{"type":"boolean","title":"Include What The Visitor Sees","description":"Web chat with page context: add what was on the visitor's screen when they sent their latest message (conversation_metadata.page_view), if it was read. Off sends only where each message was sent from.","default":false},"timing":{"type":"string","enum":["background","before_start"],"title":"Timing","description":"Conversation start only: before the greeting, or alongside it","default":"background"}},"type":"object","title":"Identity Verifier","description":"An agent-level verifier run automatically. Not in the ``Action`` union:\nits ``type: \"workflow\"`` would duplicate the discriminator."},"IdsPage":{"properties":{"ids":{"items":{"type":"string"},"type":"array","title":"Ids"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["ids","total"],"title":"IdsPage"},"ImageTierConfig":{"properties":{"fast":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIProvider"},{"$ref":"#/components/schemas/CerebrasProvider"},{"$ref":"#/components/schemas/GoogleProvider"},{"$ref":"#/components/schemas/LiveKitInferenceProvider"},{"$ref":"#/components/schemas/OpenAIProvider"},{"$ref":"#/components/schemas/VercelProvider"}],"title":"Provider","discriminator":{"propertyName":"provider","mapping":{"azure_openai":"#/components/schemas/AzureOpenAIProvider","cerebras":"#/components/schemas/CerebrasProvider","google":"#/components/schemas/GoogleProvider","livekit":"#/components/schemas/LiveKitInferenceProvider","openai":"#/components/schemas/OpenAIProvider","vercel":"#/components/schemas/VercelProvider"}}},{"type":"null"}],"title":"Fast Tier"},"frontier":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIProvider"},{"$ref":"#/components/schemas/CerebrasProvider"},{"$ref":"#/components/schemas/GoogleProvider"},{"$ref":"#/components/schemas/LiveKitInferenceProvider"},{"$ref":"#/components/schemas/OpenAIProvider"},{"$ref":"#/components/schemas/VercelProvider"}],"title":"Provider","discriminator":{"propertyName":"provider","mapping":{"azure_openai":"#/components/schemas/AzureOpenAIProvider","cerebras":"#/components/schemas/CerebrasProvider","google":"#/components/schemas/GoogleProvider","livekit":"#/components/schemas/LiveKitInferenceProvider","openai":"#/components/schemas/OpenAIProvider","vercel":"#/components/schemas/VercelProvider"}}},{"type":"null"}],"title":"Frontier Tier"}},"type":"object","title":"ImageTierConfig","description":"Override of the platform tier ladder. Each slot holds one resolved provider."},"ImageTypeRoute":{"properties":{"image_type":{"type":"string","title":"Image Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Shown to the classifier to sharpen routing."},"fields_schema":{"additionalProperties":true,"type":"object","title":"Fields Schema","description":"JSON-Schema `properties` for the typed fields of this image type."},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","description":"Per-type tier override (e.g. start high for hard types)."}},"type":"object","required":["image_type"],"title":"ImageTypeRoute","description":"One deterministic classify→schema route for the image `analyze_image` tool.\n\n`image_type` is the discriminant the cheap classifier emits; `fields_schema` is a\nJSON-Schema `properties` object merged over the platform floor schema (and also the\nextractor's structured-output schema)."},"ImagesToolConfig":{"properties":{"routes":{"items":{"$ref":"#/components/schemas/ImageTypeRoute"},"type":"array","title":"Routes"},"default_tier":{"type":"string","title":"Default Tier","default":"fast"},"tiers":{"anyOf":[{"$ref":"#/components/schemas/ImageTierConfig"},{"type":"null"}],"title":"Tiers"},"max_escalations_per_conversation":{"type":"integer","title":"Max Escalations per Conversation","default":3},"max_analyses_per_conversation":{"type":"integer","title":"Max Analyses per Conversation","default":20},"allow_user_uploads":{"type":"boolean","title":"Allow User Uploads","default":true},"floor_overrides":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Floor Overrides"},"pii_fields":{"items":{"type":"string"},"type":"array","title":"PII Fields"},"on_blocked":{"type":"string","enum":["refuse","flag"],"title":"On Blocked","default":"refuse"}},"type":"object","title":"ImagesToolConfig","description":"Configuration for the images built-in tool suite (analyze_image / list_images).\n\n`images: {}` (an empty object) enables the cheap default: floor schema only, fast\ntier, uploads allowed. `None` means the feature is off."},"InactivityNudgeConfig":{"properties":{"timeout_seconds":{"type":"number","exclusiveMinimum":0.0,"title":"Inactivity Timeout (s)","description":"Silence before the first nudge (feeds LiveKit user_away_timeout).","default":30.0},"nudge_interval_seconds":{"type":"number","exclusiveMinimum":0.0,"title":"Nudge Interval (s)","description":"Delay between nudges, and the final grace period before hangup.","default":15.0},"nudges":{"items":{"oneOf":[{"$ref":"#/components/schemas/NudgeStaticMessage"},{"$ref":"#/components/schemas/NudgeDynamicMessage"}],"discriminator":{"propertyName":"type","mapping":{"bot_initiates_dynamic":"#/components/schemas/NudgeDynamicMessage","bot_initiates_static":"#/components/schemas/NudgeStaticMessage"}}},"type":"array","minItems":1,"title":"Nudges","description":"Ordered, one per attempt (escalating copy). Hang up after the last."}},"type":"object","title":"InactivityNudgeConfig","description":"Nudge the user on silence, then hang up after the nudges go unanswered.\n\nVoice only (telephony + WebRTC voice). Driven by LiveKit's VAD-based ``away``\nuser state, so it has no effect on text/chat conversations. Always on — there is\nno enable/disable toggle; tune the timings and nudge copy instead."},"InboundRoutingConfig":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"workflow_definition":{"additionalProperties":true,"type":"object","title":"Workflow Definition"},"fallback_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Agent Id"},"fallback_agent_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fallback Agent Version"},"enabled":{"type":"boolean","title":"Enabled","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","organization_id","workflow_definition","created_at","updated_at"],"title":"InboundRoutingConfig","description":"Inbound routing config entity for dynamic inbound call routing."},"InboundRoutingConfigCreateRequest":{"properties":{"workflow_definition":{"additionalProperties":true,"type":"object","title":"Workflow Definition"},"fallback_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Agent Id"},"fallback_agent_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fallback Agent Version"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["workflow_definition"],"title":"InboundRoutingConfigCreateRequest","description":"Schema for API requests to create an inbound routing config."},"InboundRoutingConfigUpdateRequest":{"properties":{"workflow_definition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Workflow Definition"},"fallback_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Agent Id"},"fallback_agent_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Fallback Agent Version"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"InboundRoutingConfigUpdateRequest","description":"Schema for API requests to update an inbound routing config."},"InboundTrunkConfig":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"enable_noise_cancellation":{"type":"boolean","title":"Enable Noise Cancellation","default":false},"media_encryption":{"$ref":"#/components/schemas/MediaEncryption","default":"SIP_MEDIA_ENCRYPT_DISABLE"},"allowed_addresses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Addresses"},"caller_id_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id Header"},"header_metadata_mappings":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Header Metadata Mappings"}},"type":"object","title":"InboundTrunkConfig","description":"Inbound trunk configuration for SIP trunks."},"InboundTrunkConfigSchema":{"properties":{"enable_noise_cancellation":{"type":"boolean","title":"Enable Noise Cancellation","default":false},"media_encryption":{"$ref":"#/components/schemas/MediaEncryption","default":"SIP_MEDIA_ENCRYPT_DISABLE"},"allowed_addresses":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Addresses"},"caller_id_header":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id Header"},"header_metadata_mappings":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Header Metadata Mappings"}},"type":"object","title":"InboundTrunkConfigSchema","description":"Schema for inbound trunk configuration."},"InformationItem":{"properties":{"key":{"type":"string","title":"Key","description":"Label for the information"},"value":{"type":"string","title":"Value","description":"Value of the information"}},"type":"object","required":["key","value"],"title":"InformationItem"},"InstructionAssistRequest":{"properties":{"instructions":{"type":"string","title":"Instructions","default":""},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"},"focus":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Focus"},"input_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Hash"}},"type":"object","title":"InstructionAssistRequest","description":"Body for the on-demand instruction assist endpoints (improve / review)."},"InstructionBuilderInputs":{"properties":{"conversation_flow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Flow"},"guardrails":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guardrails"},"disallowed_topics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disallowed Topics"},"safety_rules":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Safety Rules"},"enrichment_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Enrichment Data"}},"type":"object","title":"InstructionBuilderInputs","description":"Structured inputs for the instruction builder."},"IntegrationProviders":{"type":"string","enum":["pipedream","anyreach"],"title":"IntegrationProviders"},"InterruptionConfig":{"properties":{"mode":{"type":"string","enum":["adaptive","vad"],"title":"Interruption Mode","default":"adaptive"},"enabled":{"type":"boolean","title":"Enable Interruptions","default":true},"min_duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Interruption Duration (seconds)"},"min_words":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Interruption Words"},"false_interruption_timeout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"False Interruption Timeout (seconds)","default":2.0},"resume_false_interruption":{"type":"boolean","title":"Resume After False Interruption","default":true}},"type":"object","title":"InterruptionConfig","description":"Interruption handling configuration."},"ItemsListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntitySummaryResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ItemsListResponse"},"IvrSide":{"properties":{"label":{"type":"string","title":"Label","default":"Today's IVR"},"column_title":{"type":"string","title":"Column Title","default":"Today's IVR"},"eyebrow":{"type":"string","title":"Eyebrow","default":"The old way"},"start_button":{"type":"string","title":"Start Button","default":"Call the IVR"}},"additionalProperties":false,"type":"object","title":"IvrSide"},"KnowledgeBaseAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"knowledge_base","title":"Type","default":"knowledge_base"},"dataset_id":{"type":"string","title":"Dataset ID"},"query":{"type":"string","title":"Query"},"top_n":{"type":"integer","title":"Top N Results","default":5},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["dataset_id","query"],"title":"Knowledge Base"},"LabelChangeCounts":{"properties":{"agents":{"type":"integer","title":"Agents","default":0},"workflows":{"type":"integer","title":"Workflows","default":0},"saved_views":{"type":"integer","title":"Saved Views","default":0}},"type":"object","title":"LabelChangeCounts"},"LabelKeyCreateRequest":{"properties":{"key":{"type":"string","title":"Key","description":"Lowercase letters, digits and _, 1-40."},"name":{"type":"string","title":"Name"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values","description":"Allowed values, or null for any value."},"multi":{"type":"boolean","title":"Multi","default":false}},"additionalProperties":false,"type":"object","required":["key","name"],"title":"LabelKeyCreateRequest"},"LabelKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values"},"multi":{"type":"boolean","title":"Multi","default":false},"agent_count":{"type":"integer","title":"Agent Count","default":0},"workflow_count":{"type":"integer","title":"Workflow Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","key","name","created_at","updated_at"],"title":"LabelKeyResponse"},"LabelKeyUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values"},"multi":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multi"}},"additionalProperties":false,"type":"object","title":"LabelKeyUpdateRequest","description":"Only the fields present change. `values: null` makes the key free."},"LabelRenameRequest":{"properties":{"from":{"type":"string","title":"From","description":"The value to rename, as the values endpoint lists it."},"to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To","description":"The new value, or null to remove the value everywhere."}},"additionalProperties":false,"type":"object","required":["from"],"title":"LabelRenameRequest"},"LabelSuggestRequest":{"properties":{"entity_type":{"type":"string","enum":["agent","workflow"],"title":"Entity Type"},"key_id":{"type":"string","format":"uuid","title":"Key Id"},"ids":{"items":{"type":"string","format":"uuid"},"type":"array","maxItems":100,"minItems":1,"title":"Ids"}},"type":"object","required":["entity_type","key_id","ids"],"title":"LabelSuggestRequest"},"LabelSuggestResponse":{"properties":{"suggestions":{"items":{"$ref":"#/components/schemas/LabelSuggestion"},"type":"array","title":"Suggestions","default":[]},"skipped":{"items":{"type":"string"},"type":"array","title":"Skipped","default":[]}},"type":"object","title":"LabelSuggestResponse"},"LabelSuggestion":{"properties":{"id":{"type":"string","title":"Id"},"value":{"type":"string","title":"Value"}},"type":"object","required":["id","value"],"title":"LabelSuggestion"},"LabelValueRequest":{"properties":{"value":{"type":"string","title":"Value"}},"additionalProperties":false,"type":"object","required":["value"],"title":"LabelValueRequest"},"LabelValueUsage":{"properties":{"value":{"type":"string","title":"Value"},"agents":{"type":"integer","title":"Agents","default":0},"workflows":{"type":"integer","title":"Workflows","default":0}},"type":"object","required":["value"],"title":"LabelValueUsage"},"LaneItem":{"properties":{"t":{"type":"number","minimum":0.0,"title":"T"},"who":{"anyOf":[{"type":"string","enum":["m","e"]},{"type":"null"}],"title":"Who"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"sub":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub"},"links":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Links"},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End"}},"additionalProperties":false,"type":"object","required":["t"],"title":"LaneItem","description":"One chat or SMS lane message; an item with ``end`` closes the lane."},"Lanes":{"properties":{"chat":{"$ref":"#/components/schemas/ChatLane"},"sms":{"$ref":"#/components/schemas/SmsLane"}},"additionalProperties":false,"type":"object","title":"Lanes"},"LeaveRoomAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"leave_room","title":"Type","default":"leave_room"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Leave Room"},"LegOut":{"properties":{"side":{"type":"string","enum":["ivr","agent","chat"],"title":"Side"},"url":{"type":"string","title":"Url"},"token":{"type":"string","title":"Token"},"room_name":{"type":"string","title":"Room Name"},"identity":{"type":"string","title":"Identity"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},"type":"object","required":["side","url","token","room_name","identity"],"title":"LegOut","description":"What the browser needs to join one leg's room."},"LineSwarmSettingsIn":{"properties":{"company_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Company Name"},"website":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Website"},"load_test_authorized":{"type":"boolean","title":"Load Test Authorized","default":false},"load_test_note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Load Test Note"}},"type":"object","title":"LineSwarmSettingsIn"},"LinkCount":{"properties":{"url":{"type":"string","title":"Url"},"clicks":{"type":"integer","title":"Clicks","default":0},"visitors":{"type":"integer","title":"Visitors","default":0}},"type":"object","required":["url"],"title":"LinkCount"},"LinkedWidget":{"properties":{"widget_id":{"type":"string","title":"Widget Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"published":{"type":"boolean","title":"Published"},"previous_preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Preset Id"},"followed_sections":{"items":{"type":"string"},"type":"array","title":"Followed Sections"},"sections_changing":{"items":{"type":"string"},"type":"array","title":"Sections Changing"},"sections_replacing":{"items":{"type":"string"},"type":"array","title":"Sections Replacing"}},"type":"object","required":["widget_id","published","followed_sections","sections_changing","sections_replacing"],"title":"LinkedWidget"},"ListState":{"properties":{"search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"},"sort":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort"},"dir":{"anyOf":[{"type":"string","enum":["asc","desc"]},{"type":"null"}],"title":"Dir"},"filters":{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Filters"},"labels":{"additionalProperties":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"type":"object","title":"Labels"},"columns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Columns"}},"type":"object","title":"ListState","description":"A list page's search, sort, filters, label filters and columns."},"LiveChannelCount":{"properties":{"channel":{"type":"string","title":"Channel"},"conversations":{"type":"integer","title":"Conversations"}},"type":"object","required":["channel","conversations"],"title":"LiveChannelCount"},"LiveKitInferenceModel":{"properties":{"name":{"type":"string","title":"Model"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"extra_kwargs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Kwargs"}},"type":"object","required":["name"],"title":"LiveKit Inference","description":"LiveKit Inference model configuration."},"LiveKitInferenceProvider":{"properties":{"provider":{"type":"string","const":"livekit","title":"Provider","default":"livekit"},"model":{"$ref":"#/components/schemas/LiveKitInferenceModel"}},"type":"object","required":["model"],"title":"LiveKit","description":"LiveKit Inference LLM provider."},"LiveKitInferenceSttModel":{"properties":{"name":{"type":"string","title":"Model"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"extra_kwargs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Kwargs"}},"type":"object","required":["name"],"title":"LiveKit Inference","description":"LiveKit Inference STT model configuration."},"LiveKitInferenceSttProvider":{"properties":{"provider":{"type":"string","const":"livekit","title":"Provider","default":"livekit"},"model":{"$ref":"#/components/schemas/LiveKitInferenceSttModel"}},"type":"object","required":["model"],"title":"LiveKit","description":"LiveKit Inference STT provider."},"LiveKitInferenceTtsModel":{"properties":{"name":{"type":"string","title":"Model"},"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"extra_kwargs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Kwargs"}},"type":"object","required":["name"],"title":"LiveKit Inference","description":"LiveKit Inference TTS model configuration."},"LiveKitInferenceTtsProvider":{"properties":{"provider":{"type":"string","const":"livekit","title":"Provider","default":"livekit"},"model":{"$ref":"#/components/schemas/LiveKitInferenceTtsModel"}},"type":"object","required":["model"],"title":"LiveKit","description":"LiveKit Inference TTS provider."},"LivekitBVCModel":{"properties":{"name":{"type":"string","const":"bvc","title":"Name","default":"bvc"}},"type":"object","title":"bvc","description":"LiveKit BVC model configuration."},"LivekitBVCTelephonyModel":{"properties":{"name":{"type":"string","const":"bvc_telephony","title":"Name","default":"bvc_telephony"}},"type":"object","title":"bvc-telephony","description":"LiveKit BVC Telephony model configuration."},"LivekitEnglishModel":{"properties":{"name":{"type":"string","const":"english","title":"Name","default":"english"}},"type":"object","title":"english","description":"LiveKit English turn detection model configuration."},"LivekitMultilingualModel":{"properties":{"name":{"type":"string","const":"multilingual","title":"Name","default":"multilingual"}},"type":"object","title":"multilingual","description":"LiveKit Multilingual turn detection model configuration."},"LivekitProvider":{"properties":{"provider":{"type":"string","const":"livekit","title":"Provider","default":"livekit"},"model":{"oneOf":[{"$ref":"#/components/schemas/LivekitBVCModel"},{"$ref":"#/components/schemas/LivekitBVCTelephonyModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"bvc":"#/components/schemas/LivekitBVCModel","bvc_telephony":"#/components/schemas/LivekitBVCTelephonyModel"}}}},"type":"object","required":["model"],"title":"LivekitProvider","description":"LiveKit noise cancellation provider."},"LivekitTurnDetectionProvider":{"properties":{"provider":{"type":"string","const":"livekit","title":"Provider","default":"livekit"},"model":{"oneOf":[{"$ref":"#/components/schemas/LivekitEnglishModel"},{"$ref":"#/components/schemas/LivekitMultilingualModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"english":"#/components/schemas/LivekitEnglishModel","multilingual":"#/components/schemas/LivekitMultilingualModel"}}}},"type":"object","required":["model"],"title":"LivekitTurnDetectionProvider","description":"LiveKit turn detection provider."},"Llm":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIProvider"},{"$ref":"#/components/schemas/CerebrasProvider"},{"$ref":"#/components/schemas/GoogleProvider"},{"$ref":"#/components/schemas/LiveKitInferenceProvider"},{"$ref":"#/components/schemas/OpenAIProvider"},{"$ref":"#/components/schemas/VercelProvider"}],"title":"Provider","discriminator":{"propertyName":"provider","mapping":{"azure_openai":"#/components/schemas/AzureOpenAIProvider","cerebras":"#/components/schemas/CerebrasProvider","google":"#/components/schemas/GoogleProvider","livekit":"#/components/schemas/LiveKitInferenceProvider","openai":"#/components/schemas/OpenAIProvider","vercel":"#/components/schemas/VercelProvider"}}},"type":"array","minItems":1,"title":"Large Language Models"},"on_failure":{"anyOf":[{"$ref":"#/components/schemas/LlmOnFailure"},{"type":"null"}],"title":"On Failure"}},"type":"object","required":["models"],"title":"Llm","description":"LLM configuration."},"LlmOnFailure":{"properties":{"attempt_timeout":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Attempt Timeout"},"max_retry_per_llm":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Retry Per LLM"},"retry_interval":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Retry Interval"}},"type":"object","title":"LlmOnFailure","description":"Configuration for model failure handling."},"LoopErrorPolicy":{"type":"string","enum":["fail_fast","continue"],"title":"LoopErrorPolicy"},"LoopFrame":{"properties":{"loop_step_id":{"type":"string","title":"Loop Step Id"},"index":{"type":"integer","title":"Index","default":0},"items":{"items":{},"type":"array","title":"Items"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"last_output":{"title":"Last Output"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"elapsed_ms":{"type":"number","title":"Elapsed Ms","default":0}},"type":"object","required":["loop_step_id"],"title":"LoopFrame","description":"One in-progress loop iteration, owned by the loop step that pushed it.\n\nLives here rather than beside ``LoopStep`` because both the context and\n``WorkflowExecutionState`` need it and neither may import the step package.\n\nThe frame is persisted with the execution state, so a wait inside a loop\nbody resumes mid-iteration on a later activity invocation. That is also why\n``items`` holds the materialized iteration source: re-evaluating the source\nexpression after the pause could yield a different list than the one the\nloop started on."},"LoopMode":{"type":"string","enum":["for_each","count","while"],"title":"LoopMode"},"LoopStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"loop","title":"Type","default":"loop"},"mode":{"$ref":"#/components/schemas/LoopMode"},"items":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Items"},"count":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Count"},"while_condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"While Condition"},"exit_condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exit Condition"},"max_iterations":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Max Iterations"},"error_policy":{"$ref":"#/components/schemas/LoopErrorPolicy","default":"fail_fast"},"loop_start_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Loop Start Step Id"}},"additionalProperties":false,"type":"object","required":["id","mode"],"title":"LoopStep","description":"Action node that repeats a body subgraph, one iteration at a time."},"ManagedAccount":{"properties":{"id":{"type":"string","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/TelephonyProviderType"},"auth_details":{"$ref":"#/components/schemas/TwilioAuthDetails"}},"type":"object","required":["id","created_at","updated_at","name","type","auth_details"],"title":"ManagedAccount","description":"Managed account entity representing a managed account configuration."},"ManagedAccountCreateRequest":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/TelephonyProviderType"},"auth_details":{"$ref":"#/components/schemas/TwilioAuthDetails"}},"type":"object","required":["name","type","auth_details"],"title":"ManagedAccountCreateRequest","description":"Schema for creating a managed account."},"ManagedAccountPhoneNumberPurchaseRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"country_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Code"},"phone_number_type":{"$ref":"#/components/schemas/TelephonyIntegrationPhoneNumberSearchType","default":"local"}},"type":"object","required":["phone_number"],"title":"ManagedAccountPhoneNumberPurchaseRequest","description":"Schema for phone number purchase request."},"ManagedAccountUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"auth_details":{"anyOf":[{"$ref":"#/components/schemas/TwilioAuthDetails"},{"type":"null"}]}},"type":"object","title":"ManagedAccountUpdateRequest","description":"Schema for updating a managed account."},"ManualRefreshPolicy":{"properties":{"type":{"type":"string","const":"manual","title":"Type","default":"manual"}},"type":"object","title":"ManualRefreshPolicy","description":"Refreshed only when someone asks (button or API)."},"MediaEncryption":{"type":"string","enum":["SIP_MEDIA_ENCRYPT_DISABLE","SIP_MEDIA_ENCRYPT_ALLOW","SIP_MEDIA_ENCRYPT_REQUIRE"],"title":"MediaEncryption"},"MessagingPreviewRequest":{"properties":{"channel":{"type":"string","enum":["email","text","sms"],"title":"Channel"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"},"sample_agent_response":{"type":"string","title":"Sample Agent Response","default":"Yes — we ship to Canada in 3-5 business days."},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["channel"],"title":"MessagingPreviewRequest","description":"Body for POST /messaging/preview — dry-run render for the agent editor."},"MessagingTranslateRequest":{"properties":{"target_locale":{"type":"string","maxLength":35,"title":"Target Locale"},"source_locale":{"anyOf":[{"type":"string","maxLength":35},{"type":"null"}],"title":"Source Locale"},"texts":{"additionalProperties":{"type":"string"},"type":"object","title":"Texts"}},"type":"object","required":["target_locale","texts"],"title":"MessagingTranslateRequest","description":"Body for POST /messaging/translate — a channel's own words (the email\nsignature) in another language, by the caller's keys. No source locale\nmeans the model reads it off the text."},"MessagingTranslateResponse":{"properties":{"texts":{"additionalProperties":{"type":"string"},"type":"object","title":"Texts"}},"type":"object","required":["texts"],"title":"MessagingTranslateResponse"},"MetricCreateRequest":{"properties":{"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metric_kind":{"type":"string","enum":["objective","perceptual"],"title":"Metric Kind","default":"objective"},"modality":{"type":"string","enum":["transcript","audio"],"title":"Modality","default":"transcript"},"perceiver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Perceiver"},"panel_size":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Panel Size","default":1},"routing_policy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Routing Policy"},"gate_predicate":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Gate Predicate"},"criteria":{"items":{"$ref":"#/components/schemas/CriterionItemRequest"},"type":"array","title":"Criteria","default":[]}},"type":"object","required":["name"],"title":"MetricCreateRequest","description":"Schema for API requests to create a new metric (excludes organization_id).\n\n`key` is optional — slugified from the name when omitted."},"MetricLintRequest":{"properties":{"empirical":{"type":"boolean","title":"Empirical","default":false},"llm":{"type":"boolean","title":"Llm","default":true},"sample_conversation_ids":{"items":{"type":"string"},"type":"array","title":"Sample Conversation Ids","default":[]},"k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"K","default":3}},"type":"object","title":"MetricLintRequest","description":"Schema for POST /metrics/{id}/lint (FR-C1..C6)."},"MetricPreviewRequest":{"properties":{"conversation_ids":{"items":{"type":"string"},"type":"array","title":"Conversation Ids"},"k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"K","default":1},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"}},"type":"object","required":["conversation_ids"],"title":"MetricPreviewRequest","description":"Schema for POST /metrics/{id}/preview — test-as-you-author (FR-D6)."},"MetricStatusRequest":{"properties":{"confirm_graduation":{"type":"boolean","title":"Confirm Graduation","default":false},"override":{"anyOf":[{"type":"string","enum":["auto","hybrid","human_only"]},{"type":"null"}],"title":"Override"},"override_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Override Reason"},"run_golden_check":{"type":"boolean","title":"Run Golden Check","default":false}},"type":"object","title":"MetricStatusRequest","description":"Schema for POST /metrics/{id}/recompute-status (FR-F2/F4/F6).\n\nconfirm_graduation applies an earned move to `auto` (FR-F4). override\nforces a status manually — recorded and flagged, never silent (FR-F6)."},"MetricUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"metric_kind":{"anyOf":[{"type":"string","enum":["objective","perceptual"]},{"type":"null"}],"title":"Metric Kind"},"modality":{"anyOf":[{"type":"string","enum":["transcript","audio"]},{"type":"null"}],"title":"Modality"},"perceiver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Perceiver"},"panel_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Panel Size"},"routing_policy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Routing Policy"},"gate_predicate":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Gate Predicate"},"criteria":{"anyOf":[{"items":{"$ref":"#/components/schemas/CriterionItemRequest"},"type":"array"},{"type":"null"}],"title":"Criteria"},"archived_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Archived At"}},"type":"object","title":"MetricUpdateRequest","description":"Schema for API requests to update a metric.\n\n`criteria`, when provided, is a full replacement of the metric's criteria\n(matched by key: existing keys update in place, missing keys archive, new\nkeys create) and bumps definition_version."},"NoiseCancellation":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/LivekitProvider"}],"discriminator":{"propertyName":"provider","mapping":{"livekit":"#/components/schemas/LivekitProvider"}}},"type":"array","minItems":1,"title":"Noise Cancellation Models"}},"type":"object","required":["models"],"title":"NoiseCancellation","description":"Noise cancellation configuration."},"NoteStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"note","title":"Type","default":"note"},"content":{"type":"string","title":"Content","default":""}},"additionalProperties":false,"type":"object","required":["id"],"title":"NoteStep"},"NudgeDynamicMessage":{"properties":{"type":{"type":"string","const":"bot_initiates_dynamic","title":"Use Instructions","default":"bot_initiates_dynamic"},"prompt":{"type":"string","title":"Instructions"}},"type":"object","required":["prompt"],"title":"NudgeDynamicMessage","description":"Inactivity nudge generated by the LLM from instructions."},"NudgeStaticMessage":{"properties":{"type":{"type":"string","const":"bot_initiates_static","title":"Exact Text","default":"bot_initiates_static"},"text":{"type":"string","title":"Text"}},"type":"object","required":["text"],"title":"NudgeStaticMessage","description":"Inactivity nudge spoken as exact text (verbatim via TTS)."},"OnIdleConfig":{"properties":{"actions":{"items":{"oneOf":[{"$ref":"#/components/schemas/WorkflowAction"},{"$ref":"#/components/schemas/HandoffAction"}],"title":"Action","discriminator":{"propertyName":"type","mapping":{"handoff":"#/components/schemas/HandoffAction","workflow":"#/components/schemas/WorkflowAction"}}},"type":"array","title":"Actions"}},"type":"object","required":["actions"],"title":"OnIdleConfig","description":"Where a quiet conversation is filed in the helpdesk (the idle archive).\n\nThe same actions, conditions and ``steps`` as a tool, with no ``arguments``:\nno model called anything. Workflows run in order, and the first ``handoff``\nwhose condition holds and which has a connection on this channel is the\nroute; nothing after it runs. None holding means the conversation is not\nfiled. Of a ``handoff`` only the route and the condition apply: an archive\nsays nothing to the customer. See ``services/handoff_archive.py``."},"OpenAIGPT4_1Model":{"properties":{"name":{"type":"string","const":"gpt-4.1","title":"Name","default":"gpt-4.1"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/OpenAIGPT4_1Parameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gpt-4.1","description":"OpenAI GPT-4.1 model configuration."},"OpenAIGPT4_1Parameters":{"properties":{"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"}},"type":"object","title":"OpenAIGPT4_1Parameters","description":"Parameters for OpenAI GPT-4.1 model."},"OpenAIGPT4oModel":{"properties":{"name":{"type":"string","const":"gpt-4o","title":"Name","default":"gpt-4o"},"parameters":{"anyOf":[{"$ref":"#/components/schemas/OpenAIGPT4oParameters"},{"type":"null"}],"title":"Parameters"}},"type":"object","title":"gpt-4o","description":"OpenAI GPT-4o model configuration."},"OpenAIGPT4oParameters":{"properties":{"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"}},"type":"object","title":"OpenAIGPT4oParameters","description":"Parameters for OpenAI GPT-4o model."},"OpenAIProvider":{"properties":{"provider":{"type":"string","const":"openai","title":"Provider","default":"openai"},"model":{"oneOf":[{"$ref":"#/components/schemas/OpenAIGPT4oModel"},{"$ref":"#/components/schemas/OpenAIGPT4_1Model"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"gpt-4.1":"#/components/schemas/OpenAIGPT4_1Model","gpt-4o":"#/components/schemas/OpenAIGPT4oModel"}}}},"type":"object","required":["model"],"title":"OpenAI","description":"OpenAI LLM provider."},"OpenTrigger":{"properties":{"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger"},"opens":{"type":"integer","title":"Opens","default":0},"visitors":{"type":"integer","title":"Visitors","default":0},"pages_before_open_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pages Before Open P50"},"shown_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shown P50"},"shown_p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shown P90"},"first_shown_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Shown P50"},"first_shown_p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"First Shown P90"}},"type":"object","title":"OpenTrigger"},"OutboundTrunkConfig":{"properties":{"id":{"type":"string","title":"Id"},"address":{"type":"string","title":"Address"},"auth_username":{"type":"string","title":"Auth Username"},"auth_password":{"type":"string","title":"Auth Password"},"transport":{"$ref":"#/components/schemas/Transport","default":"SIP_TRANSPORT_UDP"},"media_encryption":{"$ref":"#/components/schemas/MediaEncryption","default":"SIP_MEDIA_ENCRYPT_DISABLE"}},"type":"object","required":["id","address","auth_username","auth_password"],"title":"OutboundTrunkConfig","description":"Outbound trunk configuration for SIP trunks."},"OutboundTrunkConfigSchema":{"properties":{"address":{"type":"string","title":"Address"},"auth_username":{"type":"string","title":"Auth Username"},"auth_password":{"type":"string","title":"Auth Password"},"transport":{"$ref":"#/components/schemas/Transport","default":"SIP_TRANSPORT_UDP"},"media_encryption":{"$ref":"#/components/schemas/MediaEncryption","default":"SIP_MEDIA_ENCRYPT_DISABLE"}},"type":"object","required":["address","auth_username","auth_password"],"title":"OutboundTrunkConfigSchema","description":"Schema for outbound trunk configuration."},"OutputStep-Input":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"output","title":"Type","default":"output"},"output_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Input"},"type":"object","title":"Output Schema","description":"The output schema of the step"},"output_data":{"additionalProperties":true,"type":"object","title":"Output Data","description":"The output data of the step"}},"additionalProperties":false,"type":"object","required":["id","output_schema","output_data"],"title":"OutputStep"},"OutputStep-Output":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"output","title":"Type","default":"output"},"output_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Output"},"type":"object","title":"Output Schema","description":"The output schema of the step"},"output_data":{"additionalProperties":true,"type":"object","title":"Output Data","description":"The output data of the step"}},"additionalProperties":false,"type":"object","required":["id","output_schema","output_data"],"title":"OutputStep"},"PaginatedCredentialResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CredentialSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedCredentialResponse"},"PaginatedDatasetResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DatasetSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__knowledge_base__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedDatasetResponse"},"PaginatedResponse_DatasetSourceSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DatasetSourceSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__knowledge_base__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedResponse[DatasetSourceSchema]"},"PaginatedResponse_ManagedAccount_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ManagedAccount"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/PaginationOptions"}},"type":"object","required":["data","pagination"],"title":"PaginatedResponse[ManagedAccount]"},"PaginatedResponse_WorkflowVersionSchema_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkflowVersionSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedResponse[WorkflowVersionSchema]"},"PaginatedSourceResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SourceSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__knowledge_base__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedSourceResponse"},"PaginatedTriggerEventResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TriggerEventSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedTriggerEventResponse"},"PaginatedWorkflowExecutionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkflowExecutionSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedWorkflowExecutionResponse"},"PaginatedWorkflowResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkflowSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedWorkflowResponse"},"PaginatedWorkflowTriggerResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkflowTriggerSchema"},"type":"array","title":"Data"},"pagination":{"$ref":"#/components/schemas/routes__workflow__models__common__PaginationMeta"}},"type":"object","required":["data","pagination"],"title":"PaginatedWorkflowTriggerResponse"},"PaginationOptions":{"properties":{"limit":{"type":"integer","title":"Limit"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},"type":"object","required":["limit"],"title":"PaginationOptions","description":"Schema for pagination options."},"ParallelErrorPolicy":{"type":"string","enum":["fail_fast","continue"],"title":"ParallelErrorPolicy"},"ParallelMode":{"type":"string","enum":["for_each","count"],"title":"ParallelMode"},"ParallelStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"parallel","title":"Type","default":"parallel"},"mode":{"$ref":"#/components/schemas/ParallelMode"},"items":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Items"},"count":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Count"},"max_concurrency":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Concurrency","default":5},"error_policy":{"$ref":"#/components/schemas/ParallelErrorPolicy","default":"fail_fast"},"loop_start_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Loop Start Step Id"}},"additionalProperties":false,"type":"object","required":["id","mode"],"title":"ParallelStep","description":"Action node that runs a body subgraph once per item, concurrently."},"PercentageBreakdown":{"properties":{"inbound_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Inbound Percent"},"outbound_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Outbound Percent"}},"type":"object","title":"PercentageBreakdown"},"PhoneNumber":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"organization_id":{"type":"string","title":"Organization Id"},"trunk_id":{"type":"string","title":"Trunk Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"inbound_agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Version Id"},"outbound_agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outbound Agent Version Id"},"managed_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Managed Account Id"},"external_id":{"type":"string","title":"External Id"},"outbound_shareable":{"type":"boolean","title":"Outbound Shareable","default":false}},"type":"object","required":["phone_number","organization_id","trunk_id","created_at","updated_at","external_id"],"title":"PhoneNumber","description":"Phone number entity representing a phone number configuration."},"PhoneNumberCreateRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"trunk_id":{"type":"string","title":"Trunk Id"},"outbound_shareable":{"type":"boolean","title":"Outbound Shareable","default":false}},"additionalProperties":false,"type":"object","required":["phone_number","trunk_id"],"title":"PhoneNumberCreateRequest","description":"Schema for API requests to create a new phone number (excludes organization_id)."},"PhoneNumberDeletionPreview":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"managed_account_scope":{"anyOf":[{"type":"string","enum":["shared","organization"]},{"type":"null"}],"title":"Managed Account Scope"},"provider":{"anyOf":[{"$ref":"#/components/schemas/TelephonyProviderType"},{"type":"null"}]},"will_release":{"type":"boolean","title":"Will Release","default":false}},"type":"object","required":["phone_number"],"title":"PhoneNumberDeletionPreview","description":"What deleting a phone number will actually do, so callers can confirm\nwith the right wording before the number is gone."},"PhoneNumberUpdateRequest":{"properties":{"outbound_shareable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Outbound Shareable"}},"additionalProperties":false,"type":"object","title":"PhoneNumberUpdateRequest","description":"Schema for API requests to update a phone number. Only outbound_shareable\nmay be patched; trunk rebinding is intentionally not exposed."},"PinVersionRequest":{"properties":{"workflow_id":{"type":"string","format":"uuid","title":"Workflow Id"},"step_id":{"type":"string","minLength":1,"title":"Step Id"}},"type":"object","required":["workflow_id","step_id"],"title":"PinVersionRequest"},"PivotRow":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"conversations":{"type":"integer","title":"Conversations"},"share_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Share Percent"},"resolved_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Resolved Percent"},"containment_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Percent"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"}},"type":"object","required":["key","label","conversations"],"title":"PivotRow"},"PlayAudioAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"play_audio","title":"Type","default":"play_audio"},"audio_url":{"type":"string","title":"Audio URL","description":"Optional URL to an MP3 or WAV file."},"loop":{"type":"boolean","title":"Loop","default":false},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["audio_url"],"title":"Play Audio"},"PlayMessageAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"play_message","title":"Type","default":"play_message"},"message":{"type":"string","title":"Message"},"generate":{"type":"boolean","title":"Generate","default":false},"wait_for_playout":{"type":"boolean","title":"Wait for Playout","default":true},"allow_interruptions":{"type":"boolean","title":"Allow Interruptions","default":true},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["message"],"title":"Play Message"},"PreflightResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"config_version":{"type":"integer","title":"Config Version"},"eligible":{"type":"boolean","title":"Eligible"},"eligibility_reasons":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Eligibility Reasons"},"planning_validation_required":{"type":"boolean","title":"Planning Validation Required","default":false},"blockers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Blockers"},"warnings":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Warnings"},"skipped_sections":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Skipped Sections"}},"type":"object","required":["agent_id","config_version","eligible"],"title":"PreflightResponse","description":"What generating right now would produce, without producing it.\n\n`blockers` is the point of the endpoint: evidence the configuration does not carry,\nreported before a run is started rather than as residue afterwards. It is computed\nper request and never stored — the row keeps only what a finished document needs."},"PriceVerbosity":{"type":"string","enum":["formal","conversational"],"title":"PriceVerbosity","description":"Price pronunciation verbosity tier.\n\nKeep in sync with:\n  backend/text-normalization-service/src/schemas/normalize.py:PriceVerbosity"},"ProactiveItem":{"properties":{"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"question_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Key"},"template_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Hash"},"template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template"},"saw_visitors":{"type":"integer","title":"Saw Visitors","default":0},"clicked_visitors":{"type":"integer","title":"Clicked Visitors","default":0},"shown_events":{"type":"integer","title":"Shown Events","default":0},"clicked_events":{"type":"integer","title":"Clicked Events","default":0}},"type":"object","title":"ProactiveItem"},"ProactiveRule":{"properties":{"rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule"},"saw_visitors":{"type":"integer","title":"Saw Visitors","default":0},"clicked_visitors":{"type":"integer","title":"Clicked Visitors","default":0},"dismissed_visitors":{"type":"integer","title":"Dismissed Visitors","default":0},"shown_events":{"type":"integer","title":"Shown Events","default":0},"clicked_events":{"type":"integer","title":"Clicked Events","default":0}},"type":"object","title":"ProactiveRule"},"Profile":{"properties":{"id":{"type":"string","maxLength":40,"minLength":1,"title":"Id"},"first_name":{"type":"string","maxLength":60,"minLength":1,"title":"First Name"},"last_name":{"type":"string","maxLength":60,"minLength":1,"title":"Last Name"},"date_of_birth":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Date Of Birth","description":"YYYY-MM-DD"},"member_id":{"type":"string","maxLength":40,"title":"Member Id","default":""},"account_number":{"type":"string","maxLength":40,"title":"Account Number","default":""},"policy_number":{"type":"string","maxLength":40,"title":"Policy Number","default":""},"group_number":{"type":"string","maxLength":40,"title":"Group Number","default":""},"order_number":{"type":"string","maxLength":40,"title":"Order Number","default":""},"claim_number":{"type":"string","maxLength":40,"title":"Claim Number","default":""},"ssn_last4":{"type":"string","pattern":"^(\\d{4})?$","title":"Ssn Last4","default":""},"ssn":{"type":"string","pattern":"^(\\d{3}-?\\d{2}-?\\d{4})?$","title":"Ssn","default":""},"phone":{"type":"string","maxLength":32,"title":"Phone","default":""},"email":{"type":"string","maxLength":120,"title":"Email","default":""},"street":{"type":"string","maxLength":120,"title":"Street","default":""},"city":{"type":"string","maxLength":60,"title":"City","default":""},"state":{"type":"string","maxLength":40,"title":"State","default":""},"zip":{"type":"string","maxLength":10,"title":"Zip","default":""},"pin":{"type":"string","pattern":"^(\\d{4,6})?$","title":"Pin","default":""},"note":{"type":"string","maxLength":200,"title":"Note","default":""}},"additionalProperties":false,"type":"object","required":["id","first_name","last_name","date_of_birth"],"title":"Profile","description":"A person the caller is on one call. Seeded, then editable: a customer's\nreal test accounts are typed over seeded ones (PLAN.md §2)."},"ProfileFormats":{"properties":{"member_id_length":{"type":"integer","maximum":20.0,"minimum":4.0,"title":"Member Id Length","default":10},"member_id_prefix":{"type":"string","maxLength":6,"title":"Member Id Prefix","default":""},"account_number_length":{"type":"integer","maximum":20.0,"minimum":4.0,"title":"Account Number Length","default":10},"order_number_length":{"type":"integer","maximum":20.0,"minimum":4.0,"title":"Order Number Length","default":8},"claim_number_length":{"type":"integer","maximum":20.0,"minimum":4.0,"title":"Claim Number Length","default":9}},"additionalProperties":false,"type":"object","title":"ProfileFormats","description":"Lengths and prefixes the seeded numbers follow for this line, so they\nlook like the company's own numbers."},"ProfilesOut":{"properties":{"profiles":{"items":{"$ref":"#/components/schemas/Profile"},"type":"array","title":"Profiles"}},"type":"object","required":["profiles"],"title":"ProfilesOut"},"PublicCapabilityDocument":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"source_config_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Config Version"},"content":{"additionalProperties":true,"type":"object","title":"Content"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"stale":{"type":"boolean","title":"Stale","default":false}},"type":"object","required":["agent_id","content"],"title":"PublicCapabilityDocument","description":"What the public page is allowed to see.\n\nMirrors api.public_capability_document()'s projection exactly. Anything absent here is\nabsent by design: the residue, the check failures, the error text and the\norganization id never reach a reader holding only a link."},"PublicConversation":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"conversation":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation"},"status":{"anyOf":[{"$ref":"#/components/schemas/ConversationStatus"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","title":"PublicConversation","description":"A conversation as an anonymous widget caller is allowed to see it.\n\nDeliberately NOT ``Conversation``/``ConversationPartial``: those carry\n``agent_config``, ``trunk_config``, ``system_metadata`` and the org/agent\nidentifiers, none of which the widget reads. ``conversation`` is the\ntranscript (its ``items``), which the widget replays to rehydrate history.\n\nWhat this guarantees, and what it does not: the agent's configuration never\nships from the conversation endpoints. It is NOT a claim about the public\nsurface as a whole — ``GET /public/web-widgets/{id}`` still returns the whole\n``WebWidget`` (``organization_id``, ``agent_id``, ``agent_version_id``,\n``domains``, ``created_by``), so those identifiers are already readable by\nanyone holding a widget id. Omitting them here is defence in depth, not a\nboundary you can rely on; harden that route before treating them as private."},"PublicConversationCreateResponse":{"properties":{"conversation":{"anyOf":[{"$ref":"#/components/schemas/PublicConversation"},{"type":"null"}]},"connection_details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Connection Details"},"capabilities":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Capabilities"},"conversation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Token"},"handoff":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Handoff"},"identity_form":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Identity Form"},"transport":{"anyOf":[{"type":"string","enum":["livekit","http"]},{"type":"null"}],"title":"Transport"},"greeting":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greeting"},"starting_widgets":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Starting Widgets"},"rejected":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rejected"},"ended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ended"},"identity_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Identity Verified"},"identity_bound":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Identity Bound"},"bind_ticket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bind Ticket"},"latest_seq":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latest Seq"}},"type":"object","title":"PublicConversationCreateResponse","description":"Body of the public widget create/resume endpoint.\n\nEvery key the widget branches on is named here; anything the handler happens\nto put on the response dict and is not named is dropped by FastAPI before it\nreaches the caller."},"PublicConversationListItem":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"channel":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"conversation":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Conversation"},"status":{"anyOf":[{"$ref":"#/components/schemas/ConversationStatus"},{"type":"null"}]},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"conversation_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Token"},"linked_to_account":{"type":"boolean","title":"Linked To Account","default":false}},"type":"object","title":"PublicConversationListItem","description":"A widget history row; rows listed via the verified identity carry a\ncapability token this device may never have held."},"PublicEndRequest":{"properties":{"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Per-conversation capability token (or X-Conversation-Token)"}},"type":"object","title":"PublicEndRequest","description":"Body for the public end-of-chat call."},"PublicExperiment":{"properties":{"id":{"type":"string","title":"Id"},"salt":{"type":"string","title":"Salt"},"variants":{"items":{"$ref":"#/components/schemas/PublicExperimentVariant"},"type":"array","title":"Variants"}},"type":"object","required":["id","salt","variants"],"title":"PublicExperiment","description":"The widget's running experiment. The loader buckets visitors with `salt`."},"PublicExperimentVariant":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name","default":""},"weight":{"type":"integer","title":"Weight"},"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["key","weight","config"],"title":"PublicExperimentVariant","description":"A variant as the embed needs it: its weight and the config it shows."},"PublicHandoffIdentityRequest":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Email the customer typed"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"Phone the customer typed"},"dismissed":{"type":"boolean","title":"Dismissed","description":"The customer closed the form; drop the escalation and stay with the bot.","default":false},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Per-conversation capability token (or X-Conversation-Token)"}},"type":"object","title":"PublicHandoffIdentityRequest","description":"Body for the identity form the customer was shown before an escalation."},"PublicHandoffMessageRequest":{"properties":{"text":{"type":"string","title":"Text","description":"The customer's message text","default":""},"texts":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Texts","description":"Several messages the visitor typed in one burst, oldest first. Each is kept as its own message; together they make ONE agent turn. At most 20. Takes precedence over `text`."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Per-conversation capability token (or X-Conversation-Token)"},"attachment_ids":{"items":{"type":"string"},"type":"array","title":"Attachment Ids","description":"Ids of already-uploaded conversation attachments to relay"},"client_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Client Context","description":"The host page's state at send time (page, cart), from the embed loader. Parsed leniently: a malformed one is ignored, never refused."}},"type":"object","title":"PublicHandoffMessageRequest","description":"Body for the public relay uplink."},"PublicReadReceiptRequest":{"properties":{"seq":{"type":"integer","title":"Seq","description":"Highest outbox seq the browser has displayed"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Per-conversation capability token (or X-Conversation-Token)"}},"type":"object","required":["seq"],"title":"PublicReadReceiptRequest","description":"Body for the public read receipt."},"PublicWebWidget":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"agent_id":{"type":"string","title":"Agent Id"},"agent_version_id":{"type":"string","title":"Agent Version Id"},"domains":{"items":{"type":"string"},"type":"array","title":"Domains"},"published":{"type":"boolean","title":"Published"},"collect_analytics":{"type":"boolean","title":"Collect Analytics","default":true},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"},"preset_sections":{"items":{"type":"string"},"type":"array","title":"Preset Sections","default":[]},"identity_enabled":{"type":"boolean","title":"Identity Enabled","default":false},"experiment":{"anyOf":[{"$ref":"#/components/schemas/PublicExperiment"},{"type":"null"}]},"analytics_enabled":{"type":"boolean","title":"Analytics Enabled","default":false},"agent_active":{"type":"boolean","title":"Agent Active","default":true}},"type":"object","required":["id","organization_id","agent_id","agent_version_id","domains","published","config","created_at","updated_at"],"title":"PublicWebWidget","description":"``GET /public/web-widgets/{id}``: the widget plus what the embed branches on."},"PythonFunctionAuditEntrySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"function_id":{"type":"string","format":"uuid","title":"Function Id"},"version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Version Id"},"action":{"type":"string","title":"Action"},"actor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor"},"details":{"additionalProperties":true,"type":"object","title":"Details"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","function_id","action","created_at"],"title":"PythonFunctionAuditEntrySchema"},"PythonFunctionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"disabled":{"type":"boolean","title":"Disabled"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"versions":{"items":{"$ref":"#/components/schemas/PythonFunctionVersionSchema"},"type":"array","title":"Versions"}},"type":"object","required":["id","name","disabled","created_at","updated_at"],"title":"PythonFunctionSchema"},"PythonFunctionStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"python_function","title":"Type","default":"python_function"},"function_id":{"type":"string","title":"Function Id","default":""},"version_hash":{"type":"string","pattern":"^([0-9a-f]{64})?$","title":"Version Hash","default":""},"function":{"type":"string","title":"Function","default":""},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"additionalProperties":false,"type":"object","required":["id"],"title":"PythonFunctionStep"},"PythonFunctionVersionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"function_id":{"type":"string","format":"uuid","title":"Function Id"},"function_name":{"type":"string","title":"Function Name"},"hash":{"type":"string","title":"Hash"},"dependencies":{"additionalProperties":{"type":"string"},"type":"object","title":"Dependencies"},"packages":{"items":{"type":"string"},"type":"array","title":"Packages"},"signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signature"},"parameters":{"items":{"type":"string"},"type":"array","title":"Parameters"},"timeout_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout Ms"},"memory_mb":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Memory Mb"},"status":{"type":"string","enum":["active","revoked"],"title":"Status"},"effective_status":{"type":"string","enum":["active","revoked"],"title":"Effective Status"},"replaced_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Replaced By"},"revoked_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked By"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"revoked_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked Reason"},"revoked_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked Until"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},"type":"object","required":["id","function_id","function_name","hash","status","effective_status","created_at"],"title":"PythonFunctionVersionSchema"},"QueryFilter":{"properties":{"property":{"type":"string","title":"Property"},"op":{"type":"string","enum":["eq","neq","gt","gte","lt","lte","in","contains","starts_with"],"title":"Op","default":"eq"},"value":{"title":"Value"}},"type":"object","required":["property"],"title":"QueryFilter"},"QueryParamSpec":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","enum":["string","number","integer","boolean","date","date-time","embedding"],"title":"Type","default":"string"}},"type":"object","required":["name"],"title":"QueryParamSpec"},"QueryRequest":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/QueryFilter"},"type":"array","title":"Filters"},"order":{"items":{"$ref":"#/components/schemas/QuerySort"},"type":"array","title":"Order"},"limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Limit","default":20}},"type":"object","title":"QueryRequest"},"QuerySort":{"properties":{"property":{"type":"string","title":"Property"},"direction":{"type":"string","enum":["asc","desc"],"title":"Direction","default":"asc"}},"type":"object","required":["property"],"title":"QuerySort"},"RealtimeStack":{"properties":{"type":{"type":"string","const":"realtime","title":"Realtime API","default":"realtime"},"llm":{"$ref":"#/components/schemas/Llm","title":"Language Model"},"turn_detection":{"anyOf":[{"$ref":"#/components/schemas/TurnDetection"},{"type":"null"}],"title":"Turn Detection"},"stt":{"anyOf":[{"$ref":"#/components/schemas/Stt"},{"type":"null"}],"title":"Speech-to-Text"},"vad":{"anyOf":[{"$ref":"#/components/schemas/Vad"},{"type":"null"}],"title":"Voice Activity Detection"},"vision_llm":{"anyOf":[{"$ref":"#/components/schemas/VisionLlm"},{"type":"null"}],"title":"Vision LLM"}},"type":"object","required":["llm"],"title":"RealtimeStack","description":"Realtime stack configuration."},"RecordCard":{"properties":{"prompt":{"type":"string","minLength":1,"title":"Prompt","default":"You are writing the conversation record for a finished customer call, for a contact-centre supervisor. Summarise the call in two sentences. Score the call's quality from 0 to 100 against three things: whether the caller's questions were resolved, whether the caller was verified appropriately, and courtesy. Predict the caller's satisfaction (CSAT) from 1 to 5. State in one short phrase how personal information from the call is held at rest. Answer only with JSON of the form {\"summary\": string, \"qa_score\": integer 0-100, \"predicted_csat\": number 1-5, \"pii_at_rest\": string}."}},"additionalProperties":false,"type":"object","title":"RecordCard"},"RecordingDetail":{"properties":{"egress_id":{"type":"string","title":"Egress Id"},"filepath":{"type":"string","title":"Filepath"},"default_location":{"oneOf":[{"$ref":"#/components/schemas/S3RecordingLocation"},{"$ref":"#/components/schemas/GcpRecordingLocation"},{"$ref":"#/components/schemas/AzureRecordingLocation"}],"title":"Default Location","discriminator":{"propertyName":"provider","mapping":{"azure":"#/components/schemas/AzureRecordingLocation","gcp":"#/components/schemas/GcpRecordingLocation","s3":"#/components/schemas/S3RecordingLocation"}}},"custom_locations":{"items":{"oneOf":[{"$ref":"#/components/schemas/S3RecordingLocation"},{"$ref":"#/components/schemas/GcpRecordingLocation"},{"$ref":"#/components/schemas/AzureRecordingLocation"}],"discriminator":{"propertyName":"provider","mapping":{"azure":"#/components/schemas/AzureRecordingLocation","gcp":"#/components/schemas/GcpRecordingLocation","s3":"#/components/schemas/S3RecordingLocation"}}},"type":"array","title":"Custom Locations"}},"type":"object","required":["egress_id","filepath","default_location"],"title":"RecordingDetail"},"RecordingDetailResponse":{"properties":{"egress_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Egress Id"},"filepath":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filepath"},"recording_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Url"}},"type":"object","title":"RecordingDetailResponse","description":"API-safe view of RecordingDetail, which holds storage credentials."},"Rehearsal":{"properties":{"ivr":{"items":{"$ref":"#/components/schemas/ScriptEvent"},"type":"array","maxItems":200,"minItems":1,"title":"Ivr"},"anyreach":{"items":{"$ref":"#/components/schemas/ScriptEvent"},"type":"array","maxItems":200,"minItems":1,"title":"Anyreach"},"anyreach_government":{"type":"null","title":"Anyreach Government"},"chat":{"items":{"$ref":"#/components/schemas/LaneItem"},"type":"array","maxItems":200,"title":"Chat"},"sms":{"items":{"$ref":"#/components/schemas/LaneItem"},"type":"array","maxItems":200,"title":"Sms"}},"additionalProperties":false,"type":"object","title":"Rehearsal"},"RemoteOptionItem":{"properties":{"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["label","value"],"title":"RemoteOptionItem"},"RemoteOptionsResponse":{"properties":{"options":{"items":{"$ref":"#/components/schemas/RemoteOptionItem"},"type":"array","title":"Options"}},"type":"object","required":["options"],"title":"RemoteOptionsResponse"},"ReplaceTableRequest":{"properties":{"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows","description":"The source's COMPLETE current state. Anything absent is tombstoned."}},"type":"object","required":["rows"],"title":"ReplaceTableRequest"},"RequiresVerifiedIdentity":{"properties":{"subject_type":{"type":"string","maxLength":64,"minLength":1,"title":"Subject Type"},"methods":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Methods","description":"Accepted verification methods; any method when omitted"},"unverified_result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unverified Result","description":"Jinja template the model gets instead of the default refusal"}},"type":"object","required":["subject_type"],"title":"RequiresVerifiedIdentity","description":"Gate a tool on a non-expired verified identity."},"RetrieveWebpageToolConfig":{"properties":{},"type":"object","title":"RetrieveWebpageToolConfig","description":"Configuration for the retrieve_webpage built-in tool."},"ReviewQuestion":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"type":{"$ref":"#/components/schemas/FormFieldType"}},"type":"object","required":["id","label","type"],"title":"ReviewQuestion"},"ReviewerFeedback":{"properties":{"answers":{"additionalProperties":true,"type":"object","title":"Answers","description":"Answers keyed by field id, as of the last save"},"questions":{"items":{"$ref":"#/components/schemas/ReviewQuestion"},"type":"array","title":"Questions","description":"The questions the answers were given to, in form order"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["answers","questions","updated_at"],"title":"ReviewerFeedback"},"RevokeVersionRequest":{"properties":{"reason":{"type":"string","minLength":1,"title":"Reason"},"replaced_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Replaced By"}},"type":"object","required":["reason"],"title":"RevokeVersionRequest"},"RowsResponse":{"properties":{"count":{"type":"integer","title":"Count"},"records":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Records"}},"type":"object","required":["count","records"],"title":"RowsResponse"},"Run":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"kind":{"type":"string","title":"Kind"},"variant":{"type":"string","enum":["commercial","government"],"title":"Variant"},"status":{"type":"string","enum":["created","running","completed","failed"],"title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"dialed_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialed Number"},"caller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id"},"ivr_status":{"type":"string","enum":["idle","dialing","connected","ended","failed"],"title":"Ivr Status"},"ivr_end_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ivr End Reason"},"ivr_duration_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ivr Duration S"},"agent_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Conversation Id"},"chat_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Conversation Id"},"ivr_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ivr Summary"},"agent_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Summary"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"config_snapshot":{"additionalProperties":true,"type":"object","title":"Config Snapshot"}},"type":"object","required":["id","agent_id","kind","variant","status","ivr_status","config_snapshot"],"title":"Run","description":"A run with the ``{config, target}`` snapshot it was started from."},"RunCreate":{"properties":{"goal_key":{"type":"string","title":"Goal Key"},"agents":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Agents"},"mix":{"type":"string","enum":["balanced","hard"],"title":"Mix","default":"balanced"},"ramp":{"type":"string","enum":["stagger","burst"],"title":"Ramp","default":"stagger"},"concurrency":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Concurrency","default":5},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"}},"type":"object","required":["goal_key","agents"],"title":"RunCreate"},"RunDefaults":{"properties":{"agents":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Agents","default":10},"mix":{"type":"string","enum":["balanced","hard"],"title":"Mix","default":"balanced"},"ramp":{"type":"string","enum":["stagger","burst"],"title":"Ramp","default":"stagger"},"concurrency":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Concurrency","default":5}},"additionalProperties":false,"type":"object","title":"RunDefaults"},"RunEventOut":{"properties":{"side":{"type":"string","enum":["ivr","agent","chat"],"title":"Side"},"seq":{"type":"integer","title":"Seq"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["side","seq","payload"],"title":"RunEventOut"},"RunRecordings":{"properties":{"ivr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ivr"},"agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent"}},"type":"object","title":"RunRecordings"},"RunSummary":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"kind":{"type":"string","title":"Kind"},"variant":{"type":"string","enum":["commercial","government"],"title":"Variant"},"status":{"type":"string","enum":["created","running","completed","failed"],"title":"Status"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"dialed_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dialed Number"},"caller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id"},"ivr_status":{"type":"string","enum":["idle","dialing","connected","ended","failed"],"title":"Ivr Status"},"ivr_end_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ivr End Reason"},"ivr_duration_s":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ivr Duration S"},"agent_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Conversation Id"},"chat_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Conversation Id"},"ivr_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Ivr Summary"},"agent_summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Agent Summary"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["id","agent_id","kind","variant","status","ivr_status"],"title":"RunSummary"},"RunTiming":{"properties":{"received_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Received At"},"queued_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Queued At"},"scheduled_for":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled For"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finished At"},"saving_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Saving At"},"legs":{"type":"integer","title":"Legs","default":0},"active_ms":{"type":"number","title":"Active Ms","default":0},"engine_ms":{"type":"number","title":"Engine Ms","default":0},"paused_ms":{"type":"number","title":"Paused Ms","default":0},"total_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Ms"}},"type":"object","title":"RunTiming","description":"The run as a whole, from the request (or trigger) to its last save.\n\nTimestamps rather than one duration: an async run's end-to-end mixes setup,\ntime queued in Temporal, time running, and pauses that can last hours, and\nonly the timestamps keep those apart. All UTC, from the app's clock."},"RunsList":{"properties":{"columns":{"items":{"type":"string","enum":["time","steps","keys","ident","listen","hold","intents","outcome","sent","cost","annual","scale"]},"type":"array","title":"Columns"}},"additionalProperties":false,"type":"object","title":"RunsList","description":"Which scorecard metrics the Runs list shows, each as its Difference\ncolumn; they follow the scorecard rows' order."},"S3RecordingLocation":{"properties":{"provider":{"type":"string","const":"s3","title":"Provider","default":"s3"},"bucket":{"type":"string","title":"Bucket"},"region":{"type":"string","title":"Region"},"access_key":{"type":"string","title":"Access Key"},"secret_access_key":{"type":"string","title":"Secret Access Key"},"file_type":{"type":"string","enum":["ogg","mp4"],"title":"File Type","default":"ogg"}},"type":"object","required":["bucket","region","access_key","secret_access_key"],"title":"S3RecordingLocation","description":"S3 recording location provider."},"SaveVersionRequest":{"properties":{"name":{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_]{0,99}$","title":"Name"},"source":{"type":"string","maxLength":1000000,"minLength":1,"title":"Source"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"timeout_ms":{"anyOf":[{"type":"integer","maximum":30000.0,"minimum":1.0},{"type":"null"}],"title":"Timeout Ms"},"memory_mb":{"anyOf":[{"type":"integer","maximum":2048.0,"minimum":1.0},{"type":"null"}],"title":"Memory Mb"}},"type":"object","required":["name","source"],"title":"SaveVersionRequest"},"SavedQueryCacheRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"SavedQueryCacheRequest"},"SavedQueryCreateRequest":{"properties":{"sql":{"type":"string","title":"SQL"},"params":{"items":{"$ref":"#/components/schemas/QueryParamSpec"},"type":"array","title":"Parameters"},"row_limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Row Limit","default":50}},"type":"object","required":["sql"],"title":"SavedQueryCreateRequest"},"SavedQueryDryRunRequest":{"properties":{"sql":{"type":"string","title":"SQL"},"params":{"items":{"$ref":"#/components/schemas/QueryParamSpec"},"type":"array","title":"Parameters"},"row_limit":{"type":"integer","maximum":500.0,"minimum":1.0,"title":"Row Limit","default":50},"args":{"additionalProperties":true,"type":"object","title":"Arguments"}},"type":"object","required":["sql"],"title":"SavedQueryDryRunRequest","description":"Sample argument values, so the author can see real rows before saving."},"SavedQueryEnabledRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"SavedQueryEnabledRequest"},"SavedQueryRunRequest":{"properties":{"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","title":"SavedQueryRunRequest"},"SavedQuerySchema":{"properties":{"id":{"type":"integer","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"table_id":{"type":"integer","title":"Table Id"},"name":{"type":"string","title":"Name"},"sql_source":{"type":"string","title":"Sql Source"},"params":{"items":{"$ref":"#/components/schemas/QueryParamSpec"},"type":"array","title":"Params"},"referenced_columns":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Referenced Columns"},"row_limit":{"type":"integer","title":"Row Limit"},"status":{"type":"string","enum":["draft","validated","stale","broken"],"title":"Status"},"validation_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Error"},"enabled":{"type":"boolean","title":"Enabled"},"cache_enabled":{"type":"boolean","title":"Cache Enabled","default":true},"is_stale":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Stale"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","table_id","name","sql_source","row_limit","status","enabled"],"title":"SavedQuerySchema"},"SavedViewCreateRequest":{"properties":{"entity_type":{"type":"string","enum":["agent","workflow","dashboard","conversation"],"title":"Entity Type"},"name":{"type":"string","title":"Name"},"state":{"$ref":"#/components/schemas/ListState"},"organization":{"type":"boolean","title":"Organization","description":"Share with the organisation instead of keeping it personal.","default":false}},"additionalProperties":false,"type":"object","required":["entity_type","name"],"title":"SavedViewCreateRequest"},"SavedViewResponse":{"properties":{"id":{"type":"string","title":"Id"},"entity_type":{"type":"string","enum":["agent","workflow","dashboard","conversation"],"title":"Entity Type"},"name":{"type":"string","title":"Name"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"is_mine":{"type":"boolean","title":"Is Mine"},"can_edit":{"type":"boolean","title":"Can Edit"},"state":{"$ref":"#/components/schemas/ListState"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","entity_type","name","is_mine","can_edit","state","created_at","updated_at"],"title":"SavedViewResponse"},"SavedViewUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"state":{"anyOf":[{"$ref":"#/components/schemas/ListState"},{"type":"null"}]},"organization":{"anyOf":[{"type":"boolean","const":true},{"type":"null"}],"title":"Organization","description":"true shares a personal view with the organisation."}},"additionalProperties":false,"type":"object","title":"SavedViewUpdateRequest"},"Scenario":{"properties":{"title":{"type":"string","title":"Title","default":"Same caller, same question"},"prompt":{"type":"string","title":"Prompt","default":"The question the caller asks on both calls"}},"additionalProperties":false,"type":"object","title":"Scenario"},"ScheduleOverride":{"properties":{"timezones":{"items":{"type":"string"},"type":"array","title":"Timezones","description":"IANA timezone identifiers"},"windows":{"items":{"$ref":"#/components/schemas/TimeWindow"},"type":"array","title":"Windows"}},"type":"object","required":["timezones","windows"],"title":"ScheduleOverride"},"Scorecard":{"properties":{"rows":{"items":{"type":"string","enum":["time","steps","keys","ident","listen","hold","intents","outcome","sent","cost","annual","scale"]},"type":"array","title":"Rows"}},"additionalProperties":false,"type":"object","title":"Scorecard"},"ScreenPopResult":{"properties":{"url":{"type":"string","title":"Url"},"conversation_id":{"type":"string","title":"Conversation Id"}},"type":"object","required":["url","conversation_id"],"title":"ScreenPopResult"},"ScreenPopTarget":{"properties":{"url":{"type":"string","title":"URL","description":"http(s) URL template. {{caller}}, {{conversation_id}} and {{custom_metadata.<key>}} are replaced with URL-encoded values, and may only appear after the host."},"fallback_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback URL","description":"Opened instead when a value the URL needs is missing."}},"type":"object","required":["url"],"title":"ScreenPopTarget","description":"One named link, e.g. the caller's record in a CRM."},"ScreenshotResponse":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"ScreenshotResponse"},"ScriptEvent":{"properties":{"t":{"type":"number","minimum":0.0,"title":"T"},"dur":{"type":"number","exclusiveMinimum":0.0,"title":"Dur"},"who":{"type":"string","enum":["ivr","caller","agent","ai","sys"],"title":"Who"},"kind":{"type":"string","enum":["connect","prompt","menu","info","dtmf","error","repeat","deflect","hold","agent","ai","you","verified","end"],"title":"Kind"},"text":{"type":"string","title":"Text"},"keys":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Keys"},"ident":{"anyOf":[{"type":"integer","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Ident"},"sent":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Sent"},"flag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flag"},"intents":{"anyOf":[{"items":{"prefixItems":[{"type":"string"},{"type":"number","maximum":1.0,"minimum":0.0}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Intents"},"ents":{"anyOf":[{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"type":"array","maxItems":2,"minItems":2},"type":"array"},{"type":"null"}],"title":"Ents"},"acts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Acts"},"latency":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Latency"},"results":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Results"}},"additionalProperties":false,"type":"object","required":["t","dur","who","kind","text"],"title":"ScriptEvent","description":"One rehearsal-script event: the ConsoleEvent fields a script may carry."},"SearchMatch":{"properties":{"score":{"type":"number","title":"Score"},"record":{"additionalProperties":true,"type":"object","title":"Record"}},"type":"object","required":["score","record"],"title":"SearchMatch"},"SearchRequest":{"properties":{"query":{"type":"string","maxLength":2000,"minLength":1,"title":"Query","description":"What to look for, in natural language."},"mode":{"type":"string","enum":["hybrid","semantic","keyword"],"title":"Mode","description":"hybrid ranks by meaning and by words together; semantic by meaning only; keyword by words only.","default":"hybrid"},"filters":{"items":{"$ref":"#/components/schemas/QueryFilter"},"type":"array","title":"Filters"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":5}},"type":"object","required":["query"],"title":"SearchRequest","description":"Find rows by meaning, by words, or both.\n\nFilters use the same vocabulary as a query and narrow both arms before\nanything is ranked."},"SearchResponse":{"properties":{"count":{"type":"integer","title":"Count"},"mode_used":{"type":"string","enum":["hybrid","semantic","keyword"],"title":"Mode Used"},"matches":{"items":{"$ref":"#/components/schemas/SearchMatch"},"type":"array","title":"Matches"}},"type":"object","required":["count","mode_used","matches"],"title":"SearchResponse"},"SeedProfilesIn":{"properties":{"n":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"N","default":10},"seed":{"anyOf":[{"type":"integer","maximum":2147483647.0,"minimum":0.0},{"type":"null"}],"title":"Seed"},"formats":{"$ref":"#/components/schemas/ProfileFormats"},"start":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Start","default":0}},"type":"object","title":"SeedProfilesIn"},"SentimentInfo":{"properties":{"label":{"type":"string","title":"Label","description":"Human-readable sentiment description"},"level":{"$ref":"#/components/schemas/SentimentLevel","description":"Sentiment severity level"}},"type":"object","required":["label","level"],"title":"SentimentInfo"},"SentimentLevel":{"type":"string","enum":["calm","slightly_frustrated","frustrated","angry","escalated"],"title":"SentimentLevel"},"SetDisabledRequest":{"properties":{"disabled":{"type":"boolean","title":"Disabled"}},"type":"object","required":["disabled"],"title":"SetDisabledRequest"},"ShareResponse":{"properties":{"url":{"type":"string","title":"Url"},"is_public":{"type":"boolean","title":"Is Public"}},"type":"object","required":["url","is_public"],"title":"ShareResponse","description":"The shareable link for a document, minted for an already-authorised caller."},"SileroDefaultModel":{"properties":{"name":{"type":"string","const":"default","title":"Name","default":"default"}},"type":"object","title":"default","description":"Silero default VAD model configuration."},"SileroProvider":{"properties":{"provider":{"type":"string","const":"silero","title":"Provider","default":"silero"},"model":{"oneOf":[{"$ref":"#/components/schemas/SileroDefaultModel"}],"title":"Model","discriminator":{"propertyName":"name","mapping":{"default":"#/components/schemas/SileroDefaultModel"}}}},"type":"object","required":["model"],"title":"SileroProvider","description":"Silero VAD provider."},"SimpleAgentVersionResponse":{"properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"published":{"type":"boolean","title":"Published"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","version","published"],"title":"SimpleAgentVersionResponse"},"SimplePhoneNumberResponse":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"agent_version_id":{"type":"string","title":"Agent Version Id"},"version":{"type":"integer","title":"Version"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},"type":"object","required":["phone_number","agent_version_id","version"],"title":"SimplePhoneNumberResponse"},"SimpleWebWidgetResponse":{"properties":{"id":{"type":"string","title":"Id"},"agent_version_id":{"type":"string","title":"Agent Version Id"},"published":{"type":"boolean","title":"Published"}},"type":"object","required":["id","agent_version_id","published"],"title":"SimpleWebWidgetResponse"},"SimpleWorkflowVersionResponse":{"properties":{"id":{"type":"string","title":"Id"},"version":{"type":"integer","title":"Version"},"is_published":{"type":"boolean","title":"Is Published"},"is_live":{"type":"boolean","title":"Is Live"}},"type":"object","required":["id","version","is_published","is_live"],"title":"SimpleWorkflowVersionResponse"},"SimplifiedWorkflowVersionSchema":{"properties":{"version":{"type":"integer","title":"Version"},"is_published":{"type":"boolean","title":"Is Published"},"is_live":{"type":"boolean","title":"Is Live"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["version","is_published","is_live","created_at","updated_at"],"title":"SimplifiedWorkflowVersionSchema"},"SlowRun":{"properties":{"ms":{"type":"number","title":"Ms"},"started_at":{"type":"string","title":"Started At"},"path":{"items":{"prefixItems":[{"type":"string"},{"type":"integer"}],"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Path"}},"type":"object","required":["ms","started_at"],"title":"SlowRun","description":"One of a step's slowest runs, and which pass of which loop it was in."},"SmsLane":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"label":{"type":"string","title":"Label","default":"SMS · same number"}},"additionalProperties":false,"type":"object","title":"SmsLane"},"SmsProperties":{"properties":{"channel":{"type":"string","const":"sms","title":"Channel","default":"sms"},"enabled":{"type":"boolean","title":"Enabled","default":true},"body_template":{"type":"string","title":"Body Template","default":"{{agent_response}}"},"max_segments":{"type":"integer","minimum":1.0,"title":"Max Segments","default":3},"on_overflow":{"type":"string","enum":["truncate","split"],"title":"On Overflow","default":"truncate"},"strip_markdown":{"type":"boolean","title":"Strip Markdown","default":true},"allow_unicode":{"type":"boolean","title":"Allow Unicode","default":true},"append_opt_out_footer":{"type":"boolean","title":"Append Opt-out Footer","default":false}},"type":"object","title":"SmsProperties","description":"Group 2 — SMS-exclusive transport/presentation properties."},"SourceCount":{"properties":{"visitors":{"type":"integer","title":"Visitors","default":0},"items":{"type":"integer","title":"Items","default":0}},"type":"object","title":"SourceCount"},"SourceCreateRequestSchema":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"type":{"$ref":"#/components/schemas/SourceType"},"chunking_strategy":{"$ref":"#/components/schemas/ChunkingStrategy"},"file_processor":{"$ref":"#/components/schemas/FileProcessor","default":"pymupdf"},"url_crawl_options":{"anyOf":[{"$ref":"#/components/schemas/CrawlOptions"},{"type":"null"}]},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"}},"type":"object","required":["name","type","chunking_strategy"],"title":"SourceCreateRequestSchema"},"SourceCreateResponseSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"type":{"$ref":"#/components/schemas/SourceType"},"name":{"type":"string","title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"file_upload_status":{"$ref":"#/components/schemas/UploadStatus"},"chunking_strategy":{"$ref":"#/components/schemas/ChunkingStrategy"},"file_processor":{"$ref":"#/components/schemas/FileProcessor","default":"pymupdf"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"presigned_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Presigned Url"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"}},"type":"object","required":["id","organization_id","created_at","updated_at","type","name","file_upload_status","chunking_strategy"],"title":"SourceCreateResponseSchema"},"SourcePatternSearchResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SourceSchema"},"type":"array","title":"Data"},"count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Count"}},"type":"object","required":["data"],"title":"SourcePatternSearchResponse"},"SourceSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"type":{"$ref":"#/components/schemas/SourceType"},"name":{"type":"string","title":"Name"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"},"file_upload_status":{"$ref":"#/components/schemas/UploadStatus"},"chunking_strategy":{"$ref":"#/components/schemas/ChunkingStrategy"},"file_processor":{"$ref":"#/components/schemas/FileProcessor","default":"pymupdf"},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["id","organization_id","created_at","updated_at","type","name","file_upload_status","chunking_strategy"],"title":"SourceSchema"},"SourceType":{"type":"string","enum":["FILE","URL"],"title":"SourceType"},"SourceUpdateSchema":{"properties":{"file_upload_status":{"anyOf":[{"$ref":"#/components/schemas/UploadStatus"},{"type":"null"}]},"chunking_strategy":{"anyOf":[{"$ref":"#/components/schemas/ChunkingStrategy"},{"type":"null"}]},"file_processor":{"anyOf":[{"$ref":"#/components/schemas/FileProcessor"},{"type":"null"}]},"file_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"SourceUpdateSchema"},"StartingActionGrid":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Optional heading (defaults to 'How can I help?')."},"items":{"items":{"$ref":"#/components/schemas/StartingActionGridItem"},"type":"array","title":"Items"}},"type":"object","title":"StartingActionGrid","description":"Optional action grid shown alongside the starting message (chat UI).\n\nRendered on WebRTC sessions as a grid of quick-action buttons. Each item's\n``label`` is sent back verbatim as the action value when the user taps it."},"StartingActionGridItem":{"properties":{"label":{"type":"string","title":"Label"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"Icon key for the button. One of: suitcase, ruler, truck, credit, headset, star, reload. Falls back to a default icon if omitted or unknown."}},"type":"object","required":["label"],"title":"StartingActionGridItem","description":"A single quick-action button in a starting-message action grid."},"StaticPromptAgent":{"properties":{"type":{"type":"string","const":"static_prompt","title":"Type","default":"static_prompt"},"instructions":{"type":"string","title":"Instructions","default":""},"starting_message":{"oneOf":[{"$ref":"#/components/schemas/UserInitiatesMessage"},{"$ref":"#/components/schemas/BotInitiatesStaticMessage"},{"$ref":"#/components/schemas/BotInitiatesDynamicMessage"}],"title":"Welcome Message","discriminator":{"propertyName":"type","mapping":{"bot_initiates_dynamic":"#/components/schemas/BotInitiatesDynamicMessage","bot_initiates_static":"#/components/schemas/BotInitiatesStaticMessage","user_initiates":"#/components/schemas/UserInitiatesMessage"}}},"tools":{"items":{"$ref":"#/components/schemas/ToolCall"},"type":"array","title":"Tools"},"built_in_tools":{"anyOf":[{"$ref":"#/components/schemas/BuiltInTools"},{"type":"null"}],"title":"Built-in Tools"},"language":{"anyOf":[{"$ref":"#/components/schemas/AgentLanguage"},{"type":"null"}],"title":"Language"},"stack":{"oneOf":[{"$ref":"#/components/schemas/SttLlmTtsStack"},{"$ref":"#/components/schemas/RealtimeStack"}],"title":"Stack","discriminator":{"propertyName":"type","mapping":{"realtime":"#/components/schemas/RealtimeStack","stt_llm_tts":"#/components/schemas/SttLlmTtsStack"}}},"allow_interruptions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Interruptions","default":true},"video_input":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Video Input","default":false},"screen_share_input":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Screen Share Input","default":false},"max_tool_steps":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tool Steps","description":"Maximum number of tool invocations per conversation turn. Defaults to 3 if not specified."},"channel_overrides":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/ChannelOverride"},"propertyNames":{"$ref":"#/components/schemas/ChannelKey"},"type":"object"},{"type":"null"}],"title":"Channel Overrides","description":"Group 1 — per-channel LLM steering (append/replace instructions, greeting, tool budget)."},"channel_properties":{"anyOf":[{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/SmsProperties"},{"$ref":"#/components/schemas/EmailProperties"},{"$ref":"#/components/schemas/TextProperties"},{"$ref":"#/components/schemas/WebchatProperties"}],"discriminator":{"propertyName":"channel","mapping":{"email":"#/components/schemas/EmailProperties","sms":"#/components/schemas/SmsProperties","text":"#/components/schemas/TextProperties","webchat":"#/components/schemas/WebchatProperties"}}},"propertyNames":{"$ref":"#/components/schemas/ChannelKey"},"type":"object"},{"type":"null"}],"title":"Channel Properties","description":"Group 2 — per-channel transport/presentation (body template, segments, subject, signature, enabled)."}},"type":"object","required":["starting_message","tools","stack"],"title":"StaticPromptAgent","description":"Static prompt configuration."},"StatusBreakdown":{"properties":{"completed_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Completed Percent"},"transferred_percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Transferred Percent"}},"type":"object","title":"StatusBreakdown"},"StatusCount":{"properties":{"status":{"type":"string","title":"Status"},"count":{"type":"integer","title":"Count"},"percent":{"type":"number","title":"Percent"}},"type":"object","required":["status","count","percent"],"title":"StatusCount","description":"One status bucket. Unlike StatusBreakdown these are exhaustive, so the\ncounts sum to total_conversations and a donut can reach 100%."},"StepTiming":{"properties":{"started_at":{"type":"string","title":"Started At"},"finished_at":{"type":"string","title":"Finished At"},"duration_ms":{"type":"number","title":"Duration Ms"},"max_ms":{"type":"number","title":"Max Ms"},"runs":{"type":"integer","title":"Runs","default":1},"failures":{"type":"integer","title":"Failures","default":0},"paused_ms":{"type":"number","title":"Paused Ms","default":0},"status":{"type":"string","title":"Status"},"slowest_runs":{"items":{"$ref":"#/components/schemas/SlowRun"},"type":"array","title":"Slowest Runs"}},"type":"object","required":["started_at","finished_at","duration_ms","max_ms","status"],"title":"StepTiming","description":"How long one step took in a run, folded over every time it ran.\n\nOne entry per step id rather than one per run: a loop body runs up to\n10,000 times, and a span per run would put that many rows in the persisted\nstate. `finished_at - started_at` is the step's wall-clock span. What the\nfolding loses — which pass was slow — `slowest_runs` keeps, for a few runs."},"StopAudioAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"stop_audio","title":"Type","default":"stop_audio"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Stop Audio"},"StreamTicketResponse":{"properties":{"ticket":{"type":"string","title":"Ticket"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["ticket","expires_at"],"title":"StreamTicketResponse"},"Stt":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/DeepgramProvider"},{"$ref":"#/components/schemas/LiveKitInferenceSttProvider"},{"$ref":"#/components/schemas/GladiaProvider"},{"$ref":"#/components/schemas/AnyReachSttProvider"}],"discriminator":{"propertyName":"provider","mapping":{"anyreach":"#/components/schemas/AnyReachSttProvider","deepgram":"#/components/schemas/DeepgramProvider","gladia":"#/components/schemas/GladiaProvider","livekit":"#/components/schemas/LiveKitInferenceSttProvider"}}},"type":"array","minItems":1,"title":"Speech-to-Text Models"},"on_failure":{"anyOf":[{"$ref":"#/components/schemas/SttOnFailure"},{"type":"null"}],"title":"On Failure"}},"type":"object","required":["models"],"title":"Stt","description":"STT configuration."},"SttLlmTtsStack":{"properties":{"type":{"type":"string","const":"stt_llm_tts","title":"STT-LLM-TTS Pipeline","default":"stt_llm_tts"},"turn_detection":{"$ref":"#/components/schemas/TurnDetection","title":"Turn Detection"},"stt":{"$ref":"#/components/schemas/Stt","title":"Speech-to-Text"},"llm":{"$ref":"#/components/schemas/Llm","title":"Large Language Model"},"tts":{"$ref":"#/components/schemas/Tts","title":"Text-to-Speech"},"vad":{"anyOf":[{"$ref":"#/components/schemas/Vad"},{"type":"null"}],"title":"Voice Activity Detection"},"vision_llm":{"anyOf":[{"$ref":"#/components/schemas/VisionLlm"},{"type":"null"}],"title":"Vision LLM"},"interruption":{"anyOf":[{"$ref":"#/components/schemas/InterruptionConfig"},{"type":"null"}],"title":"Interruption Config"},"endpointing":{"anyOf":[{"$ref":"#/components/schemas/EndpointingConfig"},{"type":"null"}],"title":"Endpointing Config"},"text_normalization":{"anyOf":[{"$ref":"#/components/schemas/TextNormalizationConfig"},{"type":"null"}],"title":"Text Normalization"}},"type":"object","required":["turn_detection","stt","llm","tts"],"title":"SttLlmTtsStack","description":"STT-LLM-TTS stack configuration."},"SttOnFailure":{"properties":{"attempt_timeout":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Attempt Timeout"},"max_retry_per_stt":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Retry Per STT"},"retry_interval":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Retry Interval"}},"type":"object","title":"SttOnFailure","description":"Configuration for model failure handling."},"SuggestActionGridRequest":{"properties":{"instructions":{"type":"string","maxLength":200000,"title":"Instructions","description":"The agent's instructions to base the quick actions on.","default":""}},"type":"object","title":"SuggestActionGridRequest","description":"Request schema for auto-suggesting a starting-message action grid.\n\nThe response is a ``StartingActionGrid`` proposed by an LLM from the\nagent's instructions."},"SuggestAtomRequest":{"properties":{"criterion_key":{"type":"string","title":"Criterion Key"},"na_rule":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Na Rule"}},"type":"object","required":["criterion_key"],"title":"SuggestAtomRequest","description":"Schema for POST /metrics/{id}/suggest-precondition-atom (AI extract-to-atom).\n\nClassifies a criterion's free-text na_rule and proposes a deterministic\npredicate or an observable atom to replace it."},"SuggestGoalsIn":{"properties":{"target_id":{"type":"string","format":"uuid","title":"Target Id"},"n":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"N","default":8}},"type":"object","required":["target_id"],"title":"SuggestGoalsIn"},"SuggestedStep":{"properties":{"action":{"type":"string","title":"Action","description":"Suggested action to take"},"confidence":{"type":"string","title":"Confidence","description":"Confidence level: high, medium, or low"}},"type":"object","required":["action","confidence"],"title":"SuggestedStep"},"Summary":{"properties":{"visitors":{"type":"integer","title":"Visitors","default":0},"sessions":{"type":"integer","title":"Sessions","default":0},"page_views":{"type":"integer","title":"Page Views","default":0},"opened_visitors":{"type":"integer","title":"Opened Visitors","default":0},"opened_sessions":{"type":"integer","title":"Opened Sessions","default":0},"chosen_visitors":{"type":"integer","title":"Chosen Visitors","default":0},"chosen_sessions":{"type":"integer","title":"Chosen Sessions","default":0},"chatted_visitors":{"type":"integer","title":"Chatted Visitors","default":0},"chatted_sessions":{"type":"integer","title":"Chatted Sessions","default":0},"opened_not_chatted_visitors":{"type":"integer","title":"Opened Not Chatted Visitors","default":0},"saw_proactive_visitors":{"type":"integer","title":"Saw Proactive Visitors","default":0},"clicked_proactive_visitors":{"type":"integer","title":"Clicked Proactive Visitors","default":0},"dismissed_proactive_visitors":{"type":"integer","title":"Dismissed Proactive Visitors","default":0},"clicked_link_visitors":{"type":"integer","title":"Clicked Link Visitors","default":0},"added_to_cart_visitors":{"type":"integer","title":"Added To Cart Visitors","default":0},"load_time_p50":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Load Time P50"},"load_time_p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Load Time P90"}},"type":"object","title":"Summary"},"SuppressionIn":{"properties":{"channel":{"type":"string","enum":["telephone","email"],"title":"Channel"},"address":{"type":"string","title":"Address"},"reason":{"type":"string","enum":["manual","do_not_test"],"title":"Reason","default":"manual"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["channel","address"],"title":"SuppressionIn","description":"A hand-added unsubscribes row. Phone numbers are stored as E.164."},"SwarmConfig":{"properties":{"v":{"type":"integer","const":1,"title":"V","default":1},"goals":{"items":{"$ref":"#/components/schemas/Goal"},"type":"array","maxItems":20,"title":"Goals"},"profiles":{"items":{"$ref":"#/components/schemas/Profile"},"type":"array","maxItems":200,"title":"Profiles"},"profile_formats":{"$ref":"#/components/schemas/ProfileFormats"},"seed":{"type":"integer","maximum":2147483647.0,"minimum":0.0,"title":"Seed","default":424242},"defaults":{"$ref":"#/components/schemas/RunDefaults"},"on_live_agent":{"type":"string","enum":["hang_up","stay"],"title":"On Live Agent","default":"hang_up"},"max_hold_wait_s":{"type":"integer","maximum":1800.0,"minimum":30.0,"title":"Max Hold Wait S","default":300},"persona_voices":{"additionalProperties":{"type":"string"},"type":"object","title":"Persona Voices"}},"additionalProperties":false,"type":"object","title":"SwarmConfig"},"SwarmConfigIn":{"properties":{"target_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Target Id"},"config":{"$ref":"#/components/schemas/SwarmConfig"}},"type":"object","required":["config"],"title":"SwarmConfigIn"},"SwarmConfigOut":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"target_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Id"},"target":{"anyOf":[{"$ref":"#/components/schemas/Target"},{"type":"null"}]},"config":{"$ref":"#/components/schemas/SwarmConfig"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"is_default":{"type":"boolean","title":"Is Default"},"max_concurrency":{"type":"integer","title":"Max Concurrency","default":10}},"type":"object","required":["agent_id","config","is_default"],"title":"SwarmConfigOut"},"Target":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"number":{"type":"string","title":"Number"},"caller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id"},"max_duration_s":{"type":"integer","title":"Max Duration S"},"load_test_authorized":{"type":"boolean","title":"Load Test Authorized","default":false},"load_test_authorized_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Load Test Authorized By"},"load_test_authorized_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Load Test Authorized At"},"load_test_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Load Test Note"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"},"do_not_test":{"type":"boolean","title":"Do Not Test","default":false},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","label","number","max_duration_s"],"title":"Target"},"TargetIn":{"properties":{"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label"},"number":{"type":"string","title":"Number"},"caller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id"},"max_duration_s":{"type":"integer","maximum":3600.0,"minimum":60.0,"title":"Max Duration S","default":900}},"type":"object","required":["label","number"],"title":"TargetIn","description":"A phone line to dial. ``number`` must be E.164 inside the dial-out\nallow-list; ``caller_id`` is an organization number (E.164) to dial from."},"TelephonyIntegrationPhoneNumberSchema":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"country_code":{"type":"string","title":"Country Code"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"sms_enabled":{"type":"boolean","title":"Sms Enabled"},"mms_enabled":{"type":"boolean","title":"Mms Enabled"},"voice_enabled":{"type":"boolean","title":"Voice Enabled"},"postal_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"address_requirements":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address Requirements"}},"type":"object","required":["phone_number","country_code","sms_enabled","mms_enabled","voice_enabled"],"title":"TelephonyIntegrationPhoneNumberSchema"},"TelephonyIntegrationPhoneNumberSearchType":{"type":"string","enum":["local","mobile","toll_free"],"title":"TelephonyIntegrationPhoneNumberSearchType","description":"Schema for phone number search type."},"TelephonyProviderType":{"type":"string","enum":["twilio"],"title":"TelephonyProviderType","description":"Managed account types."},"TestActionRequest":{"properties":{"operation_input":{"additionalProperties":true,"type":"object","title":"Operation Input"}},"type":"object","required":["operation_input"],"title":"TestActionRequest"},"TestActionResponse":{"properties":{"ok":{"type":"boolean","title":"Ok"},"data":{"title":"Data"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["ok"],"title":"TestActionResponse"},"TextMessageRequest":{"properties":{"text":{"type":"string","title":"Text","description":"The user's message text"},"interactivity":{"type":"string","enum":["plain","rich"],"title":"Interactivity","description":"'rich' also returns widgets the agent emitted; 'plain' is text only","default":"plain"}},"type":"object","required":["text"],"title":"TextMessageRequest","description":"Body for POST /conversations/{id}/messages (TEXT channel only)."},"TextNormalizationConfig":{"properties":{"enabled":{"type":"boolean","title":"Enable Text Normalization for TTS","default":false},"price_verbosity":{"$ref":"#/components/schemas/PriceVerbosity","title":"Price Pronunciation Verbosity","default":"formal"},"shorthand_cents_extra":{"items":{"type":"integer"},"type":"array","title":"Additional Shorthand Cents Endings","description":"Extra cents values (0-99) that should use retail-style shorthand pronunciation under 'conversational' verbosity, in addition to the default set {49, 50, 95, 99}. Ignored under 'formal'."},"digit_group_separator":{"$ref":"#/components/schemas/DigitGroupSeparator","title":"Digit Group Separator","description":"Punctuation inserted every 3 characters of a spelled-out code of 5 or more, so TTS pauses between groups instead of reading it as one blur: '68456481' is spoken 'six eight four, five six four, eight one', and 'ABC456789' groups its letters in too, as 'A B C, four five six, seven eight nine'. 'comma' is the shortest pause and never splits the TTS stream; 'ellipsis' pauses longer; 'period' pauses longest but makes the TTS sentence tokenizer synthesize each group as its own request. 'none' disables grouping.","default":"comma"}},"type":"object","title":"TextNormalizationConfig","description":"Text normalization applied to LLM output before TTS."},"TextProperties":{"properties":{"channel":{"type":"string","const":"text","title":"Channel","default":"text"},"body_template":{"type":"string","title":"Body Template","default":"{{agent_response}}"}},"type":"object","title":"TextProperties","description":"Group 2 — first-party API TEXT channel (no transport mechanics).\n\nNote: there is intentionally no ``enabled`` flag. The Text API is a\nsynchronous responder (see ``services/text_channel.py``) that always returns\nthe reply; it never consults an enabled gate, so the field would be dead\nconfig. The Text channel is always on."},"TimeToolConfig":{"properties":{"default_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Timezone","description":"Default IANA timezone name (e.g., 'America/New_York'). Falls back to UTC if not provided."}},"type":"object","title":"TimeToolConfig","description":"Configuration for the get_current_time built-in tool."},"TimeWindow":{"properties":{"days":{"items":{"type":"string"},"type":"array","title":"Days","description":"Days of week: mon, tue, wed, thu, fri, sat, sun"},"start":{"type":"string","title":"Start","description":"Start time HH:MM"},"end":{"type":"string","title":"End","description":"End time HH:MM"}},"type":"object","required":["days","start","end"],"title":"TimeWindow"},"ToolCall":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"properties":{"additionalProperties":true,"type":"object","title":"Properties"},"required":{"items":{"type":"string"},"type":"array","title":"Required"},"actions":{"items":{"oneOf":[{"$ref":"#/components/schemas/PlayMessageAction"},{"$ref":"#/components/schemas/ColdTransferAction"},{"$ref":"#/components/schemas/ConferenceAction"},{"$ref":"#/components/schemas/LeaveRoomAction"},{"$ref":"#/components/schemas/WaitAction"},{"$ref":"#/components/schemas/HangupAction"},{"$ref":"#/components/schemas/WorkflowAction"},{"$ref":"#/components/schemas/KnowledgeBaseAction"},{"$ref":"#/components/schemas/CustomDataAction"},{"$ref":"#/components/schemas/PlayAudioAction"},{"$ref":"#/components/schemas/StopAudioAction"},{"$ref":"#/components/schemas/WarmTransferAction"},{"$ref":"#/components/schemas/DtmfAction"},{"$ref":"#/components/schemas/UpdateEndpointingAction"},{"$ref":"#/components/schemas/HandoffAction"}],"title":"Action","discriminator":{"propertyName":"type","mapping":{"cold_transfer":"#/components/schemas/ColdTransferAction","conference":"#/components/schemas/ConferenceAction","custom_data":"#/components/schemas/CustomDataAction","dtmf":"#/components/schemas/DtmfAction","handoff":"#/components/schemas/HandoffAction","hangup":"#/components/schemas/HangupAction","knowledge_base":"#/components/schemas/KnowledgeBaseAction","leave_room":"#/components/schemas/LeaveRoomAction","play_audio":"#/components/schemas/PlayAudioAction","play_message":"#/components/schemas/PlayMessageAction","stop_audio":"#/components/schemas/StopAudioAction","update_endpointing":"#/components/schemas/UpdateEndpointingAction","wait":"#/components/schemas/WaitAction","warm_transfer":"#/components/schemas/WarmTransferAction","workflow":"#/components/schemas/WorkflowAction"}}},"type":"array","title":"Actions"},"actions_on_error":{"items":{"oneOf":[{"$ref":"#/components/schemas/PlayMessageAction"},{"$ref":"#/components/schemas/ColdTransferAction"},{"$ref":"#/components/schemas/ConferenceAction"},{"$ref":"#/components/schemas/LeaveRoomAction"},{"$ref":"#/components/schemas/WaitAction"},{"$ref":"#/components/schemas/HangupAction"},{"$ref":"#/components/schemas/WorkflowAction"},{"$ref":"#/components/schemas/KnowledgeBaseAction"},{"$ref":"#/components/schemas/CustomDataAction"},{"$ref":"#/components/schemas/PlayAudioAction"},{"$ref":"#/components/schemas/StopAudioAction"},{"$ref":"#/components/schemas/WarmTransferAction"},{"$ref":"#/components/schemas/DtmfAction"},{"$ref":"#/components/schemas/UpdateEndpointingAction"},{"$ref":"#/components/schemas/HandoffAction"}],"title":"Action","discriminator":{"propertyName":"type","mapping":{"cold_transfer":"#/components/schemas/ColdTransferAction","conference":"#/components/schemas/ConferenceAction","custom_data":"#/components/schemas/CustomDataAction","dtmf":"#/components/schemas/DtmfAction","handoff":"#/components/schemas/HandoffAction","hangup":"#/components/schemas/HangupAction","knowledge_base":"#/components/schemas/KnowledgeBaseAction","leave_room":"#/components/schemas/LeaveRoomAction","play_audio":"#/components/schemas/PlayAudioAction","play_message":"#/components/schemas/PlayMessageAction","stop_audio":"#/components/schemas/StopAudioAction","update_endpointing":"#/components/schemas/UpdateEndpointingAction","wait":"#/components/schemas/WaitAction","warm_transfer":"#/components/schemas/WarmTransferAction","workflow":"#/components/schemas/WorkflowAction"}}},"type":"array","title":"Actions on Error"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output"},"skip_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skip Reply","description":"Jinja expression evaluated after the tool finishes, whether its actions succeeded, failed or the identity gate refused it. True means the model writes no reply to this call. Reads arguments, data, steps, error (the failure's message or None) and refused (the refusal text or None). When the model calls several tools at once, the reply is skipped only if every one of them skips it"},"requires_verified_identity":{"anyOf":[{"$ref":"#/components/schemas/RequiresVerifiedIdentity"},{"type":"null"}],"title":"Requires Verified Identity"}},"type":"object","required":["name","description","actions"],"title":"ToolCall","description":"Call-specific actions configuration."},"ToolSchemaResponse":{"properties":{"table":{"type":"string","title":"Table"},"key_property":{"type":"string","title":"Key Property"},"references":{"additionalProperties":{"type":"string"},"type":"object","title":"References"},"tools":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tools"}},"type":"object","required":["table","key_property"],"title":"ToolSchemaResponse"},"TopicAssignment":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger"},"assigned_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assigned At"},"applied_to_helpdesk":{"type":"boolean","title":"Applied To Helpdesk","default":false}},"type":"object","required":["id"],"title":"TopicAssignment","description":"One helpdesk topic applied to the conversation."},"TranscriptEntry":{"properties":{"role":{"type":"string","title":"Role","description":"Speaker role: user or assistant"},"content":{"type":"string","title":"Content","description":"Message content"},"markers":{"items":{"$ref":"#/components/schemas/TranscriptMarker"},"type":"array","title":"Markers","description":"Notable markers in this message"}},"type":"object","required":["role","content"],"title":"TranscriptEntry"},"TranscriptMarker":{"properties":{"type":{"type":"string","title":"Type","description":"Marker type"},"description":{"type":"string","title":"Description","description":"Marker description"}},"type":"object","required":["type","description"],"title":"TranscriptMarker"},"TransformStep-Input":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"transform","title":"Type","default":"transform"},"output_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Input"},"type":"object","title":"Output Schema","description":"The schema of the transformed fields"},"output_data":{"additionalProperties":true,"type":"object","title":"Output Data","description":"The field expressions of the transform step"}},"additionalProperties":false,"type":"object","required":["id","output_schema","output_data"],"title":"TransformStep","description":"A pass-through step that builds a named, typed JSON object from JSONata\nexpressions and records it under this step's id so later steps can reference\nit (e.g. ``{{ <stepId>.field }}``).\n\nUnlike ``OutputStep`` it is not terminal: it continues to ``next_step_id``\nand does not set the workflow output. The ``output_schema`` / ``output_data``\nfield names mirror ``OutputStep`` so the two share a single frontend editor."},"TransformStep-Output":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"transform","title":"Type","default":"transform"},"output_schema":{"additionalProperties":{"$ref":"#/components/schemas/DataSchema-Output"},"type":"object","title":"Output Schema","description":"The schema of the transformed fields"},"output_data":{"additionalProperties":true,"type":"object","title":"Output Data","description":"The field expressions of the transform step"}},"additionalProperties":false,"type":"object","required":["id","output_schema","output_data"],"title":"TransformStep","description":"A pass-through step that builds a named, typed JSON object from JSONata\nexpressions and records it under this step's id so later steps can reference\nit (e.g. ``{{ <stepId>.field }}``).\n\nUnlike ``OutputStep`` it is not terminal: it continues to ``next_step_id``\nand does not set the workflow output. The ``output_schema`` / ``output_data``\nfield names mirror ``OutputStep`` so the two share a single frontend editor."},"Transport":{"type":"string","enum":["SIP_TRANSPORT_UDP","SIP_TRANSPORT_TCP","SIP_TRANSPORT_TLS"],"title":"Transport"},"TrendPoint":{"properties":{"date":{"type":"string","title":"Date"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["date","count"],"title":"TrendPoint"},"TriggerEntityResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"icon":{"type":"string","title":"Icon"},"description":{"type":"string","title":"Description"},"service":{"type":"string","title":"Service","default":""},"type":{"type":"string","const":"trigger","title":"Type","default":"trigger"}},"type":"object","required":["key","label","icon","description"],"title":"TriggerEntityResponse"},"TriggerEventSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"status":{"type":"string","enum":["received","executed","error"],"title":"Status"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Version Id"},"workflow_execution_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Execution Id"},"event_data":{"additionalProperties":true,"type":"object","title":"Event Data"},"event_template":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Event Template"},"trigger_id":{"type":"string","format":"uuid","title":"Trigger Id"},"organization_id":{"type":"string","title":"Organization Id"}},"type":"object","required":["id","created_at","status","event_data","trigger_id","organization_id"],"title":"TriggerEventSchema"},"TriggerPropResponse":{"properties":{"name":{"type":"string","title":"Name"},"data_type":{"type":"string","title":"Data Type"},"static":{"type":"boolean","title":"Static"},"prop_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Prop Schema"}},"type":"object","required":["name","data_type","static"],"title":"TriggerPropResponse"},"TriggerResponse":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"description":{"type":"string","title":"Description"},"entity_key":{"type":"string","title":"Entity Key"},"method":{"type":"string","title":"Method","default":""},"type":{"type":"string","const":"trigger","title":"Type","default":"trigger"},"icon":{"type":"string","title":"Icon"},"props":{"items":{"$ref":"#/components/schemas/TriggerPropResponse"},"type":"array","title":"Props"},"event_schema":{"additionalProperties":true,"type":"object","title":"Event Schema","default":{}}},"type":"object","required":["key","label","description","entity_key","icon","props"],"title":"TriggerResponse"},"TriggerStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"trigger","title":"Type","default":"trigger"},"source":{"type":"string","title":"Source","default":"pipedream"},"app_name":{"type":"string","title":"App Name","default":""},"trigger_key":{"type":"string","title":"Trigger Key","default":""},"configured_props":{"additionalProperties":true,"type":"object","title":"Configured Props"},"external_user_id":{"type":"string","title":"External User Id","default":""},"event_schema":{"additionalProperties":true,"type":"object","title":"Event Schema"},"pipedream_dynamic_props_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipedream Dynamic Props Id"}},"additionalProperties":false,"type":"object","required":["id"],"title":"TriggerStep"},"Trunk":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"inbound_config":{"anyOf":[{"$ref":"#/components/schemas/InboundTrunkConfig"},{"type":"null"}]},"outbound_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundTrunkConfig"},{"type":"null"}]},"managed_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Managed Account Id"},"external_id":{"type":"string","title":"External Id"}},"type":"object","required":["id","organization_id","name","created_at","updated_at","external_id"],"title":"Trunk","description":"Trunk entity representing a SIP trunk configuration."},"TrunkCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"inbound_config":{"anyOf":[{"$ref":"#/components/schemas/InboundTrunkConfigSchema"},{"type":"null"}]},"outbound_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundTrunkConfigSchema"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["name"],"title":"TrunkCreateRequest","description":"Schema for API requests to create a new trunk (excludes organization_id)."},"TrunkSipUriResponse":{"properties":{"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri"}},"type":"object","title":"TrunkSipUriResponse"},"TrunkUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"inbound_config":{"anyOf":[{"$ref":"#/components/schemas/InboundTrunkConfigSchema"},{"type":"null"}]},"outbound_config":{"anyOf":[{"$ref":"#/components/schemas/OutboundTrunkConfigSchema"},{"type":"null"}]}},"type":"object","title":"TrunkUpdateSchema","description":"Schema for updating an existing trunk."},"Tts":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/CartesiaProvider"},{"$ref":"#/components/schemas/ElevenLabsProvider"},{"$ref":"#/components/schemas/LiveKitInferenceTtsProvider"}],"discriminator":{"propertyName":"provider","mapping":{"cartesia":"#/components/schemas/CartesiaProvider","elevenlabs":"#/components/schemas/ElevenLabsProvider","livekit":"#/components/schemas/LiveKitInferenceTtsProvider"}}},"type":"array","minItems":1,"title":"Text-to-Speech Models"},"on_failure":{"anyOf":[{"$ref":"#/components/schemas/TtsOnFailure"},{"type":"null"}],"title":"On Failure"},"pronunciations":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Pronunciations"}},"type":"object","required":["models"],"title":"Tts","description":"TTS configuration."},"TtsOnFailure":{"properties":{"attempt_timeout":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Attempt Timeout"},"max_retry_per_tts":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Retry Per TTS"},"retry_interval":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Retry Interval"}},"type":"object","title":"TtsOnFailure","description":"Configuration for model failure handling."},"TurnDetection":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/LivekitTurnDetectionProvider"},{"$ref":"#/components/schemas/AnyreachTurnDetectionProvider"}],"discriminator":{"propertyName":"provider","mapping":{"anyreach":"#/components/schemas/AnyreachTurnDetectionProvider","livekit":"#/components/schemas/LivekitTurnDetectionProvider"}}},"type":"array","minItems":1,"title":"Turn Detection Models"}},"type":"object","required":["models"],"title":"TurnDetection","description":"Turn Detection configuration."},"TwilioAuthDetails":{"properties":{"account_sid":{"type":"string","title":"Account Sid"},"auth_token":{"type":"string","title":"Auth Token"}},"type":"object","required":["account_sid","auth_token"],"title":"TwilioAuthDetails","description":"Twilio auth details."},"UiConfig":{"properties":{"position":{"$ref":"#/components/schemas/UiConfigPosition"},"dimensions":{"$ref":"#/components/schemas/UiConfigDimensions"}},"type":"object","title":"UiConfig"},"UiConfigDimensions":{"properties":{"width":{"type":"number","title":"Width","default":250},"height":{"type":"number","title":"Height","default":44}},"type":"object","title":"UiConfigDimensions"},"UiConfigPosition":{"properties":{"x":{"type":"number","title":"X","default":0},"y":{"type":"number","title":"Y","default":0}},"type":"object","title":"UiConfigPosition"},"UpdateEndpointingAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"update_endpointing","title":"Type","default":"update_endpointing"},"min_endpointing_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Endpointing Delay (seconds)","description":"Minimum endpointing delay"},"max_endpointing_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Endpointing Delay (seconds)","description":"Maximum endpointing delay"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Update Endpointing","description":"Update endpointing configuration."},"UploadStatus":{"type":"string","enum":["PENDING","IN_PROGRESS","COMPLETE","FAILED"],"title":"UploadStatus"},"UpsertRowsRequest":{"properties":{"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"}},"type":"object","required":["rows"],"title":"UpsertRowsRequest"},"UserInitiatesMessage":{"properties":{"type":{"type":"string","const":"user_initiates","title":"User Initiates","default":"user_initiates"},"action_grid":{"anyOf":[{"$ref":"#/components/schemas/StartingActionGrid"},{"type":"null"}],"title":"Action Grid"}},"type":"object","title":"UserInitiatesMessage","description":"User initiates starting message configuration."},"Vad":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/SileroProvider"}],"discriminator":{"propertyName":"provider","mapping":{"silero":"#/components/schemas/SileroProvider"}}},"type":"array","minItems":1,"title":"Voice Activity Detection Models"}},"type":"object","required":["models"],"title":"Vad","description":"VAD configuration."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VariantInput":{"properties":{"key":{"type":"string","title":"Key","description":"Stable key stamped on events and conversations."},"name":{"type":"string","title":"Name","default":""},"weight":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Weight","description":"Percent of visitors."},"overlay":{"additionalProperties":true,"type":"object","title":"Overlay","description":"Patch on the widget config (`v1`), and optionally `agent_version_id`. `null` removes a key."}},"type":"object","required":["key","weight"],"title":"VariantInput"},"VariantOutcome":{"properties":{"conversations":{"type":"integer","title":"Conversations","default":0},"engaged":{"type":"integer","title":"Engaged","default":0},"completed":{"type":"integer","title":"Completed","default":0},"transferred":{"type":"integer","title":"Transferred","default":0},"resolved":{"type":"integer","title":"Resolved","default":0},"engagement_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Engagement Rate"},"containment_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Rate"},"resolution_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Resolution Rate"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"},"avg_user_turns":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg User Turns"},"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name","default":""},"weight":{"type":"integer","title":"Weight","default":0}},"type":"object","required":["key"],"title":"VariantOutcome"},"VercelModel":{"properties":{"name":{"type":"string","title":"Model"},"parameters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Parameters"}},"type":"object","required":["name"],"title":"VercelModel","description":"Vercel AI Gateway model configuration.\n\nThe Gateway is OpenAI-compatible, so ``name`` is any Gateway model slug\n(e.g. ``openai/gpt-4o`` or ``anthropic/claude-sonnet-4``) and\n``parameters`` is a free-form passthrough. Keys matching the\n``openai.LLM`` constructor signature are forwarded as kwargs; anything\nelse is sent in the request body via ``extra_body``."},"VercelProvider":{"properties":{"provider":{"type":"string","const":"vercel","title":"Provider","default":"vercel"},"model":{"$ref":"#/components/schemas/VercelModel"}},"type":"object","required":["model"],"title":"Vercel","description":"Vercel AI Gateway LLM provider."},"VerifierLockout":{"properties":{"max_failures":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Failures","description":"Rejected tool-trigger attempts in one conversation before the verifier locks","default":3}},"type":"object","title":"VerifierLockout","description":"Per-conversation limit on a verifier tool's rejected attempts."},"VerifiesIdentity":{"properties":{"subject_type":{"type":"string","maxLength":64,"minLength":1,"title":"Subject Type"},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Schema","description":"JSON Schema checked against {\"identifiers\": ..., \"attributes\": ...}"},"ttl":{"type":"integer","maximum":604800.0,"minimum":60.0,"title":"TTL (seconds)","description":"How long a verification stays valid; at most 7 days","default":86400},"lockout":{"anyOf":[{"$ref":"#/components/schemas/VerifierLockout"},{"type":"null"}],"title":"Lockout","description":"Explicit null disables the lockout"}},"type":"object","required":["subject_type"],"title":"VerifiesIdentity","description":"Marks a workflow as an identity verifier: the only writer of\n``verified_identities``; its ``custom_metadata`` output is never saved."},"VisibilityRequest":{"properties":{"is_public":{"type":"boolean","title":"Is Public"}},"type":"object","required":["is_public"],"title":"VisibilityRequest","description":"Flip the kill switch on a link that may already be in the wild."},"VisionLlm":{"properties":{"models":{"items":{"oneOf":[{"$ref":"#/components/schemas/AzureOpenAIProvider"},{"$ref":"#/components/schemas/CerebrasProvider"},{"$ref":"#/components/schemas/GoogleProvider"},{"$ref":"#/components/schemas/LiveKitInferenceProvider"},{"$ref":"#/components/schemas/OpenAIProvider"},{"$ref":"#/components/schemas/VercelProvider"}],"title":"Provider","discriminator":{"propertyName":"provider","mapping":{"azure_openai":"#/components/schemas/AzureOpenAIProvider","cerebras":"#/components/schemas/CerebrasProvider","google":"#/components/schemas/GoogleProvider","livekit":"#/components/schemas/LiveKitInferenceProvider","openai":"#/components/schemas/OpenAIProvider","vercel":"#/components/schemas/VercelProvider"}}},"type":"array","minItems":1,"title":"Vision LLMs"},"frame_rate":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.1},{"type":"null"}],"title":"Frame Rate (fps)","default":1.0}},"type":"object","required":["models"],"title":"VisionLlm","description":"Vision LLM for processing video frames."},"VisitorDeleted":{"properties":{"events":{"type":"integer","title":"Events","default":0},"sessions":{"type":"integer","title":"Sessions","default":0}},"type":"object","title":"VisitorDeleted"},"VoicemailDetectionConfig":{"properties":{"beep_detection_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Background Beep Detection Threshold","description":"Confidence threshold (0.0-1.0) for background beep detection. Having above 0.95 yields better result"},"beep_detection_timeout":{"type":"integer","exclusiveMinimum":0.0,"title":"Background Beep Detection Timeout (seconds)","description":"Max seconds to run background beep detection"},"tool_call_overrides":{"anyOf":[{"$ref":"#/components/schemas/VoicemailToolCallOverrides"},{"type":"null"}],"title":"Tool Call Overrides","description":"Optional overrides for LLM tool-based voicemail detection"},"play_message":{"anyOf":[{"$ref":"#/components/schemas/VoicemailPlayMessageAction"},{"type":"null"}],"title":"Voicemail Play Message"}},"type":"object","required":["beep_detection_threshold","beep_detection_timeout"],"title":"VoicemailDetectionConfig","description":"Configuration for voicemail detection and response behavior."},"VoicemailPlayMessageAction":{"properties":{"message":{"type":"string","title":"Message"},"generate":{"type":"boolean","title":"Generate","default":false}},"type":"object","required":["message"],"title":"Voicemail Play Message"},"VoicemailToolCallOverrides":{"properties":{"beep_detection_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Beep Detection Threshold","description":"Confidence threshold (0.0-1.0) for beep after voice prompt","default":0.9},"beep_detection_timeout":{"type":"integer","exclusiveMinimum":0.0,"title":"Beep Detection Timeout (seconds)","description":"Max seconds to wait for beep after voicemail voice prompt","default":10},"name":{"type":"string","title":"Tool Call Name","description":"Tool call function name the LLM can invoke (e.g., 'voicemail_detected')","default":"voicemail_detected"},"description":{"type":"string","title":"Tool Call Description","description":"Description/when to invoke the tool (e.g., when voicemail greeting is detected)","default":"whenever you hear 'you have reached a voicemail'"}},"type":"object","title":"VoicemailToolCallOverrides","description":"Overrides for voicemail tool-call based detection and prompt handling.\nIf not provided, then the default values will be used.\nbeep_detection_threshold: 0.9\nbeep_detection_timeout: 10\nname: voicemail_detected\ndescription: whenever you hear 'you have reached a voicemail'"},"WaitAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"wait","title":"Type","default":"wait"},"seconds":{"type":"number","title":"Seconds","default":1.0},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","title":"Wait"},"WaitStep":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name","default":""},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"ai_config":{"$ref":"#/components/schemas/AiConfig"},"ui_config":{"$ref":"#/components/schemas/UiConfig"},"type":{"type":"string","const":"wait","title":"Type","default":"wait"},"duration_seconds":{"anyOf":[{"type":"integer","maximum":31536000.0,"minimum":1.0},{"type":"string"}],"title":"Duration Seconds"}},"additionalProperties":false,"type":"object","required":["id","duration_seconds"],"title":"WaitStep","description":"Action node that pauses workflow execution via a Temporal durable timer."},"WarmTransferAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"warm_transfer","title":"Type","default":"warm_transfer"},"transfer_number":{"type":"string","title":"Transfer Number"},"queue_timeout":{"type":"integer","title":"QueueTimeout (seconds)","description":"The timeout for the supervisor to join the queue and be connected to the customer","default":30},"hold_music_url":{"type":"string","title":"Hold music file/URL (.wav/.mp3); falls back to tone","default":"https://onhold2go.co.uk/song-demos/chill-out/city-skyline.mp3"},"supervisor_instructions":{"type":"string","title":"What should the AI tell the supervisor?","description":"Instructions for how the AI briefs the supervisor before connecting them to the caller","default":"Brief the supervisor on who the caller is, the context of the conversation, and the handoff goal."},"on_transfer_failed_message":{"type":"string","title":"On Transfer Failed Message","default":"Sorry, I couldn't connect you right now. Can I take a message or try another number?"},"on_successful_transfer_message":{"type":"string","title":"On Successful Transfer Message","default":"Connecting you now. Please stay on the line."},"on_customer_disconnected_message":{"type":"string","title":"On Customer Disconnected Message","default":"The caller has disconnected."},"on_supervisor_declined_message":{"type":"string","title":"If the supervisor can't take the call","description":"Message spoken to the caller when the supervisor declines or is unavailable","default":"They're unavailable right now. Would you like me to take a message or schedule a callback?"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"}},"type":"object","required":["transfer_number"],"title":"Warm Transfer","description":"Warm transfer configuration."},"WebSearchToolConfig":{"properties":{},"type":"object","title":"WebSearchToolConfig","description":"Configuration for the web_search built-in tool."},"WebWidget":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"agent_id":{"type":"string","title":"Agent Id"},"agent_version_id":{"type":"string","title":"Agent Version Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"domains":{"items":{"type":"string"},"type":"array","title":"Domains"},"published":{"type":"boolean","title":"Published"},"collect_analytics":{"type":"boolean","title":"Collect Analytics","default":true},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"},"preset_sections":{"items":{"type":"string"},"type":"array","title":"Preset Sections","default":[]}},"type":"object","required":["id","organization_id","agent_id","agent_version_id","domains","published","config","created_at","updated_at"],"title":"WebWidget","description":"Web widget entity representing a web embed configuration.\n\n`config` is the effective config: the widget's own, with the sections it\nfollows replaced by its preset's. Every read resolves it, so the embed and\nevery other reader see what the widget actually shows."},"WebWidgetAutoBrandRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"WebWidgetAutoBrandRequest"},"WebWidgetCreateRequest":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"agent_version_id":{"type":"string","title":"Agent Version Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"domains":{"items":{"type":"string"},"type":"array","title":"Domains","default":[]},"published":{"type":"boolean","title":"Published","default":false},"collect_analytics":{"type":"boolean","title":"Collect Analytics","default":true},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}},"preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"},"preset_sections":{"items":{"type":"string"},"type":"array","title":"Preset Sections","default":[]}},"type":"object","required":["agent_id","agent_version_id"],"title":"WebWidgetCreateRequest","description":"Schema for API requests to create a new web widget (excludes organization_id)."},"WebWidgetPreset":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","name","config","created_at","updated_at"],"title":"WebWidgetPreset","description":"Shared widget settings, stored in the widget config's v1 shape."},"WebWidgetPresetApplyRequest":{"properties":{"widget_ids":{"items":{"type":"string"},"type":"array","maxItems":100,"minItems":1,"title":"Widget Ids"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections","default":["theme","launcher","placement","experience","feedback"]},"mode":{"type":"string","enum":["follow","copy"],"title":"Mode","default":"follow"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["widget_ids"],"title":"WebWidgetPresetApplyRequest"},"WebWidgetPresetApplyResponse":{"properties":{"applied":{"type":"boolean","title":"Applied"},"widgets":{"items":{"$ref":"#/components/schemas/LinkedWidget"},"type":"array","title":"Widgets"}},"type":"object","required":["applied","widgets"],"title":"WebWidgetPresetApplyResponse"},"WebWidgetPresetAutoBrandRequest":{"properties":{"domain":{"type":"string","title":"Domain"}},"type":"object","required":["domain"],"title":"WebWidgetPresetAutoBrandRequest"},"WebWidgetPresetCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"config":{"additionalProperties":true,"type":"object","title":"Config","default":{}}},"type":"object","required":["name"],"title":"WebWidgetPresetCreateRequest"},"WebWidgetPresetSummary":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"widget_count":{"type":"integer","title":"Widget Count","default":0},"published_widget_count":{"type":"integer","title":"Published Widget Count","default":0}},"type":"object","required":["id","organization_id","name","config","created_at","updated_at"],"title":"WebWidgetPresetSummary"},"WebWidgetPresetUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"expected_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expected Updated At"}},"type":"object","title":"WebWidgetPresetUpdateRequest"},"WebWidgetTranslateRequest":{"properties":{"source_locale":{"type":"string","maxLength":35,"title":"Source Locale"},"target_locale":{"type":"string","maxLength":35,"title":"Target Locale"},"texts":{"additionalProperties":{"type":"string"},"type":"object","title":"Texts"},"glossary":{"items":{"type":"string"},"type":"array","maxItems":50,"title":"Glossary"}},"type":"object","required":["source_locale","target_locale","texts"],"title":"WebWidgetTranslateRequest","description":"Texts a widget's language lacks, keyed by where they live in its config."},"WebWidgetTranslateResponse":{"properties":{"texts":{"additionalProperties":{"type":"string"},"type":"object","title":"Texts"}},"type":"object","required":["texts"],"title":"WebWidgetTranslateResponse"},"WebWidgetUpdateRequest":{"properties":{"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"agent_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Version Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Domains"},"published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"},"collect_analytics":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Collect Analytics"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"},"preset_sections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Preset Sections"}},"type":"object","title":"WebWidgetUpdateRequest","description":"Schema for API requests to update a web widget."},"WebchatProperties":{"properties":{"channel":{"type":"string","const":"webchat","title":"Channel","default":"webchat"},"body_template":{"type":"string","title":"Body Template","default":"{{agent_response}}"}},"type":"object","title":"WebchatProperties","description":"Group 2 — text-only web widget (``webchat``) presentation properties.\n\nLike ``TextProperties`` there is deliberately no ``enabled`` flag: a widget\nthe customer has embedded and published is the enable switch, and a\nconversation the widget already opened cannot be refused a reply."},"WidgetConversationCreateRequest":{"properties":{"user_id":{"type":"string","title":"User Id","description":"User ID (must be +E.164 phone number for telephony)"},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Custom Metadata","description":"Optional custom metadata"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"Existing conversation ID to resume"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Capability token for the conversation. Required to resume an existing conversation (issued once at creation)."},"opened_with_user_message":{"type":"boolean","title":"Opened With User Message","description":"The visitor opened this conversation by sending a message (e.g. clicking a suggested question), so the agent must not open it with a greeting of its own. Makes the conversation user-initiated regardless of the agent's starting_message config. Ignored on resume.","default":false},"identity_pending":{"type":"boolean","title":"Identity Pending","description":"Created without an identity token while the page's sign-in check was still running: the response carries a bind_ticket for it. Ignored on resume.","default":false},"identity_check":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Check","description":"The check_ticket of the page's last failed sign-in check: the new conversation's Verification panel lists that check. Ignored on resume and when the conversation starts signed in."},"anonymous_id":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Anonymous Id","description":"The embed loader's anonymous visitor id. While the widget has a running experiment, the server buckets it to pick the variant (and agent version) the conversation runs under. Ignored on resume."},"starter_rules":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Starter Rules","description":"The names of the widget's conversation-starter rules that cover the page, in any order. The starting message and buttons are taken from those rules in the widget's own config, so only names travel, never text. Ignored on resume."},"page_values":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Page Values","description":"The page values the widget read for its conversation starters (`{{name}}` in their texts), by name. Ignored on resume."},"locale":{"anyOf":[{"type":"string","maxLength":35},{"type":"null"}],"title":"Locale","description":"The visitor's locale as the widget resolved it (a BCP-47 tag). Kept to the widget's supported languages; ignored when the widget has none configured, and on resume."},"locale_source":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Locale Source","description":"What picked the locale: host, url_rule, page_lang, browser or default. Recorded with the conversation."}},"type":"object","required":["user_id"],"title":"WidgetConversationCreateRequest","description":"Schema for API requests to create or resume a conversation via a widget."},"WidgetFeedbackRequest":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Submitted feedback field values keyed by field id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Capability token for the conversation."}},"type":"object","required":["data"],"title":"WidgetFeedbackRequest","description":"Schema for submitting post-conversation feedback collected by a widget."},"WidgetIdentityRequest":{"properties":{"user_context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"User Context","description":"The host page's identify() payload, proof included. Null signs the visitor out."},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"The chat open in the widget: signed in (or out) with the visitor, by the rules the response's conversation field reports."},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token","description":"Capability token for conversation_id."},"bind_ticket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bind Ticket","description":"The bind_ticket the create of conversation_id returned. While valid, a sign-in binds that chat to the account's history."}},"type":"object","title":"WidgetIdentityRequest","description":"Body of ``POST /public/web-widgets/{id}/identity``."},"WidgetIdentityResponse":{"properties":{"identity_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Token"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"identities":{"items":{"$ref":"#/components/schemas/WidgetIdentitySummary"},"type":"array","title":"Identities"},"retryable":{"type":"boolean","title":"Retryable","description":"Without a token: the platform could not answer (a verifier timed out or failed); says nothing about why a proof failed. With a token: the sign-in stands, but conversation_id could not be updated; send it again.","default":false},"conversation":{"anyOf":[{"type":"string","enum":["bound","continued","refused","signed_out"]},{"type":"null"}],"title":"Conversation","description":"What happened to conversation_id: bound (signed in and in the account's history), continued (signed in on this device only), refused (it belongs to someone else: start a new chat), signed_out (its sign-in entries were removed). Null when none was sent, it was left as it was, or it could not be updated (retryable)."},"check_ticket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Check Ticket","description":"Without a token, when no conversation_id was sent: send it as identity_check with the next create, within 30 minutes, so that conversation's Verification panel lists this check."}},"type":"object","title":"WidgetIdentityResponse"},"WidgetIdentitySummary":{"properties":{"subject_type":{"type":"string","title":"Subject Type"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"}},"type":"object","required":["subject_type"],"title":"WidgetIdentitySummary","description":"What the widget may show about one verified identity."},"WidgetType":{"type":"string","enum":["detail","carousel","info","list","action_grid","collect_otp","collect_phone_number","collect_image","order_tracker","shipment_tracker","comparison","link_preview"],"title":"WidgetType","description":"Supported widget types for chat UI."},"WidgetVariantOutcome":{"properties":{"conversations":{"type":"integer","title":"Conversations","default":0},"engaged":{"type":"integer","title":"Engaged","default":0},"completed":{"type":"integer","title":"Completed","default":0},"transferred":{"type":"integer","title":"Transferred","default":0},"resolved":{"type":"integer","title":"Resolved","default":0},"engagement_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Engagement Rate"},"containment_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Containment Rate"},"resolution_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Resolution Rate"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"},"avg_user_turns":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg User Turns"},"widget_id":{"type":"string","title":"Widget Id"},"key":{"type":"string","title":"Key"}},"type":"object","required":["widget_id","key"],"title":"WidgetVariantOutcome"},"WidgetsConfig":{"properties":{"allowed":{"anyOf":[{"items":{"$ref":"#/components/schemas/WidgetType"},"type":"array"},{"type":"null"}],"title":"Allowed Widgets","description":"List of allowed widget types. If None/omitted, ALL widget types are enabled."}},"type":"object","title":"WidgetsConfig","description":"Configuration for widget tools."},"Workflow-Input":{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/AppStep"},{"$ref":"#/components/schemas/ConditionStep"},{"$ref":"#/components/schemas/OutputStep-Input"},{"$ref":"#/components/schemas/TransformStep-Input"},{"$ref":"#/components/schemas/CodeStep-Input"},{"$ref":"#/components/schemas/HttpStep"},{"$ref":"#/components/schemas/NoteStep"},{"$ref":"#/components/schemas/TriggerStep"},{"$ref":"#/components/schemas/WaitStep"},{"$ref":"#/components/schemas/LoopStep"},{"$ref":"#/components/schemas/ParallelStep"},{"$ref":"#/components/schemas/GenericInputStep-Input"},{"$ref":"#/components/schemas/PythonFunctionStep"}],"discriminator":{"propertyName":"type","mapping":{"app":"#/components/schemas/AppStep","code":"#/components/schemas/CodeStep-Input","condition":"#/components/schemas/ConditionStep","http":"#/components/schemas/HttpStep","input":"#/components/schemas/GenericInputStep-Input","loop":"#/components/schemas/LoopStep","note":"#/components/schemas/NoteStep","output":"#/components/schemas/OutputStep-Input","parallel":"#/components/schemas/ParallelStep","python_function":"#/components/schemas/PythonFunctionStep","transform":"#/components/schemas/TransformStep-Input","trigger":"#/components/schemas/TriggerStep","wait":"#/components/schemas/WaitStep"}}},"type":"object","title":"Workflow"},"Workflow-Output":{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/AppStep"},{"$ref":"#/components/schemas/ConditionStep"},{"$ref":"#/components/schemas/OutputStep-Output"},{"$ref":"#/components/schemas/TransformStep-Output"},{"$ref":"#/components/schemas/CodeStep-Output"},{"$ref":"#/components/schemas/HttpStep"},{"$ref":"#/components/schemas/NoteStep"},{"$ref":"#/components/schemas/TriggerStep"},{"$ref":"#/components/schemas/WaitStep"},{"$ref":"#/components/schemas/LoopStep"},{"$ref":"#/components/schemas/ParallelStep"},{"$ref":"#/components/schemas/GenericInputStep-Output"},{"$ref":"#/components/schemas/PythonFunctionStep"}],"discriminator":{"propertyName":"type","mapping":{"app":"#/components/schemas/AppStep","code":"#/components/schemas/CodeStep-Output","condition":"#/components/schemas/ConditionStep","http":"#/components/schemas/HttpStep","input":"#/components/schemas/GenericInputStep-Output","loop":"#/components/schemas/LoopStep","note":"#/components/schemas/NoteStep","output":"#/components/schemas/OutputStep-Output","parallel":"#/components/schemas/ParallelStep","python_function":"#/components/schemas/PythonFunctionStep","transform":"#/components/schemas/TransformStep-Output","trigger":"#/components/schemas/TriggerStep","wait":"#/components/schemas/WaitStep"}}},"type":"object","title":"Workflow"},"WorkflowAction":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"ID","description":"Name of this action's result in steps (steps.<id>). Defaults to its position counted from 1: steps.1, steps.2, … and steps.on_error_1, … in Actions on Error"},"type":{"type":"string","const":"workflow","title":"Type","default":"workflow"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow ID"},"workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Workflow Version"},"initial_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Step"},"definition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inline Workflow Definition","description":"Inline workflow definition (mutually exclusive with workflow_id/workflow_version)"},"condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Condition"},"reject_on_error":{"type":"boolean","title":"Reject On Error","description":"If true, abort the conversation when the workflow fails","default":false},"verifies_identity":{"anyOf":[{"$ref":"#/components/schemas/VerifiesIdentity"},{"type":"null"}],"title":"Verifies Identity"},"input_exclude":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude From Input","description":"Conversation parts left out of the workflow's input: agent_instructions, transcript, tool_outputs, transcript_internals. Unset sends everything"},"include_page_view":{"type":"boolean","title":"Include What The Visitor Sees","description":"Web chat with page context: add what was on the visitor's screen when they sent their latest message (conversation_metadata.page_view), if it was read. Off sends only where each message was sent from.","default":false}},"type":"object","title":"Workflow"},"WorkflowCreateRequestSchema":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","default":""},"is_public":{"type":"boolean","title":"Is Public","default":false}},"type":"object","required":["name"],"title":"WorkflowCreateRequestSchema"},"WorkflowCreateResponseSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"organization_id":{"type":"string","title":"Organization Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","default":""},"is_public":{"type":"boolean","title":"Is Public","default":false},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SimpleWorkflowVersionResponse"},"type":"array"},{"type":"null"}],"title":"Versions"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"total_runs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Runs","default":0},"today_runs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Today Runs","default":0},"daily_run_counts":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Daily Run Counts"},"last_run_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Date"},"step_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step Count"},"has_trigger":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Trigger"},"trigger_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Status"},"labels":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Labels","default":{}},"version":{"$ref":"#/components/schemas/WorkflowVersionSchema"}},"type":"object","required":["id","name","organization_id","created_at","updated_at","version"],"title":"WorkflowCreateResponseSchema"},"WorkflowExecutionAsyncSchema":{"properties":{"execution_id":{"type":"string","title":"Execution Id"}},"type":"object","required":["execution_id"],"title":"WorkflowExecutionAsyncSchema"},"WorkflowExecutionCreateResponseSchema":{"properties":{"status":{"type":"string","enum":["success","failed","in_progress","pending","waiting"],"title":"Status"},"execution_id":{"type":"string","title":"Execution Id"},"context":{"additionalProperties":true,"type":"object","title":"Context"},"output":{"additionalProperties":true,"type":"object","title":"Output"}},"type":"object","required":["status","execution_id","context","output"],"title":"WorkflowExecutionCreateResponseSchema"},"WorkflowExecutionCreateSchema":{"properties":{"initial_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Step"},"input_data":{"additionalProperties":true,"type":"object","title":"Input Data"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Workflow Version"},"definition":{"anyOf":[{"$ref":"#/components/schemas/Workflow-Input"},{"type":"null"}]},"trigger_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Trigger Id"},"source":{"type":"string","enum":["manual","trigger","credential_refresh"],"title":"Source","default":"manual"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"redact_input":{"items":{"type":"string","maxLength":200,"minLength":1},"type":"array","maxItems":50,"title":"Redact Input","description":"Dotted paths of keys into input_data, e.g. user_context.signature, whose values the run uses but does not keep. The response returns the run's results as they are. In the stored run, the input shows «redacted» at each path, and so does every copy of the whole input; a value copied anywhere else is replaced only if it is a string of six or more characters, and so is an equal value from anywhere else. Logs and error reports lose every redacted value. A path that names nothing is skipped; one that runs into a list, a scalar or null hides that value whole. Synchronous runs only."}},"type":"object","required":["initial_step","input_data"],"title":"WorkflowExecutionCreateSchema"},"WorkflowExecutionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"workflow_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Id"},"workflow_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Workflow Version Id"},"status":{"type":"string","enum":["success","failed","in_progress","pending","waiting"],"title":"Status"},"state":{"$ref":"#/components/schemas/WorkflowExecutionState","default":{"input_data":{},"output":{},"context":{},"loop_stack":[],"step_timings":{},"run_timing":{"active_ms":0.0,"engine_ms":0.0,"legs":0,"paused_ms":0.0}}},"definition":{"additionalProperties":true,"type":"object","title":"Definition","default":{}},"trigger_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Trigger Id"},"source":{"type":"string","enum":["manual","trigger","credential_refresh"],"title":"Source","default":"manual"},"credential_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Credential Id"},"credentials_allowed":{"type":"boolean","title":"Credentials Allowed","default":false}},"type":"object","required":["id","created_at","organization_id","workflow_id","workflow_version_id","status"],"title":"WorkflowExecutionSchema"},"WorkflowExecutionState":{"properties":{"initial_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Initial Step"},"input_data":{"additionalProperties":true,"type":"object","title":"Input Data","default":{}},"next_step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step Id"},"output":{"additionalProperties":true,"type":"object","title":"Output","default":{}},"context":{"additionalProperties":true,"type":"object","title":"Context","default":{}},"loop_stack":{"items":{"$ref":"#/components/schemas/LoopFrame"},"type":"array","title":"Loop Stack","default":[]},"step_timings":{"additionalProperties":{"$ref":"#/components/schemas/StepTiming"},"type":"object","title":"Step Timings","default":{}},"run_timing":{"$ref":"#/components/schemas/RunTiming"}},"type":"object","title":"WorkflowExecutionState"},"WorkflowRunDay":{"properties":{"day":{"type":"string","title":"Day"},"total":{"type":"integer","title":"Total"},"failed":{"type":"integer","title":"Failed"}},"type":"object","required":["day","total","failed"],"title":"WorkflowRunDay"},"WorkflowSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"organization_id":{"type":"string","title":"Organization Id"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","default":""},"is_public":{"type":"boolean","title":"Is Public","default":false},"versions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SimpleWorkflowVersionResponse"},"type":"array"},{"type":"null"}],"title":"Versions"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"total_runs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Runs","default":0},"today_runs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Today Runs","default":0},"daily_run_counts":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Daily Run Counts"},"last_run_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Date"},"step_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Step Count"},"has_trigger":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Trigger"},"trigger_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Status"},"labels":{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"type":"object","title":"Labels","default":{}}},"type":"object","required":["id","name","organization_id","created_at","updated_at"],"title":"WorkflowSchema"},"WorkflowTriggerCreateSchema":{"properties":{"trigger_step_id":{"type":"string","title":"Trigger Step Id"},"trigger_key":{"type":"string","title":"Trigger Key"},"configured_props":{"additionalProperties":true,"type":"object","title":"Configured Props","default":{}},"external_user_id":{"type":"string","title":"External User Id"},"pipedream_dynamic_props_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipedream Dynamic Props Id"},"source":{"$ref":"#/components/schemas/IntegrationProviders","default":"pipedream"}},"type":"object","required":["trigger_step_id","trigger_key","external_user_id"],"title":"WorkflowTriggerCreateSchema"},"WorkflowTriggerSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"workflow_id":{"type":"string","format":"uuid","title":"Workflow Id"},"workflow_version_id":{"type":"string","format":"uuid","title":"Workflow Version Id"},"trigger_step_id":{"type":"string","title":"Trigger Step Id"},"trigger_key":{"type":"string","title":"Trigger Key"},"status":{"$ref":"#/components/schemas/WorkflowTriggerStatus"},"source":{"$ref":"#/components/schemas/IntegrationProviders","default":"pipedream"},"pipedream_deploy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipedream Deploy Id"},"temporal_schedule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Temporal Schedule Id"},"has_error":{"type":"boolean","title":"Has Error","default":false},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"event_template":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Event Template"},"test_mode_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Test Mode Expires At"},"last_event_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Event At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"}},"type":"object","required":["id","organization_id","workflow_id","workflow_version_id","trigger_step_id","trigger_key","status","created_at","updated_at"],"title":"WorkflowTriggerSchema"},"WorkflowTriggerStatus":{"type":"string","enum":["inactive","testing","active"],"title":"WorkflowTriggerStatus"},"WorkflowTriggerTestModeResponse":{"properties":{"status":{"type":"string","title":"Status"},"trigger_id":{"type":"string","title":"Trigger Id"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","trigger_id","expires_at","message"],"title":"WorkflowTriggerTestModeResponse"},"WorkflowTriggerUpdateSchema":{"properties":{"trigger_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Key"},"configured_props":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Configured Props"},"external_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External User Id"},"pipedream_dynamic_props_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipedream Dynamic Props Id"},"source":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProviders"},{"type":"null"}]}},"type":"object","title":"WorkflowTriggerUpdateSchema"},"WorkflowUpdateSchema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public"}},"type":"object","title":"WorkflowUpdateSchema"},"WorkflowVersionCreateSchema":{"properties":{"definition":{"anyOf":[{"$ref":"#/components/schemas/Workflow-Input"},{"type":"null"}],"default":{}},"version":{"type":"integer","title":"Version"},"starting_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Step"}},"type":"object","required":["version"],"title":"WorkflowVersionCreateSchema"},"WorkflowVersionPublishSchema":{"properties":{"is_published":{"type":"boolean","title":"Is Published"}},"type":"object","required":["is_published"],"title":"WorkflowVersionPublishSchema"},"WorkflowVersionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"workflow_id":{"type":"string","format":"uuid","title":"Workflow Id"},"version":{"type":"integer","title":"Version"},"organization_id":{"type":"string","title":"Organization Id"},"is_published":{"type":"boolean","title":"Is Published"},"is_live":{"type":"boolean","title":"Is Live"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"modified_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified By"},"definition":{"$ref":"#/components/schemas/Workflow-Output"},"starting_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Step"}},"type":"object","required":["id","workflow_id","version","organization_id","is_published","is_live","created_at","updated_at","definition","starting_step"],"title":"WorkflowVersionSchema"},"WorkflowVersionSetLiveSchema":{"properties":{"is_live":{"type":"boolean","title":"Is Live"}},"type":"object","required":["is_live"],"title":"WorkflowVersionSetLiveSchema"},"WorkflowVersionUpdateSchema":{"properties":{"definition":{"$ref":"#/components/schemas/Workflow-Input"},"starting_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Starting Step"}},"type":"object","required":["definition","starting_step"],"title":"WorkflowVersionUpdateSchema"},"WriteResultSchema":{"properties":{"table":{"type":"string","title":"Table"},"received":{"type":"integer","title":"Received"},"written":{"type":"integer","title":"Written"},"unchanged":{"type":"integer","title":"Unchanged"},"tombstoned":{"type":"integer","title":"Tombstoned"},"live_before":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Live Before"},"live_after":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Live After"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"},"type_mismatches":{"additionalProperties":{"type":"integer"},"type":"object","title":"Type Mismatches"},"undeclared_properties":{"items":{"type":"string"},"type":"array","title":"Undeclared Properties"},"view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View"}},"type":"object","required":["table","received","written","unchanged","tombstoned"],"title":"WriteResultSchema","description":"The writer's report. Warnings are advisory; the apply already happened."},"routes__core___shared__entities__demos__schemas__RunDetail":{"properties":{"run":{"$ref":"#/components/schemas/Run"},"events":{"items":{"$ref":"#/components/schemas/RunEventOut"},"type":"array","title":"Events"},"recordings":{"$ref":"#/components/schemas/RunRecordings"}},"type":"object","required":["run"],"title":"RunDetail"},"routes__core___shared__entities__demos__schemas__RunsPage":{"properties":{"runs":{"items":{"$ref":"#/components/schemas/RunSummary"},"type":"array","title":"Runs"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["runs","total"],"title":"RunsPage"},"routes__core__ivr_swarm__RunDetail":{"properties":{"run":{"additionalProperties":true,"type":"object","title":"Run"},"calls":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Calls"}},"type":"object","required":["run","calls"],"title":"RunDetail"},"routes__core__ivr_swarm__RunsPage":{"properties":{"runs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Runs"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["runs","total"],"title":"RunsPage"},"routes__knowledge_base__models__common__PaginationMeta":{"properties":{"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["limit"],"title":"PaginationMeta"},"routes__workflow__models__common__PaginationMeta":{"properties":{"limit":{"type":"integer","title":"Limit"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset"}},"type":"object","required":["limit"],"title":"PaginationMeta"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}