get_broadcast
Read one broadcast by the id the send answered with, with its tallies, the sentence the creator reads, the failures by reason and the first fifty members it could not reach.
Follow one send. broadcast_message and retry_broadcast answer a broadcast_id the moment the work is queued; this tool reads where it stands: progress (status, done of total, failed, and line, the sentence the creator reads), failures_by_kind, and under failures the first fifty members the walk could not reach, newest first, each with the connector's reading of why and the platform's own words when it gave any. failures_total says how many there are in all; the REST listing pages them.
Poll it while progress.status is queued, running or paused, or wait for the broadcast.completed event, which carries the same id. In the Copilot none of this is needed: the step under the reply follows the broadcast live and ends with the line.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same actions as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
broadcast_id*stringUUID of the broadcast to fetch.
What it returns
{ "data": { "id": "0192f4a6-3c1e-7d2b-9a8f-4e5d6c7b8a90", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "status": "completed", "source": "api", "connector": null, "sent_by": { "id": "0191a0c4-2b7e-7a1d-8c3f-5d6e7f8a9b0c", "name": "Ada Lovelace" }, "audience": "customer", "pass_window_id": null, "plan_id": null, "expiring_within_days": null, "content": "<b>Doors open tonight</b> at 8.", "recipients_estimated": 128, "sent_count": 126, "failed_count": 2, "announcements_count": 0, "failures_by_kind": { "unreachable": 2 }, "progress": { "status": "completed", "done": 128, "total": 128, "failed": 2, "line": "Sent to 126 of 128, 2 could not be reached, in 48s" }, "parent_id": null, "last_error": null, "started_at": "2026-11-04T14:02:11+00:00", "finished_at": "2026-11-04T14:02:59+00:00", "duration_ms": 48000, "created_at": "2026-11-04T14:02:09+00:00", "updated_at": "2026-11-04T14:02:59+00:00", "failures": [ { "id": "0192f4a7-1a2b-7c3d-8e4f-5a6b7c8d9e0f", "broadcast_id": "0192f4a6-3c1e-7d2b-9a8f-4e5d6c7b8a90", "member": { "id": "0191b2d6-4e5f-7a6b-8c7d-9e0f1a2b3c4d", "name": "Marcus Reed" }, "kind": "unreachable", "detail": "Forbidden: bot was blocked by the user", "failed_at": "2026-11-04T14:02:31+00:00" } ], "failures_total": 2 }}Nothing is kept per successful recipient
The members missed are the whole per-member record; sent_count is a tally.
A member who blocked the bot (unreachable) can never be reached again; one
the platform rate-limited (rate_limited) or a temporary error
(transient) usually can, which is what retry_broadcast is for.
How it fails
RESOURCE_NOT_FOUNDunknown broadcast_id, a broadcast on another team's project, or one outside the token's scope:project: allow-list; also a send made before history began.
TOKEN_MISSING_ABILITYtoken lacks broadcast:read.
How is this guide?
Last updated on