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_...'
Use this for operational status in dashboards and agent checks.
Do not use the client response as billing authority. Entitlements are backend-owned.
POSTStable
Resubscribe a recipient
/v1/recipients/resubscribe
Use this endpoint only when the recipient has explicitly chosen to receive app notifications again. It writes an audit event and clears the app notification unsubscribe state for the API key environment.
True when the recipient was marked as resubscribed.
true
{
"ok": true
}
Errors
Status
Code
Message
400
Invalid resubscribe request.
Expected a valid email and app_notifications scope.
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.
405
method_not_allowed
Only POST is allowed.
500
internal
Unexpected server error.
Notes
Call this after an explicit user action, not automatically after a bounce or complaint.
The only V1 scope is app_notifications.
POSTStable
Get recipient status
/v1/recipients/status
Use this endpoint to inspect whether an app can send notifications to a recipient and to display recent delivery state without exposing raw message bodies.
Request
Name
Type
Required
Description
Example
Authorization
string
Yes
Bearer API key for the EmailsDone environment.
Bearer ed_...
email
email
Yes
Recipient email address to inspect.
user@example.com
limit
number
No
Number of recent messages to return. Values are clamped between 1 and 50.
This endpoint returns metadata only. It does not expose email content.
Use canSendNotifications before showing notification-specific controls.
POSTStable
Send a transactional email
/v1/send
Use this endpoint for password resets, verification emails, app notifications, billing messages, and other transactional events. A successful response means the message has been accepted and queued, not that SES has already delivered it.
Request
Name
Type
Required
Description
Example
Authorization
string
Yes
Bearer API key for the EmailsDone environment.
Bearer ed_...
Idempotency-Key
string
No
Optional retry key. Reusing the same key returns the original accepted message for 24 hours. Max 120 characters
password-reset-user-123-2026-05-26
templateId
string
Yes
Template identifier, for example password-reset or verify-email.
password-reset
to
email
Yes
Recipient email address.
user@example.com
templateVersion
string
No
Optional template version such as v1. If omitted, EmailsDone uses the latest published version for the template.
v1
from
email
No
Optional From address. For custom sending domains, the domain must match the effective project or environment sending domain. If omitted, EmailsDone uses the environment From Email setting, then the project From Email setting, then notifications@domain.
notifications@example.com
fromName
string
No
Optional display name for the From header. If omitted, EmailsDone uses the environment setting, then the project setting. Max 120 characters
Acme App
replyTo
email
No
Optional Reply To email address. If omitted, EmailsDone uses the environment setting, then the project setting.
support@example.com
data
object
Yes
Template data. Required and optional fields are derived from the selected template blocks.