CheckboxDocs

Account API

The account behind the API key: mode, live-mode activation, limits and the next step.

OperationEndpoint
Retrieve the accountGET /v1/account
Update the accountPOST /v1/account

The Account object

The Checkbox account behind the API key.

FieldTypeDescription
idstringUnique identifier of the account (acct_…).
objectenumString representing the object's type. Always "account".
livemodebooleantrue for live-mode objects, false for test mode (ck_test_ keys act on an isolated sandbox).
namestringOrganization name.
emailstring | nullContact email.
api_versionstringAPI version the account is pinned to (default for requests without Checkbox-Version).
activationobjectLive-mode activation. Test mode never needs it.
activation.statusenumactive: live mode is on; pending: verify a site domain; suspended: contact support. One of active, pending, suspended.
activation.methodenum | nullHow the account was activated. One of domain, staff, grandfathered.
activation.domainstring | nullThe verified domain that activated it.
activation.activated_atinteger | nullWhen live mode was activated. Unix timestamp in seconds.
limitsobjectFair-use limits (everything is free; these only prevent abuse).
limits.max_sitesintegerFair-use limit of active sites per mode.
limits.sitesintegerActive sites in this mode.
limits.requests_per_minuteintegerFair-use API rate limit per mode.
keyobjectThe key that made this request.
key.typeenumKind of key used for this request. One of secret, restricted, publishable.
key.roleenumRole the key acts with. One of admin, member, viewer.
key.scopesobject | nullRestricted keys: resource permissions.
key.legacybooleanA legacy sk_live_ organization key.
publishable_keystringPublishable key (pk_…) of this mode for the browser snippet / elements.
billingobjectCommercial status.
billing.planenumCheckbox is free to use.
billing.warrantyenumThe compliance warranty is not offered yet (waitlist only; no coverage).
createdintegerWhen the account was created. Unix timestamp in seconds.
next_actionNextAction | nullWhat the caller (often an AI agent) should do next.

Retrieve the account

GET /v1/account

Returns the account behind the key: test or live mode, whether live mode is activated, fair-use limits, the publishable key, and next_action. Call this first to check a key.

Scope account:read · Operation retrieveAccount

SDK: checkbox.account.retrieve() (Node) · checkbox.account.retrieve() (Python). MCP / agents: operation retrieveAccount.

Returns

Returns an Account object.

Errors use the standard envelope with a stable code and, where useful, next_action.

curl https://app.checkbox.site/v1/account \
  -u "$CHECKBOX_SECRET_KEY:"
Response
{
  "id": "acct_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
  "object": "account",
  "livemode": false,
  "name": "Acme Subscriptions",
  "email": "ops@acme.example",
  "api_version": "2026-10-30",
  "activation": {
    "status": "pending",
    "method": null,
    "domain": null,
    "activated_at": 1793318400
  },
  "limits": {
    "max_sites": 25,
    "sites": 1,
    "requests_per_minute": 300
  },
  "key": {
    "type": "secret",
    "role": "admin",
    "scopes": null,
    "legacy": false
  },
  "publishable_key": "pk_test_9fT…",
  "billing": {
    "plan": "free",
    "warranty": "coming_soon"
  },
  "created": 1793318400,
  "next_action": {
    "type": "verify_domain",
    "message": "Verify your site domain to turn on live mode.",
    "operation_id": "createDomainVerification",
    "mcp_tool": "call_api",
    "url": "https://checkbox.site/docs/api/activation"
  }
}

Update the account

POST /v1/account

Pins the account to an API version (requests without a Checkbox-Version header use it). Known versions: 2026-10-30.

Scope account:write · Idempotent (send Idempotency-Key) · Operation updateAccount

SDK: checkbox.account.update() (Node) · checkbox.account.update() (Python). MCP / agents: operation updateAccount.

Body

FieldTypeDescription
api_versionstringAPI version to pin.

Returns

Returns an Account object.

Errors use the standard envelope with a stable code and, where useful, next_action.

curl https://app.checkbox.site/v1/account \
  -u "$CHECKBOX_SECRET_KEY:" \
  -H "Content-Type: application/json" \
  -d '{
  "api_version": "2026-10-30"
}'
Response
{
  "id": "acct_3f9a1c2e7b4d4e0f9a8b7c6d5e4f3a2b",
  "object": "account",
  "livemode": false,
  "name": "Acme Subscriptions",
  "email": "ops@acme.example",
  "api_version": "2026-10-30",
  "activation": {
    "status": "pending",
    "method": null,
    "domain": null,
    "activated_at": 1793318400
  },
  "limits": {
    "max_sites": 25,
    "sites": 1,
    "requests_per_minute": 300
  },
  "key": {
    "type": "secret",
    "role": "admin",
    "scopes": null,
    "legacy": false
  },
  "publishable_key": "pk_test_9fT…",
  "billing": {
    "plan": "free",
    "warranty": "coming_soon"
  },
  "created": 1793318400,
  "next_action": {
    "type": "verify_domain",
    "message": "Verify your site domain to turn on live mode.",
    "operation_id": "createDomainVerification",
    "mcp_tool": "call_api",
    "url": "https://checkbox.site/docs/api/activation"
  }
}

Checkbox is compliance software, not a law firm; nothing in these docs is legal advice (details). For AI agents: every page is available as Markdown at the same URL plus .md; the index is /llms.txt.