Get a single alert

Retrieves a single alert by its ID, scoped to a specific exploration.

GET https://telemetry.betterstack.com/api/v2/explorations/{exploration_id}/alerts/{id}

URL parameters

exploration_id
required integer
id
required integer

Headers

Authorization
required string
200

Response body

{
  "data": {
    "id": 789,
    "type": "alert",
    "attributes": {
      "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"
    }
  }
}
404

Example request

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


The fields returned in the response depend on the alert_type and escalation_target. - operator, value, string_value, and check_period are only returned for threshold and relative alerts. - anomaly_sensitivity and anomaly_trigger are only returned for anomaly_rrcf alerts. - Notification channels (call, sms, etc.) are omitted if the escalation_target is a policy.