API: Open Chat Studio v1 Description: Build, deploy and monitor chatbots. TAG: Chat Description: The Chat API is designed to be used for integrating chatbots into external systems. ENDPOINTS: GET /api/chat/{session_id}/{task_id}/poll/ Summary: Poll for task updates Parameters: - session_id (path, string (required)): Session ID - task_id (path, string (required)): Check on the status of a specific task Responses: 200: Content: application/json Schema: ChatTaskPoll 400: Content: application/json Schema: ChatTaskPollUserError 500: Content: application/json Schema: ChatTaskPollError Security: cookieAuth embedKeyAuth POST /api/chat/{session_id}/message/ Summary: Send a message to a chat session Parameters: - session_id (path, string (required)): Session ID Request Body: Content: application/json Schema: ChatSendMessageRequestWithAttachments Responses: 202: Content: application/json Schema: ChatSendMessageResponse Security: cookieAuth embedKeyAuth GET /api/chat/{session_id}/poll/ Summary: Poll for new messages in a chat session. Do not poll more than once every 30 seconds Description: Poll for new messages in a chat session Parameters: - limit (query, integer (optional)): Maximum number of messages to return (default: 50) - session_id (path, string (required)): Session ID - since (query, string (optional)): Only return messages after this timestamp Responses: 200: Content: application/json Schema: ChatPollResponse Security: cookieAuth embedKeyAuth POST /api/chat/{session_id}/upload/ Summary: Upload files for a chat message Parameters: - session_id (path, string (required)): Session ID Request Body: Content: multipart/form-data Schema: ChatUploadFileRequest Responses: 201: Content: application/json Schema: ChatUploadFileResponse Security: cookieAuth embedKeyAuth POST /api/chat/start/ Summary: Start a new chat session for a widget Description: Start a new chat session - supports both authenticated users and embedded widgets Request Body: Content: application/json Schema: ChatStartSessionRequest Responses: 201: Content: application/json Schema: ChatStartSessionResponse Security: cookieAuth embedKeyAuth SCHEMAS: ChatPollResponse: - messages: array of Message (required) - has_more: boolean (required) - session_status: Unknown (required) ChatSendMessageRequestWithAttachments: - message: string (required) - context: object - attachment_ids: array of integer - version_number: integer ChatSendMessageResponse: - task_id: string (required) - status: Unknown (required) - error: string ChatStartSessionRequest: - chatbot_id: string (required) - version_number: integer - session_data: object - participant_remote_id: string - participant_name: string ChatStartSessionResponse: - session_id: string (required) - chatbot: Unknown (required) - participant: Unknown (required) ChatTaskPoll: - message: Message - status: ChatTaskPollStatusEnum ChatTaskPollError: - error: string - status: string (required) ChatTaskPollStatusEnum: - enum: [processing, complete] ChatTaskPollUserError: - error: string - status: string (required) ChatUploadFileRequest: - files: array of string (required) ChatUploadFileResponse: - files: array of UploadedFile (required) File: - name: string (required) - content_type: string - size: integer (required) - content_url: string (required) Message: - created_at: string (required) - role: MessageRoleEnum (required) - content: string (required) - metadata: Unknown (required) - tags: array of string (required) - attachments: array of File (required) MessageRoleEnum: - enum: [system, user, assistant] UploadedFile: - id: integer (required) - name: string (required) - size: integer (required) - content_type: string (required) SECURITY: - OAuth2 - Authorization Code Flow (authorization url: /o/authorize/, token url: /o/token/) - API Key authentication (header: X-api-key) - API Key authentication (cookie: sessionid) - API Key authentication (header: X-Embed-Key) - HTTP bearer authentication