Guides
Send transactional email
Compose one clear request, submit it safely, and retain the message identifier.
On this page
Request shape
Every request sends to exactly one recipient. Use a verified Sending Address, provide a subject, and include HTML, plain text, or both.
curl --request POST https://routekite-app--routekite.us-east4.hosted.app/api/v1/emails \--header "Authorization: Bearer rk_your_key" \--header "Idempotency-Key: order-123-confirmation" \--header "Content-Type: application/json" \--data '{"from": "updates@example.com","to": "customer@example.net","reply_to": "support@example.com","subject": "Your order is confirmed","html": "<h1>Thank you</h1><p>Your order is confirmed.</p>","attachments": [{"filename": "notes.txt","content_type": "text/plain","content": "SGVsbG8gZnJvbSBSb3V0ZUtpdGUuCg=="},"c6ea638c-28a4-4b0c-a39d-74f1d29e1e9f"]}'
Message content
- Provide both html and text when possible.
- Keep subjects between 1 and 998 characters.
- Use metadata only for small correlation values.
- Embed files up to 5 MB as Base64 or reference ready uploaded attachment IDs.
What 202 Accepted means
A 202 response means RouteKite validated and queued the message. It does not mean the recipient has received it. Retrieve the ID to observe the delivery result.