openapi: 3.0.3 info: title: Cube Agents ChatSessions API version: 1.0.0 (1.0) description: "#### General Description\nAn API to access underlying Cube functionality. These endpoints are the same endpoints\nthat support Cube's universal add-ons and a plethora of integrations meaning you'll be able to interact with your\nCube data in many powerful ways. Visit the API section of Cube's [Help Center](https://help.cubesoftware.com/hc/en-us/sections/18205290556180-Custom-Integrations)\nfor more usage guides on how you can use this API to integrate with Cube to accomplish various tasks!\n\n#### Versioning\nAll requests to the API require a version to be configured via an `Accept` Header. The value of this Header should look like this:\n```\nAccept: application/json; version=1.0\n```\nNote that the version number may differ depending on which version of the endpoint is needed.\n\n#### Response Structure\nThe general response structure of Cube's API endpoints will contain a `\"data\"` and `\"metadata\"` root level key:\n```json\n{\n \"data\": { ... object data or list of objects ... },\n \"metadata\": {\n \"status\": 200,\n \"message\": \"Potential message with additional context\",\n \"error\": false,\n \"code\": \"\"\n }\n}\n```\n\n#### Rate Limiting\nAll endpoints have a rate limit configured, most of them default to 5/s.\nWhen the rate limit is encountered, a 429 HTTP code will be returned.\n\n#### Error Handling\nIn the event an error occurs, the response will typically look like this:\n```json\n{\n \"data\": {},\n \"metadata\": {\n \"status\": 400,\n \"message\": \"Some error message\",\n \"error\": true,\n \"code\": \"SOME_ERROR_CODE\"\n }\n}\n```\n" termsOfService: https://www.cubesoftware.com/terms-of-service servers: - url: https://api.cubesoftware.com description: Production API URL tags: - name: ChatSessions paths: /agents/chat/sessions: get: operationId: agents_chat_sessions_list description: List chat sessions for the current user summary: List Chat Sessions parameters: - in: query name: data_table_id schema: type: string description: When listing sessions with session_type=DATA_TABLE_MANAGEMENT, filter to sessions scoped to this source data table UUID. - in: query name: limit schema: type: integer description: 'Number of items per page (default: 50)' - in: query name: page schema: type: integer description: 'Page number (default: 1)' - in: query name: session_type schema: type: string description: 'Filter by session type (default: CHAT). One of: CHAT, PLANNER, DATA_TABLE_MANAGEMENT, WIDGET_BUILDER' tags: - ChatSessions security: - OAuth2: [] responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ChatSession' description: '' '400': description: Invalid pagination parameters '401': description: Unauthorized '403': description: Permission denied post: operationId: agents_chat_sessions_create description: Create a new chat session summary: Create Chat Session tags: - ChatSessions requestBody: content: application/json: schema: $ref: '#/components/schemas/ChatSession' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/ChatSession' multipart/form-data: schema: $ref: '#/components/schemas/ChatSession' security: - OAuth2: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/ChatSession' description: '' /agents/chat/sessions/{id}: get: operationId: agents_chat_sessions_retrieve description: Retrieve a specific chat session by ID summary: Retrieve Chat Session parameters: - in: path name: id schema: type: string required: true tags: - ChatSessions security: - OAuth2: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/ChatSession' description: '' components: schemas: AppTypeEnum: enum: - SLACK - MS_TEAMS - CUBE_API type: string description: '* `SLACK` - Slack * `MS_TEAMS` - Microsoft Teams * `CUBE_API` - Cube API' ChatSession: type: object properties: id: type: string readOnly: true created_at: type: string format: date-time readOnly: true last_active_at: type: string format: date-time readOnly: true app_type: allOf: - $ref: '#/components/schemas/AppTypeEnum' readOnly: true name: type: string nullable: true maxLength: 255 session_type: allOf: - $ref: '#/components/schemas/SessionTypeEnum' default: CHAT context: {} resources: type: string readOnly: true required: - app_type - created_at - id - last_active_at - resources SessionTypeEnum: enum: - CHAT - WIDGET_BUILDER - PLANNER - DATA_TABLE_MANAGEMENT type: string description: '* `CHAT` - Chat * `WIDGET_BUILDER` - Widget Builder * `PLANNER` - Planner * `DATA_TABLE_MANAGEMENT` - Data Table Management' securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://portal.cubesoftware.com/o/authorize/ tokenUrl: https://api.cubesoftware.com/o/token/ scopes: {} description: Standard Cube OAuth 2.0 flow