---
title: "List CampaignSends"
method: GET
path: "/shop/customers/campaigns/{campaignId}/sends"
tags: ["Campaigns"]
---

# List CampaignSends

`GET /shop/customers/campaigns/{campaignId}/sends`

Returns a paginated list of send records for the given `Campaign`.

## Query parameters

- `page` integer
- `per_page` integer
- `query` string
- `sent` boolean
- `failed` boolean
- `bounced` boolean

## Response `200`

The campaign sends were successfully retrieved.

- object
  - `data` CampaignSend[], required
    - `id` string, uuid, required — The unique identifier of the campaign send.
    - `campaign_id` string, uuid, required — The ID of the campaign this send belongs to.
    - `campaign_content_id` string, uuid, required — The ID of the `CampaignContent` used for this send.
    - `member_id` string, uuid, required — The ID of the `CustomerSegmentMember` this send was addressed to.
    - `subject` string, required — The email subject line used for this send.
    - `sent_at` string, date-time, nullable, required — The datetime at which the email was sent, or `null` if not yet sent.
    - `failed_at` string, date-time, nullable, required — The datetime at which the send failed, or `null` if it has not failed.
    - `bounced_at` string, date-time, nullable, required — The datetime at which the email bounced, or `null` if it has not bounced.
    - `clicked_at` string, date-time, nullable, required — The datetime at which the recipient first clicked a link in the email, or `null` if no click has been recorded.
    - `opened_at` string, date-time, nullable, required — The datetime at which the recipient first opened the email, or `null` if no open has been recorded.
    - `customer` object, nullable, required — Summary of the customer this email was sent to.
      - `id` string, uuid, required — The ID of the customer.
      - `first_name` string, required — The first name of the customer.
      - `last_name` string, required — The last name of the customer.
      - `email` string, email, required — The email address of the customer.
  - `meta` PaginationMeta, required — Counts and positional information for the current page of a list response. Use `current_page` and `last_page` to drive pagination UI, `total` for result counts, and `per_page` to confirm the page size the server actually applied (which may differ from the requested value when capped).
    - `from` integer, required — The item number from which this results set starts from
    - `to` integer, required — The item number from which this results set ends at
    - `total` integer, required — The total number of results
    - `current_page` integer, required — The current page number
    - `last_page` integer, required — The page number of the last result set
    - `per_page` integer, required — The number of results per page
    - `path` string, required — The path of this api request
  - `links` PaginationLinks, required — Hypermedia navigation links for paging through a list response. Each property is a fully-qualified URL that preserves the original query string (filters, sort, page size) and only swaps the `page` parameter. `next` and `prev` are `null` at the ends of the result set; `first` and `last` are always present.
    - `first` string, required — The url of the first page for the paginated results set
    - `next` string, nullable, required — The url of the next page for the paginated results set
    - `prev` string, nullable, required — The url of the previous page for the paginated results set
    - `last` string, required — The url of the last page for the paginated results set

## Other responses

- `401` — The user is unauthenticated
- `403` — The authenticated user does not have permission.
- `404` — The resource couldn't be found

---

[API](https://skmtc.dev/try/apis/trybe-api.md) · [All operations](https://skmtc.dev/try/apis/trybe-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/try/trybe-api/revisions/f37f92702da5/schema)
