---
title: "Experiments List"
method: GET
path: "/api/v1/experiments/"
tags: ["experiments"]
---

# Experiments List

`GET /api/v1/experiments/`

List the existing experiments

## Query parameters

- `page` integer, nullable — The page number from which to start (0-based)
- `limit` integer — The maximum number of items to return
- `search_fields` ExperimentProperties[] — String names of fields to search. Correspond by index to search field values
- `search_field_values` string[] — Values of fields to search. Correspond by index to search fields. Unless field name contains "list", an individual search field value cannot be a list
- `order_by` 'id' | 'name' | 'name_exact' | 'description' | 'status' | 'target_id' | 'agent_id' | 'created_at' | 'updated_at' | 'started_at' | 'stopped_at'
- `order_by_direction` 'asc' | 'desc' — The direction in which to order list results, either ascending or descending.
- `fields` ExperimentProperties[], nullable — The fields to include in the response
- `start_datetime` string, nullable — The start datetime for filtering results
- `end_datetime` string, nullable — The end datetime for filtering results

## Response `200`

Successful Response

- ListResponseExperimentResponse
  - `items` ExperimentResponse[], required — List of items returned from the query
    - `id` integer, required — The internal ID of the experiment
    - `name` string, required — The name of the experiment
    - `target_id` integer, nullable, required — The channel target being split, or null if that target has since been deleted. A running experiment always has one.
    - `variants` DaoExperimentVariantDetail[], required — The variants of the experiment, in a stable order
      - `id` integer, required — The internal ID of the variant
      - `name` string, required — The name of the variant, which is the grouping key in reports
      - `weight` integer, required — The percentage of the channel target's traffic this variant answers. The weights of an experiment's variants must add up to 100. (E.g., two variants with a weight of 50 each split the traffic evenly.)
      - `is_control` boolean, required — Whether this is the reference variant the others are measured against
      - `agent_id` integer, required — The agent this variant runs
      - `agent_name` string, required — The name of that agent
    - `description` string, nullable — The hypothesis under test
    - `status` 'draft' | 'running' | 'stopped', required — Status of an experiment. The column is a varchar and not a database enum, so a new value here does not need a migration.
    - `started_at` string, date-time, nullable — When the experiment started
    - `stopped_at` string, date-time, nullable — When the experiment stopped
    - `created_at` string, date-time, required — When the experiment was created
    - `updated_at` string, date-time, required — When the experiment was last written
    - `last_updated_by` string, required — Who last wrote it
    - `target` DaoExperimentTargetSummary — The channel target an experiment splits, resolved for display. Enough to name the target on the experiment card without a second read: the Console shows the target itself and the channel it belongs to, and links to neither by ID.
      - `id` integer, required — The internal ID of the channel target
      - `target` string, required — The target itself, such as a phone number
      - `target_mode` 'voice' | 'chat' | 'sms' | 'email' | 'whatsapp', required — Available modes (communication methods) for channel targets.
      - `channel_id` integer, required — The channel the target belongs to
      - `channel_name` string, required — The name of that channel
  - `page` integer, required — The page number of the results (0-based)
  - `page_size` integer, required — The number of items returned per page
  - `total_pages` integer, nullable — The total number of pages of results given the indicated page size
  - `total_count` integer, nullable — The total number of items returned from the query

## Other responses

- `400` — Bad Request
- `422` — Validation Error

## Changes

> 144 revisions in range; 1 not diffed.

- **2026-09-10** `3e1a553bd816` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/asksyllable/apis/syllablesdk/changes/api/v1/experiments/get.md)

---

[API](https://skmtc.dev/asksyllable/apis/syllablesdk.md) · [All operations](https://skmtc.dev/asksyllable/apis/syllablesdk/llms.txt) · [OpenAPI document](https://skmtc.dev/asksyllable/apis/syllablesdk/revisions/38f95bc17acb?raw)
