Skip to content
Start here

Send an email using the builder.

POST/accounts/{account_id}/email/sending/send

Send an email using the builder.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Path ParametersExpand Collapse
account_id: string

Identifier of the account.

Body ParametersJSONExpand Collapse
from: string or object { address, name }

Sender email address. Either a plain string or an object with address and name.

One of the following:
EmailSendingEmailAddressString = string

An email address as a plain string.

EmailSendingEmailAddressObject = object { address, name }
address: string

Email address (e.g., 'user@example.com').

name: string

Display name for the email address (e.g., 'John Doe').

subject: string

Email subject line.

to: string or array of string

Recipient(s). A single email string or an array of email strings.

One of the following:
EmailSendingEmailAddressString = string

An email address as a plain string.

EmailSendingEmailAddressList = array of string

A list of email address strings.

attachments: optional array of object { content, content_id, disposition, 2 more } or object { content, disposition, filename, type }

File attachments and inline images.

One of the following:
Inline = object { content, content_id, disposition, 2 more }
content: string

Base64-encoded content of the attachment.

content_id: string

Content ID used to reference this attachment in HTML via cid: URI (e.g., ).

disposition: "inline"

Must be 'inline'. Indicates the attachment is embedded in the email body.

filename: string

Filename for the attachment.

type: string

MIME type of the attachment (e.g., 'image/png', 'text/plain').

Attachment = object { content, disposition, filename, type }
content: string

Base64-encoded content of the attachment.

disposition: "attachment"

Must be 'attachment'. Indicates a standard file attachment.

filename: string

Filename for the attachment.

type: string

MIME type of the attachment (e.g., 'application/pdf', 'text/plain').

bcc: optional string or array of string

BCC recipient(s). A single email string or an array of email strings.

One of the following:
EmailSendingEmailAddressString = string

An email address as a plain string.

EmailSendingEmailAddressList = array of string

A list of email address strings.

cc: optional string or array of string

CC recipient(s). A single email string or an array of email strings.

One of the following:
EmailSendingEmailAddressString = string

An email address as a plain string.

EmailSendingEmailAddressList = array of string

A list of email address strings.

headers: optional map[string]

Custom email headers as key-value pairs.

html: optional string

HTML body of the email. At least one of text or html must be provided.

reply_to: optional string or object { address, name }

Reply-to address. Either a plain string or an object with address and name.

One of the following:
EmailSendingEmailAddressString = string

An email address as a plain string.

EmailSendingEmailAddressObject = object { address, name }
address: string

Email address (e.g., 'user@example.com').

name: string

Display name for the email address (e.g., 'John Doe').

text: optional string

Plain text body of the email. At least one of text or html must be provided.

ReturnsExpand Collapse
errors: array of object { code, message }
code: number
message: string
messages: array of object { code, message }
code: number
message: string
result: object { delivered, permanent_bounces, queued }
delivered: array of string

Email addresses to which the message was delivered immediately.

permanent_bounces: array of string

Email addresses that permanently bounced.

queued: array of string

Email addresses for which delivery was queued for later.

success: true
result_info: optional object { count, per_page, total_count, 2 more }
count: number
per_page: number
total_count: number
cursor: optional string
page: optional number

Send an email using the builder.

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/email/sending/send \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    -d '{
          "from": "sender@example.com",
          "subject": "Monthly Report",
          "to": [
            "recipient@example.com"
          ],
          "headers": {
            "X-Custom-Header": "value"
          },
          "html": "<h1>Hello</h1><p>Please find your report attached.</p>",
          "text": "Hello\\n\\nPlease find your report attached."
        }'
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "delivered": [
      "recipient@example.com"
    ],
    "permanent_bounces": [
      "dev@stainless.com"
    ],
    "queued": [
      "dev@stainless.com"
    ]
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "delivered": [
      "recipient@example.com"
    ],
    "permanent_bounces": [
      "dev@stainless.com"
    ],
    "queued": [
      "dev@stainless.com"
    ]
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0
  }
}