---
title: Retrieve Pulse Results
description: Retrieve Pulse Results
product: general
token_estimate: 2687
---
# Retrieve Pulse Results

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

**GET** `/console/v1/gates/{id}/rules/{ruleID}/pulse_results`

Full URL: `https://statsigapi.net/console/v1/gates/{id}/rules/{ruleID}/pulse_results`

Retrieve Pulse Results

## Authorizations

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

## Path parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| id (path) | string | Yes | — | Gate ID |
| ruleID (path) | string | Yes | — | Rule ID |

## Query parameters

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| cuped (query) | string | No | — | Whether to apply CUPED. Allowed values are "true" or "false". |
| confidence (query) | string | No | — | Confidence interval (0-100) |

## Response (application/json)

**200** — Get Pulse Results Success

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| message | string | Yes | — | A simple string explaining the result of the operation. |
| data | object | Yes | — | — |
| data.ds | string | Yes | — | — |
| data.monitoringMetrics | object[] | Yes | — | — |
| data.monitoringMetrics.metricID | string | Yes | — | — |
| data.monitoringMetrics.metricName | string | Yes | — | — |
| data.monitoringMetrics.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.monitoringMetrics.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.monitoringMetrics.warnings | string[] | No | — | Human-readable warnings about metric data quality, load state, or partial pipeline failures. |
| data.monitoringMetrics.absoluteChange | number | No | — | — |
| data.monitoringMetrics.confidenceIntervalDelta | number | No | — | Absolute confidence interval delta |
| data.monitoringMetrics.confidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.monitoringMetrics.confidenceInterval.lower | number | Yes | — | — |
| data.monitoringMetrics.confidenceInterval.upper | number | Yes | — | — |
| data.monitoringMetrics.percentChange | number | No | — | — |
| data.monitoringMetrics.sequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.monitoringMetrics.sequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.monitoringMetrics.sequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.monitoringMetrics.sequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.monitoringMetrics.percentConfidenceIntervalDelta | number | No | — | — |
| data.monitoringMetrics.percentConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.monitoringMetrics.percentConfidenceInterval.lower | number | Yes | — | — |
| data.monitoringMetrics.percentConfidenceInterval.upper | number | Yes | — | — |
| data.monitoringMetrics.percentSequentialTestingConfidenceIntervalDelta | number | No | — | — |
| data.monitoringMetrics.percentSequentialTestingConfidenceInterval | object | No | {"lower":-1.33,"upper":1.33} | Confidence interval bounds |
| data.monitoringMetrics.percentSequentialTestingConfidenceInterval.lower | number | Yes | — | — |
| data.monitoringMetrics.percentSequentialTestingConfidenceInterval.upper | number | Yes | — | — |
| data.monitoringMetrics.testMean | number | No | — | — |
| data.monitoringMetrics.controlMean | number | No | — | — |
| data.monitoringMetrics.testStd | number | No | — | — |
| data.monitoringMetrics.controlStd | number | No | — | — |
| data.monitoringMetrics.testUnits | number | No | — | — |
| data.monitoringMetrics.controlUnits | number | No | — | — |
| data.monitoringMetrics.pValue | number | No | — | — |
| data.monitoringMetrics.sequentialTestingPValue | number | No | — | Constraints: nullable |
| data.monitoringMetrics.adjustedAlpha | number | No | — | — |
| data.monitoringMetrics.reversePower | number | No | — | — |
| data.monitoringMetrics.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.monitoringMetrics.percentCredibleInterval.lower | number | Yes | — | — |
| data.monitoringMetrics.percentCredibleInterval.upper | number | Yes | — | — |
| data.monitoringMetrics.expectedLoss | number | No | — | Bayesian expected loss. Only returned when results are computed with Bayesian analysis. |
| data.monitoringMetrics.chanceToBeat | number | No | — | Bayesian probability that the test beats the control. Only returned when results are computed with Bayesian analysis. |
| data.monitoringMetrics.absoluteToplineImpact | number | No | — | — |
| data.monitoringMetrics.absoluteToplineImpactDelta | number | No | — | — |
| data.monitoringMetrics.relativeToplineImpact | number | No | — | — |
| data.monitoringMetrics.relativeToplineImpactDelta | number | No | — | — |
| data.monitoringMetrics.projectedAbsoluteToplineImpact | number | No | — | — |
| data.monitoringMetrics.projectedAbsoluteToplineImpactDelta | number | No | — | — |
| data.monitoringMetrics.projectedRelativeToplineImpact | number | No | — | — |
| data.monitoringMetrics.projectedRelativeToplineImpactDelta | number | No | — | — |

