GET
Stable
Get quota status
/v1/quota
Use this endpoint when an app or coding agent needs to check whether the current environment can keep sending. The response is operational state, not billing authority.
Request
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
Authorization |
string | Yes | Bearer API key for the EmailsDone environment. | Bearer ed_... |
curl
curl -X GET 'https://api.emailsdone.dev/v1/quota' \
-H 'Authorization: Bearer ed_...'
Response
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
ok |
boolean | Yes | True when quota was read. | true |
quota.tenantId |
string | Yes | Tenant identifier. | tenant_123 |
quota.projectId |
string | Yes | Project identifier. | project_123 |
quota.environmentId |
string | Yes | Environment identifier. | production |
quota.planId |
string | Yes | Plan id from the tenant limits snapshot. | build |
quota.accessStatus |
string | Yes | Billing access state. | active |
quota.sendingStatus |
string | Yes | Environment sending status. | active |
quota.period.id |
string | Yes | Current usage period id. | 2026-05 |
quota.monthly.limit |
number | Yes | Monthly included email limit. | 1000 |
quota.monthly.used |
number | Yes | Tenant emails sent in the current month. | 42 |
quota.monthly.remaining |
number | Yes | Remaining included emails for the month. | 958 |
quota.monthly.status |
string | Yes | Quota availability. | available |
quota.environment.usedThisMonth |
number | Yes | Environment emails sent in the current month. | 42 |
{
"ok": true,
"quota": {
"tenantId": "tenant_123",
"projectId": "project_123",
"environmentId": "production",
"planId": "build",
"accessStatus": "active",
"sendingStatus": "active",
"period": {
"id": "2026-05",
"startsAt": "2026-05-01T00:00:00.000Z",
"endsAt": "2026-06-01T00:00:00.000Z"
},
"monthly": {
"limit": 1000,
"used": 42,
"remaining": 958,
"overageAllowed": false,
"overageEmails": 0,
"status": "available"
},
"environment": {
"usedThisMonth": 42
}
}
}
Errors
| Status | Code | Message |
|---|---|---|
| 401 | missing_api_key |
Authorization bearer token is missing. |
| 401 | invalid_api_key |
API key is invalid. |
| 402 | trial_expired |
The trial can no longer send email. |
| 403 | api_key_revoked |
API key has been revoked. |
| 403 | tenant_not_found |
Tenant not found for API key. |
| 403 | project_inactive |
Project is disabled by the current plan. |
| 403 | environment_inactive |
Environment is disabled by the current plan. |
| 404 | project_not_found |
Project not found for API key. |
| 404 | environment_not_found |
Environment not found for API key. |
| 405 | method_not_allowed |
Only GET is allowed. |
| 500 | internal |
Unexpected server error. |
Notes
- Use this for operational status in dashboards and agent checks.
- Do not use the client response as billing authority. Entitlements are backend-owned.