---
title: "List Retention Default Message Groups"
method: GET
path: "/v2/retention-default-messages/groups"
tags: ["Retention Default Messages V2"]
---

# List Retention Default Message Groups

`GET /v2/retention-default-messages/groups`

Returns logical default message groups and their product/locale child rows.

## Query parameters

- `application_id` string, required — Application ID to list default message mappings for (required)
- `environment` 'sandbox' | 'production' — Optional environment filter

## Response `200`

Success

- object
  - `object` 'list', required
  - `data` object[], required
    - `id` string, required — Unique identifier
    - `object` 'retention_default_message_group', required
    - `application_id` string, required — Application ID
    - `name` string, required — Display name
    - `environment` 'sandbox' | 'production', required — Apple environment: 'sandbox' for testing, 'production' for live
    - `message_group_id` integer, required — an integer
    - `message_group` object, required
      - `id` string, required — Unique identifier
      - `object` 'retention_message_group', required
      - `application_id` string, required — Application ID
      - `name` string, required — Display name
      - `environment` 'sandbox' | 'production', required — Apple environment: 'sandbox' for testing, 'production' for live
      - `default_retention_message_id` integer, nullable, required — an integer
      - `messages` object[], required
        - `id` string, required — Unique identifier
        - `object` 'retention_message', required — Object type, always `retention_message`
        - `application_id` string, required — Application ID
        - `message_group_id` integer, nullable, required — an integer
        - `name` string, required — Display name of the retention message
        - `environment` 'sandbox' | 'production', required — Apple environment this message belongs to
        - `locale` string, required — BCP-47 locale code (e.g. `en-US`)
        - `apple_message_identifier` string, required — Current Apple message identifier
        - `apple_message_state` 'PENDING' | 'APPROVED' | 'REJECTED' | 'UNKNOWN', required — Raw Apple review state for this message identifier
        - `apple_upload_state` 'not_uploaded' | 'uploading' | 'uploaded' | 'failed', required — Superwall-to-Apple upload state
        - `apple_upload_attempt_count` number, required
        - `apple_upload_last_error` string, nullable, required
        - `apple_uploaded_at` string, nullable, required
        - `header` string, required — Message header text
        - `body` string, required — Message body text
        - `alt_text` string, nullable, required — Image alt text, or null
        - `image_identifier` string, nullable, required — Apple image identifier (pre-uploaded), or null
        - `created_at` string, required — ISO 8601 timestamp
        - `updated_at` string, required — ISO 8601 timestamp
      - `created_at` string, required — ISO 8601 timestamp
      - `updated_at` string, required — ISO 8601 timestamp
    - `default_messages` object[], required
      - `id` string, required — Unique identifier
      - `object` 'retention_default_message', required — Object type, always `retention_default_message`
      - `application_id` string, required — Application ID
      - `default_message_group_id` integer, nullable, required — an integer
      - `environment` 'sandbox' | 'production', required — Environment this default message mapping applies to
      - `product_id` string, required — Apple product ID
      - `locale` string, required — Locale code for this mapping
      - `retention_message_id` integer, required — Linked retention message ID
      - `message_name` string, required — Linked retention message name
      - `apple_message_identifier` string, required — Apple message identifier configured for this default mapping
      - `apple_sync_state` 'not_synced' | 'syncing' | 'synced' | 'failed', required — Apple default-message sync state
      - `apple_sync_attempt_count` number, required
      - `apple_sync_last_error` string, nullable, required
      - `apple_synced_at` string, nullable, required
      - `created_at` string, required — ISO 8601 timestamp
      - `updated_at` string, required — ISO 8601 timestamp
    - `created_at` string, required — ISO 8601 timestamp
    - `updated_at` string, required — ISO 8601 timestamp

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `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
- `502` — The upstream retention provider request failed

---

[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-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/e04f76c478af/schema)
