Send your first email.
A key, an HTTP request, and a message from your application.
Create an API key
Sign up, then create a key for your application. Copy it when it appears; its full value is shown only once. Keep it on your server.
Submit a message
Replace YOUR_API_KEY, the sender, and the recipient in the example. Provide a text body, an html body, or both. Choose an idempotency key that identifies this email in your application.
/api/emailscurl -X POST /api/emails \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Idempotency-Key: welcome-user-123' \
-H 'Content-Type: application/json' \
-d '{
"from": "[email protected]",
"to": "[email protected]",
"subject": "Welcome aboard",
"text": "Your account is ready."
}' Use a from address on a verified domain belonging to your account. Manage verification in Domains. Each request supports one recipient.
Check the send status
A successful request returns HTTP 202 and a job ID. Make a GET /api/emails/{id} request with the same API key to check its progress, or use the sending console.
Accepted means the email provider accepted the message. It does not confirm inbox delivery. Temporary failures retry automatically; a failed status means sending has stopped.
Retry safely
Repeat the same request with the same Idempotency-Key to retrieve the existing job. Using that key with a different message returns HTTP 409. Provider timeouts can still cause duplicate send attempts, so acceptance is not an exactly-once delivery guarantee.