---
title: "List campaigns"
method: GET
path: "/v1/domains/{domain}/campaigns"
tags: ["Campaigns"]
---

# List campaigns

`GET /v1/domains/{domain}/campaigns`

## Request

- Base URL: `https://data.inboxpro.io`
- URL: `https://data.inboxpro.io/v1/domains/{domain}/campaigns`
- Auth: HTTP bearer

One row per campaign sent from the domain in the period. A campaign is every email that shared the same subject line.

## Path parameters

- `domain` string, required

## Query parameters

- `from` string, date
- `to` string, date
- `exclude_bots` boolean
- `page` integer
- `page_size` integer
- `sort` 'last_sent_at' | 'sent' | 'open_rate' | 'click_rate' | 'bounce_rate' | 'unsubscribe_rate'
- `search` string

## Response `200`

Default Response

- object
  - `domain` string, required
  - `period` object, required: The days these numbers cover (UTC, both inclusive).
    - `from` string, date, required
    - `to` string, date, required
  - `bots_excluded` boolean, required
  - `data_as_of` string, date-time, required: Numbers include activity up to this moment. Recent hours may still change slightly.
  - `pagination` object, required: Where this page sits in the full result.
    - `page` integer, required
    - `page_size` integer, required
    - `total` integer, required: Total rows across all pages.
  - `campaigns` object[], required
    - `subject` string, required: The campaign subject line.
    - `first_sent_at` string, date-time, nullable, required: First email of this campaign delivered in the period.
    - `last_sent_at` string, date-time, nullable, required: Last email of this campaign delivered in the period.
    - `sent` integer, required: Emails handed to recipients' mail servers: delivered plus bounced. Rejections are not included.
    - `delivered` integer, required: Emails accepted by the recipient's mail server.
    - `bounces` integer, required: Emails the recipient's mail server refused, for example because the address does not exist.
    - `rejections` integer, required: Emails our servers refused to accept from your sending system, for example because they failed a sending policy check. These were never sent.
    - `opens` integer, required: Recipients who opened the email at least once.
    - `clicks` integer, required: Recipients who clicked at least one link.
    - `unsubscribes` integer, required: Recipients who unsubscribed.
    - `delivery_rate` number, nullable, required: Delivered ÷ sent. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.
    - `bounce_rate` number, nullable, required: Bounces ÷ sent. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.
    - `open_rate` number, nullable, required: Opens ÷ delivered. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.
    - `click_rate` number, nullable, required: Clicks ÷ delivered. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.
    - `click_to_open_rate` number, nullable, required: Clicks ÷ opens. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.
    - `unsubscribe_rate` number, nullable, required: Unsubscribes ÷ delivered. Percentage, 0–100, rounded to 2 decimals. Null when there is nothing to divide by.

## Other responses

- `400`: A parameter is missing or invalid.
- `401`: The API key is missing, invalid, or revoked.
- `404`: The domain is not one of your sending domains.
- `429`: Too many requests in a short time, or the daily request quota is used up.
- `503`: Stats are briefly unavailable. Retry after a short wait.

---

[API](https://skmtc.dev/inboxpro/apis/inboxpro-stats-api.md) - [All operations](https://skmtc.dev/inboxpro/apis/inboxpro-stats-api/llms.txt) - [OpenAPI document](https://skmtc.dev/inboxpro/apis/inboxpro-stats-api/revisions/e0a4b5c280ce?raw)
