---
title: "Whether the workspace may connect new domains"
method: GET
path: "/billing/standing"
tags: ["Billing"]
---

# Whether the workspace may connect new domains

`GET /billing/standing`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/billing/standing`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.customdomain.ai/oauth/agent/authorize`, token URL `https://api.customdomain.ai/oauth/agent/token`, scopes: `domains:read`)

The lean read the MCP server's `check-billing-status` tool uses: whether a new connection is refused right now, and if so the same `code`, `title` and `details` the refusal carries (`billing_required`), plus the plan and this month's usage. It has no dates, amounts, invoices or card; owners and admins read those from `GET /billing/status`. Any workspace credential may read it: a tenant API key of any role, a delegated agent token with `domains:read`, or a widget token minted with scope `app`. A `connect`-scoped widget token (an end user's) is refused with `403`.

## Response `200`

The workspace's standing

- BillingStanding
  - `configured` boolean, required: Whether a workspace can subscribe on this deployment.
  - `restricted` boolean, required: New domain connections are refused right now.
  - `first_domain_free` boolean: Present only when true: this is a new workspace on the first domain free rule. `restricted` is false until its free domains are connected, and true, with the refusal's words, after.
  - `free_domains` integer: Present with `first_domain_free`: how many domains the workspace may connect before it has a subscription. One, unless the operator granted more.
  - `attention` boolean, required: Billing needs an owner or admin: a trial or grace to act on, a failed payment, or a block.
  - `code` string: Set when `restricted`: `billing_required`.
  - `title` string: Set when `restricted`: what the refusal says.
  - `details` string: Set when `restricted`: why, and where an owner or admin fixes it.
  - `billing_url` string, required: Where an owner or admin sets up billing.
  - `plan` object
    - `id` string
    - `name` string
    - `hard_cap` boolean: Whether the plan refuses new connections at its quota (when the deployment enforces quotas).
  - `usage` object
    - `used` integer: Domains connected this period.
    - `quota` integer: What the plan includes per month.
    - `period` string: The calendar month, `YYYY-MM` (UTC).

## Other responses

- `401`: Error envelope: {code, title, details}.
- `403`: Error envelope: {code, title, details}.

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
