For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SDKsHelp CenterLog inSign up
    • Overview
  • Getting Started
    • API Mechanics
    • Quickstart
  • Guides
    • Communications API
    • Troubleshooting
    • Events
    • Changelog
  • Comms API Reference
      • Summary
      • POSTSend Emails
      • GETList Emails
      • GETFetch an Email
      • DELDelete
      • GETFetch an Email Operation
      • GETList Email Operations
LogoLogo
SDKsHelp CenterLog inSign up
Comms API ReferenceEmails

Send Emails

POST
https://comms.twilio.com/v1/Emails
POST
/v1/Emails
1import { TwilioClient } from "twilio-comms";
2
3async function main() {
4 const client = new TwilioClient({
5 accountId: "YOUR_ACCOUNTID_HERE",
6 authToken: "YOUR_AUTHTOKEN_HERE",
7 });
8 await client.emails.send({
9 from: {
10 address: "support@example.company.io",
11 name: "Cool Co Support",
12 },
13 to: [
14 {
15 address: "bob@example.com",
16 name: "Bob Smith",
17 },
18 ],
19 content: {
20 html: "<html><body>Hey, <br/><br/><b>Cake</b></body></html>",
21 text: "Hey, the cake is ready.",
22 subject: "Re: Wedding Cake",
23 attachments: [],
24 },
25 });
26}
27main();
1{
2 "operationId": "comms_operation_01h9krwprkeee8fzqspvwy6nq8",
3 "operationLocation": "https://comms.twilio.com/v1/Emails/Operations/comms_operation_01h9krwprkeee8fzqspvwy6nq8"
4}
This operation creates and sends out emails to the specified recipients.
Was this page helpful?
Previous

List Emails

Next
Built with

Authentication

AuthorizationBasic

Basic authentication of the form Basic <account_id:auth_token>.

OR
AuthorizationBasic

Basic authentication of the form Basic <api_key:api_key_secret>.

Request

A request to send one or more Emails.
fromobjectRequired

The sending identity to associate with the Email.

tolist of objectsRequired

A list of recipients to send the email(s) to.

contentobjectRequired
The content of the Email. *** * Use the [Liquid](https://shopify.github.io/liquid/) templating language for personalization in any text-based field. * When using a templated content, use the `variables` field on each recipient to specify the values to substitute. * For each variable you specify in your template, you should have a matching key in each recipient's `variables` object. * When targeting `Profile` recipients, you may specify `variables` with values that reference stored traits, on the `Profile` -- for example: `${Twilio.Profile.dateLastPurchase}` `${Twilio.Profile.firstName}` or `${Twilio.Profile.myCustomField}`.
tagsmap from strings to stringsOptional
Custom metadata in the form of key-value pairs. Maximum size of a tag key is 128 characters. Maximum size of a tag value is 256 characters. There can be a maximum of 10 key-value pairs. This field can be templated with [Liquid](https://shopify.github.io/liquid/). Specify `variables` with each recipient for personalization.
scheduleobjectOptional

A schedule defines when a communication will be sent to a recipient.

ipPoolNamestringOptional2-64 characters
The name of the IP Pool to use for sending Emails. If not specified, all dedicated IPs associated with your account will be considered for sending. IP pools are only available to accounts with dedicated IPs. This field can be templated with [Liquid](https://shopify.github.io/liquid/). Specify `variables` with each recipient for personalization.

Response headers

Locationstring

The location (uri) of the Operation resource. Issue a GET request to this URI to retrieve the status of the Operation.

Response

The request was accepted and an Operation was created to track its progress. The response body contains the ID and link to the Operation resource.
operationIdstringformat: "^comms_operation_[0-7][a-hjkmnpqrstv-z0-9]{25,34}"
The Operation ID is an identifier that can be used to correlate all of the resources created in a request. Issue a GET request to the resource list location, using the Operation ID as a query parameter to retrieve the resources that correlate with the Operation.
operationLocationstringformat: "uri"

The location (uri) of the Operation resource identified by operationId.

Errors

400
Bad Request Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error

The content of the Email.


  • Use the Liquid templating language for personalization in any text-based field.
  • When using a templated content, use the variables field on each recipient to specify the values to substitute.
  • For each variable you specify in your template, you should have a matching key in each recipient’s variables object.
  • When targeting Profile recipients, you may specify variables with values that reference stored traits, on the Profile — for example: ${Twilio.Profile.dateLastPurchase} ${Twilio.Profile.firstName} or ${Twilio.Profile.myCustomField}.

Custom metadata in the form of key-value pairs. Maximum size of a tag key is 128 characters. Maximum size of a tag value is 256 characters. There can be a maximum of 10 key-value pairs.

This field can be templated with Liquid. Specify variables with each recipient for personalization.

The name of the IP Pool to use for sending Emails.

If not specified, all dedicated IPs associated with your account will be considered for sending.

IP pools are only available to accounts with dedicated IPs.

This field can be templated with Liquid. Specify variables with each recipient for personalization.