Less boo. More booked. Halloween offer: 30 days free on any paid plan. Claim 30 days freeEvery new account gets one free mailbox for warmup and replies. No domain to buy. See how it works

Skip to content

Mailbox health alerts

API referenceWarmup

From the Warmup API reference. Requests use the base URL https://app.warmerly.com/api/v1 and an API key, see Authentication.

text
GET /alerts

The last 50 mailbox-health alerts that are still open for your user, newest first. Alerts whose fault has since been seen to clear are left out. These are the same events that trigger a health email, so polling this is the pull equivalent of webhooks for anyone who would rather not run an endpoint.

json
{
  "alerts": [
    {
      "id": "c3f1a2b4-5d6e-4f70-8a91-b2c3d4e5f607",
      "accountId": "3a6f9e2e-4b7a-4e9a-9b1d-6e3a2f8c1a10",
      "kind": "score_drop",
      "severity": "warning",
      "title": "Warmup health dropped for jane@yourdomain.com",
      "body": "Health score fell from 82 to 61 over the last 24 hours.",
      "scoreBefore": 82,
      "scoreAfter": 61,
      "sentAt": "2026-09-11T06:02:00.000Z",
      "createdAt": "2026-09-11T06:01:58.000Z"
    }
  ]
}
kindMeaning
score_dropHealth score fell sharply.
score_floorHealth score is below the acceptable floor.
oauth_disconnectedA Google/Microsoft grant was revoked or expired, reconnect needed.
auth_failSMTP/IMAP authentication is failing.
dns_changedThe domain's SPF/DKIM/DMARC result changed since the last check.
domain_blocklistedThe sending domain appeared on a public blocklist.
ip_blocklistedThe mail server's IP appeared on a public blocklist.
spam_flagThe mailbox or workspace was flagged for spam-like outcomes.
delivery_unobservableMail is going out but nothing can be classified, so health cannot be measured at all. This is distinct from a bad score: there is no score.

severity is info, warning or critical. sentAt is when the notification went out (null if it has not been sent), as opposed to createdAt, when the condition was detected. Each alert is the stored row, so it also carries userId, fingerprint and resolvedAt (always null here).

Was this page helpful?