---
title: "POST /v2/retention-campaigns/{id}/activate"
method: POST
path: "/v2/retention-campaigns/{id}/activate"
tags: ["retentionCampaignsV2"]
---

# POST /v2/retention-campaigns/{id}/activate

`POST /v2/retention-campaigns/{id}/activate`

## Request

- Base URL: `https://api.superwall.com`
- URL: `https://api.superwall.com/v2/retention-campaigns/{id}/activate`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `accounts_superwall_token`
  - HTTP bearer

## Path parameters

- `id` string, required

## Response `200`

Success

- object
  - `id` integer, required
  - `object` 'retention_campaign', required
  - `application_id` string, required
  - `environment` 'sandbox' | 'production', required: Apple environment: 'sandbox' for testing, 'production' for live
  - `name` string, required
  - `created_at` string, required
  - `updated_at` string, required
  - `placements` object[], required
    - `id` integer, required
    - `product_id` string, required
    - `locale` string, required
  - `default_groups` object[], required
    - `id` integer, required
    - `message_group_id` integer, required
    - `placements` object[], required
      - `product_id` string, required
      - `locale` string, required
      - `id` integer, required
      - `retention_message_id` integer, required
      - `apple_sync_state` 'not_synced' | 'syncing' | 'synced' | 'failed', required
      - `apple_sync_last_error` string, nullable, required
      - `has_working_default` boolean
  - `audiences` object[], required
    - `id` integer, required
    - `name` string, required
    - `priority` integer, required
    - `enabled` boolean, required
    - `rules` object, required
      - `product_ids` string[]
      - `locales` string[]
    - `variants` object[], required
      - `id` integer, required
      - `name` string, required
      - `weight` integer, required
      - `allocation_order` integer, required
      - `configuration_group_id` integer, required

## Other responses

- `400`: The request did not match the expected schema | The request was invalid or malformed
- `401`: No API key was provided in the request | The API key does not have a valid format | The API key is invalid or has been revoked | An error occurred while validating the API key | The session cookie is invalid or expired
- `403`: The API key does not have permission to perform this action
- `404`: The requested resource was not found
- `429`: Too many requests have been made in a short period
- `500`: An unexpected error occurred on the server | A required post-operation side effect failed
- `502`: The upstream retention provider request failed

## Changes

- **2026-10-29** `778a11cd2c15`: 5 warning, 4 info
  - added the new `credentials_missing` enum value to the `anyOf[subschema #2]/code` response property for the response status `400`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `403`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `404`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `429`
  - …5 more
- **2026-10-14** `a41d471f35eb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/superwall/apis/superwall-api-v2/changes/v2/retention-campaigns/:id/activate/post.md)

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) - [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/superwall/apis/superwall-api-v2/revisions/523b4734dfab?raw)
