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

Activity and warmup history

API referenceAccounts

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

text
GET /accounts/{id}/stats
GET /accounts/{id}/events
GET /accounts/{id}/log
GET /accounts/{id}/warmup-jobs

stats is today-and-7-day counters for one mailbox. "Today" is the UTC day:

json
{ "sentToday": 24, "pendingToday": 6, "inboxToday": 22, "spamToday": 2, "openRate": 0.415, "replyRate": 0.123, "todayPlan": null, "firstWarmupSend": null }

openRate and replyRate here are warmup-network rates over 7 days, returned as fractions between 0 and 1 (not percentages), not campaign performance. The two are different metrics with similar names, explained in How warmup works. Either can be null when there is nothing to divide by. todayPlan is the mailbox's warmup plan for its local day and firstWarmupSend describes the first warmup email during the first 7 days after warmup starts (null afterwards).

events returns up to 200 lifecycle events, newest first, as { "events": [...] } with { id, accountId, type, payload, createdAt } each. type is one of smtp_fail, imap_fail, flagged, auto_paused, auto_resumed, manual_pause, aged_in, marked_dead, oauth_refresh_fail, oauth_connected and oauth_reconnected.

log pages through the individual warmup messages this mailbox sent, newest first, as { "jobs": [...], "nextCursor": "..." }: ?limit= (1-100, default 50) and ?cursor= (pass the previous response's nextCursor, a timestamp). nextCursor is null only when a page comes back empty, so keep paging until jobs is empty.

warmup-jobs returns the 100 most recent warmup messages this mailbox sent or received, newest first by scheduled time, as { "jobs": [...], "dailySummary": [...] }, with no paging.

Was this page helpful?