Skip to Content
API ReferenceGet Account

Get Account

Return the plan, limits and current usage of the account behind the credential. Use it to plan inside the account’s limits before creating checks or webhooks, instead of finding them by hitting a 409.

Required scope: checks:read

Endpoint

GET /v1/public/account

Response

200 OK

{ "data": { "tier": "nano", "scopes": ["checks:read", "checks:write", "alerts:read"], "key": { "expiresAt": null, "access": null }, "limits": { "maxChecks": 50, "minCheckIntervalMinutes": 2, "maxWebhooks": 10, "maxApiKeys": 10, "regionChoice": true, "domainIntel": true }, "usage": { "checks": 12, "webhooks": 1 }, "alerts": { "emailConfigured": true, "emailEnabled": true, "webhookCount": 1 }, "dashboardUrl": "https://app.exit1.dev/checks", "upgradeUrl": null } }

The numbers above are an example. Read the real limits from the response rather than hardcoding them.

Response Fields

FieldTypeDescription
tierstringCurrent plan: free, indie, nano or pro
scopesstring[]Scopes of the calling credential. A key created without scopes reports ["checks:read"]
keyobject | nullThe calling API key’s own limits. null for OAuth (MCP) sessions
key.expiresAtnumber | nullWhen the key expires (epoch ms), or null if it never does
key.accessobject | null{ "checkIds": [...], "folders": [...] } if the key is restricted, otherwise null
limits.maxChecksnumberMost checks this account can have. This is the effective cap for this account, which can differ from the plan’s published number
limits.minCheckIntervalMinutesnumberShortest check interval the plan allows
limits.maxWebhooksnumberMost webhooks the plan allows
limits.maxApiKeysnumberMost API keys the plan allows
limits.regionChoicebooleanWhether checks can be pinned to a region
limits.domainIntelbooleanWhether domain intelligence is included
usage.checksnumberChecks the account has now
usage.webhooksnumberWebhooks the account has now
alerts.emailConfiguredbooleantrue if email alerts have at least one recipient
alerts.emailEnabledbooleantrue if email alerts are switched on
alerts.webhookCountnumberNumber of webhooks, enabled or not
dashboardUrlstringLink to the dashboard
upgradeUrlstring | nullLink to the billing page on the Free plan, otherwise null

Error Responses

StatusDescription
401Missing, invalid, disabled or expired API key
403Credential missing checks:read scope
429Rate limit exceeded

Code Examples

cURL

curl -H "X-Api-Key: ek_live_your_key_here" \ "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/account"

JavaScript

const response = await fetch( "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/account", { headers: { "X-Api-Key": process.env.EXIT1_API_KEY } } ); const { data } = await response.json(); console.log(`${data.usage.checks} of ${data.limits.maxChecks} checks used`);

Python

import os, requests response = requests.get( "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/account", headers={"X-Api-Key": os.environ["EXIT1_API_KEY"]}, ) response.raise_for_status() data = response.json()["data"] print(f"{data['usage']['checks']} of {data['limits']['maxChecks']} checks used")
Last updated on