---
title: "Archive Campaign"
method: POST
path: "/v1/campaigns/{id}/archive"
tags: ["Campaigns"]
---

# Archive Campaign

`POST /v1/campaigns/{id}/archive`

Archive a campaign to hide it from the default campaign list. Works for any status. Archived campaigns are excluded from list results unless the archived filter is set. Requires API key with campaign:write.

## Path parameters

- `id` string, required

## Response `200`

Campaign archived

- ApiResponseCampaign
  - `success` boolean, required
  - `data` object, nullable
    - `id` string
    - `projectId` string
    - `name` string
    - `conversationId` string
    - `emailId` string, nullable — Generated email ID when the campaign was created from a specific email.
    - `subject` string
    - `preheaderText` string, nullable
    - `from` string, email
    - `fromName` string
    - `replyTo` string, nullable
    - `recipientType` 'audience' | 'tag'
    - `recipientId` string — First segment or list ID. Always equals recipientIds[0] when recipientIds is set.
    - `recipientIds` string[] — Segment or list IDs of the same type. Unique people across the selection receive one email. Omitted on single-recipient campaigns.
    - `topicId` string, nullable
    - `estimatedRecipients` integer, nullable
    - `providerType` 'ses' | 'resend' | 'sendgrid' | 'mailgun' | 'migma'
    - `variables` object, nullable
    - `status` 'draft' | 'pending_review' | 'scheduled' | 'sending' | 'throttled' | 'sent' | 'failed' | 'cancelled'
    - `scheduledAt` string, date-time, nullable
    - `scheduledTimezone` string, nullable
    - `batchId` string, nullable
    - `sentAt` string, date-time, nullable
    - `completedAt` string, date-time, nullable
    - `error` string, nullable
    - `triggeredBy` 'manual' | 'api' | 'automation'
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `error` string, nullable

## Other responses

- `401` — Unauthorized
- `404` — Resource not found

## Changes

- **2026-08-31** `6b3357db6cf6` — 1 info
  - added the optional property `allOf[subschema #2]/data/recipientIds` to the response with the `200` status
- **2026-07-26** `3f3dba69574b` — 1 warning
  - added the new `pending_review` enum value to the `allOf[subschema #2]/data/status` response property for the response status `200`

[Change history](https://skmtc.dev/migma/apis/migma-ai-api-v1/changes/v1/campaigns/:id/archive/post.md)

---

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