AsoBeast Backend API

The Backend API from AsoBeast — 21 operation(s) for backend.

Operations 22

GET /api/backend/apps GET /api/backend/apps #
POST /api/backend/auth/login POST /api/backend/auth/login #
POST /api/backend/auth/logout POST /api/backend/auth/logout #
GET /api/backend/auth/me GET /api/backend/auth/me #
POST /api/backend/auth/password POST /api/backend/auth/password #
POST /api/backend/auth/password/forgot POST /api/backend/auth/password/forgot #
POST /api/backend/auth/password/reset POST /api/backend/auth/password/reset #
GET /api/backend/auth/plan GET /api/backend/auth/plan #
POST /api/backend/auth/register POST /api/backend/auth/register #
GET /api/backend/auth/status GET /api/backend/auth/status #
GET /api/backend/auth/tokens GET /api/backend/auth/tokens #
POST /api/backend/auth/tokens POST /api/backend/auth/tokens #
DELETE /api/backend/auth/tokens/{id} DELETE /api/backend/auth/tokens/{id} #
POST /api/backend/auth/verify POST /api/backend/auth/verify #
POST /api/backend/auth/verify/resend POST /api/backend/auth/verify/resend #
GET /api/backend/docs-json GET /api/backend/docs-json #
GET /api/backend/health GET /api/backend/health #
POST /api/backend/workspace/invites POST /api/backend/workspace/invites #
POST /api/backend/workspace/invites/accept POST /api/backend/workspace/invites/accept #
DELETE /api/backend/workspace/invites/{id} DELETE /api/backend/workspace/invites/{id} #
DELETE /api/backend/workspace/members/{id} DELETE /api/backend/workspace/members/{id} #
GET /api/backend/workspace/team GET /api/backend/workspace/team #

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-backend-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-backend-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AsoBeast Backend API
  version: '2026-11-01'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-01: 54 operation(s) read from 28 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; AsoBeast has published no machine-readable contract that the pipeline could find. Engine: oss.'
  x-evidence-tiers:
    code-example: 23
    documentation: 31
    pages-with-code: 24
    pages-read: 28
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-01'
  x-generator: generate-contract-from-docs.py
  x-engine: oss
  x-sources:
  - https://docs.asobeast.com/operations/restore.md
  - https://docs.asobeast.com/api-reference/introduction
  - https://docs.asobeast.com/api-reference/conventions.md
  - https://docs.asobeast.com/api-reference/rate-limits.md
  - https://docs.asobeast.com/api-reference/introduction.md
  - https://docs.asobeast.com/api-reference/authentication.md
  - https://docs.asobeast.com/api-reference/authentication
  - https://docs.asobeast.com/api-reference/rate-limits
  - https://docs.asobeast.com/api-reference/conventions
  - https://docs.asobeast.com/api-reference/auth/register-an-account
  - https://docs.asobeast.com/api-reference/auth/log-in
  - https://docs.asobeast.com/api-reference/auth/log-out
  - https://docs.asobeast.com/api-reference/auth/current-authenticated-user
  - https://docs.asobeast.com/api-reference/auth/workspace-plan-limits-and-usage-against-them
  - https://docs.asobeast.com/api-reference/auth/confirm-an-email-address-and-start-the-trial
  - https://docs.asobeast.com/api-reference/auth/send-a-fresh-confirmation-link-to-this-account
  - https://docs.asobeast.com/api-reference/auth/change-password-and-reset-other-sessions
  - https://docs.asobeast.com/api-reference/auth/email-a-recovery-link-to-an-account-that-exists
  - https://docs.asobeast.com/api-reference/auth/redeem-a-recovery-link-and-end-every-session
  - https://docs.asobeast.com/api-reference/auth/public-auth-configuration-and-session-state
  - https://docs.asobeast.com/api-reference/auth/list-personal-api-tokens
  - https://docs.asobeast.com/api-reference/auth/create-a-personal-api-token
  - https://docs.asobeast.com/api-reference/auth/revoke-a-personal-api-token
  - https://docs.asobeast.com/api-reference/auth/members-of-this-workspace-and-pending-invites
  - https://docs.asobeast.com/api-reference/auth/invite-a-member-into-this-workspace
  - https://docs.asobeast.com/api-reference/auth/revoke-a-pending-invitation
  - https://docs.asobeast.com/api-reference/auth/remove-a-member-from-this-workspace
  - https://docs.asobeast.com/api-reference/auth/accept-an-invitation-and-create-the-account
