> 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/api-reference/results.md).

# Results

The Elevate A/B Testing External API /results endpoint returns every metric per variation, lift against the control, and win probabilities.

```http
GET /experiments/{testId}/results
```

Returns the full results page as data: every metric per variation, the lift against the control, which variation leads and each one's probability to be best. When you only need the headline, [`/summary`](/elevate-helpcenter/developer-reference/external-api/api-reference/summary.md) costs half as much.

## Parameters

| Parameter                              | Description                                                                                                              |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `testId`                               | Path parameter, from [`/experiments`](/elevate-helpcenter/developer-reference/external-api/api-reference/experiments.md) |
| `startDate`, `endDate`, `timeZoneName` | The [date window](/elevate-helpcenter/developer-reference/external-api/dates-and-time-zones.md)                          |
| Filters                                | Any [filter](/elevate-helpcenter/developer-reference/external-api/filters.md)                                            |

## Response

Alongside `goal`, `currency`, `period`, `appliedFilters` and `totals`, each entry in `variations` carries `id` (`integer`), `name` (`string \| null`), `isControl` and `isInLead` (`boolean`), `lift` (`object`), and these metrics, each `number \| null`:

| Group      | Fields                                                                                                                               |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Traffic    | `uniqueVisitors`, `sessions`                                                                                                         |
| Conversion | `conversions`, `conversionRate`, `sessionConversionRate`, `orders`, `subscriptionOrders`                                             |
| Revenue    | `revenue`, `productRevenue`, `shippingRevenue`, `subscriptionRevenue`, `revenuePerVisitor`, `revenuePerSession`, `averageOrderValue` |
| Funnel     | `addToCarts`, `addToCartRate`, `checkoutsStarted`, `checkoutStartRate`, `checkoutsCompleted`                                         |
| Discounts  | `totalDiscount`, `averageDiscountPerOrder`, `freeShippingOrders`, `freeShippingOrderRate`                                            |
| Profit     | `profit`, `profitPerVisitor`                                                                                                         |

`lift` holds `revenuePerVisitor`, `conversionRate`, `averageOrderValue` and `profitPerVisitor`, each `number | null`.

`statistics` carries:

| Field           | Type             | What it holds                                                                                                 |
| --------------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `status`        | `string`         | The significance status, see [Statistics](/elevate-helpcenter/developer-reference/external-api/statistics.md) |
| `winner`        | `object \| null` | `variationId`, `name`, `isControl` and `probability`                                                          |
| `probabilities` | `object \| null` | Per metric, an array of `variationId` and `probability`                                                       |

```bash
curl "https://elevateab.app/api/external/v1/experiments/TEST_ID/results?size=MOBILE" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json
{
  "success": true,
  "data": {
    "goal": "CONVERSION_RATE",
    "currency": "USD",
    "appliedFilters": { "size": ["MOBILE"] },
    "totals": { "uniqueVisitors": 12310 },
    "variations": [
      {
        "id": 1002,
        "name": "Variation 1",
        "isControl": false,
        "isInLead": true,
        "uniqueVisitors": 6155,
        "conversions": 210,
        "conversionRate": 3.41,
        "orders": 216,
        "revenue": 13500.2,
        "revenuePerVisitor": 2.19,
        "profit": null,
        "lift": { "conversionRate": 9.6, "revenuePerVisitor": 8.3 }
      }
    ],
    "statistics": {
      "status": "Significant",
      "winner": {
        "variationId": 1002,
        "name": "Variation 1",
        "probability": 99.2
      },
      "probabilities": {
        "CONVERSION_RATE": [
          { "variationId": 1001, "probability": 0.8 },
          { "variationId": 1002, "probability": 99.2 }
        ]
      }
    }
  }
}
```

## Worth knowing

* **`profit` and `profitPerVisitor` are `null`** unless COGS is set up in Elevate A/B Testing.
* **`lift` is `null` on the control**, which is what everything else is compared against.
* **`isInLead` and the winner can differ.** `isInLead` follows the raw numbers, the winner follows the probability, and they part company when traffic is uneven between variations.
* **`winner` and `probabilities` are `null` while the status is `Collecting Data`.**
