EvoHub Docs Sign in

On-Call API › Alerts

List alerts

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}
GET/api/v1/alerts

Lists the organization's alerts, newest first unless sort says otherwise. The list is paged: limit (default 50) and offset, with the number of matching alerts in meta.total. Every filter is optional and they combine.

team_id narrows the list, it never hides anything you could otherwise see: a team id returns that team's alerts together with the organization-wide ones (alerts with no team), and none returns only the organization-wide ones.

Permission (API-key scope): oncall:alert:read.

Authorization

Any one of:

Parameters

Query parameters

  • status string
    triggered, acknowledged, resolved, suppressed, or open for triggered and acknowledged together.
    One of: triggered acknowledged resolved suppressed open · Example: open
  • severity AlertSeverity
    One severity.
    One of: critical high medium low info
  • source string
    The kind of integration or origin, for example prometheus or manual.
    Example: prometheus
  • q string
    Free-text search over the title, source and label values (case-insensitive, partial match).
  • assignee string
    A user id, me for the caller, or unassigned.
    Example: me
  • escalation_policy_id string
    Only alerts routed to this escalation policy.
  • integration_id string
    Only alerts opened by this integration.
  • team_id string
    A team id (that team's alerts plus organization-wide ones) or none (organization-wide alerts only).
  • created_from string
    Earliest creation time, inclusive: RFC 3339, or a date (YYYY-MM-DD, start of the UTC day). An unreadable value is ignored.
    Example: 2026-10-01
  • created_to string
    Latest creation time, inclusive: RFC 3339, or a date (YYYY-MM-DD, the whole UTC day). An unreadable value is ignored.
    Example: 2026-10-09
  • sort string
    Column to sort by.
    One of: created_at updated_at severity status source assigned_to title · Default: created_at
  • dir string
    Sort direction. Empty values sort last either way.
    One of: asc desc · Default: desc
  • limit integer
    Page size. 0 or omitted means 50.
    Default: 50 · Minimum: 0
  • offset integer
    How many items to skip.
    Default: 0 · Minimum: 0

Responses

200

A page of alerts.

Content type: application/json

Type: object

  • data array of Alert required
    Show Alert properties
    • id string required
    • org_id string required
    • team_id string
      Owning team; empty for an organization-wide alert.
    • escalation_policy_id string
      Empty when no policy pages for it.
    • incident_id string
    • integration_id string
      The integration that opened it; empty for alerts raised by hand or by another EvoHub product.
    • fingerprint string
      Deduplication key: while an alert with it is open, the same fingerprint retriggers it instead of opening another.
    • title string required
    • description string
    • severity AlertSeverity required
      One of: critical high medium low info
    • status AlertStatus required
      One of: triggered acknowledged resolved suppressed
    • source string required
      Where it came from: an integration kind such as prometheus, api, webhook, or manual.
    • labels object
      Other keys: string
    • annotations object
      Other keys: string
    • current_escalation_step integer
      The escalation step reached so far.
    • acknowledged_by string
    • acknowledged_at string (date-time)
    • resolved_by string
    • resolved_at string (date-time)
    • snoozed_until string (date-time)
    • snoozed_by string
    • assigned_to string
      User id of the assignee; empty when unassigned.
    • notification_count integer
    • retrigger_count integer
      How many times the same fingerprint arrived again while it was open.
    • created_at string (date-time) required
    • updated_at string (date-time) required
  • success boolean required
    Value: true
  • meta object required
    • total integer
      Alerts matching the filters, ignoring the page.

400

sort names a column that cannot be sorted on, or dir is not asc or desc (VALIDATION_FAILED).

Content type: application/json

Type: ValidationError

  • error object required
    • code string required
      Value: VALIDATION_FAILED
    • message string required
    • details array of object required
      • field string
      • message string

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

429

Too many requests (RATE_LIMITED). Wait Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.

Example request

curl -X GET 'https://evohub.io/api/v1/alerts' \
  -H 'Authorization: Bearer <TOKEN>'

Last updated