AsoBeast Admin API
The admin API from AsoBeast — 12 operation(s) for admin.
The admin API from AsoBeast — 12 operation(s) for admin.
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/asobeast-com:asobeast-com-admin-api"
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.
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: 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