> For the complete documentation index, see [llms.txt](https://docs.elevateab.com/elevate-helpcenter/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.elevateab.com/elevate-helpcenter/developer-reference/external-api/overview.md).

# External API Quickstart

Get started with the read-only Elevate A/B Testing External API: create a key, find an experiment, and pull its results into your own tools.

The External API gives your own tools read-only access to your store's experiments and their results: the same numbers and statistics you see in Elevate A/B Testing. Use it to feed a data warehouse, build internal dashboards, post results to Slack or give an AI agent live experiment data.

```plaintext
https://elevateab.app/api/external/v1
```

Every endpoint is a `GET` and returns JSON. The [API reference](/elevate-helpcenter/developer-reference/external-api/api-reference.md) has them all.

## Get started

{% stepper %}
{% step %}

## Create a key

In Elevate A/B Testing, go to **Settings → MCP & API** and click **Generate API Key** in the External API card. Copy it: it starts with `elv_` and is only shown once.
{% endstep %}

{% step %}

## Find an experiment

```bash
curl "https://elevateab.app/api/external/v1/experiments?status=running" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json
{
  "success": true,
  "data": {
    "items": [
      {
        "testId": "3f2a9c1e-5b7d-4e8a-9f10-2c4d6e8a0b12",
        "name": "Homepage hero",
        "status": "Running",
        "goal": "CONVERSION_RATE"
      }
    ],
    "pagination": { "page": 1, "limit": 20, "total": 1, "hasNextPage": false }
  }
}
```

{% endstep %}

{% step %}

## Get its results

```bash
curl https://elevateab.app/api/external/v1/experiments/3f2a9c1e-5b7d-4e8a-9f10-2c4d6e8a0b12/summary \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json
{
  "success": true,
  "data": {
    "goal": "CONVERSION_RATE",
    "currency": "USD",
    "totals": { "uniqueVisitors": 20450 },
    "variations": [
      {
        "name": "Control",
        "isControl": true,
        "uniqueVisitors": 10240,
        "conversionRate": 3.1,
        "revenuePerVisitor": 2.04
      },
      {
        "name": "Variation 1",
        "isControl": false,
        "uniqueVisitors": 10210,
        "conversionRate": 3.4,
        "revenuePerVisitor": 2.21
      }
    ],
    "statistics": { "status": "Trending Positive" }
  }
}
```

Some fields are left out above. Every field is in the [API reference](/elevate-helpcenter/developer-reference/external-api/api-reference.md).
{% endstep %}
{% endstepper %}

## Next

* [API reference](/elevate-helpcenter/developer-reference/external-api/api-reference.md): every endpoint, with examples and caveats.
* [Authentication](/elevate-helpcenter/developer-reference/external-api/authentication.md): how the API key works and how to send it.
* [Statistics](/elevate-helpcenter/developer-reference/external-api/statistics.md): how to read the status, the winner and probabilities.
* [Filters](/elevate-helpcenter/developer-reference/external-api/filters.md): narrow results to a device, country or campaign.
* [Errors](/elevate-helpcenter/developer-reference/external-api/errors.md) and [Rate limits](/elevate-helpcenter/developer-reference/external-api/rate-limits.md): what can go wrong and how often you can call.

{% hint style="info" %}
The API is read-only: it cannot create, edit, start or stop experiments.
{% endhint %}
