List broadcasts
/v1/email/broadcastsfor await (const broadcast of bird.broadcasts.list({ status: ["sent"] })) {
console.log(broadcast.id, broadcast.status);
}for broadcast in client.broadcasts.list(status=["sent"]):
print(broadcast.id, broadcast.status)for broadcast, err := range client.Broadcasts.List(context.Background(),
bird.BroadcastsListParams{Status: []bird.EmailBroadcastStatus{bird.EmailBroadcastStatusSent}}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(*broadcast.Id, *broadcast.Status)
}foreach ($bird->broadcasts->list(['status' => ['sent']]) as $broadcast) {
echo $broadcast->getId(), ' ', $broadcast->getStatus(), PHP_EOL;
}bird email broadcasts listcurl -X GET "https://us1.platform.bird.com/v1/email/broadcasts" \
-H "Authorization: Bearer $TOKEN" \
--url-query "limit=25"{
"data": [
{
"id": "eb_01krdgeqcxet5s7t44vh8rt9mg",
"from": {
"email": "jane@acme.com",
"name": "Jane Doe"
},
"audience_id": "adn_01krdgeqcxet5s7t44vh8rt9mg",
"template": {
"id": "emt_01krdgeqcxet5s7t44vh8rt9mg",
"version_id": "emv_01krdgeqcxet5s7t44vh8rt9mg"
},
"category": "marketing",
"reply_to": [
{
"email": "jane@acme.com",
"name": "Jane Doe"
}
],
"status": "sent",
"failure_reason": null,
"failure_detail": null,
"recipient_count": 4820,
"sent_count": 4820,
"delivered_count": 4712,
"bounced_count": 96,
"complained_count": 12,
"open_count": 3104,
"click_count": 812,
"unique_opens_non_prefetched": 2140,
"unique_clicks": 693,
"out_of_band_bounces": 14,
"delivered_recipients": 4724,
"tags": [
{
"name": "category",
"value": "welcome"
}
],
"track_opens": true,
"track_clicks": true,
"created_at": "2026-09-01T09:14:02.418Z",
"scheduled_at": "2026-09-02T08:00:00Z",
"started_at": "2026-09-02T08:00:03.771Z",
"sent_at": "2026-09-02T08:11:47.902Z"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns a paginated list of broadcasts in the workspace, newest first. created_after and created_before narrow the list to broadcasts created in a half-open window, which is how you page a single month or quarter rather than the whole history.
Paramètres de requête
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
statusarrayFilter by lifecycle status. Repeat the parameter to match more than one status, for example ?status=accepted&status=sending.
audience_idstringFilter by audience. Only broadcasts that use this audience are returned.
tagstringFilter by tag. Pass name to match any broadcast that has that tag name, or pass name:value to match a specific tag pair, for example campaign:spring_launch.
qstringCase-insensitive literal substring match against the broadcast's tags or the referenced template's name. With email_management read access, also matches the subject in the effective language of the template version resolved when this broadcast's execution starts. Draft and scheduled broadcasts have no execution subject to search. Percent signs, underscores, and backslashes are literal characters.
created_afterstringLimits the response to resources created at or after this timestamp. Combine it with created_before to select a time window. Use an RFC 3339 timestamp with a timezone offset.
created_beforestringLimits the response to resources created before this timestamp. Combine it with created_after to select a time window. Use an RFC 3339 timestamp with a timezone offset.
Contenu de la réponse
next_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet.