List recipients for an email message
Lists per-recipient delivery states for a single message with cursor pagination. Each recipient has an independent status, billable flag, and lifecycle timestamps. BCC recipient addresses are redacted (returned as null) to protect BCC privacy. Default page size is 25, maximum is 100.
GET
/
email_messages
/
{email_id}
/
recipients
JavaScript
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const response of client.emailMessages.recipients.list()) {
console.log(response);
}import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
page = client.email_messages.recipients.list(
"email_id",
)
print(page.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
recipients, err := client.EmailMessages.Recipients.List(
context.TODO(),
"email_id",
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", recipients.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
var page = client.emailMessages().recipients().list("email_id");
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
page = telnyx.email_messages.recipients.list("email_id")
puts(page)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$page = $client->emailMessages->recipients->list(
'email_id',
);
var_dump($page);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx email-messages:recipients list \
--api-key 'My API Key' \
--email-id email_idcurl --request GET \
--url https://api.telnyx.com/v2/email_messages/{email_id}/recipients \
--header 'Authorization: Bearer <token>'{
"data": [
{
"record_type": "email_recipient",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address": "[email protected]",
"kind": "to",
"status": "queued",
"billable": false,
"sent_at": "2024-01-23T18:10:02.574Z",
"delivered_at": "2024-01-23T18:10:02.574Z",
"failed_at": "2024-01-23T18:10:02.574Z",
"smtp_code": 0,
"smtp_response": "string"
}
],
"meta": {
"page_size": 1,
"page_cursor": "string"
}
}{
"errors": [
{
"code": "10006",
"title": "Not authorized",
"detail": "Invalid API key",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10006"
}
}
]
}{
"errors": [
{
"code": "10001",
"title": "Not Found",
"detail": "The requested resource was not found"
}
]
}Authorizations
Telnyx API key supplied as Authorization: Bearer <token>. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.
Path Parameters
Email message UUID.
Query Parameters
Number of results to return. Defaults to 25; maximum is 100. Invalid values are clamped to the valid range.
Required range:
1 <= x <= 100Opaque URL-safe Base64 cursor returned by a previous list response.
Filter recipients by status.
Available options:
queued, sending, sent, deferred, delivered, bounced, failed, gw_reject, cancelled, injection_timeout, expired Filter recipients by address kind.
Available options:
to, cc, bcc Was this page helpful?
JavaScript
import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});
// Automatically fetches more pages as needed.
for await (const response of client.emailMessages.recipients.list()) {
console.log(response);
}import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
page = client.email_messages.recipients.list(
"email_id",
)
print(page.data)
package main
import (
"context"
"fmt"
"github.com/team-telnyx/telnyx-go"
"github.com/team-telnyx/telnyx-go/option"
)
func main() {
client := telnyx.NewClient(
option.WithAPIKey("My API Key"),
)
recipients, err := client.EmailMessages.Recipients.List(
context.TODO(),
"email_id",
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", recipients.Data)
}
package com.telnyx.sdk.example;
import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;
public final class Main {
private Main() {}
public static void main(String[] args) {
TelnyxClient client = TelnyxOkHttpClient.fromEnv();
var page = client.emailMessages().recipients().list("email_id");
}
}require "telnyx"
telnyx = Telnyx::Client.new(api_key: "My API Key")
page = telnyx.email_messages.recipients.list("email_id")
puts(page)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Telnyx\Client;
use Telnyx\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('TELNYX_API_KEY') ?: 'My API Key');
try {
$page = $client->emailMessages->recipients->list(
'email_id',
);
var_dump($page);
} catch (APIException $e) {
echo $e->getMessage();
}telnyx email-messages:recipients list \
--api-key 'My API Key' \
--email-id email_idcurl --request GET \
--url https://api.telnyx.com/v2/email_messages/{email_id}/recipients \
--header 'Authorization: Bearer <token>'{
"data": [
{
"record_type": "email_recipient",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address": "[email protected]",
"kind": "to",
"status": "queued",
"billable": false,
"sent_at": "2024-01-23T18:10:02.574Z",
"delivered_at": "2024-01-23T18:10:02.574Z",
"failed_at": "2024-01-23T18:10:02.574Z",
"smtp_code": 0,
"smtp_response": "string"
}
],
"meta": {
"page_size": 1,
"page_cursor": "string"
}
}{
"errors": [
{
"code": "10006",
"title": "Not authorized",
"detail": "Invalid API key",
"meta": {
"url": "https://developers.telnyx.com/docs/overview/errors/10006"
}
}
]
}{
"errors": [
{
"code": "10001",
"title": "Not Found",
"detail": "The requested resource was not found"
}
]
}