Ask Sage Admin API
Admin operations for organization management
Admin operations for organization management
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ask-sage-admin-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Ask Sage Server Admin 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: Admin
description: Admin operations for organization management
paths:
/admin-total-purchased-tokens-organization:
post:
summary: Get total purchased tokens for organization
tags:
- Admin
responses:
'200':
description: Token information retrieved
/admin-used-tokens-for-organization:
post:
summary: Get used tokens for organization
tags:
- Admin
responses:
'200':
description: Used tokens retrieved
/admin-get-dataset:
post:
summary: Get datasets for user (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- email
properties:
email:
type: string
format: email
responses:
'200':
description: Datasets retrieved
/admin-export-users-csv:
post:
summary: Export organization users to CSV
tags:
- Admin
requestBody:
content:
application/json:
schema:
type: object
properties:
full:
type: boolean
default: false
responses:
'200':
description: CSV file
content:
text/csv:
schema:
type: string
/admin-update-user-verified:
post:
summary: Verify user email (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
responses:
'200':
description: User verified
/admin-update-user-paid:
post:
summary: Update user paid status (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
paid:
type: integer
enum:
- 0
- 1
responses:
'200':
description: Paid status updated
/admin-update-user-banned:
post:
summary: Ban/unban user (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
banned:
type: integer
enum:
- 0
- 1
responses:
'200':
description: Ban status updated
/admin-update-user-tokens:
post:
summary: Update user token limit (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
tokens:
type: integer
responses:
'200':
description: Tokens updated
/admin-update-user-train-tokens:
post:
summary: Update user training token limit (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
tokens:
type: integer
responses:
'200':
description: Training tokens updated
/admin-get-token-stats:
post:
summary: Get token usage statistics (admin)
tags:
- Admin
responses:
'200':
description: Statistics retrieved
/admin-get-user-count:
post:
summary: Get user count for organization (admin)
tags:
- Admin
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
paid:
type: boolean
hide_banned:
type: boolean
responses:
'200':
description: User count retrieved
/admin-get-all-users-with-tokens:
post:
summary: Get all organization users with token info (admin)
tags:
- Admin
requestBody:
content:
application/json:
schema:
type: object
properties:
full:
type: boolean
start:
type: integer
limit:
type: integer
default: 500
email:
type: string
sort_by:
type: string
enum:
- id
- organization_id
- type
- first_name
- last_name
- phone
- email
- company
- paid
- max_tokens
- max_train_tokens
- banned
- email_verified
- country
- mfa_secret
- x509_cn
sort_direction:
type: string
enum:
- asc
- desc
responses:
'200':
description: Users retrieved
/admin-get-all-logs:
post:
summary: Get user logs (admin)
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- user_id
properties:
user_id:
type: integer
responses:
'200':
description: Logs retrieved
/admin-get-token-requests:
post:
summary: Get token requests (admin)
description: Get token requests for the admin's organization
tags:
- Admin
requestBody:
content:
application/json:
schema:
type: object
properties:
status:
type: string
default: pending
limit:
type: integer
default: 50
maximum: 100
offset:
type: integer
default: 0
responses:
'200':
description: Token requests retrieved
/admin-review-token-request:
post:
summary: Review token request (admin)
description: Approve or deny a pending token request
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- request_id
- action
properties:
request_id:
type: integer
action:
type: string
enum:
- approve
- deny
approved_amount:
type: integer
admin_note:
type: string
responses:
'200':
description: Token request reviewed
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.