REALTIME vs DAILY vs WEEKLY cadence based on how chatty the entity is) or to confirm the entity slugs watch the right thing, then call particle_alert_create with the same entities.
Entities are passed as slugs from the resolve tools — particle_entity_resolve, particle_person_resolve, particle_company_resolve — the same input as particle_alert_create.entities.
The preview runs asynchronously; the tool polls for the result for a few seconds. If the sweep hasn’t finished, it returns an in-progress status — call the tool again with the same arguments to read the completed result (the same preview is served from cache, so it is cheap to retry).
Inputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
entities | array of strings | yes | — | Entity slugs to preview (from the resolve tools), same as particle_alert_create.entities. |
kind | enum | no | ENTITY_MENTION | Signal to preview: ENTITY_MENTION or PODCAST_SPEAKER. |
window_days | integer (1–30) | no | 7 | How many days back to sweep. |
Output
A markdown## Alert preview document with **Window:** (past N days) and **Total matches:** KV rows, a ### By day section listing each date and its count, and a ### Sample (N most recent) section showing the most recent matches with episode context. When there are no matches in the window, a closing line notes the alert would not have caught anything.
If the sweep is still running, the output is an in-progress line telling you to call again with the same arguments; on failure, a line suggesting you retry or narrow the entity list.
Sample (entities=["sam-altman"], window_days=7):
output_format: "json" returns status, window_days, total_matches, by_day, and sample as compact JSON.
Example
Related
- REST equivalent:
POST /v1/projects/{projectId}/alerts/previewplusGET /v1/alerts/preview/{previewId}. - Resolve the entities to preview with
particle_entity_resolve,particle_person_resolve, orparticle_company_resolve. - Once the frequency looks right, create the alert with
particle_alert_create.