---
title: "List experiments"
method: GET
path: "/experiments"
---

# List experiments

`GET /experiments`

Retrieve a paginated list of experiments with optional filters by status, type, and slug.

## Query parameters

- `per_page` integer
- `status` 1 | 2 | 3 | 4 | 5 | 6 | 7 — Lifecycle status of an A/B experiment: - **1 — Draft** — Created but not serving traffic. No new users enrolled. - **2 — Active** — Running. New users are enrolled and variants are served. Sets `start_at` on first activation; clears a stale past `end_at` on reactivation. - **3 — Pause** — Temporarily halted. No new users enrolled; existing assignments are kept. - **4 — Success** — Marked as a winning test. Sets `end_at` when missing. No new users enrolled. - **5 — Fail** — Marked as a losing test. Sets `end_at` when missing. No new users enrolled. - **6 — Stop** — Stopped (no new users). Sets `end_at` when missing. Differs from Archive — experiment stays in the main list. - **7 — Archive** — Stopped and archived (cabinet "Stop and move to archive"). Sets `end_at` when missing.
- `type` 1 | 2
- `slug` string

## Headers

- `api_key` string, required

## Response `200`

List of experiments retrieved successfully

- object
  - `current_page` integer
  - `data` Experiment[]
    - `id` integer
    - `project_id` integer
    - `name` string
    - `slug` string
    - `type` integer — Experiment type (1 = Quiz, 2 = Paywall)
    - `start_at` string, date-time, nullable
    - `end_at` string, date-time, nullable
    - `status` 1 | 2 | 3 | 4 | 5 | 6 | 7 — Lifecycle status of an A/B experiment: - **1 — Draft** — Created but not serving traffic. No new users enrolled. - **2 — Active** — Running. New users are enrolled and variants are served. Sets `start_at` on first activation; clears a stale past `end_at` on reactivation. - **3 — Pause** — Temporarily halted. No new users enrolled; existing assignments are kept. - **4 — Success** — Marked as a winning test. Sets `end_at` when missing. No new users enrolled. - **5 — Fail** — Marked as a losing test. Sets `end_at` when missing. No new users enrolled. - **6 — Stop** — Stopped (no new users). Sets `end_at` when missing. Differs from Archive — experiment stays in the main list. - **7 — Archive** — Stopped and archived (cabinet "Stop and move to archive"). Sets `end_at` when missing.
    - `filters` object[] — Array of filter objects
    - `variants` object[] — Array of variant objects
      - `model_id` integer — ID of the quiz or paywall model
      - `name` string — Variant name
      - `percent` integer — Percentage of users for this variant
    - `experiment_users_count` integer — Number of users in the experiment (only in show endpoint)
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `from` integer
  - `last_page` integer
  - `per_page` integer
  - `to` integer
  - `total` integer

## Other responses

- `422` — Validation error

---

[API](https://skmtc.net/web2wave/apis/web2wave-api.md) · [All operations](https://skmtc.net/web2wave/apis/web2wave-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/web2wave/web2wave-api/versions/c88545119271/schema)
