> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abconvert.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List and Retrieve Experiments — ABConvert API

> Fetch all experiments for your store or retrieve a single experiment by ID, including status, type, products, settings, and test groups.

<Note>
  **Preview — this page is an early draft.** We're still verifying the API reference against the current endpoints. Fields, response shapes, and examples may change before this section is marked stable. Follow [PRO-1459](https://linear.app/abconvert/issue/PRO-1459) or ask in `#abconvert-dev` if you're integrating against this today.
</Note>

These two endpoints let you read experiment data from ABConvert. Use the list endpoint to get an overview of all experiments in your store, and the detail endpoint when you need the full configuration for a specific experiment.

Both endpoints are session endpoints and require Shopify authentication.

## List all experiments

Returns an array of all experiments associated with your store, ordered by creation date descending.

```
GET /api/experiments
```

### Example request

```bash theme={null}
curl -X GET "https://app.abconvert.io/api/experiments" \
  -H "Authorization: Bearer <shopi...en>" \
  -H "Content-Type: application/json"
```

### Response

Returns an array of experiment summary objects.

```json theme={null}
[
  {
    "_id": "64a1f2b3c4d5e6f7a8b9c0d1",
    "name": "Homepage Price Test",
    "status": "ACTIVE",
    "experimentType": "PRICE_TEST",
    "createdAt": "2024-01-10T09:00:00.000Z",
    "updatedAt": "2024-01-15T14:30:00.000Z"
  },
  {
    "_id": "64a1f2b3c4d5e6f7a8b9c0d2",
    "name": "Product Image Content Test",
    "status": "PAUSED",
    "experimentType": "CONTENT_TEST",
    "createdAt": "2024-01-05T11:00:00.000Z",
    "updatedAt": "2024-01-12T08:45:00.000Z"
  }
]
```

<ResponseField name="_id" type="string">
  Unique identifier for the experiment. Use this value as the `:id` parameter in all experiment action endpoints.
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable experiment name as set during creation.
</ResponseField>

<ResponseField name="status" type="string">
  Current state of the experiment. One of `ACTIVE`, `PAUSED`, `STOPPED`, `DRAFT`, or `FAILED`.
</ResponseField>

<ResponseField name="experimentType" type="string">
  The experiment category. Possible values:

  * `PRICE_TEST`
  * `CONTENT_TEST`
  * `SHIPPING_TEST`
  * `URL_REDIRECT_TEST`
  * `TEMPLATE_TEST`
  * `THEME_TEST`
  * `CHECKOUT_UI_TEST`
  * `PRICE_CART_TRANSFORM_TEST`
  * `DELIVERY_CUSTOMIZATION_TEST`
  * `PAYMENT_CUSTOMIZATION_TEST`
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp of when the experiment was created.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp of the most recent update.
</ResponseField>

***

## Get a single experiment

Returns the full configuration object for one experiment, including its products, test groups, and settings.

```
GET /api/experiments/:id
```

### Path parameters

<ParamField path="id" type="string" required>
  The experiment's `_id` value as returned by the list endpoint.
</ParamField>

### Example request

```bash theme={null}
curl -X GET "https://app.abconvert.io/api/experiments/64a1f2b3c4d5e6f7a8b9c0d1" \
  -H "Authorization: Bearer <shopi...en>" \
  -H "Content-Type: application/json"
```

### Response

Returns the full experiment document.

```json theme={null}
{
  "_id": "64a1f2b3c4d5e6f7a8b9c0d1",
  "name": "Homepage Price Test",
  "status": "ACTIVE",
  "experimentType": "PRICE_TEST",
  "products": [
    {
      "productId": "7654321098765",
      "variants": [
        {
          "variantId": "43210987654321",
          "price": "29.99",
          "compareAtPrice": "39.99"
        }
      ]
    }
  ],
  "testGroups": [
    { "name": "Control", "weight": 50 },
    { "name": "Variant A", "weight": 50 }
  ],
  "settings": {
    "startDate": "2024-01-10T00:00:00.000Z",
    "endDate": null,
    "targetingRules": {}
  },
  "createdAt": "2024-01-10T09:00:00.000Z",
  "updatedAt": "2024-01-15T14:30:00.000Z"
}
```

<ResponseField name="products" type="array">
  List of products enrolled in this experiment, each with their variant-level price configurations.
</ResponseField>

<ResponseField name="testGroups" type="array">
  The control and variant groups. Each group has a `name` and a `weight` (percentage of traffic, must sum to 100).
</ResponseField>

<ResponseField name="settings" type="object">
  Experiment configuration including start/end dates and audience targeting rules.
</ResponseField>

<Note>
  The exact shape of the `products` and `settings` fields varies by `experimentType`. Price experiments include `variants` with pricing data; content experiments include image URLs; shipping experiments include rate configurations.
</Note>
