Alerts
tier:free

Get a single alert delivery

Returns one delivery with its embedded matches (paginated — see matches_cursor). The URL is keyed only by the delivery ID — the parent alert ID is intentionally omitted so a landing-page link can be shared publicly without leaking the alert identifier. Works for all cadences — immediate, daily, weekly digests. URL possession is the access factor; the endpoint is reachable without auth (the IDs are unguessable). Authenticated members of the delivery's owning organization receive the high-resolution payload (transcript Windows when view=detailed, mention variants, salience, delivery audit). For a member-viewed WEBHOOK delivery, has_webhook_payload is true and the exact POSTed JSON is available from GET /v1/alerts/deliveries/{id}/webhook-payload (not embedded here — it can be many MB). Unauthenticated and non-member callers receive a reduced public payload — alert title and kind, match entity and episode metadata, no internal fields.

get/v1/alerts/deliveries/{id}

Request

  • Base URL: https://api.particle.pro
  • URL: https://api.particle.pro/v1/alerts/deliveries/{id}
  • Auth: none required

Path parameters

idstring required

Delivery ID

Query parameters

view'summary' | 'detailed'

Hydration depth for the embedded matches. Both views include Episode metadata (episode title, podcast title, image) so the FE can render a card per match. 'summary' (default) omits transcript Windows; 'detailed' includes them — pick 'detailed' when rendering a full landing page where each match expands to the spoken excerpt, 'summary' for a list view.

matches_limitinteger

Max embedded matches to return in this response (default and max 100). The delivery's true total is always match_count; use matches_cursor to page through the rest.

matches_cursorstring

Opaque cursor from a previous response's matches_cursor, to fetch the next page of embedded matches.

Response

OK

alert_idstring required

ID of the parent alert.

channelstring required
created_atstring date-time required
error_messagestring
has_webhook_payloadboolean required

Whether this delivery has a reconstructable webhook payload (member-viewed WEBHOOK deliveries only). When true, fetch the exact POSTed JSON from GET /v1/alerts/deliveries/{id}/webhook-payload — it is not embedded here because it can be many MB.

idstring required
match_countinteger required
matches_cursorstring

Opaque cursor; pass as ?matches_cursor= to fetch the next page of matches. Absent when there are no more.

matches_has_moreboolean required

Whether more matches exist beyond this page. The true total is match_count.

monitor_idstring required

Deprecated — use alert_id. ID of the parent alert.

sent_atstring date-time
statusstring required

Delivery outcome — SENT (delivered; a partial success keeps this status with the failure noted in error_message), FAILED (an attempt failed; realtime retries within its budget and digests re-select within their window), SKIPPED (intentionally not delivered), or ABANDONED (realtime webhook delivery permanently gave up after exhausting its retry budget, so the match was dropped for that channel).

viewer_can_manageboolean required

Whether the caller is a member of the owning org (or an API key scoped to the owning project) and can manage this alert in-app. True responses carry the member-only fields; false responses are the public projection with those fields stripped. Clients must read this rather than inferring access from field presence.

Changes

No recorded changes to this operation across all 2 revisions of this API.