Skip to contentSkip to navigationSkip to topbar
Page toolsOn this page
Looking for more inspiration?Visit the

Operations and Email Tracking


What is an Operation?

what-is-an-operation page anchor

An Operation represents a single API request to the v1/Emails endpoint. When you submit a send request, the Email API validates the input and returns an HTTP 202 Accepted response that includes an operationId and operationLocation. To monitor the status and progress of the Operation, use these values.

As Twilio Email processes the Operation, it generates an Email resource for each recipient in the to array. Each Email progresses through its own set of statuses as it moves from submission to delivery.


To retrieve its status and delivery statistics, make a GET request with the Operation ID.

1
curl -X GET 'https://comms.twilio.com/v1/Emails/Operations/{operationId}' \
2
-H 'Content-Type: application/json' \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

Sample response

sample-response page anchor
1
{
2
"id": "comms_operation_01h2xcejqtf2nbrexx3vqjhp41",
3
"status": "COMPLETED",
4
"stats": {
5
"total": 2,
6
"queued": 0,
7
"sent": 0,
8
"scheduled": 0,
9
"delivered": 2,
10
"opened": 0,
11
"undelivered": 0,
12
"failed": 0,
13
"canceled": 0
14
},
15
"createdAt": "2026-04-05T06:20:00Z",
16
"updatedAt": "2026-04-05T06:20:05Z"
17
}

See the Email Operation API reference.


Each Operation progresses through the following statuses:

StatusDescription
SCHEDULEDThe operation is scheduled for future processing.
PROCESSINGThe operation is currently being processed.
COMPLETEDAll emails in the operation have been processed.
CANCELEDThe operation was canceled.

Retrieve the Emails created by an Operation

retrieve-the-emails-created-by-an-operation page anchor

To retrieve all Email resources that an Operation created, use the List Emails endpoint with the operationId query parameter.

1
curl -X GET 'https://comms.twilio.com/v1/Emails?operationId={operationId}' \
2
-H 'Content-Type: application/json' \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
1
{
2
"data": [
3
{
4
"id": "comms_email_01h2xcejqtf2nbrexx3vqjhp41",
5
"from": {
6
"address": "support@example.com",
7
"name": "Support Team"
8
},
9
"to": {
10
"address": "john.doe@example.com",
11
"name": "John Doe"
12
},
13
"content": {
14
"subject": "Your subject line",
15
"html": "<p>Your message content.</p>",
16
"text": "Your message content."
17
},
18
"status": "DELIVERED",
19
"tags": {},
20
"operationId": "comms_operation_01h2xcejqtf2nbrexx3vqjhp41",
21
"createdAt": "2026-04-05T06:20:00Z",
22
"updatedAt": "2026-04-05T06:20:05Z"
23
}
24
],
25
"pagination": {
26
"nextPageToken": null,
27
"pageSize": 50
28
}
29
}

To learn more about this resource, see the List Emails API reference.


Each individual email progresses through a series of statuses as it moves from submission to delivery:

StatusDescription
SCHEDULEDThe email is scheduled for future delivery.
QUEUEDThe email is queued for sending.
SENTThe email was sent to the recipient's mail server.
DELIVEREDThe recipient's mail server confirmed delivery.
UNDELIVEREDThe email was sent by Twilio but wasn't delivered to the recipient.
OPENEDThe recipient opened the email.
FAILEDThe email failed during processing.
CANCELEDThe email was canceled through an API request.
INBOUNDThe email was received by Twilio from an external source.

You can add custom metadata tags to your emails for filtering and tracking. When listing emails, filter by tags using the query string format: ?tags=key1:value1;key2:value2;.

1
curl -X GET 'https://comms.twilio.com/v1/Emails?tags=campaign:monthlyNewsletter;' \
2
-H 'Content-Type: application/json' \
3
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

To learn more about tag constraints, see Tags.


See the Personalization guide to learn how to personalize emails for each recipient.