Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/agentstack-tech:agentstack-tech-billing-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AgentStack Core Billing API
description: 'AgentStack is a Universal Processing System — a patented AI-first platform that replaces an entire backend stack and ships a ready admin UI. One ecosystem covers auth, payments, data, social, messenger, AI, knowledge base, game economy, RBAC and more — behind a single SDK, REST API and Model Context Protocol surface. You say the outcome. An AI with AgentStack connected hosts, configures, and reads the result back. Free tier from $0.
**Two layers:** (1) **Universal access** — `POST /mcp` (`agentstack.execute`), `GET /mcp/actions`, `GET /mcp/discovery`; `GET/POST /api/dna/data` (8DNA key-value); `POST /api/commands/*` (Protein, same stack as MCP `commands.execute`). (2) **REST compatibility** — many `/api/*` routes for SPA, SDK, OAuth, webhooks, uploads. See repo doc `docs/API_CHANNELS_AND_PROTOCOLS.md`.
**Channels:** Prefer MCP (`POST /mcp`, `GET /mcp/actions`), 8DNA (`/api/dna/data`), and Protein commands (`/api/commands/*`) for new integrations. REST paths below are the compatibility surface for SPA, SDKs, OAuth, and uploads. See `/api-docs`, `/mcp-docs`, and docs/API_CHANNELS_AND_PROTOCOLS.md.
**Try it:** Use Authorize with `X-API-Key` or Bearer JWT. Changelog: docs/api/API_CHANGELOG.md.'
version: 0.4.24
x-agentstack-version: 0.4.24
x-genetic-tag: docs.api.specs.gen1
x-changelog-url: docs/api/API_CHANGELOG.md
x-exported-at: '2026-11-01T04:40:16Z'
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Billing
description: Billing and subscription surfaces. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md).
paths:
/api/billing/health:
get:
tags:
- Billing
summary: Billing Health
description: Проверка здоровья billing service
operationId: billing_health_api_billing_health_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'422':
description: Unprocessable Entity
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/overview:
get:
tags:
- Billing
summary: Get Billing Overview
description: 'User billing overview for SPA Profile/Finance (session user_id; query user_id ignored).
Agents: merged limits → MCP ``buffs.get_effective_limits``; finance hub KPIs →
``finance.dashboard_bundle``. Not batched on cold shell (``X-No-Batch`` / defer policy).'
operationId: get_billing_overview_api_billing_overview_get
parameters:
- name: user_id
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: User ID
title: User Id
description: User ID
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/project/{project_id}:
get:
tags:
- Billing
summary: Get Project Billing
description: Получить детальную информацию по билингу проекта
operationId: get_project_billing_api_billing_project__project_id__get
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
description: Project ID
title: Project Id
description: Project ID
- name: user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: User ID (ignored, uses authenticated user)
title: User Id
description: User ID (ignored, uses authenticated user)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/usage/{project_id}:
get:
tags:
- Billing
summary: Get Usage History
description: Получить историю использования проекта
operationId: get_usage_history_api_billing_usage__project_id__get
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
description: Project ID
title: Project Id
description: Project ID
- name: user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: User ID (ignored, uses authenticated user)
title: User Id
description: User ID (ignored, uses authenticated user)
- name: period
in: query
required: false
schema:
type: string
description: Period (7d, 30d, 90d)
default: 30d
title: Period
description: Period (7d, 30d, 90d)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/limits:
get:
tags:
- Billing
summary: Get User Limits
description: Получить лимиты пользователя
operationId: get_user_limits_api_billing_limits_get
parameters:
- name: user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: User ID (ignored, uses authenticated user)
title: User Id
description: User ID (ignored, uses authenticated user)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/recommendations:
get:
tags:
- Billing
summary: Get Recommendations
description: Получить рекомендации по оптимизации
operationId: get_recommendations_api_billing_recommendations_get
parameters:
- name: user_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: User ID (ignored, uses authenticated user)
title: User Id
description: User ID (ignored, uses authenticated user)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/usage:
get:
tags:
- Billing
summary: Get Billing Usage
description: 'Получить использование и overage (объединяет всё в одном)
Возвращает: Logic Engine usage, Storage usage, купленные пакеты, текущие overage charges, статус overage'
operationId: get_billing_usage_api_billing_usage_get
parameters:
- name: project_id
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Project ID
title: Project Id
description: Project ID
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/storage-package:
post:
tags:
- Billing
summary: Purchase Storage Package
description: 'Купить storage пакет для проекта
Обновляет project.data.config.storage'
operationId: purchase_storage_package_api_billing_storage_package_post
parameters:
- name: package_size
in: query
required: true
schema:
type: integer
description: Package size in GB (5, 10, 25)
title: Package Size
description: Package size in GB (5, 10, 25)
- name: project_id
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Project ID
title: Project Id
description: Project ID
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/logic-engine-package:
post:
tags:
- Billing
summary: Purchase Logic Engine Package
description: 'Купить пакет расширения Logic Engine для пользователя
Обновляет user.data.config.packages.logic_engine'
operationId: purchase_logic_engine_package_api_billing_logic_engine_package_post
parameters:
- name: package_size
in: query
required: true
schema:
type: string
description: 'Package size: small, medium, large'
title: Package Size
description: 'Package size: small, medium, large'
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/api-calls-package:
post:
tags:
- Billing
summary: Purchase Api Calls Package
description: 'Купить пакет расширения API calls для пользователя
Обновляет user.data.config.packages.api_calls'
operationId: purchase_api_calls_package_api_billing_api_calls_package_post
parameters:
- name: package_size
in: query
required: true
schema:
type: string
description: 'Package size: small, medium, large'
title: Package Size
description: 'Package size: small, medium, large'
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
/api/billing/overage:
patch:
tags:
- Billing
summary: Update Overage Config
description: 'Включить/отключить overage для проекта
Обновляет project.data.config.overage'
operationId: update_overage_config_api_billing_overage_patch
parameters:
- name: enabled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Enable/disable overage
title: Enabled
description: Enable/disable overage
- name: logic_engine_enabled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Enable/disable Logic Engine overage
title: Logic Engine Enabled
description: Enable/disable Logic Engine overage
- name: api_calls_enabled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Enable/disable API calls overage
title: Api Calls Enabled
description: Enable/disable API calls overage
- name: storage_enabled
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Enable/disable Storage overage
title: Storage Enabled
description: Enable/disable Storage overage
- name: project_id
in: query
required: false
schema:
anyOf:
- type: integer
- type: 'null'
description: Project ID
title: Project Id
description: Project ID
- $ref: '#/components/parameters/IdempotencyKey'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: Unauthorized
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'500':
description: Internal Server Error
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
x-channel: rest_compat
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ProblemDetails:
type: object
description: RFC 7807 Problem Details (+ AgentStack trace_id).
required:
- title
- status
properties:
type:
type: string
format: uri
default: about:blank
description: URI reference identifying the problem type.
title:
type: string
description: Short, human-readable summary of the problem type.
status:
type: integer
minimum: 100
maximum: 599
description: HTTP status code for this occurrence.
detail:
type: string
description: Human-readable explanation specific to this occurrence.
instance:
type: string
format: uri
description: URI reference identifying this specific occurrence.
trace_id:
type: string
description: AgentStack request/trace correlation id (X-Trace-Id).
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
parameters:
IdempotencyKey:
name: Idempotency-Key
in: header
required: false
description: Client-generated key to make mutating requests idempotent.
schema:
type: string
maxLength: 256
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: User session JWT from /auth/login.
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: 'Project API key. Optional service_caps whitelist is enforced before RBAC. See /dev/docs/secure/api-keys-scopes. OAuth 2.1 Device Code (RFC 8628) for plugins: see /oauth/device/code — documented in docs, not as a non-standard OAS flow.'
x-tagGroups:
- name: Unified access
tags:
- MCP
- 8DNA API
- Commands
- name: Field access policy
tags:
- DataAccess
- name: Identity & access
tags:
- Authentication
- User
- Profile
- Sessions
- RBAC
- Permissions
- OAuth 2.1
- API Keys
- name: Project platform
tags:
- Projects
- Project
- CRM
- Business
- Integrations
- Agents Fleet
- Support
- Bots
- Dashboard
- Notifications
- name: Commerce
tags:
- Payments
- AgentNet
- Commerce
- Commerce Shop
- Commerce Merchant
- Marketplace
- Assets
- Global Assets
- Invoices
- Buffs
- name: Automation
tags:
- Logic Engine
- Logic Templates
- Commands
- Scheduler
- Webhooks
- Unified API
- name: Data & AI
tags:
- 8DNA API
- RAG
- Neural Architecture
- Neural Events
- AI Builder
- Files
- Project Files
- Hosting
- name: Ops
tags:
- Health & Metrics
- Admin
- Analytics
- Backup Management
- OAuth 2.1 Admin
- Observability
- OpTrace
- API Hub
- name: Fabric & platform
tags:
- Fabric
- Capabilities
- Sandbox
- Shell Hub
- Platform
- Discovery
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/agentstack-tech/openapi/agentstack-tech-billing-api-openapi.yml