What you can build
- Press monitoring — fire when a founder, executive, or brand is named on a show, with the transcript excerpt and a summary in the payload.
- Competitive intelligence — track when competitors are discussed across the catalog without polling the search endpoints yourself.
- Booking and PR tracking — use a speaker-appearance alert to learn when a person actually appears as a guest, not just when they’re talked about.
- Topic watch — follow a knowledge-graph topic and surface every new episode that touches it.
Two kinds of alert
Thekind is fixed when the alert is created and decides what counts as a match.
A speaker-appearance match fires only when the entity appears as a guest or other speaker on the show, not as its host.
How an alert is configured
These are the fields of the JSON body youPOST to create an alert.
Notification emails must be verified for the organization before they receive mail. An API-key caller must supply an address that is already verified for the organization the alert’s project belongs to.
Delivery frequency
delivery_cadence controls how matches turn into emails. Realtime sends one email per match; the two digest cadences accumulate matches as they’re detected and send a single bundled email on schedule.
Digest emails are bundled per alert — all of an alert’s matches in the window go into a single email — and each configured recipient receives that digest individually.
How alerts flow through the system
- A match is one detected mention or appearance of a watched entity on a single episode. Matches carry the mention count, transcript windows, speaker roles, a
relevanceverdict (on_targetvsincidental), and, when available, an AI summary (generated asynchronously, so it may be absent on a freshly detected match). Read them withGET /v1/alerts/{id}/matches. The single-match and delivery-landing GETs additionally embed the parentepisode— including the podcast’s political bias and its popularity (a percentile plus aTop Podcast/Very Popular/Popularbadge) — so a result card renders without a follow-up episode lookup; thatepisodeblock is omitted from the paginated matches list. - A delivery records one send — a single row covering all of the alert’s recipients, who are each emailed individually. A realtime delivery carries one match; a digest bundles every match from its window. Read them with
GET /v1/alerts/{id}/deliveries. - When you create an alert, Particle also runs a one-time backfill over the previous 7 days so the alert isn’t empty on day one. Backfilled matches are real and flagged with
is_backfilled, but they never trigger an email.
Previewing match frequency
Before committing to an alert,POST /v1/projects/{projectId}/alerts/preview estimates how often a given set of entities and kind would have matched. The preview runs asynchronously: that POST returns a preview_id, then GET /v1/alerts/preview/{previewId} polls for its status and result.
Pass the same filters object you intend to save (same shape as on create) so the estimate reflects what the alert would actually surface. Only the axes that gate the historical sweep apply: languages and speaker_roles narrow the count exactly, while relevance and source_popularity are graded at read time and don’t run on historical episodes — so setting them leaves the count unchanged, and the estimate is an upper bound when relevance=RELEVANT. speaker_roles is only valid on a PODCAST_SPEAKER preview (a 422 otherwise, matching create). The preview_id is derived from the count-affecting filters (languages, speaker_roles) too, so changing those starts a fresh sweep, while toggling relevance or source_popularity returns the same cached count.
Endpoints
Alerts are managed through the/v1/alerts endpoints. Writes are scoped to a project; reads of a single alert, its matches, and its deliveries are addressed by the resource’s own ID.
Slack delivery
An alert can post matches to a Slack channel. Connecting a workspace is a one-time OAuth install done from the dashboard; the rest is API-driven. The Slack guide covers the full flow, the message format, and how to attach a channel to an alert.Webhook delivery
An alert can deliver matches to your own endpoint as a signed JSONPOST instead of, or alongside, email. You configure a webhook connection once per project, then reference it from an alert’s notifications as a WEBHOOK channel. The Webhooks guide covers the payload shape, signature verification, and retry behavior.
Plan requirement
Alerts are available on the Team, Business, and Enterprise plans. Organizations on Starter or Growth can’t create alerts and receiveplan_does_not_support_alerts until they move to a current plan.
Each plan includes a number of active alerts. When you reach the included allowance, buy an Alerts Pack add-on to raise it — further creates return add_on_required until you do. Paused alerts (is_active: false) don’t count against the allowance.
Next steps
Create an alert
Resolve an entity, set a delivery channel, and create the alert.
Slack
Post matches to a Slack channel — connect a workspace and attach a channel.
Webhooks
Deliver matches to your own endpoint as a signed JSON POST, and verify the signature.
Authentication
Alerts CRUD uses a standard
X-API-Key, bound to the project the alert belongs to.Knowledge graph
Resolve the people, companies, and topics you want an alert to watch.
Concepts
ID and slug resolution, cursor pagination, and the error envelope every endpoint follows.