openapi: 3.0.3 info: title: Ask Sage Server Admin Dataset Management API description: 'Ask Sage is an AI-powered platform providing intelligent completions, knowledge management, and workflow automation. ## Base URL `https://api.asksage.ai` ## Authentication All endpoints require a valid JWT token passed via the `x-access-tokens` header, unless otherwise noted. Obtain a token by authenticating through the User API (`/user/get-token-with-api-key`). ## Message Format The `message` field in API requests can be either: - A single string prompt: `"What is Ask Sage?"` - An array of conversation messages: `[{"user": "me", "message": "what is Ask Sage?"}, {"user": "gpt", "message": "Ask Sage is an..."}]` ## Key Features - **AI Completions** — Query multiple LLM providers with a unified interface - **Knowledge Training** — Upload documents, files, and data to build custom datasets - **Tabular Data** — Ingest and query structured data (CSV, XLSX) with natural language - **Agent Builder** — Create, configure, and execute multi-step AI workflows - **Plugins** — Extend capabilities with built-in and custom plugins - **MCP Servers** — Connect to Model Context Protocol servers for tool integration' version: '2.0' contact: name: Ask Sage Support email: support@asksage.ai url: https://asksage.ai servers: - url: '{baseUrl}/server' description: Ask Sage Server API variables: baseUrl: default: https://api.asksage.ai description: API base URL. Use https://api.asksage.ai for production, or your self-hosted instance URL. security: - ApiKeyAuth: [] tags: - name: Dataset Management description: Dataset operations and permissions paths: /add-dataset: post: summary: Add dataset to user tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string minLength: 4 maxLength: 100 classification: type: string enum: - Unclassified - CUI is_tabular: type: boolean default: false description: Whether this is a tabular dataset responses: '200': description: Dataset added /assign-dataset: post: summary: Assign dataset to user tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset - email properties: dataset: type: string email: type: string format: email responses: '200': description: Dataset assigned /deassign-dataset: post: summary: Remove dataset from user tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset - email properties: dataset: type: string email: type: string format: email responses: '200': description: Dataset deassigned /update-permission-dataset: post: summary: Update dataset permissions tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset - email properties: dataset: type: string email: type: string format: email permissions: type: string enum: - read - edit - admin default: read responses: '200': description: Permissions updated /get-datasets-with-permissions: post: summary: Get user datasets with permissions tags: - Dataset Management requestBody: content: application/json: schema: type: object properties: check_permissions: type: boolean default: true responses: '200': description: Datasets retrieved content: application/json: schema: type: object properties: response: type: array items: $ref: '#/components/schemas/Dataset' get: summary: Get user datasets with permissions (GET) tags: - Dataset Management responses: '200': description: Datasets retrieved content: application/json: schema: type: object properties: response: type: array items: $ref: '#/components/schemas/Dataset' /delete-dataset: post: summary: Delete dataset tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string responses: '200': description: Dataset deleted /get-dataset-permissions: post: summary: Check dataset permissions tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string permissions: type: string enum: - read - edit - admin default: read responses: '200': description: Permission check result content: application/json: schema: type: object properties: response: type: boolean status: type: integer /get-dataset-assignments: post: summary: Get dataset assignments tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string responses: '200': description: Assignments retrieved /update-dataset-organization: post: summary: Update dataset organization sharing tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string enable: type: boolean description: Enable or disable organization-wide access responses: '200': description: Organization sharing updated /get-dataset-organization: post: summary: Get dataset organization status tags: - Dataset Management requestBody: required: true content: application/json: schema: type: object required: - dataset properties: dataset: type: string responses: '200': description: Organization status retrieved content: application/json: schema: type: object properties: response: type: integer enum: - 0 - 1 status: type: integer components: schemas: Dataset: type: object properties: dataset: type: string classification: type: string enum: - Unclassified - CUI permissions: type: string enum: - read - edit - admin - owner securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-access-tokens description: JWT authentication token. Obtain a token by calling the User API endpoint `/user/get-token-with-api-key` with your email and API key.