---
title: "List Channel Variants"
method: GET
path: "/v2/{workspace}/template/{template_slug}/channel/{channel}/variant/"
---

# List Channel Variants

`GET /v2/{workspace}/template/{template_slug}/channel/{channel}/variant/`

## Request

- Base URL: `https://management-api.suprsend.com`
- URL: `https://management-api.suprsend.com/v2/{workspace}/template/{template_slug}/channel/{channel}/variant/`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/suprsend/apis/suprsend-api/docs/v2/:workspace/template/:template_slug/channel/:channel/variant/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve all variants for a specific channel within a template.

## Path parameters

- `workspace` string, required
- `template_slug` string, required
- `channel` 'email' | 'sms' | 'whatsapp' | 'inbox' | 'androidpush' | 'iospush' | 'webpush' | 'slack' | 'ms_teams', required

## Query parameters

- `include_content` boolean

## Response `200`

Successfully retrieved channel variants

- object
  - `meta` object
    - `count` integer
    - `limit` integer
    - `offset` integer
  - `results` TemplateVariant[]
    - `$schema` string: Schema URL for variant validation.
    - `channel` string: Channel this variant belongs to.
    - `id` string: Variant identifier.
    - `tenant_id` string, nullable: Tenant this variant is scoped to, or null for default.
    - `locale` string: Locale code.
    - `conditions` object[]: Conditions for variant selection at send time.
    - `hash` string: Content hash for change detection.
    - `needs_vendor_approval` boolean: Whether this variant requires vendor approval (SMS DLT, WhatsApp).
    - `sysgen_template_name` string, nullable: System-generated template name for vendor approval.
    - `approval_status` 'auto_approved' | 'pending' | 'sent_for_approval' | 'approved' | 'rejected' | 'discarded' | 'upload_failed': Current approval status of the variant.
    - `discard_comment` string, nullable: Reason provided when a variant is discarded.
    - `approval_at` string, date-time, nullable: Timestamp when the variant was approved.
    - `has_error` boolean: Whether the variant has validation errors.
    - `seq_no` integer: Ordering within the channel + tenant + locale combination.
    - `action` 'added' | 'updated' | 'unchanged' | 'deleted', nullable: Action taken in the latest commit (`added`, `updated`, `unchanged`, `deleted`, or null in draft).
    - `created_at` string, date-time: Timestamp when the variant was created.
    - `content` object: Channel-specific content. Structure varies by channel. Returned by the variant detail endpoint, and by the variant list endpoints only when `include_content=true` is passed.
    - `vendor_approvals` object[]: Vendor approval entries (WhatsApp/SMS only). Returned by the variant detail endpoint, and by the variant list endpoints only when `include_content=true` is passed.

## Other responses

- `401`: Authentication failed
- `404`: Resource not found

## Changes

- **2026-10-16** `5f0169085547`: 2 breaking, 6 warning, 1 info
  - response property `detail` list-of-types was widened by adding types `array and object` to media type `application/json` of response `401`
  - response property `detail` list-of-types was widened by adding types `array and object` to media type `application/json` of response `404`
  - added the new `added` enum value to the `results/items/action` response property for the response status `200`
  - added the new `deleted` enum value to the `results/items/action` response property for the response status `200`
  - …5 more

[Operation history](https://skmtc.dev/suprsend/apis/suprsend-api/changes/v2/:workspace/template/:template_slug/channel/:channel/variant/get.md)

---

[API](https://skmtc.dev/suprsend/apis/suprsend-api.md) - [All operations](https://skmtc.dev/suprsend/apis/suprsend-api/llms.txt) - [OpenAPI document](https://skmtc.dev/suprsend/apis/suprsend-api/revisions/9e64cbe802a5?raw)
