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.
kind | Fires when… |
|---|---|
ENTITY_MENTION | A watched entity is mentioned anywhere in an episode’s dialogue. This is the default. |
PODCAST_SPEAKER | A watched entity is themselves an identified speaker on the episode. |
How an alert is configured
These are the fields of the JSON body youPOST to create an alert.
| Field | Required | Type | What it does |
|---|---|---|---|
title | Yes | string | Human-readable label, shown in the email subject. |
entities | Yes | array (1–100) | Entities to watch. Each is an entity_type (PERSON, COMPANY, or KNOWLEDGE_GRAPH_ENTITY) plus an entity_id. |
notifications | Yes | array (1–20) | Delivery channels. Each is { "type": "EMAIL", "email": "…" }. Only EMAIL is supported. |
kind | No | enum | ENTITY_MENTION (default) or PODCAST_SPEAKER. Fixed at creation. |
delivery_cadence | No | enum | How matches are batched into emails — see Delivery frequency. Defaults to REALTIME. |
description | No | string | Free-text note for your own reference. |
is_active | No | boolean | Whether the alert matches new episodes. Defaults to true; set false to pause without losing history. |
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.
delivery_cadence | What you get |
|---|---|
REALTIME | A separate email for each match, sent as it’s detected. |
DAILY | One email every day bundling the past day’s matches. |
WEEKLY | One email every Monday bundling the past week’s matches. |
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, salience, and, when available, an AI summary (generated asynchronously, so it may be absent on a freshly detected match). Read them with
GET /v1/alerts/{id}/matches. - 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.
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.
| Method & path | Purpose |
|---|---|
POST /v1/projects/{projectId}/alerts | Create an alert |
GET /v1/projects/{projectId}/alerts | List a project’s alerts |
GET /v1/alerts/{id} | Get one alert |
PATCH /v1/alerts/{id} | Update, pause, or resume an alert |
DELETE /v1/alerts/{id} | Delete an alert (soft delete; history retained) |
POST /v1/projects/{projectId}/alerts/preview | Preview match frequency before creating |
GET /v1/alerts/preview/{previewId} | Poll a preview’s status and result |
GET /v1/alerts/{id}/matches | List matches for an alert |
GET /v1/alerts/{id}/deliveries | List email deliveries for an alert |
GET /v1/alerts/matches/{id} | Get one match |
GET /v1/alerts/deliveries/{id} | Get one delivery |
GET /v1/alerts/disable | Validate an email-footer disable token (public; token-based) |
POST /v1/alerts/disable | Disable an alert with an email-footer token (public; token-based) |
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.
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.