Send a message
https://anjal.app/v1/inboxes/{id}/sendSends from this inbox. The From header is derived from the inbox's primary alias. Pass verified: true when you've validated the recipient domain out-of-band (e.g. via verify-email); otherwise, sends to an address that has never replied to this inbox are rejected as a deliverability safeguard.
Pass an Idempotency-Key header so a retry never sends twice. labels tags the sent message; trackOpens: true adds an open-tracking pixel to the HTML body. The message.sent webhook payload includes labels.
Path parameters
idrequired string | Inbox UUID |
Header parameters
Idempotency-Keystring | Unique value for this send (e.g. a UUID). A retry with the same key and identical request returns the stored response (header `Idempotent-Replayed: true`) and sends nothing. Same key with a different request: 409 `IDEMPOTENCY_KEY_REUSED`. Same key while the first is still running: 409 `IDEMPOTENCY_IN_PROGRESS`. Blank: 400 `IDEMPOTENCY_KEY_INVALID`. Keys are per account and expire after 24 hours; a failed send (non-2xx) frees the key. |
Request body
Content-Type: application/json
torequired string | string[] | |
ccstring | string[] | Cc recipient(s) — subject to the same MX + verified + abuse gates as `to`. |
bccstring | string[] | Bcc recipient(s). |
subjectrequired string | |
plainBodystring | |
htmlBodystring | |
replyTostring | format: email |
verifiedboolean | default: false |
labelsstring[] | string | Labels as an array or a comma-separated string. Stored lowercase and deduplicated; at most 32 labels of at most 64 characters, no commas. |
trackOpensboolean | Add an open-tracking pixel (HTML body only). See `SendExtras`. default: false |
Responses
idstring | format: uuid |
threadIdstring | format: uuid |
statusstring | |
messageIdstring |
errorrequired string | |
codestring |
Authentication
Send your API key in the X-API-Key header (or Authorization: Bearer <key>). Any prefix accepted by this endpoint — tk_, wk_, ak_, or sa_ — is documented in the key prefix table.