{"openapi":"3.1.0","info":{"title":"Puppeteer Core API","description":"Core API for the Puppeteer AI platform. Manages domain models, conversations, voice calls, simulations, and integrations.\n\n[Documentation](https://docs.puppeteerai.com)","version":"1.0.0"},"servers":[{"url":"https://api.puppeteerai.com","description":"Production"}],"paths":{"/generate-token/{thread_id}":{"post":{"tags":["Auth"],"summary":"Generate Token Non Rest","operationId":"generate_token_non_rest_generate_token__thread_id__post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/token":{"post":{"tags":["Auth"],"summary":"Create Token","description":"Generate a JWT token for a specific thread. The JWT can be used to authenticate subsequent requests scoped to this thread, such as WebSocket connections and message retrieval.","operationId":"create_token_threads__thread_id__token_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"API key for your Puppeteer organization.","title":"Authorization"},"description":"API key for your Puppeteer organization."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/thread-access-links/{link_id}/generate-token":{"get":{"tags":["Thread Access"],"summary":"Generate Token From Access Link","description":"Validate a thread access link and generate a JWT token if valid.\n\nValidates:\n- Link exists\n- Link is not expired\n- Link is not revoked\n- Link is not used (if single-use)\n\nReturns:\n    JSON with access_token and thread_id","operationId":"generate_token_from_access_link_thread_access_links__link_id__generate_token_get","parameters":[{"name":"link_id","in":"path","required":true,"schema":{"type":"string","title":"Link Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/thread-access-links/validate-jwt":{"get":{"tags":["Thread Access"],"summary":"Validate Jwt Token","description":"Validate a JWT token and return thread_id and organization_id if valid.\n\nThis endpoint validates the JWT token signature and expiration, then returns\nthe thread_id and organization_id from the token claims.\n\nReturns:\n    JSON with thread_id and organization_id","operationId":"validate_jwt_token_thread_access_links_validate_jwt_get","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-verification/email/send":{"post":{"tags":["Demo Verification"],"summary":"Send Email Code","operationId":"send_email_code_demo_verification_email_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendEmailCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-verification/email/verify":{"post":{"tags":["Demo Verification"],"summary":"Verify Email Code","operationId":"verify_email_code_demo_verification_email_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-verification/sms/send":{"post":{"tags":["Demo Verification"],"summary":"Send Sms Code","operationId":"send_sms_code_demo_verification_sms_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSmsCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-verification/sms/verify":{"post":{"tags":["Demo Verification"],"summary":"Verify Sms Code","operationId":"verify_sms_code_demo_verification_sms_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifySmsCodeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/demo-verification/issue-token":{"post":{"tags":["Demo Verification"],"summary":"Issue Demo Session Token","description":"Mint a thread JWT for a freshly-created demo thread (new-user path).\n\nValidates the thread belongs to the project so the dashboard can't mint a\ntoken for an arbitrary thread under a different project.","operationId":"issue_demo_session_token_demo_verification_issue_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueTokenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat":{"post":{"tags":["Messages"],"summary":"Chat","description":"Send a user message to a thread and get back an AI response.","operationId":"chat_chat_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/chat_mobile":{"post":{"tags":["Messages"],"summary":"Chat Mobile","operationId":"chat_mobile_chat_mobile_post","parameters":[{"name":"config_name","in":"query","required":true,"schema":{"type":"string","title":"Config Name"}},{"name":"organization_id","in":"query","required":true,"schema":{"type":"string","title":"Organization Id"}},{"name":"X-Twilio-Signature","in":"header","required":true,"schema":{"type":"string","title":"X-Twilio-Signature"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_chat_mobile_chat_mobile_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/get_followup":{"post":{"tags":["Messages"],"summary":"Get Followup","operationId":"get_followup_get_followup_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retrieve_conversations":{"post":{"tags":["Messages"],"summary":"Retrieve Conversations","operationId":"retrieve_conversations_retrieve_conversations_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveConversationsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/messages":{"get":{"tags":["Messages"],"summary":"Get Messages","description":"Retrieve messages from a thread using cursor-based pagination.","operationId":"get_messages_threads__thread_id__messages_get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Base64-encoded pagination cursor. If not provided, returns the latest 20 messages.","title":"Cursor"},"description":"Base64-encoded pagination cursor. If not provided, returns the latest 20 messages."},{"name":"reverse","in":"query","required":false,"schema":{"type":"boolean","description":"Controls the direction of message retrieval. When false (default), returns messages older than the cursor. When true, returns messages newer than the cursor.","default":false,"title":"Reverse"},"description":"Controls the direction of message retrieval. When false (default), returns messages older than the cursor. When true, returns messages newer than the cursor."},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorMessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/end_conversation":{"post":{"tags":["Messages"],"summary":"Handle End Conversation","operationId":"handle_end_conversation_end_conversation_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndConversationInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/messages/{message_id}/context":{"get":{"tags":["Messages"],"summary":"Get Message With Context","description":"The messages around one message of a thread, with cursors to page in both directions.","operationId":"get_message_with_context_threads__thread_id__messages__message_id__context_get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}},{"name":"context_size","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"description":"Number of messages to include before and after the message.","default":10,"title":"Context Size"},"description":"Number of messages to include before and after the message."},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchMatch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/messages/search":{"get":{"tags":["Messages"],"summary":"Search Messages","description":"Search for messages within a thread that contain the given text query.","operationId":"search_messages_threads__thread_id__messages_search_get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"The text to search for within messages.","title":"Query"},"description":"The text to search for within messages."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Base64-encoded pagination cursor. If not provided, retrieves the first batch of results.","title":"Cursor"},"description":"Base64-encoded pagination cursor. If not provided, retrieves the first batch of results."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Maximum number of search results to return per page.","default":20,"title":"Limit"},"description":"Maximum number of search results to return per page."},{"name":"context_size","in":"query","required":false,"schema":{"type":"integer","description":"Number of messages to include before and after each match to provide conversation context.","default":10,"title":"Context Size"},"description":"Number of messages to include before and after each match to provide conversation context."},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchMessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/create_thread":{"post":{"tags":["Threads"],"summary":"Create Thread Non Rest","operationId":"create_thread_non_rest_create_thread_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreadInput","default":{"type":"NORMAL"}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads":{"post":{"tags":["Threads"],"summary":"Create Thread","description":"Create a new thread.","operationId":"create_thread_threads_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreadInput","default":{"type":"NORMAL"}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/opt_out_from_ai_started_messages":{"patch":{"tags":["Threads"],"summary":"Opt Out From Ai Started Messages","operationId":"opt_out_from_ai_started_messages_opt_out_from_ai_started_messages_patch","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptOutFromAIInitiatedMessagesInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scheduled_events":{"post":{"tags":["Threads"],"summary":"Get Scheduled Events","operationId":"get_scheduled_events_scheduled_events_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledEventsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/execute_scheduled_event":{"post":{"tags":["Threads"],"summary":"Execute Scheduled Event","operationId":"execute_scheduled_event_execute_scheduled_event_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteScheduledEventInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scheduled_events/{scheduled_event_id}":{"delete":{"tags":["Threads"],"summary":"Delete Scheduled Event","operationId":"delete_scheduled_event_scheduled_events__scheduled_event_id__delete","parameters":[{"name":"scheduled_event_id","in":"path","required":true,"schema":{"type":"string","title":"Scheduled Event Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/send_json_input":{"post":{"tags":["Threads"],"summary":"Send Json Input Non Rest","operationId":"send_json_input_non_rest_send_json_input_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonInputModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/json-input":{"post":{"tags":["Threads"],"summary":"Send Json Input","description":"Send JSON input to a specific thread.","operationId":"send_json_input_threads__thread_id__json_input_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadJsonInputModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonInputResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/send_string_input":{"post":{"tags":["Threads"],"summary":"Send String Input","operationId":"send_string_input_send_string_input_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StringInputModel"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/documents":{"post":{"tags":["Threads"],"summary":"Upload Documents","operationId":"upload_documents_threads__thread_id__documents_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_documents_threads__thread_id__documents_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/set_thread_time":{"post":{"tags":["Threads"],"summary":"Set Thread Time","operationId":"set_thread_time_set_thread_time_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetThreadTimeInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/bulk":{"delete":{"tags":["Threads"],"summary":"Bulk Delete Threads","description":"Delete multiple threads in a single request.","operationId":"bulk_delete_threads_threads_bulk_delete","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteThreadsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/debug_logs":{"put":{"tags":["Threads"],"summary":"Update Thread Debug Logs","description":"Update a thread's debug logging settings and invalidate the cache.","operationId":"update_thread_debug_logs_threads__thread_id__debug_logs_put","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateThreadDebugLogsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/call-opt-out":{"post":{"tags":["Threads"],"summary":"Set Thread Call Opt Out","description":"Stop calls to this thread's phone number across the project.","operationId":"set_thread_call_opt_out_threads__thread_id__call_opt_out_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetThreadCallOptOutInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Threads"],"summary":"Clear Thread Call Opt Out","description":"Re-enable calls for every thread in the project sharing this thread's phone number.","operationId":"clear_thread_call_opt_out_threads__thread_id__call_opt_out_delete","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}":{"get":{"tags":["Threads"],"summary":"Get Thread","description":"Get thread details and usage statistics.","operationId":"get_thread_threads__thread_id__get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetThreadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/threads/{thread_id}/calls/{call_id}":{"delete":{"tags":["Threads"],"summary":"Delete Call","description":"Delete a call. Scheduled calls that never started are removed permanently; any other\ncall is soft-deleted so it stays available for usage/billing while hidden from listings.","operationId":"delete_call_threads__thread_id__calls__call_id__delete","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/mock-responses":{"put":{"tags":["Threads"],"summary":"Update Thread Mock Responses","description":"Update mock responses for a playground thread.","operationId":"update_thread_mock_responses_threads__thread_id__mock_responses_put","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MockResponsesInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Threads"],"summary":"Get Thread Mock Responses","description":"Get mock responses for a playground thread.","operationId":"get_thread_mock_responses_threads__thread_id__mock_responses_get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/threads/{thread_id}/message":{"post":{"tags":["Messages"],"summary":"Create Message","operationId":"create_message_threads__thread_id__message_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calls":{"get":{"tags":["Calls"],"summary":"List Calls","description":"List calls for the authenticated organization, newest first, using cursor-based pagination.","operationId":"list_calls_calls_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by call status. Repeat to allow multiple values.","title":"Status"},"description":"Filter by call status. Repeat to allow multiple values."},{"name":"call_type","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by call type. Repeat to allow multiple values.","title":"Call Type"},"description":"Filter by call type. Repeat to allow multiple values."},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by call direction. Repeat to allow multiple values.","title":"Direction"},"description":"Filter by call direction. Repeat to allow multiple values."},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only include calls created at or after this ISO 8601 date/datetime.","title":"From Date"},"description":"Only include calls created at or after this ISO 8601 date/datetime."},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only include calls created at or before this ISO 8601 date/datetime.","title":"To Date"},"description":"Only include calls created at or before this ISO 8601 date/datetime."},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only include calls belonging to this thread.","title":"Thread Id"},"description":"Only include calls belonging to this thread."},{"name":"project_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only include calls belonging to this project.","title":"Project Name"},"description":"Only include calls belonging to this project."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Base64-encoded pagination cursor from a previous response.","title":"Cursor"},"description":"Base64-encoded pagination cursor from a previous response."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of calls to return.","default":20,"title":"Limit"},"description":"Maximum number of calls to return."},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/calls/{call_id}":{"get":{"tags":["Calls"],"summary":"Get Call","description":"Get full details for a single call, including transcript, recording URL, and analysis.","operationId":"get_call_calls__call_id__get","parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/projects/{project_id}/custom-actions/run":{"post":{"tags":["Configs"],"summary":"Run Custom Action","description":"Run a single inline custom action in isolation: mocked json_data, real project env, no flow.","operationId":"run_custom_action_projects__project_id__custom_actions_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunCustomActionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/versions/{config_id}":{"put":{"tags":["Configs"],"summary":"Update Config Template","description":"Update the draft config. Every save validates and applies the config.","operationId":"update_config_template_projects__project_id__versions__config_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutConfigInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/versions":{"get":{"tags":["Configs"],"summary":"List Config Versions","description":"List all versions for the project (including draft), ordered by created_at descending.","operationId":"list_config_versions_projects__project_id__versions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VersionResponse"},"title":"Response List Config Versions Projects  Project Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/versions/{version_id}":{"get":{"tags":["Configs"],"summary":"Get Config Version","description":"Get a specific version with full template content.","operationId":"get_config_version_projects__project_id__versions__version_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","title":"Version Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/versions/{config_id}/restore":{"post":{"tags":["Configs"],"summary":"Restore Config Version","description":"Restore a previous version into the draft.\n\nIf the draft is unchanged from the previous published version, overwrite it in place.\nIf the draft has changes, lock it as a published snapshot and create a new draft.","operationId":"restore_config_version_projects__project_id__versions__config_id__restore_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/versions/{config_id}/activate":{"post":{"tags":["Configs"],"summary":"Activate Config","description":"Activate a config version for production.\n\nDelegates to DeploymentService.create_production_deployment so a Deployment\nrow is created and the production gate (when ENVIRONMENT=production) runs\nconfig tests before the activation is applied. A percentage below 100\npublishes the version as the project's rollout candidate.","operationId":"activate_config_projects__project_id__versions__config_id__activate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"config_id","in":"path","required":true,"schema":{"type":"string","title":"Config Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateConfigInput","default":{"rollout_percent":100}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects":{"post":{"tags":["Configs"],"summary":"Create Project","operationId":"create_project_projects_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostProjectInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config_docs":{"get":{"tags":["Configs"],"summary":"Get Config Docs","operationId":"get_config_docs_config_docs_get","parameters":[{"name":"config_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Id"}},{"name":"modules","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modules"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/configs/default-llm-analysis-schema":{"get":{"tags":["Configs"],"summary":"Get Default Llm Analysis Schema","description":"Returns the default LLM analysis schema with standard variables.","operationId":"get_default_llm_analysis_schema_configs_default_llm_analysis_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/configs/generate_from_pdf":{"post":{"tags":["Configs"],"summary":"Generate Config From Pdf","operationId":"generate_config_from_pdf_configs_generate_from_pdf_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_generate_config_from_pdf_configs_generate_from_pdf_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/configs/format":{"post":{"tags":["Configs"],"summary":"Format Config Template","operationId":"format_config_template_configs_format_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FormatConfigInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-tests/{project_id}":{"post":{"tags":["Config Tests"],"summary":"Create Config Test","description":"Create a new test configuration with encrypted secrets.","operationId":"create_config_test_config_tests__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConfigTestInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-tests/{project_id}/{config_test_id}":{"put":{"tags":["Config Tests"],"summary":"Update Config Test","description":"Update a test configuration with encrypted secrets.","operationId":"update_config_test_config_tests__project_id___config_test_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"config_test_id","in":"path","required":true,"schema":{"type":"string","title":"Config Test Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfigTestInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-tests/{project_id}/{config_test_id}/run":{"post":{"tags":["Config Tests"],"summary":"Run Single Config Test","description":"Run a single test configuration for a project in the background.","operationId":"run_single_config_test_config_tests__project_id___config_test_id__run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"config_test_id","in":"path","required":true,"schema":{"type":"string","title":"Config Test Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunSingleTestConfigInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-tests/{project_id}/run":{"post":{"tags":["Config Tests"],"summary":"Run All Config Tests","description":"Run all test configurations for a project in the background.","operationId":"run_all_config_tests_config_tests__project_id__run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunAllTestConfigsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scenarios/{project_id}":{"post":{"tags":["Scenarios"],"summary":"Create Scenario","description":"Create a new test scenario for a project.","operationId":"create_scenario_scenarios__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scenarios/{project_id}/{scenario_id}":{"put":{"tags":["Scenarios"],"summary":"Update Scenario","description":"Update an existing test scenario.","operationId":"update_scenario_scenarios__project_id___scenario_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioUpdateInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scenarios/{project_id}/{scenario_id}/visibility":{"put":{"tags":["Scenarios"],"summary":"Update Scenario Visibility","description":"Make a scenario public or private without replacing its content.","operationId":"update_scenario_visibility_scenarios__project_id___scenario_id__visibility_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScenarioVisibilityInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/scenarios/{project_id}/{scenario_id}/apply":{"post":{"tags":["Scenarios"],"summary":"Apply Scenario","description":"Seed a playground thread from a scenario and fire its trigger payloads.\n\nThe seed is committed before any trigger runs, and the initial JSON data is written as\nthread state rather than delivered through ``ReceivedJsonInputTrigger`` (matching\n``run_simulation``) so seeding never kicks off an agent turn on its own.","operationId":"apply_scenario_scenarios__project_id___scenario_id__apply_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyScenarioInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-test-schedules/{project_id}":{"post":{"tags":["Config Test Schedules"],"summary":"Create Schedule","description":"Create a new test schedule and register the scheduler job.","operationId":"create_schedule_config_test_schedules__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScheduleInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-test-schedules/{project_id}/{schedule_id}":{"put":{"tags":["Config Test Schedules"],"summary":"Update Schedule","description":"Update a test schedule and re-sync the scheduler job.","operationId":"update_schedule_config_test_schedules__project_id___schedule_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScheduleInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Config Test Schedules"],"summary":"Delete Schedule","description":"Delete a test schedule and remove the scheduler job.","operationId":"delete_schedule_config_test_schedules__project_id___schedule_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/config-test-schedules/{project_id}/{schedule_id}/toggle":{"post":{"tags":["Config Test Schedules"],"summary":"Toggle Schedule","description":"Toggle a test schedule enabled/disabled.","operationId":"toggle_schedule_config_test_schedules__project_id___schedule_id__toggle_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/deployments":{"get":{"tags":["Deployments"],"summary":"List Deployments","operationId":"list_deployments_projects__project_id__deployments_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/deployments/{deployment_id}":{"get":{"tags":["Deployments"],"summary":"Get Deployment","operationId":"get_deployment_projects__project_id__deployments__deployment_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string","title":"Deployment Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Deployments"],"summary":"Delete Deployment","description":"Permanently delete a deployment. Deployments are audit records with no usage/billing\ndependence, so this is a hard delete; only in-flight deployments are protected.","operationId":"delete_deployment_projects__project_id__deployments__deployment_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string","title":"Deployment Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/deployments/production":{"post":{"tags":["Deployments"],"summary":"Post Production Deployment","operationId":"post_production_deployment_projects__project_id__deployments_production_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/deployments/{deployment_id}/override":{"post":{"tags":["Deployments"],"summary":"Post Deployment Override","description":"Publish a version whose gating tests failed, with a recorded reason.","operationId":"post_deployment_override_projects__project_id__deployments__deployment_id__override_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string","title":"Deployment Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverrideDeploymentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/deployments/{deployment_id}/rerun-failed-tests":{"post":{"tags":["Deployments"],"summary":"Post Deployment Rerun Failed Tests","description":"Rerun only the gating tests that blocked a deployment.","operationId":"post_deployment_rerun_failed_tests_projects__project_id__deployments__deployment_id__rerun_failed_tests_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"deployment_id","in":"path","required":true,"schema":{"type":"string","title":"Deployment Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/rollout":{"get":{"tags":["Deployments"],"summary":"Get Rollout","description":"What serves traffic right now: the live version, and the candidate when a\nrollout is open.","operationId":"get_rollout_projects__project_id__rollout_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Deployments"],"summary":"Set Rollout Percent","description":"Move the share of the traffic the candidate version receives.","operationId":"set_rollout_percent_projects__project_id__rollout_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetRolloutPercentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/simulation":{"post":{"tags":["Simulations"],"summary":"Run Batch Simulation","description":"Start a batch conversation simulation for a specific project.\n\nThis endpoint starts a background simulation and returns immediately with a simulation ID.\n\nArgs:\n    project_id: ID of the project/config to use for simulation\n    request: Batch simulation configuration\n    background_tasks: FastAPI background tasks\n    organization: Authenticated organization\n\nReturns:\n    BatchSimulationResponse with simulation ID and status\n\nRaises:\n    HTTPException: If validation fails","operationId":"run_batch_simulation_projects__project_id__simulation_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSimulationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchSimulationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/single-simulation":{"post":{"tags":["Simulations"],"summary":"Run Single Simulation","description":"Start a single conversation simulation for a specific project.\nThis endpoint creates a new thread, returns the thread_id immediately, and runs the simulation in the background.\nThe simulation will stream messages to the websocket as it progresses.","operationId":"run_single_simulation_projects__project_id__single_simulation_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleSimulationRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleSimulationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/dashboard-stats":{"get":{"tags":["Projects"],"summary":"Get Dashboard Stats","description":"Get monthly usage statistics for a project","operationId":"get_dashboard_stats_projects__project_id__dashboard_stats_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"is_admin","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Is Admin"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/analyze-all":{"post":{"tags":["Projects"],"summary":"Analyze All Conversations For Project","description":"Start analysis of all conversations for a specific project using a 20-worker pool.","operationId":"analyze_all_conversations_for_project_projects__project_id__analyze_all_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/outreach-report":{"get":{"tags":["Outreach Report"],"summary":"Get Outreach Report","operationId":"get_outreach_report_projects__project_id__outreach_report_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"from_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"From Date"}},{"name":"to_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"To Date"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"UTC","title":"Tz"}},{"name":"compare","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compare"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/outreach-report/rows":{"get":{"tags":["Outreach Report"],"summary":"Get Outreach Report Rows","operationId":"get_outreach_report_rows_projects__project_id__outreach_report_rows_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"from_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"From Date"}},{"name":"to_date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"To Date"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"UTC","title":"Tz"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/messages/search":{"get":{"tags":["Messages"],"summary":"Search Project Messages","description":"Newest-first messages across a project's threads that contain the query text.","operationId":"search_project_messages_projects__project_id__messages_search_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"query","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":200,"title":"Query"}},{"name":"types","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated thread types to search.","default":"NORMAL","title":"Types"},"description":"Comma-separated thread types to search."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectMessageSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/env-variables":{"post":{"tags":["Project Environment"],"summary":"Create Env Variable","description":"Create a new environment variable for a project.","operationId":"create_env_variable_projects__project_id__env_variables_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvVariableInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/env-variables/{variable_id}":{"put":{"tags":["Project Environment"],"summary":"Update Env Variable","description":"Update an environment variable.","operationId":"update_env_variable_projects__project_id__env_variables__variable_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"variable_id","in":"path","required":true,"schema":{"type":"string","title":"Variable Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvVariableInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Project Environment"],"summary":"Delete Env Variable","description":"Delete an environment variable.","operationId":"delete_env_variable_projects__project_id__env_variables__variable_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"variable_id","in":"path","required":true,"schema":{"type":"string","title":"Variable Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/env-secrets":{"post":{"tags":["Project Environment"],"summary":"Create Env Secret","description":"Create a new environment secret for a project.","operationId":"create_env_secret_projects__project_id__env_secrets_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvSecretInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/env-secrets/{secret_id}":{"delete":{"tags":["Project Environment"],"summary":"Delete Env Secret","description":"Delete an environment secret.","operationId":"delete_env_secret_projects__project_id__env_secrets__secret_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/projects/{project_id}/env-secrets/{secret_id}/test-default":{"put":{"tags":["Project Environment"],"summary":"Update Env Secret Test Default","description":"Update the test default value for an environment secret.","operationId":"update_env_secret_test_default_projects__project_id__env_secrets__secret_id__test_default_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"secret_id","in":"path","required":true,"schema":{"type":"string","title":"Secret Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvSecretTestDefaultInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/usage":{"get":{"tags":["Organizations"],"summary":"Get Organizations Usage","description":"Get usage data for all organizations that have a stripe_subscription_id for the past natural month.","operationId":"get_organizations_usage_organizations_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/organizations/{org_id}/stripe":{"post":{"tags":["Organizations"],"summary":"Report Past Natural Month Usage To Stripe","description":"Report usage of the past natural month to the active subscription in Stripe.","operationId":"report_past_natural_month_usage_to_stripe_organizations__org_id__stripe_post","parameters":[{"name":"org_id","in":"path","required":true,"schema":{"type":"string","title":"Org Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/billing":{"patch":{"tags":["Organizations"],"summary":"Update Organization Billing","description":"Update an organization's billing configuration.","operationId":"update_organization_billing_organizations_billing_patch","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/custom-modules":{"get":{"tags":["Organizations"],"summary":"Get Custom Modules","description":"Return all custom modules available to attach (disk scan).\n\nAttachment is now per-config and versioned; the selected list lives on the\nconfig template, not the organization.","operationId":"get_custom_modules_organizations_custom_modules_get","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/organizations/dashboard-stats":{"get":{"tags":["Organizations"],"summary":"Get Dashboard Stats","description":"Get monthly usage statistics for a set of thread IDs for the past 5 months","operationId":"get_dashboard_stats_organizations_dashboard_stats_get","parameters":[{"name":"is_admin","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Is Admin"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/functions":{"post":{"tags":["Billing"],"summary":"Create Billing Function","operationId":"create_billing_function_billing_functions_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingFunctionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/functions/{function_id}":{"put":{"tags":["Billing"],"summary":"Update Billing Function","operationId":"update_billing_function_billing_functions__function_id__put","parameters":[{"name":"function_id","in":"path","required":true,"schema":{"type":"string","title":"Function Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingFunctionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases":{"post":{"tags":["Knowledge Bases"],"summary":"Insert Knowledge Base","operationId":"insert_knowledge_base_knowledge_bases_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsertKnowledgeBaseInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Knowledge Bases"],"summary":"Get Knowledge Bases","operationId":"get_knowledge_bases_knowledge_bases_get","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases/{knowledge_base_id}/documents":{"post":{"tags":["Knowledge Bases"],"summary":"Insert Knowledge Base Document","operationId":"insert_knowledge_base_document_knowledge_bases__knowledge_base_id__documents_post","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_insert_knowledge_base_document_knowledge_bases__knowledge_base_id__documents_post"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Knowledge Bases"],"summary":"Get Documents From Knowledge Base","operationId":"get_documents_from_knowledge_base_knowledge_bases__knowledge_base_id__documents_get","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases/{knowledge_base_id}":{"delete":{"tags":["Knowledge Bases"],"summary":"Delete Knowledge Base","operationId":"delete_knowledge_base_knowledge_bases__knowledge_base_id__delete","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Knowledge Bases"],"summary":"Update Knowledge Base","operationId":"update_knowledge_base_knowledge_bases__knowledge_base_id__patch","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateKnowledgeBaseInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Knowledge Bases"],"summary":"Get Knowledge Base","operationId":"get_knowledge_base_knowledge_bases__knowledge_base_id__get","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases/{knowledge_base_id}/documents/{document_id}":{"get":{"tags":["Knowledge Bases"],"summary":"Get Document From Knowledge Base","operationId":"get_document_from_knowledge_base_knowledge_bases__knowledge_base_id__documents__document_id__get","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Knowledge Bases"],"summary":"Delete Document From Knowledge Base","operationId":"delete_document_from_knowledge_base_knowledge_bases__knowledge_base_id__documents__document_id__delete","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Knowledge Bases"],"summary":"Update Document Content","description":"Partially update document content and re-index","operationId":"update_document_content_knowledge_bases__knowledge_base_id__documents__document_id__patch","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDocumentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases/{knowledge_base_id}/text-documents":{"post":{"tags":["Knowledge Bases"],"summary":"Create Text Document","description":"Create a new text document directly from text","operationId":"create_text_document_knowledge_bases__knowledge_base_id__text_documents_post","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTextDocumentInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/knowledge-bases/{knowledge_base_id}/documents/{document_id}/content":{"get":{"tags":["Knowledge Bases"],"summary":"Get Document Content","description":"Get document content","operationId":"get_document_content_knowledge_bases__knowledge_base_id__documents__document_id__content_get","parameters":[{"name":"knowledge_base_id","in":"path","required":true,"schema":{"type":"string","title":"Knowledge Base Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-credentials/project/get":{"post":{"tags":["AI Credentials"],"summary":"Get Project Ai Credentials","operationId":"get_project_ai_credentials_ai_credentials_project_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectAiCredentialsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-credentials/project/update":{"post":{"tags":["AI Credentials"],"summary":"Update Project Ai Credentials","operationId":"update_project_ai_credentials_ai_credentials_project_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectAiCredentialsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-credentials/organization/get":{"post":{"tags":["AI Credentials"],"summary":"Get Organization Ai Credentials","operationId":"get_organization_ai_credentials_ai_credentials_organization_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai-credentials/organization/update":{"post":{"tags":["AI Credentials"],"summary":"Update Organization Ai Credentials","operationId":"update_organization_ai_credentials_ai_credentials_organization_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationAiCredentialsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/phone-call":{"post":{"tags":["Voice"],"summary":"Create Phone Call","description":"Find or create a thread for the given phone number and project, then initiate a phone call.","operationId":"create_phone_call_voice_phone_call_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","description":"API key for your Puppeteer organization.","title":"Authorization"},"description":"API key for your Puppeteer organization."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateThreadAndCallInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreadAndCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/voice/calls/{call_id}/retry":{"post":{"tags":["Voice"],"summary":"Retry Call","description":"Re-queue a phone call for execution. Only allowed when the call status is cancelled. UI shows retry only for internal users.","operationId":"retry_call_voice_calls__call_id__retry_post","parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/batch-phone-call":{"post":{"tags":["Voice"],"summary":"Create Threads And Calls Batch","description":"Creates multiple threads and starts batch phone calls. All calls use the same project.","operationId":"create_threads_and_calls_batch_voice_batch_phone_call_post","parameters":[{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBatchCallInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/{thread_id}/token":{"post":{"tags":["Voice"],"summary":"Voice Token","description":"Synchronous web-call token endpoint. Kept for legacy integrations.\n\nMirrors the preparation + duplicate-guard semantics of ``/voice/{thread_id}/web-call``,\nbut returns the Retell access token inline so existing consumers (dashboard,\nSalesforce integration) keep working without a websocket.","operationId":"voice_token_voice__thread_id__token_post","deprecated":true,"parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceTokenInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/{thread_id}/phone-call":{"post":{"tags":["Voice"],"summary":"Create Phone Call In Thread","description":"Create a phone call for the specified thread. The callee number is parsed and validated, and the call is initiated or scheduled based on the input.","operationId":"create_phone_call_in_thread_voice__thread_id__phone_call_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneCallInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCallInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true},"delete":{"tags":["Voice"],"summary":"End Phone Call","description":"End an active phone call for a thread.","operationId":"end_phone_call_voice__thread_id__phone_call_delete","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndPhoneCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/voice/retell-accounts/{project_id}":{"get":{"tags":["Voice"],"summary":"Get Retell Accounts For Project","description":"Get retell accounts for a project (public info only: id, name and phone number).","operationId":"get_retell_accounts_for_project_voice_retell_accounts__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RetellAccountPublicInfo"},"title":"Response Get Retell Accounts For Project Voice Retell Accounts  Project Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/voice-accounts/{project_id}":{"get":{"tags":["Voice"],"summary":"Get Voice Accounts For Project","description":"Get self-hosted voice accounts for a project (public info only: id, name and phone number).","operationId":"get_voice_accounts_for_project_voice_voice_accounts__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"thread_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VoiceAccountPublicInfo"},"title":"Response Get Voice Accounts For Project Voice Voice Accounts  Project Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice/{thread_id}/web-call":{"post":{"tags":["Voice"],"summary":"Create Web Call In Thread","description":"Create a new web voice call for a thread. Queues the call for setup; once ready, the access token will be delivered to the client via WebSocket.","operationId":"create_web_call_in_thread_voice__thread_id__web_call_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceTokenInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-public":true}},"/voice/healthie-org-call":{"post":{"tags":["Voice - Healthie"],"summary":"Healthie Org Phone Call","operationId":"healthie_org_phone_call_voice_healthie_org_call_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthiePhoneCallInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/voice/route":{"get":{"tags":["Voice - Internal"],"summary":"Resolve Route","description":"Map an inbound number to its project + voice config (inbound routing).","operationId":"resolve_route_internal_voice_route_get","parameters":[{"name":"to","in":"query","required":true,"schema":{"type":"string","title":"To"}},{"name":"X-Internal-Token","in":"header","required":true,"schema":{"type":"string","title":"X-Internal-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceRouteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/voice/calls/inbound":{"post":{"tags":["Voice - Internal"],"summary":"Create Inbound Call","description":"Create the thread + conversation + CallModel for an inbound phone call.\n\nMirrors the legacy Retell inbound branch (voice.py) but driven by\nVoiceAccount: resolve project by the dialed number, reuse or create the\ncaller's thread, start the conversation, run BeforeCallCreationTrigger, and\npre-create the CallModel so the LLM websocket takes the existing ``if call:``\npath. Returns the minted call id the voice service streams against.","operationId":"create_inbound_call_internal_voice_calls_inbound_post","parameters":[{"name":"X-Internal-Token","in":"header","required":true,"schema":{"type":"string","title":"X-Internal-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundCallRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/voice/calls/{call_id}/config":{"get":{"tags":["Voice - Internal"],"summary":"Get Call Config","description":"Resolve the per-call voice config (voice/language/speed) from the call id.\n\nThe browser only ever holds the call id; the voice service fetches the\nproject's voice settings here at offer time so config stays server-side.","operationId":"get_call_config_internal_voice_calls__call_id__config_get","parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"X-Internal-Token","in":"header","required":true,"schema":{"type":"string","title":"X-Internal-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceCallConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/voice/calls/{call_id}/lifecycle":{"post":{"tags":["Voice - Internal"],"summary":"Call Lifecycle","description":"Signal call connect / end.\n\n`call_started` schedules at-start triggers, marks the call ongoing with its\nstart timestamp, and broadcasts connection to the UI (the LLM websocket\nhandler still owns the \"Call started\" memory message). `call_ended`\nbroadcasts the hang-up, records end timestamp / duration / disconnection\nreason, marks the call ended in memory, and ends the conversation — which\nfires the in-house llm_analysis_schema analysis. end_conversation is\nidempotent, so this is safe even when the agent already ended the call itself.\n\nRetell's webhook used to write these CallModel lifecycle fields; the voice\nservice replaces that path, so we set them here (epoch-second timestamps and\nmillisecond duration, matching the Retell column semantics the UI renders).","operationId":"call_lifecycle_internal_voice_calls__call_id__lifecycle_post","parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"X-Internal-Token","in":"header","required":true,"schema":{"type":"string","title":"X-Internal-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LifecycleEvent"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Call Lifecycle Internal Voice Calls  Call Id  Lifecycle Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/voice/calls/{call_id}/recording":{"post":{"tags":["Voice - Internal"],"summary":"Upload Recording","description":"Upload recording bytes to S3 and store the object key (presigned fresh on read).","operationId":"upload_recording_internal_voice_calls__call_id__recording_post","parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"string","title":"Call Id"}},{"name":"X-Internal-Token","in":"header","required":true,"schema":{"type":"string","title":"X-Internal-Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Upload Recording Internal Voice Calls  Call Id  Recording Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice_accounts":{"post":{"tags":["Voice"],"summary":"Create Voice Account","operationId":"create_voice_account_voice_accounts_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVoiceAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice_accounts/{voice_account_id}":{"patch":{"tags":["Voice"],"summary":"Update Voice Account","operationId":"update_voice_account_voice_accounts__voice_account_id__patch","parameters":[{"name":"voice_account_id","in":"path","required":true,"schema":{"type":"string","title":"Voice Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVoiceAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/voice_accounts/{voice_account_id}/provision_number":{"post":{"tags":["Voice"],"summary":"Provision Voice Account Number","description":"Buy a Twilio number via the voice service and bind it to this account.\n\nThe voice service holds the Twilio credentials and points the new number's\ninbound webhook at its own /twiml/inbound; core only persists the resulting\nE.164 number so inbound routing (get_by_phone_number) can resolve it.","operationId":"provision_voice_account_number_voice_accounts__voice_account_id__provision_number_post","parameters":[{"name":"voice_account_id","in":"path","required":true,"schema":{"type":"string","title":"Voice Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionNumberInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts":{"post":{"tags":["Retell"],"summary":"Create Retell Account","operationId":"create_retell_account_retell_accounts_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRetellAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts/{retell_account_id}":{"patch":{"tags":["Retell"],"summary":"Update Retell Account","operationId":"update_retell_account_retell_accounts__retell_account_id__patch","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRetellAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts/{retell_account_id}/call_control":{"put":{"tags":["Retell"],"summary":"Set Call Control","description":"Move a Retell account between Retell-owned and Twilio-owned calls, flag and number together.","operationId":"set_call_control_retell_accounts__retell_account_id__call_control_put","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCallControlInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts/{retell_account_id}/passthrough":{"put":{"tags":["Retell"],"summary":"Set Passthrough","description":"Send inbound calls straight to the passthrough number, so the agent never answers, or stop doing so.","operationId":"set_passthrough_retell_accounts__retell_account_id__passthrough_put","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPassthroughInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts/{retell_account_id}/warm_transfer_agent":{"post":{"tags":["Retell"],"summary":"Create Warm Transfer Agent","description":"Provision a Retell-native Conversation Flow agent for warm transfers.\n\nCreates the mediator transfer agent (Retell LLM + agent), the scaffold flow +\nwarm-transfer agent, and buys a new phone number bound to that agent. The flow\nperforms an *agentic* warm transfer, handing the recipient leg to the mediator,\nwhich gates on a live human and decides bridge-vs-cancel. Stores the resulting\nIDs and phone number on the existing RetellAccount row.","operationId":"create_warm_transfer_agent_retell_accounts__retell_account_id__warm_transfer_agent_post","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Retell"],"summary":"Delete Warm Transfer Agent","description":"Delete the warm-transfer agent for a RetellAccount.\n\nTears down the warm-transfer agent + conversation flow and the mediator\ntransfer agent (and its LLM) on Retell's side (best-effort), then clears the\npersisted IDs on the account row.","operationId":"delete_warm_transfer_agent_retell_accounts__retell_account_id__warm_transfer_agent_delete","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell_accounts/{retell_account_id}/warm_transfer_stats":{"get":{"tags":["Retell"],"summary":"Get Warm Transfer Stats","description":"Aggregate counters + recent warm-transfer calls for a RetellAccount.","operationId":"get_warm_transfer_stats_retell_accounts__retell_account_id__warm_transfer_stats_get","parameters":[{"name":"retell_account_id","in":"path","required":true,"schema":{"type":"string","title":"Retell Account Id"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/retell/warm_transfer_webhook":{"post":{"tags":["Retell"],"summary":"Handle Warm Transfer Webhook","description":"Webhook for the warm-transfer Retell agent.\n\nSeparate from `/retell/webhook` because warm-transfer calls don't pre-exist\nin our DB (we don't know the retell_call_id until Retell creates the call).\nThis handler *upserts* the call row, linking it to the originating voice\ncall via the `voice_call_id` dynamic variable we set in\n`WarmTransferCallAction._execute`.","operationId":"handle_warm_transfer_webhook_retell_warm_transfer_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/retell/dynamic_variables":{"post":{"tags":["Retell"],"summary":"Handle Dynamic Variables","description":"Inbound-call hook for the warm-transfer phone number.\n\nRegistered as the phone number's `inbound_webhook_url`. Retell hits this\nbefore answering an inbound call; we match by (from_number, to_number)\nagainst the Redis stash `WarmTransferCallAction` wrote just before the\ncold transfer, and return the briefing + destination as\n`dynamic_variables` so the warm-transfer flow starts with\n{{transfer_number}} / {{briefing}} populated. Response shape follows\nRetell's inbound-webhook contract: {\"call_inbound\": {\"dynamic_variables\": {...}}}.","operationId":"handle_dynamic_variables_retell_dynamic_variables_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/retell/webhook":{"post":{"tags":["Retell"],"summary":"Handle Webhook","operationId":"handle_webhook_retell_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/twilio_accounts":{"post":{"tags":["Twilio"],"summary":"Create Twilio Account","operationId":"create_twilio_account_twilio_accounts_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTwilioAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio_accounts/{twilio_account_id}":{"patch":{"tags":["Twilio"],"summary":"Update Twilio Account","operationId":"update_twilio_account_twilio_accounts__twilio_account_id__patch","parameters":[{"name":"twilio_account_id","in":"path","required":true,"schema":{"type":"string","title":"Twilio Account Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTwilioAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio/status-callback":{"post":{"tags":["Twilio"],"summary":"Twilio Status Callback","description":"Receives Twilio status callbacks for message delivery tracking.\n\nPossible MessageStatus values:\n- queued: Message accepted by Twilio\n- sent: Sent to carrier\n- delivered: Successfully delivered\n- failed: Delivery failed\n- undelivered: Could not be delivered","operationId":"twilio_status_callback_twilio_status_callback_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-Twilio-Signature","in":"header","required":true,"schema":{"type":"string","title":"X-Twilio-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio/voice/inbound":{"post":{"tags":["Twilio"],"summary":"Twilio Voice Inbound","description":"Answer an inbound PSTN call: bridge it to a freshly registered Retell call, or pass it through.","operationId":"twilio_voice_inbound_twilio_voice_inbound_post","parameters":[{"name":"attempt","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Attempt"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio/voice/outbound":{"post":{"tags":["Twilio"],"summary":"Twilio Voice Outbound","description":"Bridge an answered outbound call to the Retell call registered for it.","operationId":"twilio_voice_outbound_twilio_voice_outbound_post","parameters":[{"name":"call_id","in":"query","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio/voice/agent-ended":{"post":{"tags":["Twilio"],"summary":"Twilio Voice Agent Ended","description":"Retell's leg ended. Dial the pending transfer destination, or hang up.","operationId":"twilio_voice_agent_ended_twilio_voice_agent_ended_post","parameters":[{"name":"call_id","in":"query","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/twilio/voice/transfer-result":{"post":{"tags":["Twilio"],"summary":"Twilio Voice Transfer Result","description":"Record how the transfer leg ended. Replaces the transfer result Retell reported.","operationId":"twilio_voice_transfer_result_twilio_voice_transfer_result_post","parameters":[{"name":"call_id","in":"query","required":true,"schema":{"type":"string","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthie-integration/get":{"post":{"tags":["Healthie"],"summary":"Get Healthie Integration","operationId":"get_healthie_integration_healthie_integration_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthieIntegrationInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthie-integration/update":{"post":{"tags":["Healthie"],"summary":"Update Healthie Integration","operationId":"update_healthie_integration_healthie_integration_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHealthieIntegrationInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/healthie":{"post":{"tags":["Webhooks - Healthie"],"summary":"Receive Healthie Webhook","description":"Healthie webhook endpoint that processes various event types.\n\nThis endpoint:\n1. Validates the webhook signature\n2. Fetches the resource data from Healthie\n3. Finds or creates a thread based on healthie_user_id\n4. Triggers ReceivedHealthieWebhookTrigger with the webhook data\n\nSupported resource types: Appointment, Document, FormAnswerGroup","operationId":"receive_healthie_webhook_webhook_healthie_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/infobip-account/get":{"post":{"tags":["Infobip"],"summary":"Get Infobip Account","operationId":"get_infobip_account_infobip_account_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfobipAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/infobip-account/update":{"post":{"tags":["Infobip"],"summary":"Update Infobip Account","operationId":"update_infobip_account_infobip_account_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInfobipAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/infobip/webhook":{"post":{"tags":["Webhooks - Infobip"],"summary":"Infobip Webhook","description":"Endpoint that receives messages from Infobip.\nIdentifies organization and project via explicit query param (project_id) and validates API key from Authorization header.","operationId":"infobip_webhook_infobip_webhook_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InfobipWebhookPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/iterable-account/get":{"post":{"tags":["Iterable"],"summary":"Get Iterable Account","operationId":"get_iterable_account_iterable_account_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IterableAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/iterable-account/update":{"post":{"tags":["Iterable"],"summary":"Update Iterable Account","operationId":"update_iterable_account_iterable_account_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIterableAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/iterable/webhook":{"post":{"tags":["Webhooks - Iterable"],"summary":"Iterable Webhook","description":"Receives Iterable system webhook events (smsSend, smsReceived).\n\nIdentifies the project via the explicit `project_id` query param and validates the\nrequest against the per-project IterableAccountModel.webhook_secret.","operationId":"iterable_webhook_iterable_webhook_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-Iterable-Webhook-Secret","in":"header","required":true,"schema":{"type":"string","title":"X-Iterable-Webhook-Secret"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IterableWebhookPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/tellescope":{"post":{"tags":["Webhooks - Tellescope"],"summary":"Receive Tellescope Webhook","description":"Tellescope webhook endpoint that processes webhook events.\n\nThis endpoint:\n1. Receives webhook data from Tellescope (requires Authorization API key header)\n2. Extracts the user ID from the webhook payload\n3. Finds or creates a thread based on tellescope_user_id\n4. Triggers ReceivedTellescopeWebhookTrigger with the webhook data\n\nExpected webhook payload should contain:\n- tellescope_user_id: The Tellescope user ID\n- event_type (optional): The type of event\n    - Example: \"user_created\", \"medication_shipped\", \"appointment_scheduled\", \"appointment_cancelled\"\n    - Each event should be set on the Tellescope step body as \"event_type\": \"event\",\n- Additional data fields as needed:\n    - Example: appointment_date, medication_name, medication_quantity, etc.\n- Example webhook payload:\n    {\n        \"tellescope_user_id\": \"123456\",\n        \"event_type\": \"user_created\",\n        \"appointment_date\": \"2026-01-15\",\n        \"medication_name\": \"Medication A\",\n        \"medication_quantity\": 100\n    }","operationId":"receive_tellescope_webhook_webhook_tellescope_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calid-integration/get":{"post":{"tags":["Cal.id"],"summary":"Get Calid Integration","operationId":"get_calid_integration_calid_integration_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalidIntegrationInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calid-integration/update":{"post":{"tags":["Cal.id"],"summary":"Update Calid Integration","operationId":"update_calid_integration_calid_integration_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCalidIntegrationInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/calid/webhook":{"post":{"tags":["Webhooks - Cal.id"],"summary":"Calid Webhook","description":"Receives a Cal.id (OneHash) BOOKING_CREATED webhook and schedules an\noutbound call to the booker. In-hours webhooks (8:00-20:00 in the attendee's\ntimezone, any day) dial immediately; off-hours ones defer to 11:00 on the\nnext day, rolling to Monday when that would fall on a weekend.\n\nTenant is resolved via the explicit `project_id` query param; the request is\nverified against the project's dedicated `calid_webhook_secret` (HMAC-SHA256\nover the raw body, matching Cal.id's X-Cal-Signature-256 — set the same value\nas the Cal.id webhook Secret, via /calid-integration/update). The org's agent\n+ caller number are resolved by `create_scheduled_call`.","operationId":"calid_webhook_calid_webhook_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"X-Cal-Signature-256","in":"header","required":true,"schema":{"type":"string","title":"X-Cal-Signature-256"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalidWebhookBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presence/sessions":{"post":{"tags":["Tavus"],"summary":"Start Session","operationId":"start_session_presence_sessions_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSessionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presence/sessions/{session_id}/end":{"post":{"tags":["Tavus"],"summary":"End Session","description":"Forcibly end a presence session before Tavus's auto-end timers fire.\n\nJust asks Tavus to end the conversation. Local teardown (persona delete,\nmark row ended) happens on the resulting `system.shutdown` webhook, so\nthis endpoint has nothing to do beyond the Tavus call.","operationId":"end_session_presence_sessions__session_id__end_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presence/llm/{token}/chat/completions":{"post":{"tags":["Tavus"],"summary":"Custom Llm","operationId":"custom_llm_presence_llm__token__chat_completions_post","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presence/webhook/{account_token}":{"post":{"tags":["Tavus"],"summary":"Tavus Webhook","operationId":"tavus_webhook_presence_webhook__account_token__post","parameters":[{"name":"account_token","in":"path","required":true,"schema":{"type":"string","title":"Account Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Tavus Webhook Presence Webhook  Account Token  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tavus-account/get":{"post":{"tags":["Tavus"],"summary":"Get Tavus Account","operationId":"get_tavus_account_tavus_account_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TavusAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tavus-account/update":{"post":{"tags":["Tavus"],"summary":"Update Tavus Account","operationId":"update_tavus_account_tavus_account_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTavusAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vital/":{"get":{"tags":["Webhooks - Vital"],"summary":"Get Vital Data","operationId":"get_vital_data_vital__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/vital/webhook":{"post":{"tags":["Webhooks - Vital"],"summary":"Webhook","operationId":"webhook_vital_webhook_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/epic/after-auth":{"get":{"tags":["Epic"],"summary":"After Auth","operationId":"after_auth_epic_after_auth_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},{"name":"error_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Description"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/slack/events/{project_id}":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Webhook endpoint for Slack events.\n\nThis endpoint receives events from Slack for a specific project.\nEach project should configure their Slack app's Event Subscriptions URL to point to:\nhttps://api.puppeterai.com/slack/events/{project_id}","operationId":"slack_events_slack_events__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/swing-appointments":{"post":{"tags":["Appointment Opening"],"summary":"Receive Swing Appointment Webhook","description":"Webhook for Swing appointment openings (legacy endpoint, already configured in Healthie).","operationId":"receive_swing_appointment_webhook_webhook_swing_appointments_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhook/appointment-openings":{"post":{"tags":["Appointment Opening"],"summary":"Receive Generic Appointment Webhook","description":"Generic webhook for appointment openings.\nAutomatically determines the flag_key based on which flag has this project configured.\n\nTODO: O(n) lookup - refactor if number of clients increases.","operationId":"receive_generic_appointment_webhook_webhook_appointment_openings_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/appointment-openings/{opening_id}/cancel":{"post":{"tags":["Appointment Opening"],"summary":"Cancel Opening","description":"Cancel an appointment opening and all its scheduled calls.","operationId":"cancel_opening_appointment_openings__opening_id__cancel_post","parameters":[{"name":"opening_id","in":"path","required":true,"schema":{"type":"string","title":"Opening Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string","description":"Project ID that the opening belongs to","title":"Project Id"},"description":"Project ID that the opening belongs to"},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelOpeningRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/appointment-openings/{opening_id}/resume":{"post":{"tags":["Appointment Opening"],"summary":"Resume Opening","description":"Resume a previously cancelled or failed appointment opening by:\n1. Marking the opening back to IN_PROGRESS\n2. Dispatching the next call for this opening in the background","operationId":"resume_opening_appointment_openings__opening_id__resume_post","parameters":[{"name":"opening_id","in":"path","required":true,"schema":{"type":"string","title":"Opening Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string","description":"Project ID that the opening belongs to","title":"Project Id"},"description":"Project ID that the opening belongs to"},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/appointment-openings/{opening_id}/candidates":{"get":{"tags":["Appointment Opening"],"summary":"List Opening Candidates","description":"List the queued candidates for an appointment opening.\n\nEach row shows what state the candidate ended up in (PENDING / IN_PROGRESS / CALLED /\nSKIPPED / DEFERRED) and the skip_reason if any. Rows are returned in chronological\norder; the UI groups by `created_at` date so retried openings (daily trigger or\nresume flow) surface each day as a separate section.","operationId":"list_opening_candidates_appointment_openings__opening_id__candidates_get","parameters":[{"name":"opening_id","in":"path","required":true,"schema":{"type":"string","title":"Opening Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string","description":"Project ID that the opening belongs to","title":"Project Id"},"description":"Project ID that the opening belongs to"},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthie-sync/trigger":{"post":{"tags":["Appointment Opening"],"summary":"Trigger Healthie Sync","description":"Manually trigger Healthie sync for a project.\n\nFetches users and appointments from Healthie and stores them in local cache.\nQueue builders will use this cached data instead of making Healthie API calls.","operationId":"trigger_healthie_sync_healthie_sync_trigger_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","description":"Project ID to sync Healthie data for","title":"Project Id"},"description":"Project ID to sync Healthie data for"},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sleep-apnea-leads/start-chat":{"post":{"tags":["Clients"],"summary":"Chat","operationId":"chat_sleep_apnea_leads_start_chat_post","parameters":[{"name":"phone","in":"query","required":true,"schema":{"type":"string","title":"Phone"}},{"name":"notion_page_id","in":"query","required":true,"schema":{"type":"string","title":"Notion Page Id"}},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"sleep_apnea_dashboard","title":"Project Name"}},{"name":"agent_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/my-home-doctor/start-chat":{"post":{"tags":["Clients"],"summary":"Chat","description":"Creates chat threads for each CSV row, processing them concurrently with controlled concurrency.\nEach row becomes a thread with voice phone number setted and data sent to puppeteer.\nAfter all successful threads are created, initiates a single batch call for all processed rows.","operationId":"chat_my_home_doctor_start_chat_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_chat_my_home_doctor_start_chat_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/my-home-doctor/start-chat-sms":{"post":{"tags":["Clients"],"summary":"Chat No Calls","description":"Creates chat threads for each CSV row, processing them concurrently with controlled concurrency.\nEach row becomes a thread with voice phone number setted and data sent to puppeteer.\nDoes NOT initiate any phone calls - only creates threads and sends data.","operationId":"chat_no_calls_my_home_doctor_start_chat_sms_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_chat_no_calls_my_home_doctor_start_chat_sms_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/magnusmed/start-chat":{"post":{"tags":["Clients"],"summary":"Chat","description":"Creates a chat thread per CSV row and schedules a low-priority phone call\nfor it. Call start times are staggered per \"hubspot_state\" to spread load\nacross states (see state_interval_minutes; defaults to\nDEFAULT_STATE_INTERVAL_MINUTES), and deferred to the next non-holiday day\nwhen the upload lands on a US federal holiday in that state's timezone.","operationId":"chat_magnusmed_start_chat_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"state_interval_minutes","in":"query","required":false,"schema":{"type":"integer","default":12,"title":"State Interval Minutes"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_chat_magnusmed_start_chat_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/magnusmed/hubspot-webhook":{"post":{"tags":["Clients"],"summary":"Hubspot Webhook","description":"Receives a HubSpot record id, call_number, and home_state, ensures a\nthread exists for the contact, and schedules the contact's info to reach the\nconfig as a json_input at the contact's local business hours, so the\nfirst-touch SMS (via the config's ReceivedJsonInputTrigger wiring) lands at a\nsensible local time rather than whenever HubSpot posts. No call is scheduled\nhere: the voice call is booked later by the agent itself through\nScheduleCallAction. The contact phone (normalized) and a home_state-derived\ntimezone hint are forwarded so the config can text — and later call — the\nsame number.","operationId":"hubspot_webhook_magnusmed_hubspot_webhook_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubspotWebhookPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/magnusmed/hubspot-checkin-webhook":{"post":{"tags":["Clients"],"summary":"Hubspot Checkin Webhook","description":"Schedules the SMS check-in for a deal that just entered a pipeline stage; stages without a check-in are a no-op.","operationId":"hubspot_checkin_webhook_magnusmed_hubspot_checkin_webhook_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubspotCheckinPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/projects/{project_id}/leadstage-backfill":{"post":{"tags":["Clients"],"summary":"Start Leadstage Backfill","operationId":"start_leadstage_backfill_internal_projects__project_id__leadstage_backfill_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadStageBackfillInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/projects/{project_id}/leadstage-backfill/{job_id}":{"get":{"tags":["Clients"],"summary":"Get Leadstage Backfill Status","operationId":"get_leadstage_backfill_status_internal_projects__project_id__leadstage_backfill__job_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pear-care/start-chat":{"post":{"tags":["Clients"],"summary":"Chat","description":"Creates chat threads for each CSV row, processing them concurrently.\nEach row becomes a thread with voice phone number setted and data sent to puppeteer.","operationId":"chat_pear_care_start_chat_post","parameters":[{"name":"project_name","in":"query","required":true,"schema":{"type":"string","title":"Project Name"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_chat_pear_care_start_chat_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operator/callback":{"post":{"tags":["Operator"],"summary":"Operator Callback","operationId":"operator_callback_operator_callback_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"x-callback-token","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Callback-Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorCallbackPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Operator Callback Operator Callback Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operator/tasks/{operator_task_id}/documents/{doc_id}":{"get":{"tags":["Operator"],"summary":"Get Operator Task Document","description":"Stream one document the operator uploaded for a task.\n\nThe bytes live in the operator's storage behind its API key, so they are proxied rather than\nlinked. ``doc_id`` is checked against the descriptors the task's completion callback reported,\nwhich stops the proxy from being used to reach arbitrary operator objects.","operationId":"get_operator_task_document_operator_tasks__operator_task_id__documents__doc_id__get","parameters":[{"name":"operator_task_id","in":"path","required":true,"schema":{"type":"string","title":"Operator Task Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","title":"Doc Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/bulk-export/start":{"post":{"tags":["Clients"],"summary":"Start Bulk Export","description":"Create an eligibility flow and kick off its FHIR bulk exports in the background.\n\nArgs:\n    input: Request body containing:\n        - project_id: UUID of the project\n        - single_job: If True, only creates patients-with-pcp job. If False (default), creates both patients-with-pcp and patients-no-pcp jobs.\n    Example:\n    {\n        \"project_id\": \"uuid-del-project\",\n        \"single_job\": false\n    }\n    authorization: API key for authentication.\n\nReturns:\n    dict: The created eligibility flow id. Job creation failures are reported on the flow.","operationId":"start_bulk_export_enhanced_bulk_export_start_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartBulkExportInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/bulk-export/register":{"post":{"tags":["Clients"],"summary":"Register Bulk Export Jobs","description":"Register existing ECW bulk export jobs in the database.\n\nThis endpoint creates an eligibility flow and EnhancedJob records for jobs\nthat were already created via ECW's API externally. It does not call ECW's API.\n\nArgs:\n    input: Request body containing:\n        - project_id: Project ID\n        - patients_with_pcp_job_url: ECW job URL for patients-with-pcp group (required)\n        - patients_no_pcp_job_url: ECW job URL for patients-no-pcp group (optional)\n        - convertible_visits_enabled: enable convertible-visit detection (optional, default True)\n        - operator_enabled: enable future-visit lookup and operator flow (optional, default False)\n        - operator_automatic: auto-submit the operator prompt batch (optional, default False)\n        - created_at: ISO 8601 reference date for the flow (optional, defaults to now); eligibility\n          windows anchor on it and future visits are looked up for the following day\n    Example with both jobs:\n    {\n        \"project_id\": \"uuid-del-project\",\n        \"patients_with_pcp_job_url\": \"https://fhir4.eclinicalworks.com/fhir/r4/...\",\n        \"patients_no_pcp_job_url\": \"https://fhir4.eclinicalworks.com/fhir/r4/...\"\n    }\n    Example with only patients-with-pcp:\n    {\n        \"project_id\": \"uuid-del-project\",\n        \"patients_with_pcp_job_url\": \"https://fhir4.eclinicalworks.com/fhir/r4/...\"\n    }\n    authorization: API key for authentication.\n\nReturns:\n    dict: Dictionary with eligibility_flow_id and job IDs.","operationId":"register_bulk_export_jobs_enhanced_bulk_export_register_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterBulkExportJobsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/bulk-export/seed":{"post":{"tags":["Clients"],"summary":"Seed Eligibility Flow","description":"Create a completed eligibility flow with no patients for testing purposes.\n\nCreates a flow and a single job, both marked as COMPLETED immediately.\nNo FHIR calls are made and the poller will not pick up these jobs.","operationId":"seed_eligibility_flow_enhanced_bulk_export_seed_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeedEligibilityFlowInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/bulk-export/retag":{"post":{"tags":["Clients"],"summary":"Retag Eligibility Flow","description":"Re-run tagging and find convertible visits for a completed eligibility flow.\n\nThis endpoint re-runs tag_patients_eligibility and find_convertible_visits\nper-job on an eligibility flow that has already completed.\nUseful for re-processing after data changes or configuration updates.\n\nArgs:\n    input: Request body containing eligibility_flow_id.\n    Example:\n    {\n        \"eligibility_flow_id\": \"uuid-del-eligibility-flow\"\n    }\n    authorization: API key for authentication.\n\nReturns:\n    dict: Dictionary with completion status and results.","operationId":"retag_eligibility_flow_enhanced_bulk_export_retag_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetagBulkExportInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/exclude-patients-by-csv":{"post":{"tags":["Clients"],"summary":"Exclude Patients By Csv","description":"Exclude patients from an eligibility flow based on CSV data.\n\n    This endpoint reads a CSV file with patient information and marks matching patients\n    as excluded. The CSV should have columns: Patient Name, DOB, Sex, Age, Tel No., Acc #.\n    Patients are matched by firstName, lastName, and birthDate.\n\n    Args:\n        input: Request body containing:\n            - eligibility_flow_id: UUID of the eligibility flow\n            - csv_data: CSV content as string with headers\n        Example:\n        {\n            \"eligibility_flow_id\": \"uuid-del-eligibility-flow\",\n            \"csv_data\": \"Patient Name,DOB,Sex,Age,Tel No.,Acc #\nSmith, John,01/15/1980,M,44,5551234567,12345\"\n        }\n        authorization: API key for authentication.\n\n    Returns:\n        dict: Dictionary with exclusion results.","operationId":"exclude_patients_by_csv_enhanced_exclude_patients_by_csv_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExcludePatientsByCsvInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/call-patients":{"post":{"tags":["Clients"],"summary":"Call Patients","description":"For each patient, creates a thread, sets its voice phone number, sends patient's data as JSON input, and starts a phone call.\nIf a patient already has an existing thread linked, it is reused.\n\nArgs:\n      input: Request body containing patient_ids and eligibility_flow_id.\n      authorization: API key for authentication.\n    {\n  \"patient_ids\": [\"patient-123\", \"patient-456\"],\n  \"eligibility_flow_id\": \"eligibility-flow-123\"\n    }\nReturns:\n      list: List of dictionaries with thread_id, call, and callee for each patient.","operationId":"call_patients_enhanced_call_patients_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartChatInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/bulk-export/jobs/{job_id}/resume":{"post":{"tags":["Clients"],"summary":"Resume Job","description":"Resume processing of a job that is in FAILED status.\n\nIf the job has output (failed during resource processing), it resumes download\nand processing without re-downloading URLs that have already been processed.\nIt checks which URLs from the job output have already been processed and only\nprocesses the remaining ones.\n\nIf the job has no output (failed during polling before the FHIR export completed),\nit resets the job to IN_PROGRESS with poll_failure_count=0 so the poller picks it\nup again automatically.\n\nArgs:\n    job_id: UUID of the EnhancedJob to resume\n    authorization: API key for authentication\n\nReturns:\n    dict: Status message indicating the job has been resumed","operationId":"resume_job_enhanced_bulk_export_jobs__job_id__resume_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/schedule-batch":{"post":{"tags":["Clients"],"summary":"Schedule Batch","description":"Schedule a batch of calls for an eligibility flow at a future time.","operationId":"schedule_batch_enhanced_schedule_batch_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleBatchInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/scheduled-batches":{"get":{"tags":["Clients"],"summary":"Get Scheduled Batches","description":"List scheduled batches for a project, optionally filtered by flow.","operationId":"get_scheduled_batches_enhanced_scheduled_batches_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"eligibility_flow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Eligibility Flow Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/cancel-batch":{"post":{"tags":["Clients"],"summary":"Cancel Batch","description":"Cancel a pending or in-progress batch.","operationId":"cancel_batch_enhanced_cancel_batch_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelBatchInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/resume-batch":{"post":{"tags":["Clients"],"summary":"Resume Batch","description":"Resume a failed batch from its last checkpoint.","operationId":"resume_batch_enhanced_resume_batch_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeBatchInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/register-visit":{"post":{"tags":["Clients"],"summary":"Register Visit","operationId":"register_visit_enhanced_register_visit_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterVisitInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/provider-blocked-dates":{"post":{"tags":["Clients"],"summary":"Get Provider Blocked Dates","operationId":"get_provider_blocked_dates_enhanced_provider_blocked_dates_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockedDatesInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/update-visit-outcome":{"post":{"tags":["Clients"],"summary":"Update Visit Outcome","operationId":"update_visit_outcome_enhanced_update_visit_outcome_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVisitOutcomeInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/outreach-call-trends":{"post":{"tags":["Clients"],"summary":"Get Outreach Call Trends","operationId":"get_outreach_call_trends_enhanced_outreach_call_trends_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutreachCallTrendsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/visit-metrics":{"post":{"tags":["Clients"],"summary":"Get Visit Metrics","operationId":"get_visit_metrics_enhanced_visit_metrics_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitMetricsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/convertible-visit-metrics":{"post":{"tags":["Clients"],"summary":"Get Convertible Visit Metrics","operationId":"get_convertible_visit_metrics_enhanced_convertible_visit_metrics_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertibleVisitMetricsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/visit-details":{"post":{"tags":["Clients"],"summary":"Get Visit Details","operationId":"get_visit_details_enhanced_visit_details_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitDetailsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/future-visits":{"post":{"tags":["Clients"],"summary":"List Future Visits","operationId":"list_future_visits_enhanced_future_visits_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FutureVisitsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-tasks/cancel":{"post":{"tags":["Clients"],"summary":"Cancel Operator Task","operationId":"cancel_operator_task_enhanced_operator_tasks_cancel_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorTaskActionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-tasks/test":{"post":{"tags":["Clients"],"summary":"Test Operator Task","operationId":"test_operator_task_enhanced_operator_tasks_test_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorTaskActionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/future-visit-metrics":{"post":{"tags":["Clients"],"summary":"Get Future Visit Metrics","operationId":"get_future_visit_metrics_enhanced_future_visit_metrics_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FutureVisitMetricsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/future-visit-details":{"post":{"tags":["Clients"],"summary":"Get Future Visit Details","operationId":"get_future_visit_details_enhanced_future_visit_details_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FutureVisitDetailsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/flow-settings/update":{"post":{"tags":["Clients"],"summary":"Update Flow Settings","operationId":"update_flow_settings_enhanced_flow_settings_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFlowSettingsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/eligibility-flow/exclusion-csv":{"post":{"tags":["Clients"],"summary":"Update Exclusion Csv","description":"Replace a running flow's exclusion CSV, until the exclusions are actually applied.","operationId":"update_exclusion_csv_enhanced_eligibility_flow_exclusion_csv_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExclusionCsvInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/control-group-metrics":{"post":{"tags":["Clients"],"summary":"Control Group Metrics","operationId":"control_group_metrics_enhanced_control_group_metrics_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlGroupMetricsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-task-manual-trigger":{"post":{"tags":["Clients"],"summary":"Manual Trigger Operator Task","operationId":"manual_trigger_operator_task_enhanced_operator_task_manual_trigger_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualTriggerInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-task-standalone-test":{"post":{"tags":["Clients"],"summary":"Standalone Test Operator Task","operationId":"standalone_test_operator_task_enhanced_operator_task_standalone_test_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandaloneTestInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-task-manual-trigger-batch":{"post":{"tags":["Clients"],"summary":"Batch Manual Trigger Operator Tasks","operationId":"batch_manual_trigger_operator_tasks_enhanced_operator_task_manual_trigger_batch_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchManualTriggerInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-task-events":{"post":{"tags":["Clients"],"summary":"Get Operator Task Events","operationId":"get_operator_task_events_enhanced_operator_task_events_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorTaskEventsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-account/get":{"post":{"tags":["Clients"],"summary":"Get Operator Account","operationId":"get_operator_account_enhanced_operator_account_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/operator-account/update":{"post":{"tags":["Clients"],"summary":"Update Operator Account","operationId":"update_operator_account_enhanced_operator_account_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOperatorAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/smoke-test-config/get":{"post":{"tags":["Clients"],"summary":"Get Smoke Test Config","operationId":"get_smoke_test_config_enhanced_smoke_test_config_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SmokeTestConfigInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhanced/smoke-test-config/update":{"post":{"tags":["Clients"],"summary":"Update Smoke Test Config","operationId":"update_smoke_test_config_enhanced_smoke_test_config_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSmokeTestConfigInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/longevity/healthie-users/{healthie_user_id}/thread":{"put":{"tags":["Clients"],"summary":"Ensure Thread For Healthie User","description":"Idempotently ensure a Puppeteer thread exists for the given Healthie patient.\n\nFetches patient data from Healthie before thread resolution so new threads are\ncreated with the voice phone number already set, and existing threads missing\na phone number are backfilled. Seeds json_data with email / full name /\nfirst name / last name / dob / location, matching the webhook path's outcome\nafter SetJsonDataFromWebhook + HealthieFetchUserData have run.\n\nReturns 201 when a new thread is created, 200 when an existing one is returned.","operationId":"ensure_thread_for_healthie_user_longevity_healthie_users__healthie_user_id__thread_put","parameters":[{"name":"healthie_user_id","in":"path","required":true,"schema":{"type":"string","title":"Healthie User Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureThreadRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureThreadResponse"}}}},"201":{"description":"Thread was created on this call.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureThreadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/longevity/documents/ingest":{"post":{"tags":["Clients"],"summary":"Ingest Pre Parsed Document","description":"Attach a pre-parsed document to a thread and fire the post-document workflow.\n\nMirrors the Healthie webhook path minus the download-and-parse step: the caller has\nalready produced the plain-text content and bounds-flagged results, so we store the\npayload in thread.json_data[\"documents\"] and trigger ReceivedHealthieWebhookTrigger.\nHealthieProcessWebhookDocument short-circuits on PreParsedDocument; every other action\nin the Longevity trigger step list runs unchanged.\n\nUpsert semantics on healthie_document_id: a re-send for the same document replaces\nthe stored entry in place and re-fires the trigger, so downstream state stays in sync\nwith whatever the Longevity dashboard produced most recently.","operationId":"ingest_pre_parsed_document_longevity_documents_ingest_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDocumentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDocumentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/rows":{"post":{"tags":["Clients"],"summary":"Create Referral Rows","description":"Append rows to the project's worksheet, left PENDING until they are run.","operationId":"create_referral_rows_csn_referrals_rows_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReferralRowsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Clients"],"summary":"List Referral Rows","description":"List the project's worksheet rows joined with their operator task status/result/recording.\n\n``created_from`` / ``created_to`` are inclusive calendar days in UTC, matched against a Calls\nrow's latest call and every other row's creation; omitting both returns every row.","operationId":"list_referral_rows_csn_referrals_rows_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"created_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Created From"}},{"name":"created_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Created To"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/rows/{row_id}/update":{"post":{"tags":["Clients"],"summary":"Update Referral Row","description":"Save an edited row. A row whose inputs changed returns to PENDING but keeps its result.","operationId":"update_referral_row_csn_referrals_rows__row_id__update_post","parameters":[{"name":"row_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Row Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReferralRowInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/rows/{row_id}/result":{"post":{"tags":["Clients"],"summary":"Update Referral Result","description":"Save hand-corrected figures for a row. A blank value drops that correction.","operationId":"update_referral_result_csn_referrals_rows__row_id__result_post","parameters":[{"name":"row_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Row Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReferralResultInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/rows/{row_id}/delete":{"post":{"tags":["Clients"],"summary":"Delete Referral Row","description":"Delete a row from the worksheet; refused while the row is running.","operationId":"delete_referral_row_csn_referrals_rows__row_id__delete_post","parameters":[{"name":"row_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Row Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteReferralRowInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/run":{"post":{"tags":["Clients"],"summary":"Run Referral Rows","description":"Submit the selected worksheet rows: Calls rows are phoned by the project's voice agent, the\nrest go to the operator, one deterministic batch per payor.","operationId":"run_referral_rows_csn_referrals_run_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunReferralRowsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/cancel":{"post":{"tags":["Clients"],"summary":"Cancel Referral Rows","description":"Cancel the selected in-flight rows; tasks the operator already started run to completion.","operationId":"cancel_referral_rows_csn_referrals_cancel_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelReferralRowsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/payor-credentials/get":{"post":{"tags":["Clients"],"summary":"Get Payor Credentials","description":"Report which payors have credentials configured (never returns secrets).","operationId":"get_payor_credentials_csn_referrals_payor_credentials_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayorCredentialsLookupInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/payor-credentials/update":{"post":{"tags":["Clients"],"summary":"Update Payor Credentials","description":"Upsert the per-payor portal configuration: credentials plus billing config.\n\n``totp_secret`` is the portal's authenticator (TOTP) base32 seed; the operator\ngenerates the rotating 2FA code from it at login time. ``billing_provider`` and\n``service_line`` are the non-secret per-payor defaults merged into every task's params.","operationId":"update_payor_credentials_csn_referrals_payor_credentials_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePayorCredentialsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/rendering-providers/update":{"post":{"tags":["Clients"],"summary":"Update Rendering Providers","description":"Replace the project's rendering providers: the names the sheet offers per row, each with the NPI UHC files.","operationId":"update_rendering_providers_csn_referrals_rendering_providers_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRenderingProvidersInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/csn-referrals/franchises/update":{"post":{"tags":["Clients"],"summary":"Update Franchises","description":"Replace one portal's franchises, the billing identities its rows are filed under.","operationId":"update_franchises_csn_referrals_franchises_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFranchisesInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/appointment-reminder/{project_id}/config":{"get":{"tags":["Clients"],"summary":"Get Reminder Config","description":"LaunchDarkly reminder configuration for a project, with appointment type names resolved.","operationId":"get_reminder_config_appointment_reminder__project_id__config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/appointment-reminder/{project_id}/attendance-backfill":{"post":{"tags":["Clients"],"summary":"Trigger Attendance Backfill","description":"Run the attendance sweep for a project now, instead of waiting for its daily cron.\n\nThe response carries `enabled`: a targeted project whose flag is off sweeps nothing.","operationId":"trigger_attendance_backfill_appointment_reminder__project_id__attendance_backfill_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/account/get":{"post":{"tags":["Clients"],"summary":"Get Account","operationId":"get_account_ognomy_account_get_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/account/update":{"post":{"tags":["Clients"],"summary":"Update Account","operationId":"update_account_ognomy_account_update_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/discover":{"post":{"tags":["Clients"],"summary":"Discover Campaigns","operationId":"discover_campaigns_ognomy_campaigns_discover_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/list":{"post":{"tags":["Clients"],"summary":"List Campaigns","operationId":"list_campaigns_ognomy_campaigns_list_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/upsert":{"post":{"tags":["Clients"],"summary":"Upsert Campaign","operationId":"upsert_campaign_ognomy_campaigns_upsert_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertCampaignInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/delete":{"post":{"tags":["Clients"],"summary":"Delete Campaign","operationId":"delete_campaign_ognomy_campaigns_delete_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/pull":{"post":{"tags":["Clients"],"summary":"Pull Campaign","operationId":"pull_campaign_ognomy_campaigns_pull_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignInput"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ognomy/campaigns/patients":{"post":{"tags":["Clients"],"summary":"Get Campaign Patients","operationId":"get_campaign_patients_ognomy_campaigns_patients_post","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPatientsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns":{"get":{"tags":["Clients"],"summary":"Get Campaigns","operationId":"get_campaigns_mangrove_projects__project_id__campaigns_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Clients"],"summary":"Post Campaign","operationId":"post_campaign_mangrove_projects__project_id__campaigns_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCampaignInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}":{"get":{"tags":["Clients"],"summary":"Get Campaign Detail","operationId":"get_campaign_detail_mangrove_projects__project_id__campaigns__campaign_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}/contacts":{"get":{"tags":["Clients"],"summary":"Get Contacts","operationId":"get_contacts_mangrove_projects__project_id__campaigns__campaign_id__contacts_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Clients"],"summary":"Post Contacts","operationId":"post_contacts_mangrove_projects__project_id__campaigns__campaign_id__contacts_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppendContactsInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}/contacts/exclusion":{"post":{"tags":["Clients"],"summary":"Post Contact Exclusion","operationId":"post_contact_exclusion_mangrove_projects__project_id__campaigns__campaign_id__contacts_exclusion_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactExclusionInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}/contacts/call-again":{"post":{"tags":["Clients"],"summary":"Post Contacts Call Again","operationId":"post_contacts_call_again_mangrove_projects__project_id__campaigns__campaign_id__contacts_call_again_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCallAgainInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}/runs":{"post":{"tags":["Clients"],"summary":"Post Run","operationId":"post_run_mangrove_projects__project_id__campaigns__campaign_id__runs_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunInput"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Clients"],"summary":"Get Campaign Runs","operationId":"get_campaign_runs_mangrove_projects__project_id__campaigns__campaign_id__runs_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/campaigns/{campaign_id}/runs/dry-run":{"post":{"tags":["Clients"],"summary":"Post Dry Run","operationId":"post_dry_run_mangrove_projects__project_id__campaigns__campaign_id__runs_dry_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"campaign_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Campaign Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/runs/active":{"get":{"tags":["Clients"],"summary":"Get Project Active Runs","operationId":"get_project_active_runs_mangrove_projects__project_id__runs_active_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/runs/{run_id}":{"get":{"tags":["Clients"],"summary":"Get Run Detail","operationId":"get_run_detail_mangrove_projects__project_id__runs__run_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/runs/{run_id}/pause":{"post":{"tags":["Clients"],"summary":"Post Pause Run","operationId":"post_pause_run_mangrove_projects__project_id__runs__run_id__pause_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/runs/{run_id}/resume":{"post":{"tags":["Clients"],"summary":"Post Resume Run","operationId":"post_resume_run_mangrove_projects__project_id__runs__run_id__resume_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mangrove/projects/{project_id}/runs/{run_id}/cancel":{"post":{"tags":["Clients"],"summary":"Post Cancel Run","operationId":"post_cancel_run_mangrove_projects__project_id__runs__run_id__cancel_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"Authorization","in":"header","required":true,"schema":{"type":"string","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"AccountInput"},"ActivateConfigInput":{"properties":{"rollout_percent":{"type":"integer","maximum":100.0,"exclusiveMinimum":0.0,"title":"Rollout Percent","default":100},"override_reason":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Override Reason"}},"type":"object","title":"ActivateConfigInput"},"AppendContactsInput":{"properties":{"csv_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Csv Data"},"xlsx_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xlsx Base64"},"filename":{"type":"string","title":"Filename"},"allow_duplicates":{"type":"boolean","title":"Allow Duplicates","default":false},"allow_missing_phones":{"type":"boolean","title":"Allow Missing Phones","default":false}},"type":"object","required":["filename"],"title":"AppendContactsInput"},"ApplyScenarioInput":{"properties":{"thread_id":{"type":"string","minLength":1,"title":"Thread Id","description":"Playground thread the scenario is applied to"}},"type":"object","required":["thread_id"],"title":"ApplyScenarioInput"},"BatchCallInput":{"properties":{"callee":{"type":"string","title":"Callee"},"json_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Json Data"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"}},"type":"object","required":["callee"],"title":"BatchCallInput","description":"Input for a single call in a batch"},"BatchManualTriggerInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"future_visit_ids":{"items":{"type":"string"},"type":"array","title":"Future Visit Ids"},"dry_run":{"type":"boolean","title":"Dry Run","default":true},"use_test_resource":{"type":"boolean","title":"Use Test Resource","default":false},"test_appointment_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Appointment Date"},"test_appointment_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Appointment Time"}},"type":"object","required":["project_id","future_visit_ids"],"title":"BatchManualTriggerInput"},"BatchSimulationRequest":{"properties":{"is_voice":{"type":"boolean","title":"Is Voice","description":"Whether to run in voice mode","default":false},"call_direction":{"anyOf":[{"type":"string","enum":["inbound","outbound"]},{"type":"null"}],"title":"Call Direction","description":"Fake the call direction for voice runs so configs branching on <<call_direction>> can be tested"},"prompts":{"items":{"$ref":"#/components/schemas/PromptItem"},"type":"array","maxItems":10,"minItems":1,"title":"Prompts","description":"List of prompts (content + optional name); 1-10 items"},"batch_size":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Batch Size","description":"Number of simulation runs per prompt (max 20)"},"user_messages":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"User Messages","description":"List of user messages to send in each conversation"},"json_data_list":{"items":{"$ref":"#/components/schemas/JsonDataItem"},"type":"array","maxItems":20,"minItems":0,"title":"Json Data List","description":"List of JSON data variants (min 0 = no JSON, max 20); each has content and optional name"},"turn_count":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Turn Count","description":"Maximum number of turns (AI responses) per conversation (max 30)"},"temperature":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Temperature","description":"Model temperature for randomness control (canonical scale 0-1)"},"max_concurrent_simulations":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Concurrent Simulations","description":"Maximum number of simulations to run concurrently (default 10, max 50)","default":10},"mock_responses":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mock Responses","description":"Mock responses for HTTP services during simulation"},"message_delay":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Message Delay","description":"Delay in seconds between simulation messages (default 2.0, 0 = no delay)"},"persona_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Model","description":"Model to use for persona message generation (default: gpt-5.6-luna)"},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model","description":"Override the project LLM model for this simulation"},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this simulation"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides for this simulation"},"tracing_enabled":{"type":"boolean","title":"Tracing Enabled","description":"Enable LangSmith tracing for all threads in this simulation","default":false},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Retell account to use for voice simulations; required when the project has multiple voice integrations"}},"type":"object","required":["prompts","batch_size","turn_count"],"title":"BatchSimulationRequest","description":"Request model for batch conversation simulation."},"BatchSimulationResponse":{"properties":{"simulation_id":{"type":"string","title":"Simulation Id"},"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"}},"type":"object","required":["simulation_id","status","message"],"title":"BatchSimulationResponse","description":"Response model for batch conversation simulation."},"Behavior":{"properties":{"name":{"type":"string","title":"Name"},"template":{"type":"string","title":"Template"}},"type":"object","required":["name","template"],"title":"Behavior"},"BillingFunctionResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"code":{"type":"string","title":"Code"},"billing_config_params":{"items":{"type":"string"},"type":"array","title":"Billing Config Params"},"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","description","code","billing_config_params","created_at","updated_at"],"title":"BillingFunctionResponse"},"BlockEditorConfigInput":{"properties":{"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"llm_temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Temperature"},"allow_document_uploads":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Document Uploads"},"reuse_threads_by_voice_phone_number":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reuse Threads By Voice Phone Number"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"custom_modules":{"items":{"type":"string"},"type":"array","title":"Custom Modules"},"custom_actions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Custom Actions"},"http_services":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Http Services"},"system_prompt":{"type":"string","title":"System Prompt","default":""},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"triggers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Triggers"},"variables":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Variables"},"voice_opener_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Opener Message"},"video_opener_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Opener Message"},"multi_message_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multi Message Mode","default":false},"send_voice_opener_in_outbound":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Send Voice Opener In Outbound","default":false},"llm_analysis_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Llm Analysis Schema"},"pre_call_condition":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pre Call Condition"},"call_screening":{"anyOf":[{"$ref":"#/components/schemas/CallScreeningSettings"},{"type":"null"}]},"alerts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Alerts"}},"type":"object","required":["custom_actions","triggers","variables"],"title":"BlockEditorConfigInput"},"BlockedDatesInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"provider_id":{"type":"string","title":"Provider Id"}},"type":"object","required":["project_id","provider_id"],"title":"BlockedDatesInput"},"Body_chat_magnusmed_start_chat_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File","description":"CSV file"}},"type":"object","required":["csv_file"],"title":"Body_chat_magnusmed_start_chat_post"},"Body_chat_mobile_chat_mobile_post":{"properties":{"From":{"title":"From"},"To":{"title":"To"},"MessagingServiceSid":{"title":"Messagingservicesid"},"Body":{"title":"Body"},"OptOutType":{"title":"Optouttype"}},"type":"object","required":["From","To","Body"],"title":"Body_chat_mobile_chat_mobile_post"},"Body_chat_my_home_doctor_start_chat_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File","description":"CSV file"}},"type":"object","title":"Body_chat_my_home_doctor_start_chat_post"},"Body_chat_no_calls_my_home_doctor_start_chat_sms_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File","description":"CSV file"}},"type":"object","title":"Body_chat_no_calls_my_home_doctor_start_chat_sms_post"},"Body_chat_pear_care_start_chat_post":{"properties":{"csv_file":{"type":"string","contentMediaType":"application/octet-stream","title":"Csv File","description":"CSV file"}},"type":"object","title":"Body_chat_pear_care_start_chat_post"},"Body_generate_config_from_pdf_configs_generate_from_pdf_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"}},"type":"object","required":["file","name","email"],"title":"Body_generate_config_from_pdf_configs_generate_from_pdf_post"},"Body_insert_knowledge_base_document_knowledge_bases__knowledge_base_id__documents_post":{"properties":{"description":{"type":"string","title":"Description"},"document":{"type":"string","contentMediaType":"application/octet-stream","title":"Document"},"extract_images":{"type":"boolean","title":"Extract Images","default":false}},"type":"object","required":["description","document"],"title":"Body_insert_knowledge_base_document_knowledge_bases__knowledge_base_id__documents_post"},"Body_upload_documents_threads__thread_id__documents_post":{"properties":{"project_id":{"type":"string","title":"Project Id"},"documents":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Documents","default":[]},"documents[]":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Documents[]","default":[]}},"type":"object","required":["project_id"],"title":"Body_upload_documents_threads__thread_id__documents_post"},"BulkDeleteThreadsInput":{"properties":{"thread_ids":{"items":{"type":"string"},"type":"array","title":"Thread Ids"}},"type":"object","required":["thread_ids"],"title":"BulkDeleteThreadsInput"},"CalidAttendee":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"timeZone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"phoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phonenumber"}},"additionalProperties":true,"type":"object","title":"CalidAttendee"},"CalidBooking":{"properties":{"uid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uid"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"startTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Starttime"},"endTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endtime"},"attendees":{"items":{"$ref":"#/components/schemas/CalidAttendee"},"type":"array","title":"Attendees"},"responses":{"additionalProperties":true,"type":"object","title":"Responses"}},"additionalProperties":true,"type":"object","title":"CalidBooking"},"CalidIntegrationInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"CalidIntegrationInput"},"CalidWebhookBody":{"properties":{"triggerEvent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Triggerevent"},"payload":{"$ref":"#/components/schemas/CalidBooking"}},"additionalProperties":true,"type":"object","title":"CalidWebhookBody"},"CallDetail":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the call."},"thread_id":{"type":"string","title":"Thread Id","description":"Identifier of the thread this call belongs to."},"conversation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conversation Id","description":"Identifier of the conversation, or null for scheduled calls that never started."},"call_type":{"type":"string","title":"Call Type","description":"Type of the call, e.g. \"phone_call\" or \"web_call\"."},"status":{"type":"string","title":"Status","description":"Current status, e.g. \"scheduled\", \"ongoing\", \"ended\", \"error\"."},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction","description":"Call direction, \"inbound\" or \"outbound\"."},"from_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number","description":"Originating phone number (phone calls only)."},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number","description":"Destination phone number (phone calls only)."},"scheduled_for":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled For","description":"ISO 8601 timestamp the call is scheduled for, or null."},"start_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Timestamp","description":"Unix timestamp (seconds) when the call started, or null if it has not started."},"end_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Timestamp","description":"Unix timestamp (seconds) when the call ended, or null if it has not ended."},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms","description":"Call duration in milliseconds, or null."},"disconnection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disconnection Reason","description":"Deprecated, use contact_result. Raw telephony reason the call ended, if known.","deprecated":true},"contact_result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Result","description":"Who or what an outbound phone call reached: reached_person, voicemail_left, voicemail_no_message, screener_blocked, phone_menu, no_one_spoke, no_answer, busy, invalid_number, rejected or failed. Null for inbound and web calls, and until the call has ended."},"created_at":{"type":"string","title":"Created At","description":"ISO 8601 timestamp when the call record was created."},"transcript":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript","description":"Plain-text transcript of the call, if available."},"transcript_object":{"anyOf":[{},{"type":"null"}],"title":"Transcript Object","description":"Structured per-utterance transcript, if available."},"recording_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Url","description":"URL to the call recording. Self-hosted recordings return a short-lived signed URL."},"call_analysis":{"anyOf":[{},{"type":"null"}],"title":"Call Analysis","description":"Post-call analysis (summary, sentiment, custom fields), if available."}},"type":"object","required":["id","thread_id","call_type","status","created_at"],"title":"CallDetail"},"CallScreeningSettings":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"screener_reply":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screener Reply"},"unavailable_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unavailable Message"}},"type":"object","title":"CallScreeningSettings"},"CallSummary":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the call."},"thread_id":{"type":"string","title":"Thread Id","description":"Identifier of the thread this call belongs to."},"conversation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conversation Id","description":"Identifier of the conversation, or null for scheduled calls that never started."},"call_type":{"type":"string","title":"Call Type","description":"Type of the call, e.g. \"phone_call\" or \"web_call\"."},"status":{"type":"string","title":"Status","description":"Current status, e.g. \"scheduled\", \"ongoing\", \"ended\", \"error\"."},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction","description":"Call direction, \"inbound\" or \"outbound\"."},"from_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number","description":"Originating phone number (phone calls only)."},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number","description":"Destination phone number (phone calls only)."},"scheduled_for":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled For","description":"ISO 8601 timestamp the call is scheduled for, or null."},"start_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Timestamp","description":"Unix timestamp (seconds) when the call started, or null if it has not started."},"end_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Timestamp","description":"Unix timestamp (seconds) when the call ended, or null if it has not ended."},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms","description":"Call duration in milliseconds, or null."},"disconnection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disconnection Reason","description":"Deprecated, use contact_result. Raw telephony reason the call ended, if known.","deprecated":true},"contact_result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Result","description":"Who or what an outbound phone call reached: reached_person, voicemail_left, voicemail_no_message, screener_blocked, phone_menu, no_one_spoke, no_answer, busy, invalid_number, rejected or failed. Null for inbound and web calls, and until the call has ended."},"created_at":{"type":"string","title":"Created At","description":"ISO 8601 timestamp when the call record was created."}},"type":"object","required":["id","thread_id","call_type","status","created_at"],"title":"CallSummary"},"CallsListResponse":{"properties":{"calls":{"items":{"$ref":"#/components/schemas/CallSummary"},"type":"array","title":"Calls","description":"The page of calls, newest first."},"pagination":{"$ref":"#/components/schemas/routers__calls__CursorPagination"}},"type":"object","required":["calls","pagination"],"title":"CallsListResponse"},"CampaignInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"campaign_id":{"type":"string","title":"Campaign Id"}},"type":"object","required":["project_id","campaign_id"],"title":"CampaignInput"},"CampaignPatientsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"limit":{"type":"integer","title":"Limit","default":50},"offset":{"type":"integer","title":"Offset","default":0}},"type":"object","required":["project_id","campaign_id"],"title":"CampaignPatientsInput"},"CancelBatchInput":{"properties":{"batch_id":{"type":"string","format":"uuid","title":"Batch Id"}},"type":"object","required":["batch_id"],"title":"CancelBatchInput"},"CancelOpeningRequest":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","title":"CancelOpeningRequest"},"CancelReferralRowsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"row_ids":{"items":{"type":"string"},"type":"array","title":"Row Ids"}},"type":"object","required":["project_id","row_ids"],"title":"CancelReferralRowsInput"},"ChatExtras":{"properties":{"user_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Message Id","description":"ID of the created user message."},"conversation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conversation Id","description":"ID of the conversation."},"reply_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reply Message Id","description":"ID of the AI reply message."}},"additionalProperties":true,"type":"object","title":"ChatExtras"},"ChatInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id","description":"The unique identifier for the thread you're sending a message in."},"message":{"type":"string","title":"Message","description":"The message sent by the user."},"streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Streaming","description":"Whether to stream the response back with HTTP streaming.","default":false},"puppeteer_config_name":{"type":"string","title":"Puppeteer Config Name","description":"The name of the Puppeteer project this thread belongs to."},"config_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Version Id"},"start_new_conversation":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Start New Conversation","description":"Whether this message is the first in a new conversation inside the thread.","default":false},"simulate":{"anyOf":[{"$ref":"#/components/schemas/SimulatedMessage"},{"type":"null"}]},"user_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Type"}},"type":"object","required":["thread_id","message","puppeteer_config_name"],"title":"ChatInput"},"ChatResponse":{"properties":{"message":{"type":"string","title":"Message","description":"The AI's response to the message."},"extras":{"$ref":"#/components/schemas/ChatExtras","description":"Metadata about the created messages and conversation."}},"type":"object","required":["message","extras"],"title":"ChatResponse"},"ContactCallAgainInput":{"properties":{"contact_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Contact Ids"}},"type":"object","required":["contact_ids"],"title":"ContactCallAgainInput"},"ContactExclusionInput":{"properties":{"contact_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Contact Ids"},"excluded":{"type":"boolean","title":"Excluded"}},"type":"object","required":["contact_ids","excluded"],"title":"ContactExclusionInput"},"ControlGroupMetricsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["project_id"],"title":"ControlGroupMetricsInput"},"ConvertibleVisitMetricsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["project_id"],"title":"ConvertibleVisitMetricsInput"},"CreateBatchCallInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"batch_call_inputs":{"items":{"$ref":"#/components/schemas/BatchCallInput"},"type":"array","title":"Batch Call Inputs","description":"List of calls to make"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"The UUID of the Retell account to use. Required when the project has multiple phone numbers."}},"type":"object","required":["project_id","batch_call_inputs"],"title":"CreateBatchCallInput","description":"Input model for batch phone calls - all calls use the same project"},"CreateCampaignInput":{"properties":{"csv_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Csv Data"},"xlsx_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xlsx Base64"},"filename":{"type":"string","title":"Filename"},"allow_duplicates":{"type":"boolean","title":"Allow Duplicates","default":false},"allow_missing_phones":{"type":"boolean","title":"Allow Missing Phones","default":false},"name":{"type":"string","minLength":1,"title":"Name"}},"type":"object","required":["filename","name"],"title":"CreateCampaignInput"},"CreateConfigTestInput":{"properties":{"is_voice":{"type":"boolean","title":"Is Voice","description":"Whether to run in voice mode","default":false},"call_direction":{"anyOf":[{"type":"string","enum":["inbound","outbound"]},{"type":"null"}],"title":"Call Direction","description":"Fake the call direction for voice runs so configs branching on <<call_direction>> can be tested"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","description":"Human-readable label for the config test"},"ai_prompt":{"type":"string","minLength":1,"title":"Ai Prompt","description":"Persona description (AI prompt) for the simulated user"},"user_messages":{"items":{"type":"string"},"type":"array","title":"User Messages","description":"Scripted user messages to send in the conversation"},"turn_count":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Turn Count","description":"Maximum number of turns (AI responses) per conversation (max 100)"},"json_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Data","description":"JSON payload for thread initialization"},"trigger_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Data","description":"Maps a trigger class name to the payload delivered to its check() when the test runs, e.g. {'ReceivedHealthieWebhookTrigger': {...}}."},"expected_analysis_results":{"additionalProperties":true,"type":"object","title":"Expected Analysis Results","description":"Assertions extracted from the transcript after the conversation runs. Shape: {variable_name: {type, prompt, expected_result, default_value, exclude_from_analysis}}"},"expected_scheduled_call":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Expected Scheduled Call","description":"Voice-only assertion that a scheduled call was booked. Shape: {match_type: 'any' | 'within_hours' | 'date' | 'exact', ...match-specific fields}"},"mock_responses":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mock Responses","description":"Mock responses for HTTP services during the test run"},"message_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Message Delay","description":"Delay in seconds between simulation messages (default 2.0, 0 = no delay)"},"persona_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Model","description":"Model to use for persona message generation (default: gpt-5.6-luna)"},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this test run"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides for this test run"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Retell account to use for voice tests; required when the project has multiple voice integrations"},"gates_production":{"type":"boolean","title":"Gates Production","description":"When true, this test must pass before production deploys are applied","default":true}},"type":"object","required":["name","ai_prompt","turn_count"],"title":"CreateConfigTestInput","description":"Request model for creating a config test (assertion-based simulation)."},"CreateDeploymentInput":{"properties":{"config_id":{"type":"string","minLength":1,"title":"Config Id"},"rollout_percent":{"type":"integer","maximum":100.0,"exclusiveMinimum":0.0,"title":"Rollout Percent","default":100},"override_reason":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Override Reason"}},"type":"object","required":["config_id"],"title":"CreateDeploymentInput"},"CreateReferralRowsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"rows":{"items":{"$ref":"#/components/schemas/ReferralRowInput"},"type":"array","title":"Rows"}},"type":"object","required":["project_id","rows"],"title":"CreateReferralRowsInput"},"CreateRetellAccountInput":{"properties":{"retell_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Api Key"},"retell_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Agent Id"},"project_id":{"type":"string","title":"Project Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"caller_id_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id Number"},"before_call_json_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Call Json Input"}},"type":"object","required":["project_id"],"title":"CreateRetellAccountInput"},"CreateScheduleInput":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"run_all_tests":{"type":"boolean","title":"Run All Tests","default":false},"config_test_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Config Test Ids"},"cron_expression":{"type":"string","minLength":5,"title":"Cron Expression"},"timezone":{"type":"string","title":"Timezone","default":"UTC"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["name","cron_expression"],"title":"CreateScheduleInput"},"CreateTextDocumentInput":{"properties":{"title":{"type":"string","maxLength":100,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":200,"title":"Description"},"content":{"type":"string","title":"Content"}},"type":"object","required":["title","description","content"],"title":"CreateTextDocumentInput"},"CreateThreadAndCallInput":{"properties":{"callee":{"type":"string","title":"Callee","description":"The phone number to call, in E.164 format (e.g., +12025550123)."},"project_id":{"type":"string","title":"Project Id","description":"The UUID of the Puppeteer project."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for the thread (e.g., \"America/Chicago\")."},"json_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Json Data","description":"JSON data as a string to be sent to the thread upon creation. This data will be processed by the thread's JSON input handler."},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For","description":"ISO 8601 datetime to schedule the call for a future time. If omitted, the call starts immediately."},"background":{"type":"boolean","title":"Background","description":"When true, the call is queued and the endpoint returns 202 immediately. When false (default), the call is initiated synchronously.","default":false},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"The UUID of the Retell account to use. Required when the project has multiple phone numbers."}},"type":"object","required":["callee","project_id"],"title":"CreateThreadAndCallInput"},"CreateThreadInput":{"properties":{"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for the thread (e.g., \"America/Chicago\")."},"user_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Phone Number"},"user_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Email"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name","description":"The name of the Puppeteer project."},"json_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Json Data","description":"JSON data as a string to be sent to the thread upon creation. This data will be processed by the thread's JSON input handler."},"type":{"$ref":"#/components/schemas/ThreadType","default":"NORMAL","x-internal":true},"scenario_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scenario Id","x-internal":true}},"type":"object","title":"CreateThreadInput"},"CreateThreadResponse":{"properties":{"thread_id":{"type":"string","title":"Thread Id","description":"The generated unique identifier for the new thread."}},"type":"object","required":["thread_id"],"title":"CreateThreadResponse"},"CreateTwilioAccountInput":{"properties":{"account_sid":{"type":"string","title":"Account Sid"},"auth_token":{"type":"string","title":"Auth Token"},"messaging_service_sid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Messaging Service Sid"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["account_sid","auth_token","messaging_service_sid","project_id"],"title":"CreateTwilioAccountInput"},"CreateVoiceAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Speed"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"before_call_json_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Call Json Input"}},"type":"object","required":["project_id"],"title":"CreateVoiceAccountInput"},"CreateWebCallResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Status of the web call creation request (e.g., \"queued\")."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Additional information about the web call status."}},"type":"object","required":["status"],"title":"CreateWebCallResponse"},"CursorMessageModel":{"properties":{"message_id":{"type":"string","title":"Message Id","description":"Unique identifier of the message."},"role":{"type":"string","title":"Role","description":"The role of the sender, either \"user\" or \"AI\"."},"message":{"type":"string","title":"Message","description":"The message text."},"conversation_id":{"type":"integer","title":"Conversation Id","description":"ID of the conversation this message belongs to."},"timestamp":{"type":"integer","title":"Timestamp","description":"Unix timestamp (seconds) when the message was sent."},"extras":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extras","description":"Additional metadata attached to the message."},"conversation_end_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation End Time","description":"ISO timestamp the parent conversation ended at, or null if still active."}},"type":"object","required":["message_id","role","message","conversation_id","timestamp"],"title":"CursorMessageModel"},"CursorMessagesResponse":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/CursorMessageModel"},"type":"array","title":"Messages","description":"List of messages."},"pagination":{"$ref":"#/components/schemas/routers__conversations__CursorPagination"},"is_locked":{"type":"boolean","title":"Is Locked","description":"True when the access link locks on conversation end and the latest conversation has ended. The widget must disable input and hide the ended conversation's history.","default":false}},"type":"object","required":["messages","pagination"],"title":"CursorMessagesResponse"},"DeclarativeConfigInput":{"properties":{"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"llm_temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Temperature"},"allow_document_uploads":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Document Uploads"},"reuse_threads_by_voice_phone_number":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reuse Threads By Voice Phone Number"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"custom_modules":{"items":{"type":"string"},"type":"array","title":"Custom Modules"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"reply_system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reply System Prompt","default":""},"opener_system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Opener System Prompt","default":""},"voice_opener_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Opener Message"},"video_opener_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Opener Message"},"behaviors":{"items":{"$ref":"#/components/schemas/Behavior"},"type":"array","title":"Behaviors"},"global_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Global Code"},"collected_data_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Collected Data Keys"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"multi_message_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Multi Message Mode"},"send_voice_opener_in_outbound":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Send Voice Opener In Outbound","default":false},"llm_analysis_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Llm Analysis Schema"},"pre_call_condition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pre Call Condition"},"http_services":{"items":{"$ref":"#/components/schemas/HttpServiceInput"},"type":"array","title":"Http Services"},"alerts":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Alerts"}},"type":"object","required":["behaviors"],"title":"DeclarativeConfigInput"},"DeleteReferralRowInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"DeleteReferralRowInput"},"DocumentFlag":{"properties":{"test_name":{"type":"string","title":"Test Name"},"value":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"reference_range":{"$ref":"#/components/schemas/ReferenceRange"},"status":{"type":"string","enum":["in_bounds","out_of_bounds","not_applicable"],"title":"Status"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity"}},"type":"object","required":["test_name","value","reference_range","status"],"title":"DocumentFlag"},"EndConversationInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"puppeteer_config_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Puppeteer Config Name"},"config_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Version Id"}},"type":"object","required":["thread_id","puppeteer_config_name"],"title":"EndConversationInput"},"EndPhoneCallResponse":{"properties":{"response":{"type":"string","title":"Response","description":"Status message confirming the call was ended."}},"type":"object","required":["response"],"title":"EndPhoneCallResponse"},"EnsureThreadRequest":{"properties":{"project_id":{"type":"string","title":"Project Id","description":"The Puppeteer project id that owns the Longevity agent config."}},"type":"object","required":["project_id"],"title":"EnsureThreadRequest"},"EnsureThreadResponse":{"properties":{"thread_id":{"type":"string","title":"Thread Id","description":"The Puppeteer thread id for this Healthie patient."},"created":{"type":"boolean","title":"Created","description":"True if the thread was created on this call; false if one already existed."}},"type":"object","required":["thread_id","created"],"title":"EnsureThreadResponse"},"EnvSecretInput":{"properties":{"key":{"type":"string","title":"Key"},"value":{"type":"string","title":"Value"},"test_default":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Default"}},"type":"object","required":["key","value"],"title":"EnvSecretInput"},"EnvSecretTestDefaultInput":{"properties":{"test_default":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Default"}},"type":"object","title":"EnvSecretTestDefaultInput"},"EnvVariableInput":{"properties":{"key":{"type":"string","title":"Key"},"value":{"type":"string","title":"Value"},"test_default":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Default"}},"type":"object","required":["key","value"],"title":"EnvVariableInput"},"ExcludePatientsByCsvInput":{"properties":{"eligibility_flow_id":{"type":"string","format":"uuid","title":"Eligibility Flow Id"},"csv_data":{"type":"string","title":"Csv Data"}},"type":"object","required":["eligibility_flow_id","csv_data"],"title":"ExcludePatientsByCsvInput"},"ExecuteScheduledEventInput":{"properties":{"scheduled_event_id":{"type":"string","title":"Scheduled Event Id"},"puppeteer_config_name":{"type":"string","title":"Puppeteer Config Name"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"config_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Version Id"}},"type":"object","required":["scheduled_event_id","puppeteer_config_name"],"title":"ExecuteScheduledEventInput"},"FormatConfigInput":{"properties":{"templates":{"items":{"type":"string"},"type":"array","title":"Templates"}},"type":"object","required":["templates"],"title":"FormatConfigInput"},"FutureVisitDetailsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":20},"export":{"type":"boolean","title":"Export","default":false}},"type":"object","required":["project_id"],"title":"FutureVisitDetailsInput"},"FutureVisitMetricsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["project_id"],"title":"FutureVisitMetricsInput"},"FutureVisitsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"flow_id":{"type":"string","title":"Flow Id"},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":50}},"type":"object","required":["project_id","flow_id"],"title":"FutureVisitsInput"},"GetThreadResponse":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier for the thread."},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias","description":"An optional alias for the thread."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone of the thread."},"usage":{"$ref":"#/components/schemas/ThreadUsage","description":"Usage statistics for the thread."}},"type":"object","required":["id","usage"],"title":"GetThreadResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthieIntegrationInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"HealthieIntegrationInput"},"HealthiePhoneCallInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"callee":{"type":"string","title":"Callee"},"healthie_api_key":{"type":"string","title":"Healthie Api Key"},"input_value":{"type":"string","title":"Input Value"},"caller_name":{"type":"string","title":"Caller Name"},"patient_id":{"type":"string","title":"Patient Id"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id"}},"type":"object","required":["project_id","callee","healthie_api_key","input_value","caller_name","patient_id"],"title":"HealthiePhoneCallInput"},"HttpServiceHeaderInput":{"properties":{"key":{"type":"string","title":"Key","default":""},"value":{"type":"string","title":"Value","default":""}},"additionalProperties":false,"type":"object","title":"HttpServiceHeaderInput"},"HttpServiceInput":{"properties":{"name":{"type":"string","title":"Name","default":""},"method":{"type":"string","title":"Method","default":"GET"},"url":{"type":"string","title":"Url","default":""},"headers":{"items":{"$ref":"#/components/schemas/HttpServiceHeaderInput"},"type":"array","title":"Headers"},"body":{"type":"string","title":"Body","default":""},"params":{"items":{"$ref":"#/components/schemas/HttpServiceParamInput"},"type":"array","title":"Params"},"defaultMock":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Defaultmock"},"expectedStatusCodes":{"items":{"type":"integer"},"type":"array","title":"Expectedstatuscodes"}},"additionalProperties":false,"type":"object","title":"HttpServiceInput","description":"Raw block-editor shape for an HTTP service definition.\n\n`_normalize_http_services` reads exactly these keys; `extra=\"forbid\"` makes\ntypos (e.g. `service_name` instead of `name`) fail at the API boundary\ninstead of silently producing a broken service that fails to register."},"HttpServiceParamInput":{"properties":{"name":{"type":"string","title":"Name","default":""}},"additionalProperties":false,"type":"object","title":"HttpServiceParamInput"},"HubspotCheckinPayload":{"properties":{"contact_id":{"type":"string","title":"Contact Id"},"deal_id":{"type":"string","title":"Deal Id"},"deal_stage":{"type":"string","title":"Deal Stage"},"phone":{"type":"string","title":"Phone"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"home_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home State"},"referred_facility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referred Facility"},"physician_referral_required":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Physician Referral Required"},"trigger_source":{"type":"string","enum":["timed","chained","email","cam"],"title":"Trigger Source","default":"timed"},"consultation_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Consultation Date"},"fmri_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fmri Date"},"treatment_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Treatment Date"}},"type":"object","required":["contact_id","deal_id","deal_stage","phone"],"title":"HubspotCheckinPayload"},"HubspotWebhookPayload":{"properties":{"id":{"type":"string","title":"Id"},"call_number":{"type":"string","title":"Call Number"},"home_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home State"},"lead_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Id"},"reaching_as_new_clinic":{"type":"boolean","title":"Reaching As New Clinic","default":false},"new_clinic_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Clinic Name"},"campaign_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Type"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"ls_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ls Tier"},"ls_priority_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ls Priority Score"}},"type":"object","required":["id","call_number"],"title":"HubspotWebhookPayload"},"InboundCallRequest":{"properties":{"to_number":{"type":"string","title":"To Number"},"from_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number"}},"type":"object","required":["to_number"],"title":"InboundCallRequest"},"InboundCallResponse":{"properties":{"call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Call Id"},"should_proceed":{"type":"boolean","title":"Should Proceed","default":true}},"type":"object","title":"InboundCallResponse"},"InfobipAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"InfobipAccountInput"},"InfobipContent":{"properties":{"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"showUrlPreview":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Showurlpreview"}},"type":"object","title":"InfobipContent"},"InfobipSingleSendMessage":{"properties":{"from":{"additionalProperties":true,"type":"object","title":"From"},"to":{"additionalProperties":true,"type":"object","title":"To"},"content":{"additionalProperties":true,"type":"object","title":"Content"},"contact":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contact"},"identity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity"},"channel":{"type":"string","title":"Channel"},"direction":{"type":"string","title":"Direction"}},"type":"object","required":["from","to","content","channel","direction"],"title":"InfobipSingleSendMessage","description":"Nested singleSendMessage object in the payload"},"InfobipWebhookPayload":{"properties":{"id":{"type":"string","title":"Id"},"conversationId":{"type":"string","title":"Conversationid"},"direction":{"type":"string","title":"Direction"},"channel":{"type":"string","title":"Channel"},"from":{"type":"string","title":"From"},"to":{"type":"string","title":"To"},"content":{"$ref":"#/components/schemas/InfobipContent"},"contentType":{"type":"string","title":"Contenttype"},"createdAt":{"type":"string","title":"Createdat"},"updatedAt":{"type":"string","title":"Updatedat"},"singleSendMessage":{"anyOf":[{"$ref":"#/components/schemas/InfobipSingleSendMessage"},{"type":"null"}]}},"type":"object","required":["id","conversationId","direction","channel","from","to","content","contentType","createdAt","updatedAt"],"title":"InfobipWebhookPayload"},"IngestDocumentPayload":{"properties":{"document_type":{"type":"string","title":"Document Type","description":"Free-form document classification tag; passed through to the agent as context."},"healthie_document_id":{"type":"string","title":"Healthie Document Id","description":"Healthie's document id. Used as the upsert key: re-sends replace the stored entry in place."},"filename":{"type":"string","title":"Filename"},"created_at":{"type":"string","title":"Created At","description":"ISO-8601 UTC timestamp from Healthie's document.created_at."},"content":{"type":"string","title":"Content","description":"Plain UTF-8 text of the parsed document; what the agent reads."},"flags":{"items":{"$ref":"#/components/schemas/DocumentFlag"},"type":"array","title":"Flags","description":"Structured bounds-annotated results extracted by the Longevity dashboard."}},"type":"object","required":["document_type","healthie_document_id","filename","created_at","content"],"title":"IngestDocumentPayload"},"IngestDocumentRequest":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"project_id":{"type":"string","title":"Project Id"},"healthie_user_id":{"type":"string","title":"Healthie User Id"},"document":{"$ref":"#/components/schemas/IngestDocumentPayload"}},"type":"object","required":["thread_id","project_id","healthie_user_id","document"],"title":"IngestDocumentRequest"},"IngestDocumentResponse":{"properties":{"status":{"type":"string","enum":["ok","updated"],"title":"Status"},"thread_id":{"type":"string","title":"Thread Id"},"healthie_document_id":{"type":"string","title":"Healthie Document Id","description":"Echoes the Healthie document id used as the upsert key — identifies the ingested document."}},"type":"object","required":["status","thread_id","healthie_document_id"],"title":"IngestDocumentResponse"},"InsertKnowledgeBaseInput":{"properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"}},"type":"object","required":["title","description"],"title":"InsertKnowledgeBaseInput"},"IssueTokenRequest":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["thread_id","project_id"],"title":"IssueTokenRequest"},"IterableAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"IterableAccountInput"},"IterableDataFields":{"properties":{"smsMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Smsmessage"},"fromPhoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fromphonenumber"},"toPhoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tophonenumber"},"espName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Espname"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Createdat"},"campaignId":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Campaignid"},"transactionalData":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transactionaldata"},"esDocumentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Esdocumentid"}},"additionalProperties":true,"type":"object","title":"IterableDataFields","description":"Subset of Iterable's webhook dataFields we care about. Iterable may add fields without notice."},"IterableWebhookPayload":{"properties":{"email":{"type":"string","title":"Email"},"eventName":{"type":"string","enum":["smsSend","smsReceived"],"title":"Eventname"},"campaignId":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Campaignid"},"dataFields":{"$ref":"#/components/schemas/IterableDataFields"}},"additionalProperties":true,"type":"object","required":["email","eventName"],"title":"IterableWebhookPayload"},"JsonDataItem":{"properties":{"content":{"additionalProperties":true,"type":"object","title":"Content","description":"JSON payload for thread initialization"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional label for this variant (used in simulation name when multiple variants exist)"}},"type":"object","required":["content"],"title":"JsonDataItem","description":"single JSON data variant with optional name for simulations."},"JsonInputModel":{"properties":{"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"puppeteer_config_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Puppeteer Config Name"},"json_data":{"type":"string","title":"Json Data"}},"type":"object","required":["thread_id","puppeteer_config_name","json_data"],"title":"JsonInputModel"},"JsonInputResponse":{"properties":{"response":{"type":"string","title":"Response","description":"Status message confirming the JSON input was received."}},"type":"object","required":["response"],"title":"JsonInputResponse"},"LeadStageBackfillInput":{"properties":{"mode":{"type":"string","enum":["dry_run","execute","revert"],"title":"Mode"},"hubspot_api_token":{"type":"string","minLength":1,"title":"Hubspot Api Token"},"diff_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diff Token"},"approved_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By"},"expected_config_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Config Version Id"},"source_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Job Id"},"max_leads":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Leads"},"acknowledged_stage_sources":{"items":{"type":"string"},"type":"array","title":"Acknowledged Stage Sources","default":[]},"scope":{"anyOf":[{"$ref":"#/components/schemas/LeadStageBackfillScopeInput"},{"type":"null"}]}},"type":"object","required":["mode","hubspot_api_token"],"title":"LeadStageBackfillInput"},"LeadStageBackfillScopeInput":{"properties":{"thread_ids":{"items":{"type":"string"},"type":"array","title":"Thread Ids","default":[]},"lead_ids":{"items":{"type":"string"},"type":"array","title":"Lead Ids","default":[]},"hubspot_contact_ids":{"items":{"type":"string"},"type":"array","title":"Hubspot Contact Ids","default":[]},"phone_numbers":{"items":{"type":"string"},"type":"array","title":"Phone Numbers","default":[]},"emails":{"items":{"type":"string"},"type":"array","title":"Emails","default":[]},"json_data_equals":{"additionalProperties":{"type":"string"},"type":"object","title":"Json Data Equals","default":{}}},"type":"object","title":"LeadStageBackfillScopeInput"},"LifecycleEvent":{"properties":{"event":{"type":"string","enum":["call_started","call_ended"],"title":"Event"},"disconnection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disconnection Reason"},"latency":{"anyOf":[{"additionalProperties":{"items":{"type":"number"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Latency"}},"type":"object","required":["event"],"title":"LifecycleEvent"},"ManualTriggerInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"future_visit_id":{"type":"string","title":"Future Visit Id"},"dry_run":{"type":"boolean","title":"Dry Run","default":true},"use_test_resource":{"type":"boolean","title":"Use Test Resource","default":false},"test_appointment_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Appointment Date"},"test_appointment_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Appointment Time"}},"type":"object","required":["project_id","future_visit_id"],"title":"ManualTriggerInput"},"MessageInput":{"properties":{"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"user_type":{"$ref":"#/components/schemas/SenderType"}},"type":"object","required":["thread_id","message","project_name","user_type"],"title":"MessageInput"},"MockResponsesInput":{"properties":{"mock_responses":{"additionalProperties":true,"type":"object","title":"Mock Responses"}},"type":"object","required":["mock_responses"],"title":"MockResponsesInput"},"OperatorAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"OperatorAccountInput"},"OperatorCallbackPayload":{"properties":{"task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"event":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"flow_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow Slug"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"batch_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Batch Id"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"error_details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Details"},"documents":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Documents"}},"type":"object","title":"OperatorCallbackPayload"},"OperatorTaskActionInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"task_id":{"type":"string","title":"Task Id"},"use_test_resource":{"type":"boolean","title":"Use Test Resource","default":false}},"type":"object","required":["project_id","task_id"],"title":"OperatorTaskActionInput"},"OperatorTaskEventsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"task_id":{"type":"string","title":"Task Id"}},"type":"object","required":["project_id","task_id"],"title":"OperatorTaskEventsInput"},"OptOutFromAIInitiatedMessagesInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"opt_out":{"type":"boolean","title":"Opt Out"},"puppeteer_config_name":{"type":"string","title":"Puppeteer Config Name"}},"type":"object","required":["thread_id","opt_out","puppeteer_config_name"],"title":"OptOutFromAIInitiatedMessagesInput"},"OutreachCallTrendsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["project_id"],"title":"OutreachCallTrendsInput"},"OverrideDeploymentInput":{"properties":{"reason":{"type":"string","maxLength":1000,"minLength":1,"title":"Reason"}},"type":"object","required":["reason"],"title":"OverrideDeploymentInput"},"PayorCredentialsLookupInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"PayorCredentialsLookupInput"},"PhoneCallInput":{"properties":{"callee":{"type":"string","title":"Callee","description":"The phone number to call. Ideally in E.164 format, otherwise parsed as a number containing a country code."},"project_id":{"type":"string","title":"Project Id","description":"The UUID of the Puppeteer project."},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For","description":"ISO 8601 datetime to schedule the call for a future time. If omitted, the call starts immediately."},"verification_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Code","description":"Verification code from Twilio Verify"},"appointment_opening_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Opening Id","description":"Appointment opening ID"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"The UUID of the Retell account to use. Required when the project has multiple phone numbers."}},"type":"object","required":["callee","project_id"],"title":"PhoneCallInput"},"PostProjectInput":{"properties":{"name":{"type":"string","title":"Name"},"template":{"anyOf":[{"$ref":"#/components/schemas/BlockEditorConfigInput"},{"type":"null"}]},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"is_dev":{"type":"boolean","title":"Is Dev","default":false}},"type":"object","required":["name"],"title":"PostProjectInput"},"ProjectAiCredentialsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"ProjectAiCredentialsInput"},"ProjectMessageSearchResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ProjectMessageSearchResult"},"type":"array","title":"Results"},"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Cursor for the next page, or null when there are no more results."}},"type":"object","required":["results","cursor"],"title":"ProjectMessageSearchResponse"},"ProjectMessageSearchResult":{"properties":{"message_id":{"type":"string","title":"Message Id"},"thread_id":{"type":"string","title":"Thread Id"},"conversation_id":{"type":"integer","title":"Conversation Id"},"role":{"type":"string","title":"Role","description":"The role of the sender: \"user\", \"AI\", \"admin\", or \"system\"."},"snippet":{"type":"string","title":"Snippet","description":"The message text around the first match, cut at SNIPPET_RADIUS each side."},"snippet_starts_mid_text":{"type":"boolean","title":"Snippet Starts Mid Text"},"snippet_ends_mid_text":{"type":"boolean","title":"Snippet Ends Mid Text"},"timestamp":{"type":"integer","title":"Timestamp","description":"Unix timestamp (seconds) when the message was sent."},"thread_alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Alias"},"thread_type":{"type":"string","title":"Thread Type"},"user_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Phone Number"},"voice_user_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice User Phone Number"}},"type":"object","required":["message_id","thread_id","conversation_id","role","snippet","snippet_starts_mid_text","snippet_ends_mid_text","timestamp","thread_alias","thread_type","user_phone_number","voice_user_phone_number"],"title":"ProjectMessageSearchResult"},"PromptItem":{"properties":{"content":{"type":"string","maxLength":5000,"minLength":1,"title":"Content","description":"Persona description (AI prompt)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional label for this simulation"}},"type":"object","required":["content"],"title":"PromptItem","description":"Single prompt with optional name for batch simulation."},"ProvisionNumberInput":{"properties":{"country":{"type":"string","title":"Country","default":"US"},"area_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Area Code"}},"type":"object","title":"ProvisionNumberInput"},"PublicCallInfo":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the call."},"call_type":{"type":"string","title":"Call Type","description":"Type of call (e.g., \"phone_call\", \"web_call\")."},"status":{"type":"string","title":"Status","description":"Current status of the call (e.g., \"queued\", \"ongoing\", \"ended\", \"scheduled\")."},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number","description":"The phone number being called (phone calls only)."},"from_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Number","description":"The originating phone number (phone calls only)."},"scheduled_for":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled For","description":"ISO 8601 datetime if the call is scheduled."},"start_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Timestamp","description":"Unix timestamp when the call started."},"end_timestamp":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Timestamp","description":"Unix timestamp when the call ended."},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms","description":"Duration of the call in milliseconds."}},"additionalProperties":true,"type":"object","required":["id","call_type","status"],"title":"PublicCallInfo"},"PutConfigInput":{"properties":{"template":{"anyOf":[{"$ref":"#/components/schemas/DeclarativeConfigInput"},{"$ref":"#/components/schemas/BlockEditorConfigInput"},{"type":"null"}],"title":"Template"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"is_internal":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Internal","default":false}},"type":"object","required":["template"],"title":"PutConfigInput"},"ReferenceRange":{"properties":{"display":{"type":"string","title":"Display","description":"Human-readable range, shown to clinicians (e.g. '<100', '40-60')."},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min","description":"Lower numeric bound, or null for one-sided ranges."},"max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max","description":"Upper numeric bound, or null for one-sided ranges."}},"type":"object","required":["display"],"title":"ReferenceRange"},"ReferralRowInput":{"properties":{"portal":{"type":"string","title":"Portal","default":"availity"},"member_id":{"type":"string","title":"Member Id","default":""},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date"},"payor_slug":{"type":"string","title":"Payor Slug","default":""},"inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inputs"}},"type":"object","title":"ReferralRowInput","description":"One sheet row as edited in the dashboard. Every field may be blank — a row is saved as\ntyped and only checked for completeness when it is run."},"RegisterBulkExportJobsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"patients_with_pcp_job_url":{"type":"string","title":"Patients With Pcp Job Url"},"patients_no_pcp_job_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patients No Pcp Job Url"},"convertible_visits_enabled":{"type":"boolean","title":"Convertible Visits Enabled","default":true},"operator_enabled":{"type":"boolean","title":"Operator Enabled","default":false},"operator_automatic":{"type":"boolean","title":"Operator Automatic","default":false},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["project_id","patients_with_pcp_job_url"],"title":"RegisterBulkExportJobsInput"},"RegisterVisitInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"provider_id":{"type":"string","title":"Provider Id"},"appointment_date":{"type":"string","title":"Appointment Date"},"patient_fhir_id":{"type":"string","title":"Patient Fhir Id"},"appointment_datetime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Datetime"},"patient_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Id"},"encounter_fhir_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Encounter Fhir Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"communication_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"}},"type":"object","required":["project_id","provider_id","appointment_date","patient_fhir_id"],"title":"RegisterVisitInput"},"RenderingProviderInput":{"properties":{"name":{"type":"string","title":"Name"},"npi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Npi"}},"type":"object","required":["name"],"title":"RenderingProviderInput"},"ResumeBatchInput":{"properties":{"batch_id":{"type":"string","format":"uuid","title":"Batch Id"}},"type":"object","required":["batch_id"],"title":"ResumeBatchInput"},"RetagBulkExportInput":{"properties":{"eligibility_flow_id":{"type":"string","format":"uuid","title":"Eligibility Flow Id"}},"type":"object","required":["eligibility_flow_id"],"title":"RetagBulkExportInput"},"RetellAccountPublicInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"warm_transfer_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warm Transfer Agent Id"},"warm_transfer_phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warm Transfer Phone Number"}},"type":"object","required":["id","phone_number"],"title":"RetellAccountPublicInfo"},"RetrieveConversationsInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"}},"type":"object","required":["thread_id","page","limit"],"title":"RetrieveConversationsInput"},"RunAllTestConfigsInput":{"properties":{"config_id":{"type":"string","minLength":1,"title":"Config Id"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Override the persisted retell account for any voice tests in this run"}},"type":"object","required":["config_id"],"title":"RunAllTestConfigsInput"},"RunCustomActionInput":{"properties":{"custom_actions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Custom Actions"},"action_name":{"type":"string","title":"Action Name"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"json_data":{"additionalProperties":true,"type":"object","title":"Json Data"},"http_services":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Http Services"}},"type":"object","required":["action_name"],"title":"RunCustomActionInput"},"RunInput":{"properties":{"contact_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Contact Ids"},"priority":{"type":"string","enum":["low","medium","high"],"title":"Priority","default":"low"},"window_start":{"type":"string","title":"Window Start","default":"09:00"},"window_end":{"type":"string","title":"Window End","default":"19:00"},"days":{"items":{"type":"integer"},"type":"array","minItems":1,"title":"Days"},"daily_cap":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Daily Cap"},"scheduled_for":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled For"}},"type":"object","title":"RunInput","description":"A run's contact selection and options; times are the clinic's (America/New_York)."},"RunReferralRowsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"row_ids":{"items":{"type":"string"},"type":"array","title":"Row Ids"}},"type":"object","required":["project_id","row_ids"],"title":"RunReferralRowsInput"},"RunSingleTestConfigInput":{"properties":{"config_id":{"type":"string","minLength":1,"title":"Config Id"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Override the persisted retell account for this voice test run"}},"type":"object","required":["config_id"],"title":"RunSingleTestConfigInput"},"ScenarioInput":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","description":"Human-readable label for the scenario"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"What this scenario is meant to test"},"json_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Data","description":"Initial mocked data that seeds the conversation"},"mock_responses":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mock Responses","description":"Predefined HTTP-service responses keyed by service name"},"trigger_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Data","description":"Maps a trigger class name to the payload delivered to its check() when the scenario is applied, e.g. {'ReceivedHealthieWebhookTrigger': {...}}."},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this scenario"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides, merged per key: the '****' mask keeps the stored value, any other value replaces it, and an omitted key is removed."},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Voice integration used when the scenario is run in voice mode"}},"type":"object","required":["name"],"title":"ScenarioInput","description":"Full scenario payload. Every field except ``env_secrets`` is stored verbatim."},"ScenarioUpdateInput":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","description":"Human-readable label for the scenario"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"What this scenario is meant to test"},"json_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Data","description":"Initial mocked data that seeds the conversation"},"mock_responses":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mock Responses","description":"Predefined HTTP-service responses keyed by service name"},"trigger_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Data","description":"Maps a trigger class name to the payload delivered to its check() when the scenario is applied, e.g. {'ReceivedHealthieWebhookTrigger': {...}}."},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this scenario"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides, merged per key: the '****' mask keeps the stored value, any other value replaces it, and an omitted key is removed."},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Voice integration used when the scenario is run in voice mode"}},"type":"object","required":["name"],"title":"ScenarioUpdateInput","description":"Update is a full replace, so the caller sends every field explicitly; null clears one.\n\n``env_secrets`` is the exception — it merges per key, so omitting it preserves stored secrets."},"ScenarioVisibilityInput":{"properties":{"is_public":{"type":"boolean","title":"Is Public","description":"Whether the scenario runs from an unauthenticated demo link"}},"type":"object","required":["is_public"],"title":"ScenarioVisibilityInput"},"ScheduleBatchInput":{"properties":{"eligibility_flow_id":{"type":"string","format":"uuid","title":"Eligibility Flow Id"},"scheduled_for":{"type":"string","title":"Scheduled For"},"exclusion_csv_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclusion Csv Data"},"exclusion_csv_filenames":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclusion Csv Filenames"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"max_patients":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Patients"},"only_previously_called":{"type":"boolean","title":"Only Previously Called","default":false}},"type":"object","required":["eligibility_flow_id","scheduled_for"],"title":"ScheduleBatchInput"},"ScheduledEventsInput":{"properties":{"puppeteer_config_name":{"type":"string","title":"Puppeteer Config Name"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"config_version_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Version Id"}},"type":"object","required":["puppeteer_config_name"],"title":"ScheduledEventsInput"},"SearchContextMessage":{"properties":{"message_id":{"type":"string","title":"Message Id","description":"Unique identifier of the message."},"role":{"type":"string","title":"Role","description":"The role of the sender: \"user\", \"AI\", or \"admin\"."},"message":{"type":"string","title":"Message","description":"The message text."},"timestamp":{"type":"integer","title":"Timestamp","description":"Unix timestamp (seconds) when the message was sent."},"conversation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conversation Id","description":"Conversation ID for grouping."},"conversation_end_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation End Time","description":"ISO timestamp the parent conversation ended at, or null if still active."}},"type":"object","required":["message_id","role","message","timestamp"],"title":"SearchContextMessage"},"SearchMatch":{"properties":{"message_id":{"type":"string","title":"Message Id","description":"Unique identifier of the matched message."},"prev_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prev Cursor","description":"Cursor to navigate to later messages."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Cursor to navigate to earlier messages."},"context":{"items":{"$ref":"#/components/schemas/SearchContextMessage"},"type":"array","title":"Context","description":"Messages surrounding the match for context."}},"type":"object","required":["message_id","prev_cursor","next_cursor","context"],"title":"SearchMatch"},"SearchMessagesResponse":{"properties":{"matches":{"items":{"$ref":"#/components/schemas/SearchMatch"},"type":"array","title":"Matches","description":"List of search matches with context."},"pagination":{"$ref":"#/components/schemas/routers__conversations__CursorPagination"}},"type":"object","required":["matches","pagination"],"title":"SearchMessagesResponse"},"SeedEligibilityFlowInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"SeedEligibilityFlowInput"},"SendEmailCodeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["email","project_id"],"title":"SendEmailCodeRequest"},"SendSmsCodeRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["phone_number","project_id"],"title":"SendSmsCodeRequest"},"SenderType":{"type":"string","enum":["human","ai","admin","system"],"title":"SenderType"},"SetCallControlInput":{"properties":{"call_control":{"type":"string","title":"Call Control"}},"type":"object","required":["call_control"],"title":"SetCallControlInput"},"SetPassthroughInput":{"properties":{"passthrough_enabled":{"type":"boolean","title":"Passthrough Enabled"},"passthrough_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Passthrough Number"}},"type":"object","required":["passthrough_enabled"],"title":"SetPassthroughInput"},"SetRolloutPercentInput":{"properties":{"percent":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Percent"}},"type":"object","required":["percent"],"title":"SetRolloutPercentInput"},"SetThreadCallOptOutInput":{"properties":{"reason":{"type":"string","enum":["opt_out_request","no_longer_patient"],"title":"Reason"}},"type":"object","required":["reason"],"title":"SetThreadCallOptOutInput"},"SetThreadTimeInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"datetime":{"type":"string","format":"date-time","title":"Datetime"}},"type":"object","required":["thread_id","datetime"],"title":"SetThreadTimeInput"},"SimulatedMessage":{"properties":{"initial_messages":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Initial Messages"},"max_turns":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Turns"},"agent_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Type"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry"},"behavioural_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Behavioural Prompt"},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic"},"create":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Create","default":false},"evaluate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Evaluate","default":false}},"type":"object","title":"SimulatedMessage"},"SingleSimulationRequest":{"properties":{"is_voice":{"type":"boolean","title":"Is Voice","description":"Whether to run in voice mode","default":false},"call_direction":{"anyOf":[{"type":"string","enum":["inbound","outbound"]},{"type":"null"}],"title":"Call Direction","description":"Fake the call direction for voice runs so configs branching on <<call_direction>> can be tested"},"ai_prompt":{"type":"string","maxLength":5000,"minLength":1,"title":"Ai Prompt","description":"AI system prompt to use"},"user_messages":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"User Messages","description":"List of user messages to send in the conversation"},"json_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Data","description":"Initial JSON data for the thread"},"turn_count":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Turn Count","description":"Maximum number of turns (AI responses) per conversation (max 30)"},"thread_id":{"type":"string","title":"Thread Id","description":"Thread ID to use for the simulation"},"temperature":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Temperature","description":"Model temperature for randomness control (canonical scale 0-1)"},"message_delay":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.0},{"type":"null"}],"title":"Message Delay","description":"Delay in seconds between simulation messages (default 2.0, 0 = no delay)"},"persona_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Model","description":"Model to use for persona message generation (default: gpt-5.6-luna)"},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this simulation"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides for this simulation"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Retell account to use for voice simulations; required when the project has multiple voice integrations"}},"type":"object","required":["ai_prompt","turn_count","thread_id"],"title":"SingleSimulationRequest","description":"Request model for single conversation simulation."},"SingleSimulationResponse":{"properties":{"thread_id":{"type":"string","title":"Thread Id"},"status":{"type":"string","title":"Status"},"message":{"type":"string","title":"Message"}},"type":"object","required":["thread_id","status","message"],"title":"SingleSimulationResponse","description":"Response model for single conversation simulation."},"SmokeTestConfigInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"SmokeTestConfigInput"},"StandaloneTestInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"test_appointment_date":{"type":"string","title":"Test Appointment Date"},"test_appointment_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Test Appointment Time"}},"type":"object","required":["project_id","test_appointment_date"],"title":"StandaloneTestInput"},"StartBulkExportInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"single_job":{"type":"boolean","title":"Single Job","default":false},"convertible_visits_enabled":{"type":"boolean","title":"Convertible Visits Enabled","default":true},"operator_enabled":{"type":"boolean","title":"Operator Enabled","default":false},"operator_automatic":{"type":"boolean","title":"Operator Automatic","default":false},"control_group_enabled":{"type":"boolean","title":"Control Group Enabled","default":true},"exclusion_csv_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclusion Csv Data"},"exclusion_csv_filenames":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclusion Csv Filenames"}},"type":"object","required":["project_id"],"title":"StartBulkExportInput"},"StartChatInput":{"properties":{"patient_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Patient Ids"},"eligibility_flow_id":{"type":"string","format":"uuid","title":"Eligibility Flow Id"}},"type":"object","required":["patient_ids","eligibility_flow_id"],"title":"StartChatInput"},"StartSessionInput":{"properties":{"thread_id":{"type":"string","title":"Thread Id","description":"Thread the presence session attaches to."},"project_id":{"type":"string","title":"Project Id","description":"Project the thread belongs to."}},"type":"object","required":["thread_id","project_id"],"title":"StartSessionInput"},"StartSessionResponse":{"properties":{"session_id":{"type":"string","title":"Session Id"},"conversation_id":{"type":"string","title":"Conversation Id"},"conversation_url":{"type":"string","title":"Conversation Url"}},"type":"object","required":["session_id","conversation_id","conversation_url"],"title":"StartSessionResponse"},"StringInputModel":{"properties":{"string_input":{"type":"string","title":"String Input"},"thread_id":{"type":"string","title":"Thread Id"},"puppeteer_config_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Puppeteer Config Name"}},"type":"object","required":["string_input","thread_id","puppeteer_config_name"],"title":"StringInputModel"},"TavusAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["project_id"],"title":"TavusAccountInput"},"ThreadAndCallResponse":{"properties":{"thread_id":{"type":"string","title":"Thread Id","description":"The unique identifier for the thread (new or existing)."},"call":{"$ref":"#/components/schemas/PublicCallInfo","description":"Details about the initiated call."}},"type":"object","required":["thread_id","call"],"title":"ThreadAndCallResponse"},"ThreadJsonInputModel":{"properties":{"project_name":{"type":"string","title":"Project Name","description":"The name of the Puppeteer project used for this thread."},"json_input":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}],"title":"Json Input","description":"A JSON object or string containing the data to send to the thread."}},"type":"object","required":["project_name","json_input"],"title":"ThreadJsonInputModel"},"ThreadType":{"type":"string","enum":["NORMAL","SIMULATED","CONFIG_TEST","PLAYGROUND"],"title":"ThreadType","description":"Enum for different types of threads."},"ThreadUsage":{"properties":{"billable_messages":{"type":"integer","title":"Billable Messages","description":"Number of billable messages in the thread."},"billable_message_cost":{"type":"number","title":"Billable Message Cost","description":"Total cost of billable messages."},"voice_minutes":{"type":"number","title":"Voice Minutes","description":"Total voice call duration in minutes."},"voice_cost":{"type":"number","title":"Voice Cost","description":"Total cost of voice calls."},"total_cost":{"type":"number","title":"Total Cost","description":"Combined cost of messages and voice calls."}},"type":"object","required":["billable_messages","billable_message_cost","voice_minutes","voice_cost","total_cost"],"title":"ThreadUsage"},"TokenResponse":{"properties":{"access_token":{"type":"string","title":"Access Token","description":"The generated JWT token."}},"type":"object","required":["access_token"],"title":"TokenResponse"},"UpdateAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url"}},"type":"object","required":["project_id"],"title":"UpdateAccountInput"},"UpdateCalidIntegrationInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"webhook_secret":{"type":"string","title":"Webhook Secret"}},"type":"object","required":["project_id","webhook_secret"],"title":"UpdateCalidIntegrationInput"},"UpdateConfigTestInput":{"properties":{"is_voice":{"type":"boolean","title":"Is Voice","description":"Whether to run in voice mode","default":false},"call_direction":{"anyOf":[{"type":"string","enum":["inbound","outbound"]},{"type":"null"}],"title":"Call Direction","description":"Fake the call direction for voice runs so configs branching on <<call_direction>> can be tested"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name","description":"Human-readable label for the config test"},"ai_prompt":{"type":"string","minLength":1,"title":"Ai Prompt","description":"Persona description (AI prompt) for the simulated user"},"user_messages":{"items":{"type":"string"},"type":"array","title":"User Messages","description":"Scripted user messages to send in the conversation"},"turn_count":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Turn Count","description":"Maximum number of turns (AI responses) per conversation (max 100)"},"json_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Data","description":"JSON payload for thread initialization"},"trigger_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Trigger Data","description":"Maps a trigger class name to the payload delivered to its check() when the test runs, e.g. {'ReceivedHealthieWebhookTrigger': {...}}."},"expected_analysis_results":{"additionalProperties":true,"type":"object","title":"Expected Analysis Results","description":"Assertions extracted from the transcript after the conversation runs. Shape: {variable_name: {type, prompt, expected_result, default_value, exclude_from_analysis}}"},"expected_scheduled_call":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Expected Scheduled Call","description":"Voice-only assertion that a scheduled call was booked. Shape: {match_type: 'any' | 'within_hours' | 'date' | 'exact', ...match-specific fields}"},"mock_responses":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mock Responses","description":"Mock responses for HTTP services during the test run"},"message_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Message Delay","description":"Delay in seconds between simulation messages (default 2.0, 0 = no delay)"},"persona_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona Model","description":"Model to use for persona message generation (default: gpt-5.6-luna)"},"env_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Variables","description":"Environment variable overrides for this test run"},"env_secrets":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Env Secrets","description":"Environment secret overrides for this test run"},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"Retell account to use for voice tests; required when the project has multiple voice integrations"},"gates_production":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Gates Production","description":"When true, this test must pass before production deploys are applied"}},"type":"object","required":["name","ai_prompt","turn_count"],"title":"UpdateConfigTestInput","description":"Request model for updating an existing config test."},"UpdateDocumentInput":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Description"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"}},"type":"object","title":"UpdateDocumentInput"},"UpdateExclusionCsvInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"flow_id":{"type":"string","title":"Flow Id"},"exclusion_csv_data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclusion Csv Data"},"exclusion_csv_filenames":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclusion Csv Filenames"}},"type":"object","required":["project_id","flow_id"],"title":"UpdateExclusionCsvInput"},"UpdateFlowSettingsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"flow_id":{"type":"string","title":"Flow Id"},"convertible_visits_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Convertible Visits Enabled"},"operator_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Operator Enabled"},"operator_automatic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Operator Automatic"},"control_group_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Control Group Enabled"}},"type":"object","required":["project_id","flow_id"],"title":"UpdateFlowSettingsInput"},"UpdateFranchisesInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"portal":{"type":"string","title":"Portal"},"franchises":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Franchises"}},"type":"object","required":["project_id","portal","franchises"],"title":"UpdateFranchisesInput"},"UpdateHealthieIntegrationInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"shard_authorization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shard Authorization Id"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"sandbox_env":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sandbox Env"}},"type":"object","required":["project_id"],"title":"UpdateHealthieIntegrationInput"},"UpdateInfobipAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url"},"bot_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Agent Id"}},"type":"object","required":["project_id"],"title":"UpdateInfobipAccountInput"},"UpdateIterableAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"shell_template_campaign_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shell Template Campaign Id"},"reminder_campaign_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Reminder Campaign Ids"},"redirect_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Message"}},"type":"object","required":["project_id"],"title":"UpdateIterableAccountInput"},"UpdateKnowledgeBaseInput":{"properties":{"title":{"type":"string","maxLength":40,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":200,"title":"Description"}},"type":"object","required":["title","description"],"title":"UpdateKnowledgeBaseInput"},"UpdateOperatorAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"ecw_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecw Username"},"ecw_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecw Password"},"ecw_totp_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecw Totp Secret"},"enhanced_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enhanced Client Id"},"enhanced_sign_key_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enhanced Sign Key Base64"},"enhanced_healow_scheduling_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Enhanced Healow Scheduling Token"}},"type":"object","required":["project_id"],"title":"UpdateOperatorAccountInput"},"UpdateOrganizationAiCredentialsInput":{"properties":{"openai_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openai Api Key"},"gemini_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gemini Api Key"},"gemini_service_account_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gemini Service Account Json"}},"type":"object","title":"UpdateOrganizationAiCredentialsInput"},"UpdatePayorCredentialsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"payor_slug":{"type":"string","title":"Payor Slug"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"totp_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Totp Secret"},"billing_provider":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Billing Provider"},"service_line":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Service Line"}},"type":"object","required":["project_id","payor_slug","username","password"],"title":"UpdatePayorCredentialsInput"},"UpdateProjectAiCredentialsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"openai_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openai Api Key"},"gemini_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gemini Api Key"},"gemini_service_account_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gemini Service Account Json"}},"type":"object","required":["project_id"],"title":"UpdateProjectAiCredentialsInput"},"UpdateReferralResultInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"overrides":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Overrides"}},"type":"object","required":["project_id","overrides"],"title":"UpdateReferralResultInput"},"UpdateReferralRowInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"row":{"$ref":"#/components/schemas/ReferralRowInput"}},"type":"object","required":["project_id","row"],"title":"UpdateReferralRowInput"},"UpdateRenderingProvidersInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"rendering_providers":{"items":{"$ref":"#/components/schemas/RenderingProviderInput"},"type":"array","title":"Rendering Providers"}},"type":"object","required":["project_id","rendering_providers"],"title":"UpdateRenderingProvidersInput"},"UpdateRetellAccountInput":{"properties":{"retell_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Api Key"},"retell_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Agent Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"old_project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Project Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"caller_id_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caller Id Number"},"before_call_json_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Call Json Input"}},"type":"object","title":"UpdateRetellAccountInput"},"UpdateScheduleInput":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200,"minLength":1},{"type":"null"}],"title":"Name"},"run_all_tests":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Run All Tests"},"config_test_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Config Test Ids"},"cron_expression":{"anyOf":[{"type":"string","minLength":5},{"type":"null"}],"title":"Cron Expression"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"UpdateScheduleInput"},"UpdateSmokeTestConfigInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"days":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Days"},"time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"slot_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot Date"},"slot_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot Time"}},"type":"object","required":["project_id"],"title":"UpdateSmokeTestConfigInput"},"UpdateTavusAccountInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"tavus_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tavus Api Key"},"replica_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replica Id"},"max_call_duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Call Duration Seconds"},"max_concurrent_sessions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Concurrent Sessions"},"max_sessions_per_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Sessions Per Day"}},"type":"object","required":["project_id"],"title":"UpdateTavusAccountInput"},"UpdateThreadDebugLogsInput":{"properties":{"debug_logs_enabled":{"type":"boolean","title":"Debug Logs Enabled"}},"type":"object","required":["debug_logs_enabled"],"title":"UpdateThreadDebugLogsInput"},"UpdateTwilioAccountInput":{"properties":{"account_sid":{"type":"string","title":"Account Sid"},"auth_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auth Token"},"messaging_service_sid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Messaging Service Sid"},"project_id":{"type":"string","title":"Project Id"}},"type":"object","required":["account_sid","messaging_service_sid","project_id"],"title":"UpdateTwilioAccountInput"},"UpdateVisitOutcomeInput":{"properties":{"visit_id":{"type":"string","title":"Visit Id"},"outcome_status":{"type":"string","title":"Outcome Status"}},"type":"object","required":["visit_id","outcome_status"],"title":"UpdateVisitOutcomeInput"},"UpdateVoiceAccountInput":{"properties":{"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Speed"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"before_call_json_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Call Json Input"}},"type":"object","title":"UpdateVoiceAccountInput"},"UpsertCampaignInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"campaign_id":{"type":"string","title":"Campaign Id"},"campaign_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Name"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"call_window_start_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Window Start Hour"},"call_window_end_hour":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Call Window End Hour"}},"type":"object","required":["project_id","campaign_id"],"title":"UpsertCampaignInput"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyEmailCodeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"project_id":{"type":"string","title":"Project Id"},"code":{"type":"string","maxLength":6,"minLength":6,"title":"Code"}},"type":"object","required":["email","project_id","code"],"title":"VerifyEmailCodeRequest"},"VerifySmsCodeRequest":{"properties":{"phone_number":{"type":"string","title":"Phone Number"},"project_id":{"type":"string","title":"Project Id"},"code":{"type":"string","maxLength":10,"minLength":4,"title":"Code"}},"type":"object","required":["phone_number","project_id","code"],"title":"VerifySmsCodeRequest"},"VersionDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"in_playground":{"type":"boolean","title":"In Playground"},"is_locked":{"type":"boolean","title":"Is Locked","default":true},"rollout_percent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rollout Percent"},"version_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Version Metadata"},"template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template"},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"llm_temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Llm Temperature"},"allow_document_uploads":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Document Uploads"},"reuse_threads_by_voice_phone_number":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reuse Threads By Voice Phone Number"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"custom_modules":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Custom Modules"},"alerts":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Alerts"}},"type":"object","required":["id","name","created_at","description","is_active","in_playground","template"],"title":"VersionDetailResponse"},"VersionResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"in_playground":{"type":"boolean","title":"In Playground"},"is_locked":{"type":"boolean","title":"Is Locked","default":true},"rollout_percent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rollout Percent"},"version_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Version Metadata"}},"type":"object","required":["id","name","created_at","description","is_active","in_playground"],"title":"VersionResponse"},"VisitDetailsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"filter_type":{"type":"string","title":"Filter Type"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"page":{"type":"integer","title":"Page","default":1},"per_page":{"type":"integer","title":"Per Page","default":20},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"},"export":{"type":"boolean","title":"Export","default":false}},"type":"object","required":["project_id","filter_type"],"title":"VisitDetailsInput"},"VisitMetricsInput":{"properties":{"project_id":{"type":"string","title":"Project Id"},"eligibility_flow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Flow Id"},"communication_channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Communication Channel"},"date_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"},"date_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},"type":"object","required":["project_id"],"title":"VisitMetricsInput"},"VoiceAccountPublicInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"}},"type":"object","required":["id","phone_number"],"title":"VoiceAccountPublicInfo"},"VoiceCallConfigResponse":{"properties":{"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Speed"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"type":"object","title":"VoiceCallConfigResponse"},"VoiceRouteResponse":{"properties":{"project_id":{"type":"string","title":"Project Id"},"project_name":{"type":"string","title":"Project Name"},"organization_id":{"type":"string","title":"Organization Id"},"agent_id":{"type":"string","title":"Agent Id"},"voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Id"},"voice_speed":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Voice Speed"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"before_call_json_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Before Call Json Input"}},"type":"object","required":["project_id","project_name","organization_id","agent_id"],"title":"VoiceRouteResponse"},"VoiceTokenInput":{"properties":{"project_id":{"type":"string","title":"Project Id","description":"The UUID of the Puppeteer project."},"retell_account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retell Account Id","description":"The UUID of the Retell account to use. Required when the project has multiple phone numbers."}},"type":"object","required":["project_id"],"title":"VoiceTokenInput"},"routers__calls__CursorPagination":{"properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Base64-encoded cursor for the next page of results. Null when there are no more results."}},"type":"object","required":["cursor"],"title":"CursorPagination"},"routers__conversations__CursorPagination":{"properties":{"cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor","description":"Base64-encoded cursor for the next batch of messages. Null if no more results."}},"type":"object","required":["cursor"],"title":"CursorPagination"}}},"tags":[{"name":"Auth","description":"JWT token generation and organization creation."},{"name":"Messages","description":"Send and receive messages, retrieve conversation history, search, and create messages in threads."},{"name":"Threads","description":"Create and manage threads, aliases, scheduled events, and bulk operations."},{"name":"Thread Access","description":"Generate and validate JWT tokens from access links."},{"name":"Configs","description":"Create, update, and activate Puppeteer configs."},{"name":"Config Tests","description":"Run single or batch config tests."},{"name":"Config Test Schedules","description":"Sync scheduled config test jobs with the scheduler."},{"name":"Deployments","description":"Production and playground deployment lifecycle and history."},{"name":"Simulations","description":"Run batch and single conversation simulations."},{"name":"Projects","description":"Project dashboard stats and conversation analysis."},{"name":"Project Environment","description":"CRUD for project environment variables and secrets."},{"name":"Organizations","description":"Usage stats and billing configuration for organizations."},{"name":"Billing","description":"Billing functions and Stripe usage reporting."},{"name":"Knowledge Bases","description":"CRUD for knowledge bases and documents, S3 upload, vector DB ingestion."},{"name":"Voice","description":"Voice call handling, scheduling, batch calls, and WebSocket LLM."},{"name":"Voice - Healthie","description":"Healthie org-scoped phone call creation."},{"name":"Retell","description":"Retell voice account management and call webhooks."},{"name":"Twilio","description":"Twilio SMS account management and delivery status callbacks."},{"name":"Webhooks - Healthie","description":"Healthie webhook processing for appointments, documents, and forms."},{"name":"Webhooks - Infobip","description":"Infobip WhatsApp message webhook processing."},{"name":"Webhooks - Tellescope","description":"Tellescope webhook processing and workflow triggers."},{"name":"Webhooks - Vital","description":"Vital health data webhook forwarding."},{"name":"Epic","description":"Epic EHR OAuth callback handler."},{"name":"Slack","description":"Slack event processing and mention handling."},{"name":"Swing","description":"Swing freed appointment opening calls and management."},{"name":"Clients","description":"Client-specific batch operations and integrations."}]}