Durably waiting for processing.
Send, list, and inspect email.
The Email API accepts only the account’s active tv_live_… sending key. A management key cannot use these routes.
Send email
POST https://api.tenvio.email/v1/emails requires JSON fields from, to, subject, and content. Supply non-whitespace plain, html, or both.
curl -X POST https://api.tenvio.email/v1/emails \
-H "Authorization: Bearer $TENVIO_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-8472-receipt-v1" \
-d '{"from":"billing@yourdomain.com","to":["customer@example.net"],"cc":[],"bcc":[],"type":"transactional","subject":"Receipt","content":{"plain":"Your receipt is ready."},"attachments":[]}'
HTTP 202 Accepted returns an opaque em_… ID, literal initial status queued, and RFC 3339 created_at. The bcc field is input-only: responses and retained customer history expose only bcc_count, never BCC addresses.
Idempotency
Idempotency-Key is required and must be 1–255 characters. A same-key, same-request replay returns the original accepted representation. Reusing a live key with different content returns idempotency_conflict.
History and detail
GET /v1/emails lists retained messages in stable order. limit defaults to 50 and accepts 1–100. Pass opaque next_cursor unchanged. GET /v1/emails/{id} returns safe metadata, attempts, timestamps, normalized delivery cause, events, and attachment metadata. It never returns content_base64, plaintext, HTML, raw MIME, or internal transport identifiers.
Status model
Leased for an active submission attempt.
Retryable delivery failure.
The recipient SMTP server accepted the message. This does not guarantee inbox placement.
Permanent recipient-side rejection.
Terminal local or policy failure.
Technical limits
| Plain text content | 256 KiB UTF-8 |
|---|---|
| HTML content | 1 MiB UTF-8 |
| Attachments | 20 maximum; 8 MiB each; 10 MiB decoded total |
| Final MIME message | 15 MiB |
| HTTP JSON body | 16 MiB |
Free limits accepted unique recipients to 30 per rolling minute, 300 per rolling hour, 300 per rolling 24 hours, 3,000 per rolling 30 days, and 250 active queued, sending, or deferred recipient deliveries. One accepted normalized unique recipient is one recipient-email; retries do not add usage.
Tenvio Docs