# List all alerts in an exploration

Retrieves all alerts associated with a specific exploration. This endpoint is not paginated.

[endpoint]
base_url = "https://telemetry.betterstack.com"
path = "/api/v2/explorations/{exploration_id}/alerts"
method = "GET"

[[path_param]]
name = "exploration_id"
description = "The unique identifier of the exploration."
required = true
type = "integer"

[[header]]
name = "Authorization"
description = "Bearer `$TOKEN`"
required = true
type = "string"
[/endpoint]

[responses]
[[response]]
status = 200
description = "A list of alerts for the exploration."
body = '''
[code-tabs]
```json
[label Threshold alert]
{
  "data": [
    {
      "id": "12345",
      "type": "alert",
      "attributes": {
        "exploration_id": 789,
        "name": "High Error Rate",
        "alert_type": "threshold",
        "operator": "lower_than",
        "value": 50.0,
        "string_value": null,
        "check_period": 300,
        "query_period": 600,
        "confirmation_period": 120,
        "recovery_period": 60,
        "aggregation_interval": 300,
        "series_names": [],
        "source_variable": null,
        "source_mode": "source_variable",
        "source_platforms": [],
        "incident_cause": "Value dropped below threshold",
        "incident_per_series": false,
        "call": false,
        "sms": false,
        "email": true,
        "push": false,
        "critical_alert": false,
        "paused": false,
        "paused_reason": null,
        "escalation_target": "current_team",
        "metadata": {},
        "created_at": "2026-03-25T10:00:00.000Z",
        "updated_at": "2026-03-25T10:00:00.000Z"
      }
    }
  ]
}
```
```json
[label Anomaly alert]
{
  "data": [
    {
      "id": "12346",
      "type": "alert",
      "attributes": {
        "exploration_id": 789,
        "name": "Anomaly Detection",
        "alert_type": "anomaly_rrcf",
        "anomaly_sensitivity": 75.0,
        "anomaly_trigger": "any",
        "query_period": 60,
        "confirmation_period": 60,
        "recovery_period": 0,
        "aggregation_interval": 60,
        "series_names": [],
        "source_variable": null,
        "source_mode": "source_variable",
        "source_platforms": [],
        "incident_cause": null,
        "incident_per_series": false,
        "call": false,
        "sms": false,
        "email": true,
        "push": false,
        "critical_alert": false,
        "paused": false,
        "paused_reason": null,
        "escalation_target": "current_team",
        "metadata": {},
        "created_at": "2026-03-25T10:00:00.000Z",
        "updated_at": "2026-03-25T10:00:00.000Z"
      }
    }
  ]
}
```
[/code-tabs]
'''

[[response]]
status = 404
description = "An exploration with the specified ID was not found."
[/responses]

## Alert response shape

The attributes in the alert response vary based on the `alert_type`.

[code-tabs]
```json
[label Threshold response]
{
  "attributes": {
    "alert_type": "threshold",
    "operator": "higher_than",
    "value": 100,
    "string_value": null,
    "check_period": 300
  }
}
```
```json
[label Relative response]
{
  "attributes": {
    "alert_type": "relative",
    "operator": "increases_by",
    "value": 50,
    "check_period": 300
  }
}
```
```json
[label Anomaly response]
{
  "attributes": {
    "alert_type": "anomaly_rrcf",
    "anomaly_sensitivity": 75.0,
    "anomaly_trigger": "any"
  }
}
```
[/code-tabs]

[info]
For `threshold` and `relative` alerts, the fields `anomaly_sensitivity` and `anomaly_trigger` are omitted. For `anomaly_rrcf` alerts, the fields `operator`, `value`, `string_value`, and `check_period` are omitted.
[/info]

## Example request

```shell
[label cURL]
curl --request GET \
     --url "https://telemetry.betterstack.com/api/v2/explorations/123/alerts" \
     --header "Authorization: Bearer $TOKEN"
```
