Checkbox Docs

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.
retentionRetentionAccount default retention (sites without their own setting use it).
legal_holdLegalHoldAccount-wide legal hold: while active, nothing of this mode's data is deleted.
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"
  },
  "retention": {
    "records_years": 7,
    "superseded_results_days": 30,
    "good_practice_years": 7,
    "problem_history_days": 30
  },
  "legal_hold": {
    "active": false,
    "scope": null,
    "set": null,
    "reason": null
  },
  "created": 1793318400,
  "next_action": {
    "type": "verify_domain",
    "message": "Verify your site domain to turn on live mode.",
    "operation_id": "createDomainVerification",
    "mcp_tool": "call_api",
    "endpoint": "POST /v1/sites/{site}/domain_verification",
    "url": "https://checkbox.site/docs/concepts/activation#verify"
  }
}

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), sets the default retention, and turns the account-wide legal hold on or off. Retention and legal hold apply to the key's mode (test mode has its own).

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.
retentionRetentionParamsDefault retention for every site without its own setting. A longer period for superseded check results keeps a fuller timeline of changes to your site.
retention.records_yearsinteger | nullYears records are kept (1-10). On a site, null returns to the account default.
retention.superseded_results_daysinteger | nullDays superseded check results are kept (7-730). On a site, null returns to the account default.
retention.good_practice_yearsinteger | nullDeprecated: use records_years.
retention.problem_history_daysinteger | nullDeprecated: use superseded_results_days.
legal_holdLegalHoldParamsAccount-wide legal hold: suspends every deletion of the account's records until turned off.
legal_hold.active requiredbooleantrue turns the hold on, false turns it off.
legal_hold.reasonstringNote stored with the hold (who asked, matter).

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"
  },
  "retention": {
    "records_years": 7,
    "superseded_results_days": 30,
    "good_practice_years": 7,
    "problem_history_days": 30
  },
  "legal_hold": {
    "active": false,
    "scope": null,
    "set": null,
    "reason": null
  },
  "created": 1793318400,
  "next_action": {
    "type": "verify_domain",
    "message": "Verify your site domain to turn on live mode.",
    "operation_id": "createDomainVerification",
    "mcp_tool": "call_api",
    "endpoint": "POST /v1/sites/{site}/domain_verification",
    "url": "https://checkbox.site/docs/concepts/activation#verify"
  }
}

Checkbox is compliance software, not a law firm; nothing in these docs is legal advice (details). You remain solely responsible for your subscription program, and Checkbox takes on no legal liability for it (Terms). Checkbox is a System1 company; Trust center · Status. For AI agents: every page is available as Markdown at the same URL plus .md; the index is /llms.txt.