---
title: "List campaigns"
method: GET
path: "/campaigns"
tags: ["Campaigns"]
---

# List campaigns

`GET /campaigns`

Retrieves a list of your programs. Deleted programs are not returned.

## Response `200`

Campaigns returned.

- CampaignListResponse
  - `campaigns` Campaign[], required
    - `id` string, required
    - `name` string, required
    - `type` 'REFERRAL' | 'AFFILIATE', required
    - `referralCount` integer, required
    - `participantCount` integer, required
    - `impressionCount` integer, required
    - `inviteCount` integer, required
    - `winnerCount` integer, required
    - `currencyISO` string, nullable
    - `status` 'DRAFT' | 'IN_PROGRESS' | 'COMPLETE' | 'DELETED', required
    - `rewards` Reward[], required
      - `id` string, required
      - `type` 'SINGLE_SIDED' | 'DOUBLE_SIDED' | 'MILESTONE' | 'LEADERBOARD' | 'AFFILIATE', required
      - `description` string, nullable
      - `referralDescription` string, nullable
      - `referredRewardUpfront` boolean
      - `isUnlimited` boolean, required
      - `limit` integer, nullable — `-1` represents an unlimited reward in REST responses.
      - `conversionsRequired` integer, nullable
      - `numberOfWinners` integer, nullable
      - `limitDuration` 'IN_TOTAL' | 'PER_MONTH' | 'null', nullable
      - `imageUrl` string, nullable
      - `couponCode` string, nullable
      - `order` integer, nullable
      - `nextMilestonePrefix` string, nullable
      - `nextMilestoneSuffix` string, nullable
      - `metadata` Metadata, required — Shallow custom metadata object.
      - `commissionStructure` CommissionStructure
        - `amount` integer, nullable
        - `event` string, nullable
        - `type` 'PERCENT' | 'AMOUNT' | 'null', nullable
        - `minPaidReferrals` integer, nullable
        - `holdDuration` integer, nullable
        - `duration` string, nullable
        - `durationInMonths` integer, nullable
        - `approvalRequired` boolean, nullable
        - `percent` number, nullable
        - `hasMaxAmount` boolean, nullable
        - `maxAmount` integer, nullable
        - `maxAmountISO` string, nullable
        - `hasIntro` boolean, nullable
        - `introType` string, nullable
        - `introPercent` number, nullable
        - `introAmount` integer, nullable
        - `introAmountISO` string, nullable
        - `introDuration` string, nullable
        - `introDurationInMonths` integer, nullable

## Other responses

- `401` — Authorization is missing or invalid.
- `403` — The API key is not allowed to perform this action.
- `429` — Too many requests.

---

[API](https://skmtc.net/growsurf/apis/growsurf-rest-api.md) · [All operations](https://skmtc.net/growsurf/apis/growsurf-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/growsurf/growsurf-rest-api/revisions/26f06e273394/schema)
