Sending API reference
Fields, limits, authentication and status lookup.
Editorial update: October 30, 2026In this guide
Endpoint and headers
Send request
POST https://raselmail.com/api/v1/delivery/messages
Authorization: Bearer YOUR_PROJECT_KEY
Idempotency-Key: order-123-confirmation
Content-Type: application/jsonThe key belongs to one project and domain. Idempotency-Key is required, using 8–150 printable ASCII characters; do not include personal information. The maximum request body is 750,000 bytes.
JSON fields
| Field | Required? | Rule |
|---|---|---|
| from | Yes | An email address on the project domain, not a display-name string. |
| to | Yes | An array with at least one recipient. |
| cc / bcc | Optional | Address arrays; do not duplicate an address across lists. |
| subject | Yes | 1–998 characters after trimming, without CR or LF. |
| text | text or html | Up to 200,000 characters; include a text alternative with HTML where possible. |
| html | text or html | Up to 500,000 characters; at least one body field must have nonblank content. |
Look up status
Status request using the same project key
curl -i 'https://raselmail.com/api/v1/delivery/messages/YOUR_MESSAGE_ID' -H "Authorization: Bearer $RASEL_API_KEY"Replace YOUR_MESSAGE_ID with the returned message ID. The response includes id, state, recipient_count, error when present, created_at and updated_at. A project cannot inspect another project’s message.
Request rates
Message creation allows 120 requests per minute per project and 300 per owner account. Status reads allow 300 per minute per project. These are request rates, not purchased sending quota. After a 429, wait before retrying and retain the event’s idempotency key.