---
title: "Get a campaign"
method: GET
path: "/v1/campaigns/{id}"
tags: ["Campaigns"]
---

# Get a campaign

`GET /v1/campaigns/{id}`

## Request

- Base URL: `https://api.mailbeast.ai`
- URL: `https://api.mailbeast.ai/v1/campaigns/{id}`
- Auth: HTTP bearer

Full config - schedule, settings, sequence steps, attached accounts, headline metrics.

Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`.

## Path parameters

- `id` string, uuid, required

## Response `200`

- CampaignApiDto
  - `id` string, uuid, required
  - `name` string, required
  - `status` 'draft' | 'scheduled' | 'active' | 'paused' | 'stopped' | 'completed' | 'failed', required
  - `schedule` CampaignScheduleView, required
    - `mode` 'simple' | 'advanced', required: Which schedule is in effect. `advanced` → `intervals` decide when it sends and `sendingDays` / `sendingMinutesStart/End` are ignored.
    - `intervals` ScheduleIntervalView[], required: Per-day windows of the advanced schedule (kept even while `mode` is `simple`).
      - `day` number, required: 1=Monday … 7=Sunday.
      - `startMinutes` number, required: Minutes from midnight.
      - `endMinutes` number, required: Minutes from midnight (1440 = midnight).
      - `enabled` boolean, required
    - `timezone` string, required
    - `sendingDays` number[]
    - `sendingMinutesStart` number, required: Minutes from midnight.
    - `sendingMinutesEnd` number, required: Minutes from midnight.
    - `dailyLimit` number, required
    - `startDate` string, date-time, nullable
    - `endDate` string, date-time, nullable
  - `settings` CampaignSettingsView, required
    - `trackOpens` boolean, required
    - `trackClicks` boolean, required
    - `sendAsTextOnly` boolean, required
    - `stopOnReply` boolean, required
    - `useAllAccounts` boolean, required: Sends from every connected mailbox of the workspace (`true`) or only from `accounts` (`false`).
    - `stopOnBounce` boolean, required: Stop sending to a lead whose email hard-bounced.
    - `stopCompanyOnReply` boolean, required: A reply stops the sequence for every lead of the same company email domain.
    - `highBounceAutoProtection` boolean, required: Auto-pause when the 24-hour hard-bounce rate goes above 5%.
    - `skipInvalidEmails` boolean, required: Skip leads whose email verification is `invalid`.
    - `skipUnknownEmails` boolean, required: Skip leads whose email verification is `unknown`.
    - `skipRiskyEmails` boolean, required: Skip leads whose email verification is `risky` (catch-all).
    - `sendFirstAsText` boolean, required: First step as plain text, follow-ups as HTML.
    - `emailProviderMatching` boolean, required: Prefer a sending mailbox on the same provider as the lead.
    - `unsubscribeLinkHeader` boolean, required: One-click `List-Unsubscribe` header (RFC 8058).
    - `unsubscribeLinkBody` boolean, required: Unsubscribe link at the bottom of the email body.
    - `autoBlacklistOnUnsubscribe` boolean, required: Leads who unsubscribe also go to the workspace blacklist.
    - `newLeadsRatio` number, required: Percent of daily sending for first emails to new leads; the rest is follow-ups.
    - `abTestingOptimization` boolean, required: A/B auto-optimization: keep the best-replying variant of each step.
    - `keepActiveWhenNoLeads` boolean, required: true → the campaign stays active when it runs out of leads and schedules new leads as they are added; false → it completes once every lead has received every step.
    - `hubspotSyncEnabled` boolean, required: The recurring HubSpot sync may add contacts to this campaign.
  - `metrics` CampaignMetricsView, required
    - `leadsCount` number, required
    - `sent` number, required: Emails sent.
    - `opens` number, required: Open events.
    - `clicks` number, required: Click events.
    - `replies` number, required: Replies received.
  - `sequence` CampaignSequenceStepView[]: The email sequence steps - included on the detail view (GET /v1/campaigns/:id).
    - `id` string, uuid, required
    - `subject` string, required: Subject of the first variant (a copy of `variants[0].subject`). Leave it out when you send the step back with `variants`.
    - `body` string, required: Body of the first variant (a copy of `variants[0].body`). Leave it out when you send the step back with `variants`.
    - `delayDays` number, required
    - `delayHours` number, required
    - `variants` CampaignSequenceVariantView[], required: A/B variants of this step, by letter (A, B, C…). A step written with `subject` + `body` has a single variant `A`.
      - `id` string, uuid, required: Variant id. Pass it as `variantId` to POST /v1/campaigns/{id}/test-email.
      - `label` string, required: A/B variant letter.
      - `subject` string, required
      - `body` string, required
      - `isActive` boolean, required: Whether this variant is enabled. It is sent only while its step and the campaign are active too. Leads are split evenly between the enabled variants of a step; A/B auto-optimization switches the losing ones off.
  - `accounts` string[]: Attached SMTP account ids - included on the detail view. The campaign sends only from these when `settings.useAllAccounts` is `false`; while it is `true`, from every connected mailbox of the workspace.
  - `tags` TagApiDto[], required: Tags on this campaign - the same ones the list returns, and the same ids `?tags=` filters by. Create and delete them in the dashboard. Campaign tags are a separate dictionary from mailbox tags, so the ids do not cross over.
    - `id` string, uuid, required
    - `name` string, required
    - `color` string, nullable, required: Hex colour shown in the dashboard.
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: The request body or parameters failed validation.
- `401`: Missing or invalid API key.
- `403`: The key lacks a required scope, or the plan does not include API access.
- `404`: The resource does not exist in your workspace.
- `429`: Rate limit exceeded - retry after the interval in the Retry-After header.

---

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