# List creator campaigns

Returns creator campaigns, one page at a time.

```http
GET https://api.pozy.ai/v1/creator-campaigns
```

- Area: Creators / Creator Campaigns
- Auth: Authorization: Bearer pz_live_...

## Query parameters

- `status` (string): one of draft, active, paused, closed
- `profileId` (string)
- `q` (string)
- `limit` (integer)
- `skip` (integer)

## Example request

```bash
curl -X GET "https://api.pozy.ai/v1/creator-campaigns?limit=50" \
  -H "Authorization: Bearer $POZY_API_KEY"
```

```ts
const res = await fetch("https://api.pozy.ai/v1/creator-campaigns?limit=50", {
  headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);
```

```python
import os
import requests

resp = requests.get(
    "https://api.pozy.ai/v1/creator-campaigns",
    headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
    params={
        "limit": 50,
    },
    timeout=30,
)
resp.raise_for_status()
print(resp.json())
```

## Response 200

- `campaigns`, array of object, required
  - `id`, string, required
  - `userId`, string, required
  - `profileId`, string, required
  - `kind`, string, required
  - `name`, string, required
  - `brandName`, string, required
  - `status`, string, required: One of `draft`, `active`, `paused`, `closed`
  - `type`, string, required: One of `cpm`, `per_post`, `pool`
  - `currency`, string, required
  - `platforms`, array of string, required: Each item: one of `tiktok`, `instagram`, `youtube`, `threads`, `pinterest`, `facebook`, `twitter`
  - `contentRules`, string, required: Can be null
  - `startsAt`, string (date-time), required: Can be null
  - `endsAt`, string (date-time), required: Can be null
  - `trackingDays`, integer, required
  - `holdDays`, integer, required
  - `maxPostAgeMinutes`, integer, required: Can be null
  - `activatedAt`, string (date-time), required: Can be null
  - `settlement`, string, required: One of `none`, `external`, `treasury`
  - `economics`, object, required
    - one of: Creator Campaign Economics Cpm
      - `type`, string, required: One of `cpm`
      - `ratePer1kCents`, integer, required: At least 1
      - `minViewsToEarn`, integer, required: At least 0
      - `maxPayoutPerClipCents`, integer: At least 1
      - `budgetCents`, integer, required: At least 0
    - one of: Creator Campaign Economics Per Post
      - `type`, string, required: One of `per_post`
      - `perApprovedPostCents`, integer, required: At least 1
      - `maxPostsPerParticipant`, integer: At least 1
      - `budgetCents`, integer, required: At least 0
    - one of: Creator Campaign Economics Pool
      - `type`, string, required: One of `pool`
      - `budgetCents`, integer, required: At least 0
      - `minViewsToQualify`, integer, required: At least 0
  - `caps`, object, required
    - `maxParticipants`, integer: At least 1
    - `maxSubmissionsPerParticipantPerDay`, integer: At least 1
    - `maxAccountsPerParticipant`, integer: At least 1
    - `maxXReadSpendCents`, integer: At least 1
    - `authenticityThreshold`, number, required: 0 to 100
  - `branding`, object, required
    - one of: Creator Campaign Branding
      - `brandName`, string
      - `primaryColor`, string
      - `logoUrl`, string
      - `theme`, object
  - `budgetExhaustedAt`, string (date-time), required: Can be null
  - `closedAt`, string (date-time), required: Can be null
  - `payableScannedAt`, string (date-time), required: Can be null
  - `createdAt`, string (date-time), required
  - `updatedAt`, string (date-time), required
  - `hasOpenInvite`, boolean, required
  - `consumedCents`, integer, required
  - `participantCount`, integer, required
  - `submissionCounts`, object, required
    - `received`, integer, required
    - `tracking`, integer, required
    - `pending_review`, integer, required
    - `approved`, integer, required
    - `rejected`, integer, required
    - `expired`, integer, required
    - `withdrawn`, integer, required
  - `payableCents`, integer, required
- `total`, integer, required

```json
{
  "campaigns": [
    {
      "id": "6bfebd43ddc270f6d2c56fc5",
      "userId": "6da95b9455a22c1e061837af",
      "profileId": "6a0b6573846efc28aaa9a3ff",
      "kind": "string",
      "name": "Acme",
      "brandName": "Acme",
      "status": "draft",
      "type": "cpm",
      "currency": "USD",
      "platforms": [
        "tiktok"
      ],
      "contentRules": "Hello from Pozy",
      "startsAt": "2026-10-02T09:00:00.000Z",
      "endsAt": "2026-10-02T09:00:00.000Z",
      "trackingDays": 1,
      "holdDays": 1,
      "maxPostAgeMinutes": 1,
      "activatedAt": "2026-10-02T09:00:00.000Z",
      "settlement": "none",
      "economics": {
        "type": "cpm",
        "ratePer1kCents": 1,
        "minViewsToEarn": 1,
        "maxPayoutPerClipCents": 1,
        "budgetCents": 1
      },
      "caps": {
        "maxParticipants": 1,
        "maxSubmissionsPerParticipantPerDay": 1,
        "maxAccountsPerParticipant": 42,
        "maxXReadSpendCents": 1,
        "authenticityThreshold": 12.5
      },
      "branding": {
        "brandName": "Acme",
        "primaryColor": "string",
        "logoUrl": "https://pozy.ai/media/example-1.jpg",
        "theme": {}
      },
      "budgetExhaustedAt": "2026-10-02T09:00:00.000Z",
      "closedAt": "2026-10-02T09:00:00.000Z",
      "payableScannedAt": "2026-10-02T09:00:00.000Z",
      "createdAt": "2026-10-02T09:00:00.000Z",
      "updatedAt": "2026-10-02T09:00:00.000Z",
      "hasOpenInvite": true,
      "consumedCents": 1,
      "participantCount": 42,
      "submissionCounts": {
        "received": 1,
        "tracking": 1,
        "pending_review": 1,
        "approved": 1,
        "rejected": 1,
        "expired": 1,
        "withdrawn": 1
      },
      "payableCents": 1
    }
  ],
  "total": 42
}
```
