List the broadcasts blocking a template delete
GET
/v1/email/templates/{template_ref}/broadcasts
bird email templates broadcasts list <template-ref>curl -X GET "https://us1.platform.bird.com/v1/email/templates/{template_ref}/broadcasts" \
-H "Authorization: Bearer $TOKEN" \
--url-query "limit=25"Response200
{
"data": [
{
"id": "eb_01krdgeqcxet5s7t44vh8rt9mg",
"status": "scheduled",
"scheduled_at": "2026-07-03T09:00:00Z",
"created_at": "2026-07-01T00:00:00Z"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the broadcasts that block deleting this template, as a cursor page, newest first. Those are the ones that have not started sending, so they have not pinned the content they will send: scheduled and accepted. Clear every one of them and the delete goes through. Canceling clears either status; repointing at another template only works while the broadcast is scheduled, because an accepted broadcast is committed to send and an edit returns a conflict. A broadcast that is already sending is not listed and does not block the delete, because it froze its version when it started.
Parameters
template_ref
string
The template's id (emt_…) or slug. A built-in system template's bird_ slug also resolves here, but a system template can never be referenced by a broadcast, so this always returns an empty page for one.
Query Parameters
limit
integer
Maximum number of items to return per page.
starting_after
string
Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_before
string
Cursor 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.
Response Payload
data
array of object
required
Page of broadcasts blocking a delete of the template, newest first.
Show child attributes
data.id
string
required
Broadcast ID.
data.status
string
required
Where the broadcast has got to. Only scheduled and accepted appear here: those are the two that have not pinned their content yet, so they are the ones blocking the delete. This list carries the status alone; the per-recipient totals live on the broadcast itself.
data.scheduled_at
nullable string
When the broadcast is due to send, or null when it is not scheduled.
data.created_at
string
required
When the broadcast was created.
next_cursor
nullable string
required
Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursor
nullable string
required
Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursor
nullable string
required
Refresh 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.
Related resources
Continue with the documentation, guides and examples for this topic. Resources are in English.
Watch the guideHow to build an email templateExplore the capabilityEmail templatesFollow the learning pathBuild your first integrationImplementation guideEmail templates
Try the practice and get an implementation brief