Skip to main content
GET
Prefer the terminal? This endpoint is also a command in the Particle CLI: pick Particle CLI in the request example’s language menu. Install the Particle CLI.

Path Parameters

id
string
required

Match ID

Response

OK

alert_id
string
required

ID of the parent alert.

deliveries
object[] | null
required
detected_at
string<date-time>
required
entity_id
string
required
entity_type
string
required

Type of the watched target: PERSON, COMPANY, or KNOWLEDGE_GRAPH_ENTITY for entity alerts, KEYWORD for KEYWORD_MENTION alerts.

id
string
required
kind
enum<string>
required

Inherited from the parent alert's kind so clients can render mention vs appearance semantics without a follow-up alert lookup. Match payloads from ENTITY_MENTION and KEYWORD_MENTION alerts carry mention_count and mention_variants; PODCAST_SPEAKER matches carry roles and a line-count in mention_count.

Available options:
ENTITY_MENTION,
PODCAST_SPEAKER,
KEYWORD_MENTION
mention_count
integer<int64>
required
monitor_id
string
required

Deprecated — use alert_id. ID of the parent alert.

source_id
string
required
source_type
string
required
episode
object

Optional episode + podcast metadata embedded so a single response renders a card without a follow-up /v1/episodes/{id} call. Populated for preview-sample matches (POST /v1/projects/{projectId}/alerts/preview's GET response) and for the landing-page GETs (GET /v1/alerts/deliveries/{id} in both summary and detailed views, GET /v1/alerts/matches/{id}); absent on the paginated live matches list.

is_backfilled
boolean

True for matches written by the post-create historical sweep. Backfilled matches are real matches the live pipeline would have produced, with DetectedAt set to the source episode's publish time. They never trigger delivery (no email is sent) — the field lets the UI label them so users can distinguish 'past' from 'going-forward' matches.

keyword
string

KEYWORD_MENTION matches only: the phrase this match fired on. It stays the phrase that matched even if the alert's keyword is later edited.

llm_summary
string

AI-generated narrative summary of this match with prior-mention context from the past 7 days for the same (alert, entity). Generated asynchronously after match creation. Absent (field omitted) when the summarizer hasn't processed the row yet OR when the LLM exhausted its retry budget — clients should treat both states the same: no summary to render. Visible to both org members and the public landing-page tier; the summary describes the mention itself, not the alert configuration.

mention_variants
string[] | null
relevance
enum<string>

How this match relates to the watched entity, classified by the summarizer: on_target (the entity is the mention's subject or a substantive reference) or incidental (a correct but passing reference in service of another story). Absent when unjudged. Lets a client tell a substantive mention from a fly-by one. (A third internal verdict, wrong_entity, marks knowledge-graph name collisions; those matches are suppressed before delivery and never appear here.)

Available options:
on_target,
incidental
roles
string[] | null

Canonical speaker role(s) the matched entity appeared as, drawn from the alert's speaker roles: by default GUEST, PANELIST, CORRESPONDENT, AUDIENCE, or SOUNDBITE_SPEAKER (an excerpted clip of them, not a live appearance), and HOST only when speaker_roles includes it. Raw STT/LLM labels like CALLER, REPORTER, LISTENER are normalized to these buckets on write. Populated only for PODCAST_SPEAKER matches; sorted alphabetically for deterministic order.

truncated
boolean
windows
object[] | null