```json
{
  "message": "Successfully loaded Pulse Results",
  "data": {
    "ds": "2024-09-12",
    "monitoringMetrics": [
      {
        "metricID": "conversion_rate",
        "metricName": "Conversion Rate",
        "directionality": "increase",
        "absoluteChange": 0.0084,
        "confidenceIntervalDelta": 0.0039,
        "confidenceInterval": {
          "lower": 0.0045,
          "upper": 0.0123
        },
        "percentChange": 628,
        "sequentialTestingConfidenceIntervalDelta": 0.0075,
        "sequentialTestingConfidenceInterval": {
          "lower": 0.0009,
          "upper": 0.0159
        },
        "percentConfidenceIntervalDelta": 293.4,
        "percentConfidenceInterval": {
          "lower": 334.6,
          "upper": 921.4
        },
        "percentSequentialTestingConfidenceIntervalDelta": 563.9,
        "percentSequentialTestingConfidenceInterval": {
          "lower": 64.1,
          "upper": 1191.9
        },
        "testMean": 0.0097,
        "controlMean": 0.0013,
        "testStd": 0.0015,
        "controlStd": 0.0003,
        "testUnits": 7912,
        "controlUnits": 71069,
        "pValue": 0.0001,
        "sequentialTestingPValue": 0.0041,
        "adjustedAlpha": 0.01,
        "reversePower": 225.3
      },
      {
        "metricID": "user_engagement",
        "metricName": "User Engagement Score",
        "directionality": "increase",
        "absoluteChange": 0.15,
        "confidenceIntervalDelta": 0.08,
        "confidenceInterval": {
          "lower": 0.07,
          "upper": 0.23
        },
        "percentChange": 3.2,
        "sequentialTestingConfidenceIntervalDelta": 0.09,
        "sequentialTestingConfidenceInterval": {
          "lower": 0.05,
          "upper": 0.24
        },
        "percentConfidenceIntervalDelta": 1.7,
        "percentConfidenceInterval": {
          "lower": 1.5,
          "upper": 4.9
        },
        "percentSequentialTestingConfidenceIntervalDelta": 2.1,
        "percentSequentialTestingConfidenceInterval": {
          "lower": 1.1,
          "upper": 5.3
        },
        "testMean": 4.85,
        "controlMean": 4.7,
        "testStd": 0.35,
        "controlStd": 0.32,
        "testUnits": 2200,
        "controlUnits": 2150,
        "pValue": 0.025,
        "sequentialTestingPValue": 0.022,
        "adjustedAlpha": 0.05,
        "reversePower": 0.64
      }
    ]
  }
}
```

## Code samples

### cURL

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

### Python

```python
import requests

response = requests.get(
    "https://statsigapi.net/console/v1/gates/{id}/rules/{ruleID}/pulse_results",
    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/gates/{id}/rules/{ruleID}/pulse_results", {
  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/gates/{id}/rules/{ruleID}/pulse_results");
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/gates/{id}/rules/{ruleID}/pulse_results", 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/gates/{id}/rules/{ruleID}/pulse_results"))
      .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/gates/{id}/rules/{ruleID}/pulse_results")
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
```

