> ## 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.

# Update Experiments — ABConvert API

> Update experiment settings, pause or resume a running experiment, duplicate an existing experiment, and reset analytics data using these endpoints.

<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>

After you create an experiment, you can modify its configuration, change its state, duplicate it to run a follow-up, or clear its analytics to start fresh. All update endpoints are session endpoints and require Shopify authentication.

***

## Update experiment settings

Updates one or more fields on an existing experiment. You can update the name, status, settings, or any other top-level field without affecting fields you omit.

```
PUT /api/experiments/:id
```

### Path parameters

<ParamField path="id" type="string" required>
  The experiment's `_id` value.
</ParamField>

### Request body

<ParamField body="name" type="string">
  New display name for the experiment.
</ParamField>

<ParamField body="status" type="string">
  New status. Accepted values: `"ACTIVE"`, `"PAUSED"`, `"STOPPED"`.
</ParamField>

<ParamField body="settings" type="object">
  Updated settings object. Merges with existing settings — you do not need to resend unchanged fields.
</ParamField>

### Example request

```bash theme={null}
curl -X PUT "https://app.abconvert.io/api/experiments/64a1f2b3c4d5e6f7a8b9c0d1" \
  -H "Authorization: Bearer <shopi...en>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Blue Shirt Price Test — Updated",
    "settings": {
      "endDate": "2024-03-01T00:00:00.000Z"
    }
  }'
```

### Response

```json theme={null}
"success"
```

***

## Pause an experiment

Stops traffic splitting for an active experiment without deleting any data. You can resume a paused experiment at any time.

```
POST /api/experiments/:id/pause
```

### Path parameters

<ParamField path="id" type="string" required>
  The experiment's `_id` value.
</ParamField>

### Example request

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

### Response

```json theme={null}
"success"
```

***

## Resume an experiment

Restores traffic splitting on a paused experiment. Visitors will be assigned to test groups again from the moment you resume.

```
POST /api/experiments/:id/resume
```

### Path parameters

<ParamField path="id" type="string" required>
  The experiment's `_id` value.
</ParamField>

### Example request

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

### Response

```json theme={null}
"success"
```

***

## Duplicate an experiment

Creates a copy of an existing experiment in draft status. The duplicate preserves the original's product list, test groups, and settings, letting you run a follow-up test without re-entering configuration.

```
POST /api/experiments/:id/duplicate
```

### Path parameters

<ParamField path="id" type="string" required>
  The `_id` of the experiment to copy.
</ParamField>

### Example request

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

### Response

```json theme={null}
"success"
```

***

## Reset experiment analytics

Clears all collected analytics data for an experiment — views, add-to-carts, checkouts, orders, and revenue — while leaving the experiment configuration intact. Use this when you want to discard early data collected during a setup period and start measuring from a clean baseline.

```
POST /api/experiments/reset-analytics/:id
```

### Path parameters

<ParamField path="id" type="string" required>
  The `_id` of the experiment whose analytics you want to clear.
</ParamField>

### Example request

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

### Response

```json theme={null}
"success"
```

<Warning>
  Resetting analytics is irreversible. All historical event data for the experiment is permanently deleted. This action cannot be undone.
</Warning>

***

## Remove products from an experiment

Removes one or more products from an active experiment without stopping the experiment for the remaining products.

```
PUT /api/experiments/remove-products/:id
```

### Path parameters

<ParamField path="id" type="string" required>
  The experiment's `_id` value.
</ParamField>

### Example request

```bash theme={null}
curl -X PUT "https://app.abconvert.io/api/experiments/remove-products/64a1f2b3c4d5e6f7a8b9c0d1" \
  -H "Authorization: Bearer <shopi...en>" \
  -H "Content-Type: application/json" \
  -d '{
    "productIds": ["7654321098765"]
  }'
```

### Response

```json theme={null}
"success"
```

***

## Summary of update endpoints

| Action          | Method | Path                                   |
| --------------- | ------ | -------------------------------------- |
| Update settings | `PUT`  | `/api/experiments/:id`                 |
| Pause           | `POST` | `/api/experiments/:id/pause`           |
| Resume          | `POST` | `/api/experiments/:id/resume`          |
| Duplicate       | `POST` | `/api/experiments/:id/duplicate`       |
| Reset analytics | `POST` | `/api/experiments/reset-analytics/:id` |
| Remove products | `PUT`  | `/api/experiments/remove-products/:id` |