security:
- bearer: []
tags:
- name: Backend
paths:
  /api/backend/apps:
    get:
      operationId: get_api_backend_apps
      tags:
      - Backend
      summary: GET /api/backend/apps
      x-source: https://docs.asobeast.com/api-reference/authentication.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "Authorization: Bearer $ASOBEAST_API_TOKEN"  https://your-host/api/backend/apps

          ```'
  /api/backend/auth/login:
    post:
      operationId: post_api_backend_auth_login
      tags:
      - Backend
      summary: POST /api/backend/auth/login
      x-source: https://docs.asobeast.com/api-reference/auth/log-in
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/login  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"email\": \" [email protected] \", \n \"password\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({email: ' [email pr"
  /api/backend/auth/logout:
    post:
      operationId: post_api_backend_auth_logout
      tags:
      - Backend
      summary: POST /api/backend/auth/logout
      x-source: https://docs.asobeast.com/api-reference/auth/log-out
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/logout  --header 'Authorization: Bearer <token>' const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/logout', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:3000"
  /api/backend/auth/me:
    get:
      operationId: get_api_backend_auth_me
      tags:
      - Backend
      summary: GET /api/backend/auth/me
      x-source: https://docs.asobeast.com/api-reference/auth/current-authenticated-user
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url http://localhost:3000/api/backend/auth/me  --header 'Authorization: Bearer <token>' const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/me', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:3000/api/backe"
  /api/backend/auth/password:
    post:
      operationId: post_api_backend_auth_password
      tags:
      - Backend
      summary: POST /api/backend/auth/password
      x-source: https://docs.asobeast.com/api-reference/auth/change-password-and-reset-other-sessions
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/password  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"next\": \"<string>\", \n \"current\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({next: '<string>', current: '"
  /api/backend/auth/password/forgot:
    post:
      operationId: post_api_backend_auth_password_forgot
      tags:
      - Backend
      summary: POST /api/backend/auth/password/forgot
      x-source: https://docs.asobeast.com/api-reference/auth/email-a-recovery-link-to-an-account-that-exists
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/password/forgot  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"email\": \" [email protected] \" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({email: ' [email protected] '})\n};\n"
  /api/backend/auth/password/reset:
    post:
      operationId: post_api_backend_auth_password_reset
      tags:
      - Backend
      summary: POST /api/backend/auth/password/reset
      x-source: https://docs.asobeast.com/api-reference/auth/redeem-a-recovery-link-and-end-every-session
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/password/reset  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"password\": \"<string>\", \n \"token\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({password: '<string>'"
  /api/backend/auth/plan:
    get:
      operationId: get_api_backend_auth_plan
      tags:
      - Backend
      summary: GET /api/backend/auth/plan
      x-source: https://docs.asobeast.com/api-reference/auth/workspace-plan-limits-and-usage-against-them
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url http://localhost:3000/api/backend/auth/plan  --header 'Authorization: Bearer <token>' const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/plan', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:3000/api/b"
  /api/backend/auth/register:
    post:
      operationId: post_api_backend_auth_register
      tags:
      - Backend
      summary: POST /api/backend/auth/register
      x-source: https://docs.asobeast.com/api-reference/auth/register-an-account
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/register  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"password\": \"<string>\", \n \"email\": \" [email protected] \", \n \"name\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stri"
  /api/backend/auth/status:
    get:
      operationId: get_api_backend_auth_status
      tags:
      - Backend
      summary: GET /api/backend/auth/status
      x-source: https://docs.asobeast.com/api-reference/auth/public-auth-configuration-and-session-state
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url http://localhost:3000/api/backend/auth/status  --header 'Authorization: Bearer <token>' const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/status', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:3000/a"
  /api/backend/auth/tokens:
    get:
      operationId: get_api_backend_auth_tokens
      tags:
      - Backend
      summary: GET /api/backend/auth/tokens
      x-source: https://docs.asobeast.com/api-reference/auth/list-personal-api-tokens
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url http://localhost:3000/api/backend/auth/tokens  --header 'Authorization: Bearer <token>' const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/tokens', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:3000/a"
    post:
      operationId: post_api_backend_auth_tokens
      tags:
      - Backend
      summary: POST /api/backend/auth/tokens
      x-source: https://docs.asobeast.com/api-reference/auth/create-a-personal-api-token
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/tokens  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"name\": \"<string>\", \n \"scope\": \"read\", \n \"expiresInDays\": 183 \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({name: '<stri"
  /api/backend/auth/tokens/{id}:
    delete:
      operationId: delete_api_backend_auth_tokens_id
      tags:
      - Backend
      summary: DELETE /api/backend/auth/tokens/{id}
      x-source: https://docs.asobeast.com/api-reference/auth/revoke-a-personal-api-token
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request DELETE  --url http://localhost:3000/api/backend/auth/tokens/{id}  --header 'Authorization: Bearer <token>' const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/tokens/{id}', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://"
  /api/backend/auth/verify:
    post:
      operationId: post_api_backend_auth_verify
      tags:
      - Backend
      summary: POST /api/backend/auth/verify
      x-source: https://docs.asobeast.com/api-reference/auth/confirm-an-email-address-and-start-the-trial
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/verify  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"token\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({token: '<string>'})\n};\nfetch('http://localhost:3000/ap"
  /api/backend/auth/verify/resend:
    post:
      operationId: post_api_backend_auth_verify_resend
      tags:
      - Backend
      summary: POST /api/backend/auth/verify/resend
      x-source: https://docs.asobeast.com/api-reference/auth/send-a-fresh-confirmation-link-to-this-account
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/auth/verify/resend  --header 'Authorization: Bearer <token>' const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/auth/verify/resend', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://"
  /api/backend/docs-json:
    get:
      operationId: get_api_backend_docs_json
      tags:
      - Backend
      summary: GET /api/backend/docs-json
      x-source: https://docs.asobeast.com/api-reference/introduction
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -H \"Authorization: Bearer asob_…\"  https://your-host/api/backend/docs-json > openapi.json \n npx @openapitools/openapi-generator-cli generate  -i openapi.json -g typescript-fetch -o ./asobeast-client \n If you write TypeScript, consider using @asobeast/shared directly instead. It holds the same contract types the API and the dashboard are built from, which is what the MCP server does. \n ​ Relat"
  /api/backend/health:
    get:
      operationId: get_api_backend_health
      tags:
      - Backend
      summary: GET /api/backend/health
      x-source: https://docs.asobeast.com/operations/restore.md
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl --fail --silent --show-error http://127.0.0.1:3001/api/backend/health

          docker compose exec -T postgres psql --username asobeast --dbname asobeast --command ''select count(*) from "App";''

          docker compose exec -T postgres psql --username asobeast --dbname asobeast --command ''select count(*) from "Keyword";''

          ```'
  /api/backend/workspace/invites:
    post:
      operationId: post_api_backend_workspace_invites
      tags:
      - Backend
      summary: POST /api/backend/workspace/invites
      x-source: https://docs.asobeast.com/api-reference/auth/invite-a-member-into-this-workspace
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/workspace/invites  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"email\": \" [email protected] \" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stringify({email: ' [email protected] '})\n};\nfet"
  /api/backend/workspace/invites/accept:
    post:
      operationId: post_api_backend_workspace_invites_accept
      tags:
      - Backend
      summary: POST /api/backend/workspace/invites/accept
      x-source: https://docs.asobeast.com/api-reference/auth/accept-an-invitation-and-create-the-account
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request POST  --url http://localhost:3000/api/backend/workspace/invites/accept  --header 'Authorization: Bearer <token>'  --header 'Content-Type: application/json'  --data ' \n { \n \"password\": \"<string>\", \n \"token\": \"<string>\", \n \"name\": \"<string>\" \n } \n ' const options = {\n method: 'POST',\n headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},\n body: JSON.stri"
  /api/backend/workspace/invites/{id}:
    delete:
      operationId: delete_api_backend_workspace_invites_id
      tags:
      - Backend
      summary: DELETE /api/backend/workspace/invites/{id}
      x-source: https://docs.asobeast.com/api-reference/auth/revoke-a-pending-invitation
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request DELETE  --url http://localhost:3000/api/backend/workspace/invites/{id}  --header 'Authorization: Bearer <token>' const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/workspace/invites/{id}', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nur"
  /api/backend/workspace/members/{id}:
    delete:
      operationId: delete_api_backend_workspace_members_id
      tags:
      - Backend
      summary: DELETE /api/backend/workspace/members/{id}
      x-source: https://docs.asobeast.com/api-reference/auth/remove-a-member-from-this-workspace
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request DELETE  --url http://localhost:3000/api/backend/workspace/members/{id}  --header 'Authorization: Bearer <token>' const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/workspace/members/{id}', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nur"
  /api/backend/workspace/team:
    get:
      operationId: get_api_backend_workspace_team
      tags:
      - Backend
      summary: GET /api/backend/workspace/team
      x-source: https://docs.asobeast.com/api-reference/auth/members-of-this-workspace-and-pending-invites
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl curl --request GET  --url http://localhost:3000/api/backend/workspace/team  --header 'Authorization: Bearer <token>' const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};\nfetch('http://localhost:3000/api/backend/workspace/team', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err)); import requests\nurl = \"http://localhost:"
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer