Export broadcasts as CSV
Downloads the workspace's broadcasts as a CSV file, one row per broadcast, newest first. The header names fifteen columns, in this order: created_at, broadcast_id, status, template_name, audience_id, audience_name, recipient_count, sent_count, delivered_count, track_opens, open_rate, track_clicks, click_rate, scheduled_at and sent_at. broadcast_id is what joins a row back to the rest of the API. It takes the same filters as the broadcast list, so the file matches what the list shows for the same query. recipient_count is empty until a send resolves the audience, so an empty cell there means the broadcast has no recipient list yet rather than a list of nobody.
open_rate and click_rate are decimal fractions to four places, over the recipients the message reached: open_rate is unique non-prefetched opens divided by that number, and click_rate is unique clicks divided by it. That divisor is not the delivered_count column, which resolves each recipient to a single status and so counts a recipient who delivered and then complained under the complaint, so neither rate can be reproduced from this file alone. Either is empty when its track_opens or track_clicks flag is false, and also when the message reached nobody, so an empty rate does not mean tracking is off. Both flags default to true and the export narrows by no status of its own, so a draft or scheduled row is included unless status excludes it, and carries track_opens as true with open_rate empty.
A text cell whose first character is =, +, -, @, a tab or a carriage return is written with a leading apostrophe, so a spreadsheet reads it as text rather than as a formula. A value that begins with an apostrophe of its own is written unchanged, so the original text cannot always be recovered from the CSV cell. Match records by broadcast_id or audience_id, rather than by template_name or audience_name.
The file is complete or it is refused: a query matching more broadcasts than one file carries returns a 422 naming the limit rather than a truncated download. Narrow it with created_after and created_before and request each window separately.
Request
- Base URL: https://us1.platform.bird.com
- URL: https://us1.platform.bird.com/v1/email/broadcasts/export
- Auth: one of:
- HTTP bearer
- API key in cookie bird_session
Query parameters
Filter by lifecycle status. Repeat the parameter to match more than one status, for example ?status=accepted&status=sending.
Filter by audience. Only broadcasts that use this audience are returned.
Filter 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.
Case-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.
Limits 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.
Limits 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.
Headers
Workspace context for the request. Required for dashboard authentication and master keys. Workspace keys and access tokens already identify their workspace; send that workspace or omit the header. A different one is rejected.
Organization context for the request. Required for dashboard authentication. An API key or access token carries its own organization, so send either that organization or no header at all; a different one is rejected.
Response
The broadcasts as a CSV file.
Changes
No recorded changes to this operation across all 2 revisions of this API.