Browse the docs

Plans

The public plan catalog: prices and limits, the same data the pricing page and the dashboard read.

Prices are in USD. entitlements are the limits each plan enforces; the keys match the data.key of a PLAN_LIMIT error.

List plans

GET/plans
Request
curl "https://api.statusbee.co/plans"
Response
{
  "statusCode": 200,
  "error": false,
  "message": null,
  "data": {
    "plans": [
      {
        "id": "free",
        "name": "Free",
        "prices": null,
        "entitlements": {
          "pages": 1,
          "workspaces": 1,
          "monitors": 1,
          "min_check_interval_s": 300,
          "team_members": 1,
          "api_keys": 0,
          "custom_domain": false,
          "powered_by_hidden": false,
          "custom_css": false,
          "private_pages": false,
          "audience_pages": false,
          "history_days": 30
        }
      },
      {
        "id": "starter",
        "name": "Starter",
        "prices": {
          "month": {
            "usd": 13
          },
          "year": {
            "usd": 130
          }
        },
        "entitlements": {
          "pages": 3,
          "workspaces": 1,
          "monitors": 15,
          "min_check_interval_s": 60,
          "team_members": 5,
          "api_keys": 3,
          "custom_domain": true,
          "powered_by_hidden": false,
          "custom_css": false,
          "private_pages": false,
          "audience_pages": true,
          "history_days": 90
        }
      },
      {
        "id": "team",
        "name": "Team",
        "prices": {
          "month": {
            "usd": 39
          },
          "year": {
            "usd": 390
          }
        },
        "entitlements": {
          "pages": 10,
          "workspaces": 3,
          "monitors": 50,
          "min_check_interval_s": 30,
          "team_members": 15,
          "api_keys": 10,
          "custom_domain": true,
          "powered_by_hidden": true,
          "custom_css": true,
          "private_pages": true,
          "audience_pages": true,
          "history_days": 365
        }
      }
    ]
  }
}

Current subscription

GET/user/billing

The organisation's plan, subscription state, resolved entitlements and the catalog, plus flags saying whether a plan change or a cancellation is possible right now. Checkout, plan changes and cancellation require a signed-in session and are done from the dashboard.

Needs the billing.manage permission, or an API key with the matching scope.

Query parameters

org_idintegerrequired
Organisation id.
Request
curl "https://api.statusbee.co/user/billing?org_id=5" \
  -H "Authorization: Bearer sb_live_…"
Response
{
  "statusCode": 200,
  "error": false,
  "message": null,
  "data": {
    "plan": "team",
    "billing": {
      "org_id": 5,
      "provider": "paddle",
      "status": "active",
      "plan": "team",
      "cycle": "month",
      "current_period_end": "2026-10-14T00:00:00.000Z",
      "scheduled_change_action": null
    },
    "entitlements": {
      "pages": 10,
      "workspaces": 3,
      "monitors": 50,
      "min_check_interval_s": 30,
      "team_members": 15,
      "api_keys": 10,
      "custom_domain": true,
      "powered_by_hidden": true,
      "custom_css": true,
      "private_pages": true,
      "audience_pages": true,
      "history_days": 365
    },
    "catalog": [
      "…"
    ],
    "has_subscription": true,
    "can_change_plan": true,
    "can_cancel": true
  }
}