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

# Unarchive Campaign

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

## Request

- Base URL: `https://api.migma.ai`
- URL: `https://api.migma.ai/v1/campaigns/{id}/unarchive`
- Auth: API key in header `Authorization`

Restore a previously archived campaign, making it visible in the default list again. Requires API key with campaign:write.

## Path parameters

- `id` string, required

## Response `200`

Campaign unarchived

- 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
    - `localTimeDelivery` boolean: True when the scheduled clock time is used in each contact's own time zone.
    - `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-10-22** `a05e96553523`: 1 info
  - added the optional property `allOf[subschema #2]/data/localTimeDelivery` to the response with the `200` status
- **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`

[Operation history](https://skmtc.dev/migma/apis/migma-ai-api-v1/changes/v1/campaigns/:id/unarchive/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.dev/migma/apis/migma-ai-api-v1/revisions/2ce0e1e4d856?raw)
