Brivio API reference
Email

Send transactional mail from a sibling application, RFC 5322 address strings (scope: emails:send)

Same pipeline as `/emails/send` (verified sender domain, fail-closed suppression, Safe Mode, outbox retry, `email.*` webhooks) with a flatter wire shape: addresses are strings (`"Ana <ana@x.ro>"`), `tags` is a key→value map, custom headers are allowed except envelope/MIME/authentication ones (From, To, Cc, Bcc, Subject, Reply-To, Message-ID, Date, Content-Type, DKIM-Signature, ARC-*, …; no CR/LF). `category` defaults to `transactional`; `auth` and `alert` are aliases for `transactional` and `notification`; `marketing` → 422. `from` on an unverified domain → 422 `from_domain_not_verified`; omit it for the org default sender. A `from` that no sending identity may send as → 422 `sender_identity_missing` (nothing recorded): use the sending address of the domain, or a hosted mailbox / alias with API sending enabled. 202 whenever the message is recorded — `status` is `sent`, `queued` (including a transport failure parked for retry) or `suppressed` (non-error). A transport refusal that could not be queued → 502 `send_failed`. `id`, `status` and `suppressed` are mirrored at the top level of the 202 body for clients that read them there. Honours `Idempotency-Key`. Shares the 600/h per-organisation limit with `/emails/send`.

POST
/email/send

Same pipeline as /emails/send (verified sender domain, fail-closed suppression, Safe Mode, outbox retry, email.* webhooks) with a flatter wire shape: addresses are strings ("Ana <ana@x.ro>"), tags is a key→value map, custom headers are allowed except envelope/MIME/authentication ones (From, To, Cc, Bcc, Subject, Reply-To, Message-ID, Date, Content-Type, DKIM-Signature, ARC-*, …; no CR/LF). category defaults to transactional; auth and alert are aliases for transactional and notification; marketing → 422. from on an unverified domain → 422 from_domain_not_verified; omit it for the org default sender. A from that no sending identity may send as → 422 sender_identity_missing (nothing recorded): use the sending address of the domain, or a hosted mailbox / alias with API sending enabled. 202 whenever the message is recorded — status is sent, queued (including a transport failure parked for retry) or suppressed (non-error). A transport refusal that could not be queued → 502 send_failed. id, status and suppressed are mirrored at the top level of the 202 body for clients that read them there. Honours Idempotency-Key. Shares the 600/h per-organisation limit with /emails/send.

Authorization

bearerAuth
headerAuthorizationBearer <token>

API key as Bearer token

Header Parameters

Idempotency-Key?string
Lengthlength <= 255

Request Body

application/json
  1. body

Sibling-application mail (POST /email/send). Addresses are RFC 5322 strings. At least one of html / text is required.

from?string

Must be on a VERIFIED sending domain; omit for the org default.

Lengthlength <= 420
to*array<>
Items1 <= items <= 50
cc?array<>
Itemsitems <= 50
bcc?array<>
Itemsitems <= 50
reply_to?string
Lengthlength <= 420
subject*string
Length1 <= length <= 998
html?string
text?string
headers?

Custom headers. Envelope, MIME and authentication headers are rejected (422); no CR/LF.

tags?

Key→value labels; stored as key:value tags (first 10).

category?string

auth → transactional, alert → notification; marketing is refused (use campaigns).

Default"transactional"
Value in"transactional""notification""marketing""auth""alert"

Response Body

OK

application/json
  1. response
data*
error?null
id*string

Mirror of data.id.

Formatuuid
status*string

Mirror of data.status.

Value in"queued""sent""suppressed"
suppressed?array<string>

Mirror of data.suppressed_recipients.

curl -X POST "https://example.com/email/send" \  -H "Content-Type: application/json" \  -d '{    "from": "codai <no-reply@mail.codai.ro>",    "to": [      "ana@client.ro"    ],    "subject": "Your sign-in code",    "text": "Code: 481 220",    "category": "transactional",    "tags": {      "kind": "auth_email"    },    "headers": {      "X-Entity-Ref-ID": "auth-8f2c"    }  }'
{  "data": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "message_id": "string",    "status": "queued",    "suppressed_recipients": [      "string"    ]  },  "error": null,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "status": "queued",  "suppressed": [    "string"  ]}