AsoBeast Admin API

The admin API from AsoBeast — 12 operation(s) for admin.

Operations 12

GET /admin/capacity Total daily demand against pool capacity #
GET /admin/proxy-pool Egress proxy pool health for operators #
GET /admin/support/workspaces List every workspace with its operational state #
GET /admin/support/workspaces/{workspaceId} Operational detail for one workspace #
POST /admin/support/workspaces/{workspaceId}/reconcile Reconcile one workspace against the billing provider #
POST /admin/support/workspaces/{workspaceId}/billing-events/{eventId}/replay Replay a stored billing event for this workspace #
POST /admin/support/workspaces/{workspaceId}/suspend Suspend a workspace #
POST /admin/support/workspaces/{workspaceId}/restore Restore a suspended workspace #
POST /admin/support/workspaces/{workspaceId}/run-daily Queue the daily run for one workspace #
GET /admin/support/overview Instance totals for the platform operator #
GET /admin/support/users Every account on the instance, newest first #
GET /admin/support/apps Every tracked app on the instance, newest first #

Work with this as data

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/asobeast-com:asobeast-com-admin-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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 Specification

asobeast-com-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: asobeast Admin API
  description: 'Self hosted ASO toolkit API.


    A metered instance carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset on every response, for the tightest limit the request touched. A self hosted instance has no request rate limits and sends no such header. Limits are per workspace, so minting more tokens does not buy more capacity, and they are sized per plan across three classes: read for stored data, write for configuration changes and store for the endpoints that reach the App Store or Google Play.


    A 429 carries Retry-After and a rateLimit object naming the window that closed, or an aiAllowance object when the workspace has spent the AI calls its plan includes this month. A 403 with a quota object means a plan capacity limit such as apps or tracked keyword markets, which is a different problem from a rate limit. A 402 with an entitlement object means the workspace needs a plan.


    Positions are 1-based and null means checked but not found within the captured depth, never zero. Daily granularity uses UTC dates.'
  version: 1.15.0
  contact: {}
servers:
- url: http://localhost:3000/api/backend
  description: Web origin proxy
- url: http://localhost:4000
  description: Direct API
security:
- personalApiToken: []
tags:
- name: Admin
paths:
  /admin/capacity:
    get:
      operationId: CapacityController_report
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Total daily demand against pool capacity
      tags:
      - Admin
  /admin/proxy-pool:
    get:
      operationId: ProxyPoolController_health
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Egress proxy pool health for operators
      tags:
      - Admin
  /admin/support/workspaces:
    get:
      operationId: SupportController_list
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
      summary: List every workspace with its operational state
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}:
    get:
      operationId: SupportController_detail
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Operational detail for one workspace
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}/reconcile:
    post:
      operationId: SupportController_reconcile
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportActionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Reconcile one workspace against the billing provider
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}/billing-events/{eventId}/replay:
    post:
      operationId: SupportController_replayBillingEvent
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      - name: eventId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportActionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Replay a stored billing event for this workspace
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}/suspend:
    post:
      operationId: SupportController_suspend
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportActionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Suspend a workspace
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}/restore:
    post:
      operationId: SupportController_restore
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportActionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Restore a suspended workspace
      tags:
      - Admin
  /admin/support/workspaces/{workspaceId}/run-daily:
    post:
      operationId: SupportController_runDaily
      parameters:
      - name: workspaceId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupportActionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Queue the daily run for one workspace
      tags:
      - Admin
  /admin/support/overview:
    get:
      operationId: SupportDirectoryController_totals
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Instance totals for the platform operator
      tags:
      - Admin
  /admin/support/users:
    get:
      operationId: SupportDirectoryController_users
      parameters:
      - name: workspaceId
        required: false
        in: query
        schema:
          minLength: 1
          maxLength: 64
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Every account on the instance, newest first
      tags:
      - Admin
  /admin/support/apps:
    get:
      operationId: SupportDirectoryController_apps
      parameters:
      - name: workspaceId
        required: false
        in: query
        schema:
          minLength: 1
          maxLength: 64
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
      summary: Every tracked app on the instance, newest first
      tags:
      - Admin
components:
  schemas:
    SupportActionDto:
      type: object
      properties:
        confirm:
          type: boolean
          description: Must be true. A support action is never taken by accident
        reason:
          type: string
          minLength: 8
          maxLength: 200
          description: Why the action was taken. Stored in the support audit trail. A suspension also shows it to every member of the workspace on every page and in every refused write, so write it for the customer
      required:
      - confirm
      - reason
  securitySchemes:
    personalApiToken:
      scheme: bearer
      bearerFormat: asob
      type: http