Developer API
The mail your product sends, as an API.
The same engine that runs our mailboxes, with a send endpoint, retries that never send twice, signed webhooks and an events API that reports what actually happened.
Send a message
One request. One answer you can trust.
Authenticate with a workspace API key, send an Idempotency-Key, and a retry replays the first response instead of sending twice.
curl https://api.alecrae.com/v1/messages \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"from": { "email": "receipts@yourapp.com" },
"to": [{ "email": "ada@example.com" }],
"subject": "Your receipt",
"template_id": "receipt",
"variables": { "order": "A-1042" }
}'Available now
What the API does today.
One send endpoint
POST /v1/messages with text, HTML or a stored template plus variables. Inputs are validated at the edge, and a bad request names the exact field and reason.
Safe retries
Send an Idempotency-Key and a retried request replays the original response for 24 hours instead of sending twice.
Signed webhooks
HMAC-SHA256 over timestamp and body, 10 attempts over about 24 hours, and every attempt listed per endpoint. A short outage never switches your endpoint off.
An events API
Queued, sent, delivered, deferred, bounced, complained, opened, clicked, unsubscribed and received events, cursor-paginated.
Domains you can verify
Publish the DKIM, SPF and DMARC records we issue, and we check the published key against the one we sign with.
Suppression and a typed SDK
Hard bounces, complaints and unsubscribes suppress future sends, scoped to your account. A TypeScript client and webhook verifier ship as @alecrae/sdk.
On the roadmap
Not available yet. Listed so you know where we're going.
- Published OpenAPI reference
- SMTP submission (port 587)
- Batch send
- Webhook replay
- Test-mode sandbox addresses
- Downstream delivery confirmation on every route
- Dedicated sending IPs
Delivery status
Every state means one thing.
A message is never reported as delivered because a server said “accepted” on the way out.
- sent
- Our relay accepted the message. Not yet a delivery.
- delivered
- A delivery report says the receiving server accepted it.
- deferred
- The receiving server asked us to try again later.
- bounced
- The receiving server refused it. Hard bounces suppress the address.
- complained
- The recipient marked it as spam. The address is suppressed.
Pricing
Usage-based. Contact us.
API volume pricing is not published yet. Tell us what you send and how much, and we'll talk it through.
Machine-readable starting points: the API capability index and API health.