# Get a single alert

Retrieves a single alert by its ID from any context (dashboard or exploration).

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

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

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

[responses]
[[response]]
status = 200
description = "The details of the specified alert."
body = '''
{
  "data": {
    "id": "789",
    "type": "alert",
    "attributes": {
      "dashboard_id": 123,
      "chart_id": 456,
      "name": "High Error Rate Alert",
      "alert_type": "threshold",
      "operator": "higher_than",
      "value": 100.0,
      "string_value": null,
      "query_period": 300,
      "confirmation_period": 0,
      "recovery_period": 300,
      "aggregation_interval": 60,
      "check_period": 60,
      "series_names": ["error"],
      "source_variable": "source",
      "source_mode": "source_variable",
      "source_platforms": [],
      "incident_cause": "Error rate exceeded threshold",
      "incident_per_series": false,
      "escalation_target": {
        "policy_id": 123,
        "policy_name": "Critical Alerts Policy"
      },
      "metadata": {
        "environment": "production",
        "runbook": "https://wiki.example.com/runbooks/error-rate"
      },
      "paused": false,
      "paused_reason": null,
      "created_at": "2026-02-20T10:00:00Z",
      "updated_at": "2026-02-23T14:30:00Z"
    }
  }
}
'''

[[response]]
status = 404
description = "The specified alert was not found."
[/responses]

## Example request

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

## Alert response shape

[info]
The response shape varies by `alert_type`. Threshold and relative alerts include `operator`, `value`, `string_value`, and `check_period`. Anomaly alerts include `anomaly_sensitivity` and `anomaly_trigger` instead. Dashboard alerts include `dashboard_id` and `chart_id`. Exploration alerts include `exploration_id`.
[/info]

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