---
title: Retrieve Experiment Summary Charts (Beta)
description: Retrieve Experiment Summary Charts (Beta)
product: general
token_estimate: 4441
---
# Retrieve Experiment Summary Charts (Beta)

> For AI agents: a documentation index is available at [/llms.txt](/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

## Retrieve Experiment Summary Charts (Beta)

**GET** `/console/v1/experiments/{id}/summary_charts`

Full URL: `https://statsigapi.net/console/v1/experiments/{id}/summary_charts`

Retrieve Experiment Summary Charts (Beta)

## Authorizations

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| STATSIG-API-KEY | string | Yes | — | apiKey (header) |

## Path parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| id (path) | string | Yes | — | id |

## Query parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| control (query) | string | No | — | Optional override control group ID |
| test (query) | string | No | — | Optional override test group ID. Use "*" to query against all test groups. |

## Response (application/json)

**200** — Get Experiment Summary Charts Success

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| message | string | Yes | — | A simple string explaining the result of the operation. |
| data | object | Yes | — | — |
| data.experimentID | string | Yes | — | — |
| data.sections | object[] | Yes | — | — |
| data.sections.sectionLabel | string | Yes | — | — |
| data.sections.charts | object[] | Yes | — | — |
| data.sections.charts.chartSource | string | Yes | — | Allowed values: experiment, custom_query, scheduled_custom_query, unsupported |
| data.sections.charts.message | string | No | — | — |
| data.sections.charts.control | string | No | — | — |
| data.sections.charts.test | string | No | — | — |
| data.sections.charts.display | string | No | — | Allowed values: cumulative, daily, dx, bar, table |
| data.sections.charts.cuped | boolean | No | — | — |
| data.sections.charts.sequentialTesting | boolean | No | — | — |
| data.sections.charts.metrics | object[] | No | — | — |
| data.sections.charts.metrics.metricID | string | Yes | — | — |
| data.sections.charts.metrics.metricName | string | Yes | — | — |
| data.sections.charts.metrics.directionality | string | Yes | increase | Indicates the desired change direction for the metric. Use "increase" for positive changes and "decrease" for negative changes. Allowed values: increase, decrease |
| data.sections.charts.metrics.error | oneOf | No | no_data | Machine-readable reason when pulse statistics are unavailable. Common values include no_data (insufficient data), echidna_unripe (not yet loaded), and setup_incomplete (misconfigured metric source). Additional string values may appear for cohort/bake windows or other load failures. Constraints: nullable, string, string |
| data.sections.charts.metrics.warnings | string[] | No | — | Human-readable warnings about metric data quality, load state, or partial pipeline failures. |
| data.sections.charts.metrics.absoluteChange | number | No | — | — |
| data.sections.charts.metrics.confidenceIntervalDelta | number | No | — | Absolute confidence interval delta |
| data.sections.charts.metrics.confidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.confidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.confidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.percentChange | number | No | — | — |
| data.sections.charts.metrics.sequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.sequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.sequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.sequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.percentConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.percentConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.percentConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.percentConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.percentSequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.percentSequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.percentSequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.percentSequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.testMean | number | No | — | — |
| data.sections.charts.metrics.controlMean | number | No | — | — |
| data.sections.charts.metrics.testStd | number | No | — | — |
| data.sections.charts.metrics.controlStd | number | No | — | — |
| data.sections.charts.metrics.testUnits | number | No | — | — |
| data.sections.charts.metrics.controlUnits | number | No | — | — |
| data.sections.charts.metrics.pValue | number | No | — | — |
| data.sections.charts.metrics.sequentialTestingPValue | number | No | — | Constraints: nullable |
| data.sections.charts.metrics.adjustedAlpha | number | No | — | — |
| data.sections.charts.metrics.reversePower | number | No | — | — |
| data.sections.charts.metrics.percentCredibleInterval | object | No | {"lower":-1.33,"upper":1.33} | Bayesian credible interval for the percent change. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.percentCredibleInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.percentCredibleInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.expectedLoss | number | No | — | Bayesian expected loss. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.chanceToBeat | number | No | — | Bayesian probability that the test beats the control. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.absoluteToplineImpact | number | No | — | — |
| data.sections.charts.metrics.absoluteToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.relativeToplineImpact | number | No | — | — |
| data.sections.charts.metrics.relativeToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.projectedAbsoluteToplineImpact | number | No | — | — |
| data.sections.charts.metrics.projectedAbsoluteToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.projectedRelativeToplineImpact | number | No | — | — |
| data.sections.charts.metrics.projectedRelativeToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown | object[] | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.metricID | string | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.metricName | string | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.directionality | string | Yes | increase | Indicates the desired change direction for the metric. Use "increase" for positive changes and "decrease" for negative changes. Allowed values: increase, decrease |
| data.sections.charts.metrics.dimensionBreakdown.error | oneOf | No | no_data | Machine-readable reason when pulse statistics are unavailable. Common values include no_data (insufficient data), echidna_unripe (not yet loaded), and setup_incomplete (misconfigured metric source). Additional string values may appear for cohort/bake windows or other load failures. Constraints: nullable, string, string |
| data.sections.charts.metrics.dimensionBreakdown.warnings | string[] | No | — | Human-readable warnings about metric data quality, load state, or partial pipeline failures. |
| data.sections.charts.metrics.dimensionBreakdown.absoluteChange | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.confidenceIntervalDelta | number | No | — | Absolute confidence interval delta |
| data.sections.charts.metrics.dimensionBreakdown.confidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.dimensionBreakdown.confidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.confidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentChange | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.sequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.sequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.dimensionBreakdown.sequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.sequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.dimensionBreakdown.percentConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentSequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentSequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.sections.charts.metrics.dimensionBreakdown.percentSequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentSequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.testMean | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.controlMean | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.testStd | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.controlStd | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.testUnits | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.controlUnits | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.pValue | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.sequentialTestingPValue | number | No | — | Constraints: nullable |
| data.sections.charts.metrics.dimensionBreakdown.adjustedAlpha | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.reversePower | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentCredibleInterval | object | No | {"lower":-1.33,"upper":1.33} | Bayesian credible interval for the percent change. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.dimensionBreakdown.percentCredibleInterval.lower | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.percentCredibleInterval.upper | number | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.expectedLoss | number | No | — | Bayesian expected loss. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.dimensionBreakdown.chanceToBeat | number | No | — | Bayesian probability that the test beats the control. Only returned when results are computed with Bayesian analysis. |
| data.sections.charts.metrics.dimensionBreakdown.absoluteToplineImpact | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.absoluteToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.relativeToplineImpact | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.relativeToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.projectedAbsoluteToplineImpact | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.projectedAbsoluteToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.projectedRelativeToplineImpact | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.projectedRelativeToplineImpactDelta | number | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.dimensionKey | string | Yes | — | — |
| data.sections.charts.metrics.dimensionBreakdown.dimensionType | string | No | — | — |
| data.sections.charts.metrics.dimensionBreakdown.dimensionValue | string | Yes | — | — |

```json
{
  "message": "Successfully loaded Experiment Summary Charts",
  "data": {
    "experimentID": "my_experiment",
    "sections": [
      {
        "sectionLabel": "Experiment Notes",
        "charts": [
          {
            "chartSource": "experiment",
            "control": "control",
            "test": "test",
            "display": "cumulative",
            "cuped": true,
            "sequentialTesting": true,
            "metrics": [
              {
                "metricID": "signup::event_count",
                "metricName": "Signup",
                "directionality": "increase",
                "absoluteChange": 4.5,
                "confidenceIntervalDelta": 1.8,
                "percentChange": 5.1,
                "percentConfidenceIntervalDelta": 2.3,
                "sequentialTestingConfidenceIntervalDelta": 1.9,
                "percentSequentialTestingConfidenceIntervalDelta": 2.4,
                "testMean": 104.5,
                "controlMean": 100,
                "testStd": 15,
                "controlStd": 14.2,
                "testUnits": 1200,
                "controlUnits": 1180,
                "pValue": 0.03,
                "reversePower": 0.71,
                "dimensionBreakdown": [
                  {
                    "metricID": "signup::event_count",
                    "metricName": "Signup",
                    "directionality": "increase",
                    "dimensionKey": "country",
                    "dimensionType": "event",
                    "dimensionValue": "US",
                    "absoluteChange": 5.2,
                    "confidenceIntervalDelta": 2.1,
                    "percentChange": 6.2,
                    "percentConfidenceIntervalDelta": 2.8,
                    "sequentialTestingConfidenceIntervalDelta": 2.2,
                    "percentSequentialTestingConfidenceIntervalDelta": 2.9,
                    "testMean": 88.2,
                    "controlMean": 83,
                    "testStd": 9.4,
                    "controlStd": 9.1,
                    "testUnits": 600,
                    "controlUnits": 590,
                    "pValue": 0.04,
                    "reversePower": 0.64
                  }
                ]
              }
            ]
          },
          {
            "chartSource": "scheduled_custom_query",
            "message": "Not supported at this time"
          }
        ]
      }
    ]
  }
}
```

## Code samples

### cURL

```bash
curl -X GET "https://statsigapi.net/console/v1/experiments/{id}/summary_charts" \
  -H "Content-Type: application/json" \
  -H "STATSIG-API-KEY: YOUR_API_KEY"
```

### Python

```python
import requests

response = requests.get(
    "https://statsigapi.net/console/v1/experiments/{id}/summary_charts",
    headers={
        "Content-Type": "application/json",
        "STATSIG-API-KEY": "YOUR_API_KEY"
    }
)
data = response.json()
```

### JavaScript

```javascript
const response = await fetch("https://statsigapi.net/console/v1/experiments/{id}/summary_charts", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "STATSIG-API-KEY": "YOUR_API_KEY"
  }
});
const data = await response.json();
```

### PHP

```php
<?php
$ch = curl_init("https://statsigapi.net/console/v1/experiments/{id}/summary_charts");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "STATSIG-API-KEY: YOUR_API_KEY"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
```

### Go

```go
package main

import (
  "bytes"
  "net/http"
)

func main() {
req, _ := http.NewRequest("GET", "https://statsigapi.net/console/v1/experiments/{id}/summary_charts", nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("STATSIG-API-KEY", "YOUR_API_KEY")
  client := &http.Client{}
  resp, _ := client.Do(req)
  defer resp.Body.Close()
}
```

### Java

```java
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://statsigapi.net/console/v1/experiments/{id}/summary_charts"))
      .method("GET", HttpRequest.BodyPublishers.noBody())
.header("Content-Type", "application/json")
      .header("STATSIG-API-KEY", "YOUR_API_KEY")
      .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
```

### Ruby

```ruby
require "net/http"
require "json"

uri = URI("https://statsigapi.net/console/v1/experiments/{id}/summary_charts")
request = Net::HTTP::Get.new(uri)
request["Content-Type"] = "application/json"
request["STATSIG-API-KEY"] = "YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end
```

