/accountreadPlan, usage, warming cost and domain balance
Everything needed to know whether a create will succeed before attempting it. A 402 halfway through a batch of forty mailboxes leaves you working out which ones landed, so the intended pattern is to read this, size the batch, and then send it.
It also carries domain_balance_cents, which is the figure a domain purchase is charged against. That is a separate pot from the subscription card and has to cover the whole batch before any of it is bought.
usage.warming_mailboxes is the number of mailboxes with warming enabled, counted the way the invoice counts them. Warming only runs on mailboxes EmailPal hosts, and leased pre-warmed inboxes are excluded because their warming is inside the lease rate, so it will not equal usage.mailboxes.used.
usage.dedicated_ips is the number of dedicated IPs the account is billed for, counted the way the invoice counts them: from the moment one is requested, even while it waits for a ramp slot, until it is released. It is 0 on nearly every account.
enforcement is the account’s sending standing: none, watch, no_new_mailboxes, throttled or suspended. While it is not none, enforcement_reason says why in a sentence, enforcement_since says when the account entered that level, and enforcement_scope says how far a throttle reaches: account (every mailbox) or domains (only the mailboxes on restricted_domains, each with the refusal count and rate it was judged on, and every other domain sends normally). All three are null, and restricted_domains is empty, while enforcement is none. These are the same facts the account.restriction_changed webhook carries, so you can listen for the change and poll to confirm.
Returns
- 200
- Always, for a valid key on a live account.
Errors
- 404
account_missing - The account could not be read.
GET https://www.emailpal.io/api/public/v1/account{
"id": "acc_7f3d21",
"name": "Northworks",
"status": "active",
"enforcement": "throttled",
"enforcement_scope": "domains",
"enforcement_reason": "Receivers are refusing mail from 2 of your domains, so they are limited to a quarter of normal.",
"enforcement_since": "2026-10-16T08:00:00.000Z",
"restricted_domains": [
{
"domain_id": "dom_91af22",
"domain": "outbound-atlas.com",
"since": "2026-10-16T08:00:00.000Z",
"rejected": 9,
"completed": 120,
"rate": 0.075,
"reason": "Gmail refusing 9 of 120 (7.5%)"
}
],
"created_at": "2026-02-14T09:12:44.000Z",
"plan": {
"code": "growth",
"name": "Growth",
"monthly_price_cents": 18900,
"included_mailboxes": 200,
"included_domains": 40,
"mailbox_overage_cents": 100,
"warming_price_cents": 60,
"dedicated_ip_cents": 2000,
"prewarmed_inbox_cents": 300,
"domain_markup_cents": 100,
"daily_send_per_mailbox": 15,
"api_requests_per_hour": 30000
},
"usage": {
"mailboxes": { "used": 148, "limit": 200 },
"domains": { "used": 26, "limit": 40 },
"daily_send": { "used": 1180, "limit": 2220 },
"warming_mailboxes": 96,
"warming_monthly_cost_cents": 5760,
"dedicated_ips": 0
},
"domain_balance_cents": 24150,
"top_up_url": "/api/public/v1/account/topup"
}