Campaigns

List a campaign's failed sends

The recipients this campaign did not reach, read from its per-contact send ledger. The campaign counters say how many were sent; only this says WHO was dropped and why, which is what makes retrying a decision rather than a guess.

reason comes from a fixed vocabulary, not from the underlying error text, so it is stable enough to branch on. It is null for rows recorded before reasons were captured.

Cursor-paginated like every other v1 list. Unlike them it also returns total: the retry action operates on that number, and a page that can only say has_more cannot tell you whether 3 or 30,000 sends failed.

Requires the campaigns:read scope — View your campaigns and their performance.

get/api/v1/campaigns/{id}/failures

Request

  • Base URL: https://api.sendly.now
  • URL: https://api.sendly.now/api/v1/campaigns/{id}/failures
  • Auth: one of:
    • HTTP bearer
    • API key in cookie better-auth.session_token
    • OAuth 2 (authorization code, authorization URL https://app.sendly.now/api/auth/oauth2/authorize, token URL https://app.sendly.now/api/auth/oauth2/token, scopes: campaigns:read)

Path parameters

idstring uuid required

Resource id.

Query parameters

limitinteger
afterstring

Opaque cursor from a previous response's next_cursor.

Response

Failed sends

has_moreboolean required
next_cursorstring nullable required

Pass as after to fetch the next page. null on the last page.

totalinteger required

Every FAILED row on this campaign, not just this page.

Changes

No recorded changes to this operation across all 1 revision of this API.