---
title: "List recipients of a single campaign"
method: GET
path: "/v1/projectId/{projectId}/campaigns/{id}/recipients"
tags: ["Campaigns"]
---

# List recipients of a single campaign

`GET /v1/projectId/{projectId}/campaigns/{id}/recipients`

## Request

- Base URL: `https://api.bluefox.email`
- URL: `https://api.bluefox.email/v1/projectId/{projectId}/campaigns/{id}/recipients`
- Auth: HTTP bearer

One row per actual recipient - who received it, how many times they opened/clicked, and whether they bounced/complained/unsubscribed/paused/subscribed/resubscribed as a result of this specific send. Supports the usual filter[<field>] exact-match filtering (e.g. filter[unsubscribed]=true, filter[status]=failed), plus two convenience filters not tied to a literal field: filter[opened]=true/false and filter[clicked]=true/false.

## Path parameters

- `projectId` string, required
- `id` string, required

## Query parameters

- `limit` integer
- `skip` integer
- `sort` 'sentAt' | 'createdAt' | 'email'
- `order` 'asc' | 'desc'
- `filter[<field>]` string

## Response `200`

OK

- object
  - `status` integer
  - `result` object
    - `items` DispatchedEmailRecipient[]
      - `email` string
      - `status` 'scheduled' | 'being-sent' | 'sent' | 'failed'
      - `sentAt` string, date-time
      - `opens` integer: Number of times this recipient opened this specific send.
      - `clicks` integer: Number of times this recipient clicked a link in this specific send.
      - `bounced` boolean
      - `complained` boolean
      - `unsubscribed` boolean: True if this recipient unsubscribed via the link in this specific send.
      - `paused` boolean
      - `subscribed` boolean
      - `resubscribed` boolean
      - `errors` unknown[]: Present when status is "failed" - why the send failed.
        - unknown
    - `count` integer: Total matching items across all pages, not just this page.
    - `next` string, nullable: Full URL (path + query string) of the next page, or null if this is the last page.

## Other responses

- `400`: Invalid request body or query - every violation found (missing/invalid/unexpected fields) is reported in one response, semicolon-separated, not just the first one hit.
- `403`: Missing or invalid API key
- `404`: Campaigns not found

---

[API](https://skmtc.dev/bluefox/apis/bluefox-email-public-api.md) · [All operations](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bluefox/apis/bluefox-email-public-api/revisions/fa1a0a835c7f?raw)
