Try the RankNibbler SEO API

Alert history Beta

GET /api/v1/alerts

Every alert your workspace sent, attempted or skipped, newest first. Useful for answering "was anyone told?" after an outage.

Needs an X-API-Key header whose owner has access to uptime monitoring in the app. The call counts once against your daily quota. See Monitoring API: getting started for authentication, rate limits and errors.

This endpoint is read-only: any method other than GET returns 405.

Query parameters

NameTypeDescription
monitorId optionalstringOnly alerts for this monitor.
event optionalstringdown, still_down (a repeat while it stayed down), up or test.
status optionalstringsent, failed or skipped.
from optionalstring | integerISO 8601 or UNIX seconds. Only alerts from this time on.
to optionalstring | integerISO 8601 or UNIX seconds. Only alerts before this time.
page optionalintegerPage number, starting at 1. Default 1.
per optionalintegerAlerts per page, 1 to 1000. Default 100.

With no from or to, you get the whole history that is kept.

Request

Response

200 · application/json
  1. {
  2. "total": 14, "page": 1, "per": 2,
  3. "alerts": [
  4. {
  5. "id": "90412",
  6. "monitorId": "mon_79ce3cf9c4fa56e98af4",
  7. "monitorName": "Checkout",
  8. "event": "down",
  9. "channel": "email",
  10. "target": "[email protected]",
  11. "recipient": "user",
  12. "status": "sent",
  13. "detail": null,
  14. "sentAt": "2026-09-16T22:29:11.402Z"
  15. },
  16. {
  17. "id": "90411",
  18. "monitorId": "mon_79ce3cf9c4fa56e98af4",
  19. "monitorName": "Checkout",
  20. "event": "down",
  21. "channel": "email",
  22. "target": "[email protected]",
  23. "recipient": "contact",
  24. "status": "skipped",
  25. "detail": "Opted out",
  26. "sentAt": "2026-09-16T22:29:11.120Z"
  27. }
  28. ],
  29. "usage": { "used": 41, "dailyLimit": 100, "tier": "free" }
  30. }

Response fields

FieldTypeDescription
idstringThe alert id.
monitorId, monitorNamestringWhich monitor the alert was about.
eventstringdown, still_down, up or test.
channelstringHow it was sent. email today.
targetstringThe address it went to.
recipientstringuser for a workspace member, contact for an alert contact.
statusstringsent, failed (we tried and it didn't go) or skipped (for example, the address had opted out).
detailstring | nullWhy it failed or was skipped, when we know.
sentAtstringWhen the alert was handled.

History is kept for 120 days. Older alerts are removed.

The record outlives the monitor: delete a monitor and its alerts stay, keeping the monitorId and monitorName they had at the time.

Errors

StatusWhen
401The API key is missing or invalid.
403The key's owner doesn't have access to uptime monitoring, or the key isn't linked to a workspace.
400event or status isn't one of the values above, or from or to isn't a valid time.
405The endpoint doesn't accept that method.
429A rate limit or your daily quota was hit. Read Retry-After, in seconds.
500, 503Something went wrong, or the API is temporarily unavailable. Try again.

Errors are JSON: { "error": "message" }. See Monitoring API errors.

Related