{"openapi":"3.1.0","info":{"title":"Buddy Public API","description":"\nProgrammatic access to your Buddy workspace. Create a key in **Settings → API keys** (https://buddy.taskgo.ai/app/settings?tab=api)\nand send it as `Authorization: Bearer sk_live_…`.\n\n* Every key carries **scopes**; a request outside them returns `403 insufficient_scope`.\n* Requests are **rate limited per workspace** (all keys combined). Every response carries\n  `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`; a `429` adds `Retry-After`.\n* Errors share one envelope: `{\"error\": {\"code\", \"message\", \"request_id\"}}`.\n* Lists are paginated with `limit` / `offset` and return `{\"data\", \"total\", \"limit\", \"offset\", \"has_more\"}`.\n\nFull guide: https://buddy.taskgo.ai/docs/api\n","version":"1.0.0"},"paths":{"/me":{"get":{"tags":["Account"],"summary":"Inspect the current API key","description":"Which workspace the key belongs to, its scopes and your rate limit. Handy for verifying a key.","operationId":"me_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Me Me Get"}}}}},"security":[{"ApiKey":[]}]}},"/usage":{"get":{"tags":["Account"],"summary":"Plan, limits and usage this billing period","operationId":"usage_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Usage Usage Get"}}}}},"security":[{"ApiKey":[]}]}},"/agents":{"get":{"tags":["Agents"],"summary":"List agents","operationId":"list_agents_agents_get","security":[{"ApiKey":[]}],"parameters":[{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get an agent","operationId":"get_agent_agents__agent_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Agent Agents  Agent Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/messages":{"post":{"tags":["Chat"],"summary":"Ask an agent","description":"Runs the same pipeline as the website widget (retrieval, tools, handoff) and counts toward your message quota.","operationId":"ask_agent_agents__agent_id__messages_post","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Ask Agent Agents  Agent Id  Messages Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversations":{"get":{"tags":["Conversations"],"summary":"List conversations","operationId":"list_conversations_conversations_get","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ConversationStatus"},{"type":"null"}],"title":"Status"}},{"name":"channel","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Channel"},{"type":"null"}],"title":"Channel"}},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Only conversations with activity at or after this time","title":"Updated Since"},"description":"Only conversations with activity at or after this time"},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversations/{conversation_id}":{"get":{"tags":["Conversations"],"summary":"Get a conversation with its transcript","operationId":"get_conversation_conversations__conversation_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Conversation Conversations  Conversation Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Conversations"],"summary":"Update status or tags","operationId":"update_conversation_conversations__conversation_id__patch","security":[{"ApiKey":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Conversation Conversations  Conversation Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/conversations/{conversation_id}/messages":{"post":{"tags":["Conversations"],"summary":"Reply as a team member","description":"Adds a human-agent message. Widget visitors see it on their next poll; email threads are sent by the email worker.","operationId":"reply_conversations__conversation_id__messages_post","security":[{"ApiKey":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Conversation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reply Conversations  Conversation Id  Messages Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/leads":{"get":{"tags":["Leads"],"summary":"List contact-form submissions","operationId":"list_leads_leads_get","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Search name, email, phone and custom fields","title":"Q"},"description":"Search name, email, phone and custom fields"},{"name":"created_since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created Since"}},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/sources":{"get":{"tags":["Knowledge"],"summary":"List knowledge sources","operationId":"list_sources_agents__agent_id__sources_get","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Sources Agents  Agent Id  Sources Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Knowledge"],"summary":"Add a knowledge source","description":"Queues ingestion and returns immediately with `status: pending`; poll the source list for progress.","operationId":"create_source_agents__agent_id__sources_post","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceCreate"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Source Agents  Agent Id  Sources Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/sources/{source_id}/sync":{"post":{"tags":["Knowledge"],"summary":"Re-sync a source","operationId":"sync_source_agents__agent_id__sources__source_id__sync_post","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sync Source Agents  Agent Id  Sources  Source Id  Sync Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/sources/{source_id}":{"delete":{"tags":["Knowledge"],"summary":"Delete a source","operationId":"delete_source_agents__agent_id__sources__source_id__delete","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Source Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/answers":{"post":{"tags":["Knowledge"],"summary":"Add a Q&A answer","description":"A curated question/answer pair the agent treats as high-precision knowledge.","operationId":"create_answer_agents__agent_id__answers_post","security":[{"ApiKey":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Answer Agents  Agent Id  Answers Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics/overview":{"get":{"tags":["Analytics"],"summary":"Headline metrics","operationId":"analytics_overview_analytics_overview_get","security":[{"ApiKey":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Analytics Overview Analytics Overview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"List webhook endpoints and the event catalogue","operationId":"list_webhooks_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Webhooks Webhooks Get"}}}}},"security":[{"ApiKey":[]}]},"post":{"tags":["Webhooks"],"summary":"Create a webhook endpoint","description":"The response carries the signing `secret`, the only time it is shown. HTTPS URLs on public hosts only.","operationId":"create_webhook_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Webhook Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKey":[]}]}},"/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Get a webhook endpoint","operationId":"get_webhook_webhooks__webhook_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Webhook Webhooks  Webhook Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Update a webhook endpoint","description":"Change the URL, events or description, or enable/disable it. Re-enabling resets the failure streak.","operationId":"update_webhook_webhooks__webhook_id__patch","security":[{"ApiKey":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Webhook Webhooks  Webhook Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete a webhook endpoint","operationId":"delete_webhook_webhooks__webhook_id__delete","security":[{"ApiKey":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/{webhook_id}/test":{"post":{"tags":["Webhooks"],"summary":"Send a test event now","description":"Sends a signed `webhook.test` event synchronously and returns the delivery result.","operationId":"test_webhook_webhooks__webhook_id__test_post","security":[{"ApiKey":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Test Webhook Webhooks  Webhook Id  Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/{webhook_id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"Delivery log of an endpoint","operationId":"webhook_deliveries_webhooks__webhook_id__deliveries_get","security":[{"ApiKey":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Webhook Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"enum":["pending","succeeded","failed"],"type":"string"},{"type":"null"}],"title":"Status"}},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/deliveries/{delivery_id}/redeliver":{"post":{"tags":["Webhooks"],"summary":"Redeliver an event","description":"Queues the same event (same event id) to the same endpoint again.","operationId":"redeliver_webhook_webhooks_deliveries__delivery_id__redeliver_post","security":[{"ApiKey":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Delivery Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Redeliver Webhook Webhooks Deliveries  Delivery Id  Redeliver Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/privacy/visitors":{"get":{"tags":["Privacy"],"summary":"Find everything stored about one person","description":"Pass exactly one identifier. Returns the matching visitors and counts of conversations, messages, leads and hand-offs.","operationId":"privacy_find_privacy_visitors_get","security":[{"ApiKey":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"description":"Visitor or contact-form email","title":"Email"},"description":"Visitor or contact-form email"},{"name":"anon_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Widget visitor id (anon_id); API users are `api:<user.id>`","title":"Anon Id"},"description":"Widget visitor id (anon_id); API users are `api:<user.id>`"},{"name":"external_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)","title":"External Id"},"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Privacy Find Privacy Visitors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Privacy"],"summary":"Permanently delete one person's data","description":"Hard-deletes their messages, conversations, hand-offs, leads and visitor records. Cannot be undone; audited.","operationId":"privacy_erase_privacy_visitors_delete","security":[{"ApiKey":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"description":"Visitor or contact-form email","title":"Email"},"description":"Visitor or contact-form email"},{"name":"anon_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Widget visitor id (anon_id); API users are `api:<user.id>`","title":"Anon Id"},"description":"Widget visitor id (anon_id); API users are `api:<user.id>`"},{"name":"external_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)","title":"External Id"},"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Privacy Erase Privacy Visitors Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/privacy/export":{"get":{"tags":["Privacy"],"summary":"Export one person's data (JSON)","operationId":"privacy_export_privacy_export_get","security":[{"ApiKey":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"description":"Visitor or contact-form email","title":"Email"},"description":"Visitor or contact-form email"},{"name":"anon_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Widget visitor id (anon_id); API users are `api:<user.id>`","title":"Anon Id"},"description":"Widget visitor id (anon_id); API users are `api:<user.id>`"},{"name":"external_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)","title":"External Id"},"description":"Verified external user id (signed identity, or `user.id` sent to Ask an agent)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AnswerCreate":{"properties":{"question":{"type":"string","maxLength":2000,"minLength":1,"title":"Question"},"answer":{"type":"string","maxLength":8000,"minLength":1,"title":"Answer"}},"type":"object","required":["question","answer"],"title":"AnswerCreate"},"Channel":{"type":"string","enum":["widget","hosted","email","api","playground"],"title":"Channel"},"ChatIn":{"properties":{"message":{"type":"string","maxLength":2000,"minLength":1,"title":"Message"},"conversation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Conversation Id","description":"Continue an API conversation; omit to start a new one"},"user":{"anyOf":[{"$ref":"#/components/schemas/EndUser"},{"type":"null"}]},"stream":{"type":"boolean","title":"Stream","description":"Stream Server-Sent Events instead of returning one JSON response","default":false}},"type":"object","required":["message"],"title":"ChatIn"},"ConversationStatus":{"type":"string","enum":["open","ai_handled","needs_human","human_active","resolved"],"title":"ConversationStatus"},"ConversationUpdate":{"properties":{"status":{"anyOf":[{"type":"string","enum":["open","resolved","needs_human","human_active"]},{"type":"null"}],"title":"Status"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Tags"}},"type":"object","title":"ConversationUpdate"},"EndUser":{"properties":{"id":{"type":"string","maxLength":128,"minLength":1,"title":"Id","description":"Your stable id for the person; groups their conversations"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email"}},"type":"object","required":["id"],"title":"EndUser"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Page":{"properties":{"data":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["data","total","limit","offset","has_more"],"title":"Page"},"ReplyIn":{"properties":{"content":{"type":"string","maxLength":8000,"minLength":1,"title":"Content"},"resolve":{"type":"boolean","title":"Resolve","default":false}},"type":"object","required":["content"],"title":"ReplyIn"},"SourceCreate":{"properties":{"type":{"type":"string","enum":["website","url","text"],"title":"Type"},"name":{"type":"string","maxLength":300,"minLength":1,"title":"Name"},"url":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Url","description":"Required for website and url"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Required for text"},"max_pages":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Max Pages","description":"website only; capped by your plan","default":100},"schedule":{"type":"string","enum":["manual","daily","weekly"],"title":"Schedule","default":"weekly"}},"type":"object","required":["type","name"],"title":"SourceCreate"},"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"},"WebhookIn":{"properties":{"url":{"type":"string","maxLength":500,"minLength":8,"title":"Url"},"events":{"items":{"type":"string"},"type":"array","maxItems":8,"minItems":1,"title":"Events","description":"Event types to receive, or [\"*\"] for all"},"description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Description"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["url","events"],"title":"WebhookIn"},"WebhookPatch":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":500,"minLength":8},{"type":"null"}],"title":"Url"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"description":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Description"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"WebhookPatch"}},"securitySchemes":{"ApiKey":{"type":"http","description":"Workspace API key from Settings → API keys, sent as `Authorization: Bearer sk_live_…`","scheme":"bearer","bearerFormat":"sk_live_…"}}},"tags":[{"name":"Account","description":"Key introspection, plan and usage"},{"name":"Agents","description":"Your AI agents"},{"name":"Chat","description":"Ask an agent from your own backend"},{"name":"Conversations","description":"Transcripts from every channel; reply and resolve"},{"name":"Leads","description":"Contact-form submissions"},{"name":"Knowledge","description":"What the agent knows: sources and curated answers"},{"name":"Analytics","description":"Headline metrics"},{"name":"Webhooks","description":"Signed event notifications to your endpoints"},{"name":"Privacy","description":"Data-subject requests: find, export and erase one end user's data"}],"servers":[{"url":"/api/v1"}]}