POST /api/v1/emails/send
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | yes | Bearer <api_key> or x-api-key |
| Idempotency-Key | string | no | Unique per logical request (recommended) |
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | string | yes | Recipient email |
| subject | string | yes | Subject line |
| content | string | yes | Text body (used to generate plain text) |
| htmlContent | string | no | HTML body (tracking auto‑injected) |
| cc | string or string[] | no | Carbon copy recipients |
| bcc | string or string[] | no | Blind carbon copy recipients (not exposed in MIME headers) |
| attachments | Attachment[] | no | List of attachments (see below) |
| policyKey | string | no | Policy to apply (e.g., transactional, bulk) |
| idempotencyKey | string | no | Idempotency key when header cannot be set |
| Field | Type | Required | Description |
|---|---|---|---|
| filename | string | yes | File name as it should appear to recipients |
| contentBase64 | string | yes | Base64‑encoded file content |
| contentType | string | no | MIME type (e.g., application/pdf) |
X-Request-Id: unique id for this requestIdempotency-Key: echoes idempotency key used (when provided)Idempotency-Replayed: truewhen a previous result is returnedX-RateLimit-*headers when a per-minute cap is configured
200success401invalid API key403missing scopesend_emailor tenant paused402plan required (attachments not enabled)429per‑minute rate limit exceeded (seeRetry-After)500provider/internal error
- Max attachments per email:
ATTACHMENTS_MAX_COUNT(default 5) - Max total attachments size:
ATTACHMENTS_MAX_TOTAL_MB(default 10 MB)
- Attachments may be gated by plan. If disabled, requests with attachments return
402. - When configured, Fluxomail checks the entitlement via Autumn with
feature_id: attachments.
