openapi: 3.0.3 info: title: Ask Sage Server Admin Utilities 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: Utilities description: Utility endpoints paths: /tokenizer: post: summary: Count tokens description: Get token count for provided content tags: - Utilities requestBody: required: true content: application/json: schema: type: object required: - content properties: content: type: string description: Content to tokenize model: type: string default: ada-002 description: Model to use for tokenization convert_to_asksage: type: boolean default: false description: Convert to Ask Sage token format completion_estimate: type: integer default: 0 description: Estimated completion tokens responses: '200': description: Token count content: application/json: schema: type: object properties: response: type: string status: type: integer get: summary: Count tokens (GET) description: Get token count for provided content tags: - Utilities responses: '200': description: Token count content: application/json: schema: type: object properties: response: type: string status: type: integer /analyze-all-links: post: summary: Analyze all links description: Analyzes all the links in the user's input and returns the analysis result tags: - Utilities requestBody: required: true content: application/json: schema: type: object required: - content properties: content: type: string description: Content containing links to analyze responses: '200': description: Link analysis result content: application/json: schema: type: object properties: response: type: string error_count: type: integer status: type: integer /check-link-status: post: summary: Check link status description: Checks the status of a given link and returns the HTTP status code tags: - Utilities requestBody: required: true content: application/json: schema: type: object required: - link properties: link: type: string format: uri description: URL to check responses: '200': description: Link status content: application/json: schema: type: object properties: response: type: string description: HTTP status code or 'error' status: type: integer /get-and-upload-labels: post: summary: Generate and upload labels description: Generate AI-powered labels for a chat session message and store them in the database tags: - Utilities requestBody: required: true content: application/json: schema: type: object required: - session_id - message properties: session_id: type: string description: Chat session ID message: type: string description: Message to categorize responses: '200': description: Labels generated and stored content: application/json: schema: type: object properties: response: type: string labels: type: array items: type: string session_id: type: string status: type: integer /get-learning-videos: get: summary: Get learning videos description: Returns a list of learning videos from a YouTube playlist. Results are cached. tags: - Utilities responses: '200': description: Learning videos retrieved content: application/json: schema: type: object properties: response: type: object status: type: integer cached: type: boolean post: summary: Get learning videos (POST) description: Returns a list of learning videos from a YouTube playlist. Results are cached. tags: - Utilities responses: '200': description: Learning videos retrieved components: 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.