{"openapi":"3.1.0","info":{"title":"JagCall Public API","version":"1.0.0","description":"REST API for JagCall — agents, calls, phone numbers, SMS, contacts, campaigns, automations, knowledge bases, analytics, and webhooks."},"servers":[{"url":"https://jagcall.com"}],"paths":{"/v1/integrations":{"put":{"tags":["public-api"],"summary":"Set Integration","description":"Set integration credentials (e.g. Frubix API key, webhook URL) for the org.","operationId":"set_integration_v1_integrations_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetIntegrationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/calls":{"get":{"tags":["public-api"],"summary":"List Calls","description":"List all calls for this organization. Supports filtering and pagination.","operationId":"list_calls_v1_calls_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicCallResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Call","description":"Initiate an outbound call via an AI agent.","operationId":"create_call_v1_calls_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCallRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCallResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/calls/{call_id}":{"get":{"tags":["public-api"],"summary":"Get Call Detail","description":"Get details of a specific call.","operationId":"get_call_detail_v1_calls__call_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCallResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/calls/{call_id}/transcript":{"get":{"tags":["public-api"],"summary":"Get Call Transcript","description":"Get the transcript of a call.","operationId":"get_call_transcript_v1_calls__call_id__transcript_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicTranscriptEntry"},"title":"Response Get Call Transcript V1 Calls  Call Id  Transcript Get"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/calls/{call_id}/recording":{"get":{"tags":["public-api"],"summary":"Get Call Recording","description":"Stream the call recording audio, proxying Twilio auth.","operationId":"get_call_recording_v1_calls__call_id__recording_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/phone-numbers":{"get":{"tags":["public-api"],"summary":"List Phone Numbers","description":"List all active phone numbers for this organization.","operationId":"list_phone_numbers_v1_phone_numbers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicPhoneNumberResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Provision Phone Number","description":"Purchase and provision a phone number from Twilio.","operationId":"provision_phone_number_v1_phone_numbers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicProvisionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPhoneNumberResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/phone-numbers/search":{"post":{"tags":["public-api"],"summary":"Search Numbers","description":"Search for available phone numbers to purchase.","operationId":"search_numbers_v1_phone_numbers_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/phone-numbers/{number_id}":{"put":{"tags":["public-api"],"summary":"Update Phone Number","description":"Update a phone number (friendly name, inbound agent assignment).","operationId":"update_phone_number_v1_phone_numbers__number_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"number_id","in":"path","required":true,"schema":{"type":"string","title":"Number Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicUpdateNumberRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPhoneNumberResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Release Phone Number","description":"Schedule a phone number for release at the end of the billing period.","operationId":"release_phone_number_v1_phone_numbers__number_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"number_id","in":"path","required":true,"schema":{"type":"string","title":"Number Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/agents":{"get":{"tags":["public-api"],"summary":"List Agents Public","description":"List all agents for this organization.","operationId":"list_agents_public_v1_agents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicAgentResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Agent Public","description":"Create a new AI agent.","operationId":"create_agent_public_v1_agents_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAgentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAgentResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/agents/{agent_id}":{"get":{"tags":["public-api"],"summary":"Get Agent Public","description":"Get details of a specific agent.","operationId":"get_agent_public_v1_agents__agent_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAgentResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"put":{"tags":["public-api"],"summary":"Update Agent Public","description":"Update an existing agent. Only provided fields are changed.\n\nAuto-publishes the draft so changes take effect immediately.","operationId":"update_agent_public_v1_agents__agent_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAgentUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAgentResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Agent Public","description":"Delete an agent. This cannot be undone.","operationId":"delete_agent_public_v1_agents__agent_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/sms":{"post":{"tags":["public-api"],"summary":"Send Sms Public","description":"Send an outbound SMS message.","operationId":"send_sms_public_v1_sms_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSmsSendRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSmsResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/sms/conversations":{"get":{"tags":["public-api"],"summary":"List Sms Conversations Public","description":"List SMS conversations.","operationId":"list_sms_conversations_public_v1_sms_conversations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicSmsConversationResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/sms/conversations/{conversation_id}/messages":{"get":{"tags":["public-api"],"summary":"Get Sms Messages Public","description":"Get messages in an SMS conversation.","operationId":"get_sms_messages_public_v1_sms_conversations__conversation_id__messages_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"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/PublicPage_PublicSmsResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/browser-call/token":{"post":{"tags":["public-api"],"summary":"Get Browser Call Token","description":"Generate a Twilio access token for browser-based WebRTC calling.","operationId":"get_browser_call_token_v1_browser_call_token_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"platform","in":"query","required":false,"schema":{"enum":["web","ios","android"],"type":"string","default":"web","title":"Platform"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/browser-call/phone-numbers":{"get":{"tags":["public-api"],"summary":"Get Browser Call Numbers","description":"List phone numbers available as caller IDs for browser calling.","operationId":"get_browser_call_numbers_v1_browser_call_phone_numbers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/billing/balance":{"get":{"tags":["public-api"],"summary":"Public Balance Endpoint","description":"Get current balance for the organization.","operationId":"public_balance_endpoint_v1_billing_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/contacts":{"get":{"tags":["public-api"],"summary":"List Contacts Public","description":"List contacts. Filter by free-text search or exact phone number.","operationId":"list_contacts_public_v1_contacts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"phone","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicContactResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Contact Public","description":"Create a contact. Returns 409 if the phone number already exists.","operationId":"create_contact_public_v1_contacts_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/contacts/{contact_id}":{"get":{"tags":["public-api"],"summary":"Get Contact Public","operationId":"get_contact_public_v1_contacts__contact_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"patch":{"tags":["public-api"],"summary":"Update Contact Public","operationId":"update_contact_public_v1_contacts__contact_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContactResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Contact Public","operationId":"delete_contact_public_v1_contacts__contact_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns":{"get":{"tags":["public-api"],"summary":"List Campaigns Public","operationId":"list_campaigns_public_v1_campaigns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicCampaignResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Campaign Public","description":"Create a draft campaign with its contact list (JSON, not CSV upload).","operationId":"create_campaign_public_v1_campaigns_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}":{"get":{"tags":["public-api"],"summary":"Get Campaign Public","operationId":"get_campaign_public_v1_campaigns__campaign_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Campaign Public","operationId":"delete_campaign_public_v1_campaigns__campaign_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}/contacts":{"get":{"tags":["public-api"],"summary":"List Campaign Contacts Public","operationId":"list_campaign_contacts_public_v1_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":100,"minimum":1,"default":50,"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/PublicPage_PublicCampaignContactResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}/start":{"post":{"tags":["public-api"],"summary":"Start Campaign Public","operationId":"start_campaign_public_v1_campaigns__campaign_id__start_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}/pause":{"post":{"tags":["public-api"],"summary":"Pause Campaign Public","operationId":"pause_campaign_public_v1_campaigns__campaign_id__pause_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}/resume":{"post":{"tags":["public-api"],"summary":"Resume Campaign Public","operationId":"resume_campaign_public_v1_campaigns__campaign_id__resume_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/campaigns/{campaign_id}/cancel":{"post":{"tags":["public-api"],"summary":"Cancel Campaign Public","operationId":"cancel_campaign_public_v1_campaigns__campaign_id__cancel_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCampaignResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/automations":{"get":{"tags":["public-api"],"summary":"List Automations Public","operationId":"list_automations_public_v1_automations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicAutomationResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Automation Public","operationId":"create_automation_public_v1_automations_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAutomationCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAutomationResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/automations/{automation_id}":{"get":{"tags":["public-api"],"summary":"Get Automation Public","operationId":"get_automation_public_v1_automations__automation_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","title":"Automation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAutomationResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"patch":{"tags":["public-api"],"summary":"Update Automation Public","operationId":"update_automation_public_v1_automations__automation_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","title":"Automation Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAutomationUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAutomationResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Automation Public","operationId":"delete_automation_public_v1_automations__automation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","title":"Automation Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/automations/{automation_id}/runs":{"get":{"tags":["public-api"],"summary":"List Automation Runs Public","operationId":"list_automation_runs_public_v1_automations__automation_id__runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","title":"Automation Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicAutomationRunResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/knowledge-bases":{"get":{"tags":["public-api"],"summary":"List Knowledge Bases Public","operationId":"list_knowledge_bases_public_v1_knowledge_bases_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicKnowledgeBaseResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Create Knowledge Base Public","operationId":"create_knowledge_base_public_v1_knowledge_bases_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeBaseCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeBaseResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/knowledge-bases/{kb_id}":{"get":{"tags":["public-api"],"summary":"Get Knowledge Base Public","operationId":"get_knowledge_base_public_v1_knowledge_bases__kb_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kb_id","in":"path","required":true,"schema":{"type":"string","title":"Kb Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeBaseResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Knowledge Base Public","operationId":"delete_knowledge_base_public_v1_knowledge_bases__kb_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kb_id","in":"path","required":true,"schema":{"type":"string","title":"Kb Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/knowledge-bases/{kb_id}/documents":{"get":{"tags":["public-api"],"summary":"List Documents Public","operationId":"list_documents_public_v1_knowledge_bases__kb_id__documents_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kb_id","in":"path","required":true,"schema":{"type":"string","title":"Kb Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"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/PublicPage_PublicKnowledgeDocumentResponse_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"post":{"tags":["public-api"],"summary":"Add Document Public","description":"Add a text document. Chunking + embedding happen synchronously, so the\nresponse may take a few seconds for large documents.","operationId":"add_document_public_v1_knowledge_bases__kb_id__documents_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"kb_id","in":"path","required":true,"schema":{"type":"string","title":"Kb Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicDocumentCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeDocumentResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/documents/{doc_id}":{"get":{"tags":["public-api"],"summary":"Get Document Public","operationId":"get_document_public_v1_documents__doc_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeDocumentResponse"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Document Public","operationId":"delete_document_public_v1_documents__doc_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/knowledge-bases/search":{"post":{"tags":["public-api"],"summary":"Search Knowledge Public","description":"Semantic search across the org's knowledge bases. Restricts to the\ngiven knowledge_base_ids (validated for ownership) or all org KBs.","operationId":"search_knowledge_public_v1_knowledge_bases_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicKnowledgeSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/analytics/overview":{"get":{"tags":["public-api"],"summary":"Analytics Overview Public","description":"Aggregate call/cost/sentiment metrics for the period.","operationId":"analytics_overview_public_v1_analytics_overview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/analytics/calls-over-time":{"get":{"tags":["public-api"],"summary":"Analytics Calls Over Time Public","description":"Daily call counts and outcomes over the period.","operationId":"analytics_calls_over_time_public_v1_analytics_calls_over_time_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/usage":{"get":{"tags":["public-api"],"summary":"Usage Current Public","description":"Current-month usage totals (minutes, SMS, cost).","operationId":"usage_current_public_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/usage/history":{"get":{"tags":["public-api"],"summary":"Usage History Public","description":"Per-month usage totals for the last N months.","operationId":"usage_history_public_v1_usage_history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":12,"minimum":1,"default":6,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/webhook-events":{"get":{"tags":["public-api"],"summary":"Webhook Events Public","operationId":"webhook_events_public_v1_webhook_events_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/webhook-endpoints":{"get":{"tags":["public-api"],"summary":"List Endpoints Public","operationId":"list_endpoints_public_v1_webhook_endpoints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WebhookEndpointOut"},"type":"array","title":"Response List Endpoints Public V1 Webhook Endpoints Get"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["public-api"],"summary":"Create Endpoint Public","operationId":"create_endpoint_public_v1_webhook_endpoints_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/webhook-endpoints/{endpoint_id}":{"get":{"tags":["public-api"],"summary":"Get Endpoint Public","operationId":"get_endpoint_public_v1_webhook_endpoints__endpoint_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"patch":{"tags":["public-api"],"summary":"Update Endpoint Public","operationId":"update_endpoint_public_v1_webhook_endpoints__endpoint_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointOut"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}},"delete":{"tags":["public-api"],"summary":"Delete Endpoint Public","operationId":"delete_endpoint_public_v1_webhook_endpoints__endpoint_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/webhook-endpoints/{endpoint_id}/rotate-secret":{"post":{"tags":["public-api"],"summary":"Rotate Secret Public","operationId":"rotate_secret_public_v1_webhook_endpoints__endpoint_id__rotate_secret_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint Id"}},{"name":"grace","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Grace"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/webhook-endpoints/{endpoint_id}/deliveries":{"get":{"tags":["public-api"],"summary":"List Endpoint Deliveries Public","operationId":"list_endpoint_deliveries_public_v1_webhook_endpoints__endpoint_id__deliveries_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","title":"Endpoint 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":100,"minimum":1,"default":50,"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/PublicPage_WebhookDeliveryOut_"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}},"/v1/webhook-deliveries/{delivery_id}/replay":{"post":{"tags":["public-api"],"summary":"Replay Delivery Public","operationId":"replay_delivery_public_v1_webhook_deliveries__delivery_id__replay_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDeliveryOut"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"403":{"description":"Forbidden or insufficient scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicErrorResponse"}}}}}}}},"components":{"schemas":{"PublicPage_WebhookDeliveryOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WebhookDeliveryOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[WebhookDeliveryOut]"},"PublicContactCreateRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite"}},"type":"object","required":["phone_number","name"],"title":"PublicContactCreateRequest"},"PublicKnowledgeSearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"knowledge_base_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Knowledge Base Ids"},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","default":5}},"type":"object","required":["query"],"title":"PublicKnowledgeSearchRequest"},"PublicAutomationResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"enabled":{"type":"boolean","title":"Enabled"},"trigger_type":{"type":"string","title":"Trigger Type"},"trigger_filters":{"type":"object","title":"Trigger Filters"},"conditions":{"items":{},"type":"array","title":"Conditions"},"actions":{"items":{},"type":"array","title":"Actions"},"run_count":{"type":"integer","title":"Run Count"},"last_run_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run At"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["id","name","enabled","trigger_type","trigger_filters","conditions","actions","run_count"],"title":"PublicAutomationResponse"},"PublicPage_PublicAutomationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicAutomationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicAutomationResponse]"},"PublicCampaignResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"status":{"type":"string","title":"Status"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"max_concurrent":{"type":"integer","title":"Max Concurrent"},"total_contacts":{"type":"integer","title":"Total Contacts"},"called":{"type":"integer","title":"Called"},"completed":{"type":"integer","title":"Completed"},"failed":{"type":"integer","title":"Failed"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","agent_id","phone_number_id","status","max_concurrent","total_contacts","called","completed","failed","created_at","updated_at"],"title":"PublicCampaignResponse"},"PublicSearchRequest":{"properties":{"country":{"type":"string","title":"Country","default":"US"},"area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area Code"}},"type":"object","title":"PublicSearchRequest"},"PublicKnowledgeDocumentResponse":{"properties":{"id":{"type":"string","title":"Id"},"knowledge_base_id":{"type":"string","title":"Knowledge Base Id"},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"file_size":{"type":"integer","title":"File Size"},"chunk_count":{"type":"integer","title":"Chunk Count"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","knowledge_base_id","filename","content_type","file_size","chunk_count","status","created_at"],"title":"PublicKnowledgeDocumentResponse"},"PublicAgentResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"status":{"type":"string","title":"Status"},"llm_provider":{"type":"string","title":"Llm Provider"},"llm_model":{"type":"string","title":"Llm Model"},"llm_temperature":{"type":"number","title":"Llm Temperature"},"system_prompt":{"type":"string","title":"System Prompt"},"tts_provider":{"type":"string","title":"Tts Provider"},"tts_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Voice Id"},"tts_model":{"type":"string","title":"Tts Model"},"voice_speed":{"type":"number","title":"Voice Speed"},"stt_provider":{"type":"string","title":"Stt Provider"},"stt_model":{"type":"string","title":"Stt Model"},"stt_language":{"type":"string","title":"Stt Language"},"greeting_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greeting Message"},"end_call_silence_seconds":{"type":"integer","title":"End Call Silence Seconds"},"max_call_duration_seconds":{"type":"integer","title":"Max Call Duration Seconds"},"allow_interruptions":{"type":"boolean","title":"Allow Interruptions"},"interruption_min_words":{"type":"integer","title":"Interruption Min Words"},"vad_confidence":{"type":"number","title":"Vad Confidence"},"vad_start_secs":{"type":"number","title":"Vad Start Secs"},"vad_min_volume":{"type":"number","title":"Vad Min Volume"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","status","llm_provider","llm_model","llm_temperature","system_prompt","tts_provider","tts_voice_id","tts_model","voice_speed","stt_provider","stt_model","stt_language","greeting_message","end_call_silence_seconds","max_call_duration_seconds","allow_interruptions","interruption_min_words","vad_confidence","vad_start_secs","vad_min_volume","webhook_url","created_at","updated_at"],"title":"PublicAgentResponse"},"WebhookEndpointCreate":{"properties":{"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","required":["url"],"title":"WebhookEndpointCreate"},"PublicSmsSendRequest":{"properties":{"to_number":{"type":"string","title":"To Number"},"from_number_id":{"type":"string","title":"From Number Id"},"body":{"type":"string","title":"Body"}},"type":"object","required":["to_number","from_number_id","body"],"title":"PublicSmsSendRequest"},"PublicKnowledgeBaseCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["name"],"title":"PublicKnowledgeBaseCreateRequest"},"PublicProvisionRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"friendly_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name"},"inbound_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Id"}},"type":"object","required":["phone_number"],"title":"PublicProvisionRequest"},"PublicContactUpdateRequest":{"properties":{"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_favorite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Favorite"}},"type":"object","title":"PublicContactUpdateRequest"},"PublicPage_PublicPhoneNumberResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicPhoneNumberResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicPhoneNumberResponse]"},"PublicPage_PublicCampaignContactResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCampaignContactResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicCampaignContactResponse]"},"PublicPage_PublicAgentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicAgentResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicAgentResponse]"},"PublicCampaignContactResponse":{"properties":{"id":{"type":"string","title":"Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"phone_number":{"type":"string","title":"Phone Number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"type":"string","title":"Status"},"outcome":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome"},"call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"called_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Called At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","campaign_id","phone_number","status","created_at"],"title":"PublicCampaignContactResponse"},"PublicPage_PublicAutomationRunResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicAutomationRunResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicAutomationRunResponse]"},"PublicCampaignContactInput":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["phone_number"],"title":"PublicCampaignContactInput"},"PublicPage_PublicCallResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCallResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicCallResponse]"},"PublicSmsConversationResponse":{"properties":{"id":{"type":"string","title":"Id"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"contact_number":{"type":"string","title":"Contact Number"},"status":{"type":"string","title":"Status"},"last_message_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Message At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","phone_number_id","contact_number","status","last_message_at","created_at"],"title":"PublicSmsConversationResponse"},"PublicContactResponse":{"properties":{"id":{"type":"string","title":"Id"},"phone_number":{"type":"string","title":"Phone Number"},"name":{"type":"string","title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tags"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"is_favorite":{"type":"boolean","title":"Is Favorite","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","phone_number","name","created_at","updated_at"],"title":"PublicContactResponse"},"PublicPage_PublicSmsResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicSmsResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicSmsResponse]"},"WebhookDeliveryOut":{"properties":{"id":{"type":"string","title":"Id"},"endpoint_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint Id"},"target_kind":{"type":"string","title":"Target Kind"},"event_type":{"type":"string","title":"Event Type"},"status":{"type":"string","title":"Status"},"attempts":{"type":"integer","title":"Attempts"},"next_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Attempt At"},"last_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Status Code"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"replayed_from_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replayed From Id"},"payload":{"type":"object","title":"Payload"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"}},"type":"object","required":["id","target_kind","event_type","status","attempts","payload","created_at"],"title":"WebhookDeliveryOut"},"PublicSmsResponse":{"properties":{"id":{"type":"string","title":"Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"direction":{"type":"string","title":"Direction"},"from_number":{"type":"string","title":"From Number"},"to_number":{"type":"string","title":"To Number"},"body":{"type":"string","title":"Body"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","conversation_id","direction","from_number","to_number","body","status","created_at"],"title":"PublicSmsResponse"},"SetIntegrationRequest":{"properties":{"frubix_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frubix Api Key"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"}},"type":"object","title":"SetIntegrationRequest"},"PublicUpdateNumberRequest":{"properties":{"friendly_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name"},"inbound_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Id"},"schedule":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Schedule"},"sms_schedule":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Sms Schedule"},"forward_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Number"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"}},"type":"object","title":"PublicUpdateNumberRequest"},"PublicPage_PublicContactResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicContactResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicContactResponse]"},"PublicCallRequest":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"to_number":{"type":"string","title":"To Number"},"from_number_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number Id"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["agent_id","to_number"],"title":"PublicCallRequest"},"WebhookEndpointOut":{"properties":{"id":{"type":"string","title":"Id"},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"enabled":{"type":"boolean","title":"Enabled"},"has_secret":{"type":"boolean","title":"Has Secret"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"previous_secret_expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Previous Secret Expires 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","url","enabled","has_secret","consecutive_failures","created_at","updated_at"],"title":"WebhookEndpointOut"},"PublicAgentCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"system_prompt":{"type":"string","title":"System Prompt"},"llm_provider":{"type":"string","title":"Llm Provider","default":"openai"},"llm_model":{"type":"string","title":"Llm Model","default":"gpt-4o-mini"},"llm_temperature":{"type":"number","title":"Llm Temperature","default":0.7},"tts_provider":{"type":"string","title":"Tts Provider","default":"cartesia"},"tts_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Voice Id"},"tts_model":{"type":"string","title":"Tts Model","default":"sonic-2"},"stt_provider":{"type":"string","title":"Stt Provider","default":"deepgram"},"stt_model":{"type":"string","title":"Stt Model","default":"nova-3"},"stt_language":{"type":"string","title":"Stt Language","default":"en"},"greeting_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greeting Message"},"end_call_silence_seconds":{"type":"integer","title":"End Call Silence Seconds","default":600},"max_call_duration_seconds":{"type":"integer","title":"Max Call Duration Seconds","default":1800},"allow_interruptions":{"type":"boolean","title":"Allow Interruptions","default":true},"interruption_min_words":{"type":"integer","title":"Interruption Min Words","default":2},"vad_confidence":{"type":"number","title":"Vad Confidence","default":0.7},"vad_start_secs":{"type":"number","title":"Vad Start Secs","default":0.4},"vad_min_volume":{"type":"number","title":"Vad Min Volume","default":0.6},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"voice_speed":{"type":"number","title":"Voice Speed","default":1.0}},"type":"object","required":["name","system_prompt"],"title":"PublicAgentCreateRequest"},"PublicDocumentCreateRequest":{"properties":{"filename":{"type":"string","title":"Filename"},"content":{"type":"string","maxLength":500000,"title":"Content"},"content_type":{"type":"string","title":"Content Type","default":"text/plain"}},"type":"object","required":["filename","content"],"title":"PublicDocumentCreateRequest"},"PublicPage_PublicKnowledgeDocumentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicKnowledgeDocumentResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicKnowledgeDocumentResponse]"},"PublicAutomationUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"trigger_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Type"},"trigger_filters":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Trigger Filters"},"conditions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Conditions"},"actions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Actions"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"PublicAutomationUpdateRequest"},"PublicCallResponse":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"direction":{"type":"string","title":"Direction"},"status":{"type":"string","title":"Status"},"from_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number"},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number"},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Seconds"},"cost_total":{"type":"number","title":"Cost Total"},"recording_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Url"},"call_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Summary"},"call_successful":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Call Successful"},"user_sentiment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Sentiment"},"extracted_data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Extracted Data"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"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"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","agent_id","direction","status","from_number","to_number","duration_seconds","cost_total","error_message","started_at","ended_at","created_at"],"title":"PublicCallResponse"},"WebhookEndpointUpdate":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"WebhookEndpointUpdate"},"PublicErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/PublicErrorDetail"}},"type":"object","required":["error"],"title":"PublicErrorResponse"},"PublicAutomationRunResponse":{"properties":{"id":{"type":"string","title":"Id"},"automation_id":{"type":"string","title":"Automation Id"},"trigger_event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Event"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","automation_id","status"],"title":"PublicAutomationRunResponse"},"PublicPage_PublicCampaignResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicCampaignResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicCampaignResponse]"},"PublicPhoneNumberResponse":{"properties":{"id":{"type":"string","title":"Id"},"phone_number":{"type":"string","title":"Phone Number"},"friendly_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name"},"inbound_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Agent Id"},"status":{"type":"string","title":"Status"},"schedule":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Schedule"},"sms_schedule":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Sms Schedule"},"forward_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Number"},"forward_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Forward Webhook Url"},"sms_active":{"type":"boolean","title":"Sms Active","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","phone_number","friendly_name","inbound_agent_id","status","created_at"],"title":"PublicPhoneNumberResponse"},"PublicAutomationCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"trigger_type":{"type":"string","title":"Trigger Type","default":"call.no_answer"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"trigger_filters":{"type":"object","title":"Trigger Filters","default":{}},"conditions":{"items":{},"type":"array","title":"Conditions","default":[]},"actions":{"items":{},"type":"array","title":"Actions","default":[]},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["name"],"title":"PublicAutomationCreateRequest"},"PublicKnowledgeBaseResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","created_at","updated_at"],"title":"PublicKnowledgeBaseResponse"},"PublicAgentUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"llm_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Provider"},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"llm_temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Temperature"},"tts_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Provider"},"tts_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Voice Id"},"tts_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tts Model"},"stt_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stt Provider"},"stt_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stt Model"},"stt_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stt Language"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"greeting_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greeting Message"},"end_call_silence_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Call Silence Seconds"},"max_call_duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Call Duration Seconds"},"allow_interruptions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Interruptions"},"interruption_min_words":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interruption Min Words"},"vad_confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vad Confidence"},"vad_start_secs":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vad Start Secs"},"vad_min_volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vad Min Volume"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"voice_speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Speed"}},"type":"object","title":"PublicAgentUpdateRequest"},"PublicTranscriptEntry":{"properties":{"role":{"type":"string","title":"Role"},"content":{"type":"string","title":"Content"},"timestamp_ms":{"type":"integer","title":"Timestamp Ms"}},"type":"object","required":["role","content","timestamp_ms"],"title":"PublicTranscriptEntry"},"PublicPage_PublicSmsConversationResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicSmsConversationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicSmsConversationResponse]"},"PublicPage_PublicKnowledgeBaseResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicKnowledgeBaseResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PublicPage[PublicKnowledgeBaseResponse]"},"PublicErrorDetail":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"status":{"type":"integer","title":"Status"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"details":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Details"}},"type":"object","required":["code","message","status"],"title":"PublicErrorDetail"},"PublicCampaignCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"agent_id":{"type":"string","title":"Agent Id"},"phone_number_id":{"type":"string","title":"Phone Number Id"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At"},"max_concurrent":{"type":"integer","title":"Max Concurrent","default":2},"contacts":{"items":{"$ref":"#/components/schemas/PublicCampaignContactInput"},"type":"array","title":"Contacts","default":[]}},"type":"object","required":["name","agent_id","phone_number_id"],"title":"PublicCampaignCreateRequest"}},"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"jc_live_ API key or jca_ OAuth access token"}}},"security":[{"ApiKeyAuth":[]}]}