Usage & quota
Check your quota headroom, usage and credit balance before you send.
Returns the workspace's monthly email allowance and how much of it is used, the daily throttle, the verification-credit balance and the account rate limit — the same numbers the platform enforces, read from the same counters the send gate reserves against. Poll it from dashboards or check it before a large campaign instead of discovering a 429.
GET /v3/usage
Response fields
| Parameter | Type | Required | Description |
|---|---|---|---|
plan | string | Optional | free or professional. |
quota_source | string | Optional | Where the allowance comes from: own_plan (the workspace's plan), shared_pool (an allocation from the organisation pool) or payg_credits (a prepaid pay-as-you-go block). |
period.start · period.end | ISO 8601 | Optional | The calendar-month window the email counters apply to — counters reset at period.end. |
emails.limit | integer or null | Optional | Monthly email allowance. null means unlimited. |
emails.used · emails.remaining | integers | Optional | Emails sent this period (test-mode sends excluded) and how many remain before limit. |
emails.ceiling | integer or null | Optional | The absolute stop including overage headroom — with overage enabled, sending pauses here, not at limit. null means unlimited. |
emails.overage_enabled | boolean | Optional | Whether sends beyond limit are allowed and billed (Billing → Policy). |
daily | object or null | Optional | { limit, used, remaining } for today's throttle; null when the plan has no daily cap. |
verify_credits.balance | integer | Optional | Prepaid verification credits — verification endpoints return 402 insufficient_credits when this runs out. |
rate_limit_per_minute | integer or null | Optional | Account-level API rate limit; null means the platform default applies. |
Responses
| Status | Description |
|---|---|
200 | OK. The usage snapshot described above. |
401 | Missing, invalid or revoked API key. |
Code examples
cURL
curl https://api.wemail.io/v3/usage \
-H "Authorization: Bearer afn_live_…"Node.js
const res = await fetch("https://api.wemail.io/v3/usage", {
headers: {
Authorization: `Bearer ${process.env.WEMAIL_API_KEY}`,
},
});
const data = await res.json();Python
import os, requests
r = requests.get(
"https://api.wemail.io/v3/usage",
headers={"Authorization": f"Bearer {os.environ['WEMAIL_API_KEY']}"},
)
data = r.json()