Skip to main content
GET
/
api
/
v1
/
alerts
List Alerts
curl --request GET \
  --url https://api.anomalyarmor.ai/api/v1/alerts/
{
  "success": true,
  "data": null,
  "message": "<string>",
  "error": {},
  "meta": {}
}
Retrieve alerts that have been triggered. Use this to build dashboards, integrate with ticketing systems, or create custom notification workflows.

When to Use

  • Dashboard integration: Show recent alerts in monitoring tools
  • Ticketing sync: Create tickets for triggered alerts
  • Reporting: Generate alert volume and response metrics
  • Custom workflows: Build automated response systems

SDK & CLI Examples

from anomalyarmor import Client

client = Client(api_key="aa_live_xxx")

# Get recent unacknowledged alerts
alerts = client.alerts.list(status="triggered", limit=20)

for alert in alerts:
    print(f"{alert.rule_name}: {alert.message}")
    print(f"  Asset: {alert.asset}")
    print(f"  Triggered: {alert.triggered_at}")

# Filter by alert type
schema_alerts = client.alerts.list(event_type="schema_change")

# Filter by date range
from datetime import datetime, timedelta
yesterday = datetime.now() - timedelta(days=1)
alerts = client.alerts.list(since=yesterday)

Parameters

ParameterTypeDescription
statusstringFilter by status: triggered, acknowledged, resolved
event_typestringFilter by type: schema_change, freshness_violation, discovery_failed
assetstringFilter by asset qualified name
sincedatetimeOnly alerts after this timestamp
untildatetimeOnly alerts before this timestamp
limitintegerMax results (default: 100, max: 1000)
offsetintegerSkip first N results

Response

{
  "alerts": [
    {
      "id": "alt_abc123",
      "rule_name": "Production Schema Changes",
      "event_type": "schema_change",
      "status": "triggered",
      "message": "Column 'status' removed from orders table",
      "asset": "snowflake.prod.public.orders",
      "details": {
        "change_type": "column_removed",
        "column_name": "status",
        "column_type": "varchar(20)"
      },
      "triggered_at": "2024-01-15T08:30:00Z",
      "acknowledged_at": null,
      "resolved_at": null,
      "destinations": ["slack", "pagerduty"]
    }
  ],
  "total": 45,
  "limit": 100,
  "offset": 0
}

Response Fields

FieldDescription
idUnique alert identifier
rule_nameName of the rule that triggered
event_typeType of event that triggered the alert
statustriggered, acknowledged, or resolved
messageHuman-readable alert description
assetAffected asset qualified name
detailsEvent-specific details (varies by type)
triggered_atWhen the alert fired
acknowledged_atWhen someone acknowledged it (if applicable)
resolved_atWhen the alert was resolved (if applicable)
destinationsWhere the alert was sent

Status Values

StatusMeaning
triggeredAlert fired, not yet acknowledged
acknowledgedSomeone is looking at it
resolvedIssue has been addressed

Event Types

TypeDescription
schema_changeTable or column structure changed
freshness_violationData older than SLA threshold
discovery_failedDiscovery job couldn’t complete
asset_removedTable or view no longer exists

Error Responses

StatusMeaning
401Invalid or missing API key
400Invalid filter parameters
429Rate limit exceeded

Query Parameters

tag_logic
string
default:AND

How to combine tag filters (AND/OR)

tags
string[] | null

Filter by tags

severity
string | null

Filter by severity

status
string | null

Filter by status

asset_id
string | null

Filter by asset

lifecycle_state
string | null

Filter by lifecycle state

scope_level
string | null

Filter by scope level

scope_hierarchy
string | null

Filter by scope hierarchy

saved_filter_id
string | null

Use saved filter

limit
integer
default:100

Maximum number of alerts to return

offset
integer
default:0

Number of alerts to skip

Response

Successful Response

Standard API response format.

success
boolean
required
data
unknown
message
string | null
error
Error · object
meta
Meta · object