Tenvio Docs
Sending credential required

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.

Request
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

queued

Durably waiting for processing.

sending

Leased for an active submission attempt.

deferred

Retryable delivery failure.

accepted

The recipient SMTP server accepted the message. This does not guarantee inbox placement.

bounced

Permanent recipient-side rejection.

failed

Terminal local or policy failure.

Technical limits

Plain text content256 KiB UTF-8
HTML content 1 MiB UTF-8
Attachments 20 maximum; 8 MiB each; 10 MiB decoded total
Final MIME message15 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.