---
title: "The recipients of a broadcast for one event type: sent, delivered, opened, clicked, bounced, complained, unsubscribed or suppressed."
method: GET
path: "/broadcasts/{id}/recipients"
tags: ["broadcasts"]
---

# The recipients of a broadcast for one event type: sent, delivered, opened, clicked, bounced, complained, unsubscribed or suppressed.

`GET /broadcasts/{id}/recipients`

## Request

- Base URL: `https://api.agentisend.com`
- URL: `https://api.agentisend.com/broadcasts/{id}/recipients`
- Auth: HTTP bearer

opened and clicked rows carry count, clicked rows carry clicked_links, bounced rows carry bounce_type. unsubscribed is always empty, because an unsubscribe is recorded against the contact, not against the message that carried the link.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `type` 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained' | 'unsubscribed' | 'suppressed', required: The event to filter recipients by.
- `email` string: Keep recipients whose email address contains this value.
- `bounce_type` 'permanent' | 'transient' | 'undetermined': Keep bounced recipients of this bounce type. Only with type=bounced.
- `limit` integer: Between 1 and 100. Defaults to 20.
- `after` string: The id of the last row of the previous page. Not with before.
- `before` string: The id of the first row of the next page. Not with after.

## Response `200`

Success

- GetBroadcastsByIdRecipientsReply
  - `object` 'list', required
  - `has_more` boolean, required
  - `data` object[], required
    - `id` string, required: An opaque cursor for this row, used only for paging. It identifies nothing else.
    - `contact_id` string, uuid, nullable, required: The contact, or null when the address no longer maps to one.
    - `email` string, required
    - `count` integer: How many times the recipient did it. opened and clicked only.
    - `bounce_type` 'permanent' | 'transient' | 'undetermined': bounced only.
    - `clicked_links` object[]: The links this recipient clicked. clicked only.
      - `url` string, required
      - `clicks` integer, required

## Other responses

- `400`: The request is malformed or a field failed validation. Codes: validation_error, invalid_idempotency_key, invalid_cursor, plan_not_purchasable, stripe_signature_invalid, support_upload_rejected, sign_in_check_required.
- `401`: No usable credential was sent. Codes: missing_api_key, session_required, mfa_required.
- `403`: The credential may not do this, or the account or key is stopped. Codes: sending_domain_blocked, young_domain_held, domain_sending_disabled, domain_not_verified, onboarding_recipient_not_a_member, onboarding_sender_unavailable, account_suspended, account_sandboxed, human_action_required, csrf_origin_rejected, charge_not_this_account, invalid_api_key, restricted_api_key, insufficient_role, invite_email_mismatch, domain_scope_violation, dedicated_ip_assigned_by_us, approval_required, staff_review_required, trust_paused, kill_switch_active.
- `404`: Nothing with this id exists on the account. Codes: billing_customer_missing, not_found, session_expired, support_ticket_not_found.
- `422`: A field is well formed but was refused. Codes: missing_required_field, invalid_from_address, invalid_parameter, invalid_attachment, invalid_region, tracking_subdomain_unverified, tracking_subdomain_cannot_be_removed, domain_field_immutable, open_tracking_on_transactional, header_replaced, html_clipped_by_gmail, link_domain_listed, domain_blocklisted, mailbox_provider_domain, onboarding_shape_refused, dkim_key_mismatch, domain_check_window_expired, spf_conflict, spf_lookup_limit, review_sandbox_recipient_only, suppressed_recipient, content_refused, recipient_blocklisted, last_owner_required, seat_limit_reached, invite_not_valid, key_budget_exceeds_plan, domain_limit_reached, webhook_endpoint_limit_reached.
- `429`: A rate, quota or ramp ceiling was reached. Codes: onboarding_daily_cap_reached, trust_throttled, invite_limit_reached, rate_ceiling_exceeded, daily_quota_exceeded, monthly_quota_exceeded, rate_limit_exceeded, support_rate_limited.
- `500`: Something failed on our side. Codes: internal_server_error.

---

[API](https://skmtc.dev/agentisend/apis/agentisend-api.md) · [All operations](https://skmtc.dev/agentisend/apis/agentisend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentisend/apis/agentisend-api/revisions/3066dda62a56?raw)
