---
title: "List phishing campaigns"
method: GET
path: "/v2/phishing/campaigns"
tags: ["Phishing"]
---

# List phishing campaigns

`GET /v2/phishing/campaigns`

Retrieve a paginated list of phishing campaigns

## Query parameters

- `page_after` string
- `page_size` integer

## Response `200`

Successfully retrieved phishing campaigns

- PhishingCampaignListResponseDto — Paginated list of phishing campaigns
  - `campaigns` PhishingCampaignDto[] — List of phishing campaigns
    - `campaign_id` string — Unique identifier for the campaign
    - `created_date` string, date-time — Campaign creation date
    - `distribution_interval` 'ALL_AT_ONCE' | 'DAY' | 'WEEK' | 'TWO_WEEKS' | 'MONTH' | 'THREE_MONTHS' — Interval between scenario distributions within each simulation
    - `end_date` string, date-time — Campaign end date (null for indefinite campaigns)
    - `groups` PhishingCampaignGroupDto[] — Groups associated with the campaign
      - `group_id` string — Unique identifier for the group
      - `name` string — The name of the group
    - `mode` 'SCHEDULED' | 'RECURRING' — Campaign mode
    - `name` string — Name of the phishing campaign
    - `recurring_interval` 'HOUR' | 'WEEK' | 'TWO_WEEKS' | 'MONTH' | 'THREE_MONTHS' — Interval for recurring campaigns (only present when mode = RECURRING)
    - `scenarios` PhishingCampaignScenarioDto[] — Scenarios included in the campaign
      - `attack_vector` 'LINK_CLICKED' | 'TEXT_REPLIED' | 'PHONE_NUMBER_CALLED' — User action for the scenario
      - `channel` 'EMAIL' | 'TEXT' | 'INBOUND_PHONE_CALL' — Notification channel for the scenario
      - `difficulty` 'EASY' | 'MEDIUM' | 'HARD' — Difficulty level of the scenario
      - `name` string — Name of the phishing scenario
      - `scenario_id` string — Unique identifier for the scenario
      - `sender` string — Sender of the phishing email
      - `spoof_page_type` 'LOGIN_SPOOF_PAGE' | 'DEEPFAKE_SPOOF_PAGE' — Spoof page type for the scenario
    - `simulations` PhishingSimulationSummaryDto[] — Summary list of simulation executions for this campaign
      - `end_date` string, date-time — End date of this simulation execution
      - `simulation_id` string — Unique identifier for the simulation execution
      - `start_date` string, date-time — Start date of this simulation execution
      - `status` 'DRAFT' | 'SCHEDULED' | 'IN_PROGRESS' | 'COMPLETED' — Current status of this simulation execution
    - `start_date` string, date-time — Campaign start date
    - `status` 'DRAFT' | 'SCHEDULED' | 'IN_PROGRESS' | 'COMPLETED' — Current status of the campaign
    - `target` 'ALL_USERS' | 'GROUPS' — Target audience for the campaign
  - `page_after` string — Cursor for the next page

## Other responses

- `400` — Bad request - Invalid parameters
- `401` — Unauthorized - Invalid or missing authentication token
- `429` — Too many requests - Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/adaptivesecurity/apis/adaptive-api.md) · [All operations](https://skmtc.dev/adaptivesecurity/apis/adaptive-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adaptivesecurity/adaptive-api/revisions/aaa99c15ecc7/schema)
