Usage, limits, and plan
/v1/billingSecret key — sk_… or sk_test_… · Base URL https://api.volanea.com
Current-month usage, the monthly caps, the plan and its per-cycle email quota, computed reputation, and subscription state in one call.
Response
200 · Billing
monthstringrequiredCurrent period, "YYYY-MM".
usedintegerrequiredNon-test emails sent this month.
limitinteger | nullOverall monthly send cap; `null` = unlimited.
categoriesobjectPer-category usage and cap — transactional/campaign/workflow/inbound. Checked alongside (not instead of) the overall `limit`.
transactionalobjectlimitinteger | nullrequired`null` = unlimited.
usedintegerrequiredNon-test sends this month in this category.
campaignobjectlimitinteger | nullrequired`null` = unlimited.
usedintegerrequiredNon-test sends this month in this category.
workflowobjectlimitinteger | nullrequired`null` = unlimited.
usedintegerrequiredNon-test sends this month in this category.
inboundobjectlimitinteger | nullrequired`null` = unlimited.
usedintegerrequiredNon-test sends this month in this category.
planenumrequiredfreestartergrowthemailQuotaintegerrequiredEmail credits per monthly cycle for the current plan. Hard cap — sending stops when it's used up.
freeTierCreditsintegercreditsUsedintegerrequiredCredits used this cycle (1/email, 2 with attachments).
planQuotasobjectPer-cycle quota of every self-serve plan — what an upgrade would buy.
freeintegerstarterintegergrowthinteger
reputationobjectComputed deliverability metrics. The worst of three windows (24h/7d/all-time) wins; `windows` breaks each one down. New projects (<30 days old) enforce at a lower volume floor.
reputationStateenumrequiredokwarnthrottledpausedreputationReasonstring | nulldodoobjectMerchant-of-record provider (Dodo Payments) backing paid subscriptions. Disabled on self-host installs.
enabledbooleanenvenumtest_modelive_mode
dodoSubscriptionobjectidstring | nullstatusenumactiveendednullplanenumstartergrowthnullcancelAtNextBillingDatebooleannextBillingAtstring | null
Errors
Every failure returns the standard envelope — branch on `code`, never on the wording of `error`.
401Missing or invalid API key.
Request
curl https://api.volanea.com/v1/billing \
-H "Authorization: Bearer sk_..."Response
200 · application/json
{
"success": true,
"data": {
"month": "<month>",
"used": 1,
"limit": 1,
"categories": {
"transactional": {
"limit": 1,
"used": 1
},
"campaign": {
"limit": 1,
"used": 1
},
"workflow": {
"limit": 1,
"used": 1
},
"inbound": {
"limit": 1,
"used": 1
}
},
"plan": "free",
"emailQuota": 1,
"freeTierCredits": 1,
"creditsUsed": 1,
"planQuotas": {
"free": 1,
"starter": 1,
"growth": 1
},
"reputation": {},
"reputationState": "ok",
"reputationReason": "<reputationReason>",
"dodo": {
"enabled": true,
"env": "test_mode"
},
"dodoSubscription": {
"id": "<id>",
"status": "active",
"plan": "starter",
"cancelAtNextBillingDate": true,
"nextBillingAt": "2026-01-01T09:00:00.000Z"
}
}
}92 endpoints · OpenAPI document