GET /v1/podcasts/mentions returns every line of dialogue across the catalog where a resolved entity is named, grouped by episode and ordered by recency. Each item in data is one episode plus all of its mention windows. A mention window is a contiguous range of dialogue around a name, with is_mention flagged on the lines that actually contain it.
This is the right endpoint when the answer doesn’t depend on the wording of your query — only on who is being named.
Available to MCP agents as
particle_podcast_find_mentions.- Every line said about a company this week, newest first, with who said it and in which segment.
- What one show has been saying about one person over the past year.
- Where a person was named while appearing as a guest, as opposed to being discussed in their absence.
When to use Mentions vs Search
Examples
Response
data. windows[] is ordered by time within the episode. mention_count is the number of lines that triggered is_mention=true. mention_variants is the distinct strings observed for the entity (e.g., ["Sam Altman", "Altman"]) — useful for UI labels. Each is_mention line carries segment_id, the segment containing that line; a window’s segment is the segment where the window opens, which is context_lines before its first mention and can be the previous segment, so cite a mention by its line’s segment_id.
Lines in topic-discussion and interview segments, mention and context lines alike, carry speaker_statement_characteristics: labels for how the line is said (its sentiment, certainty, specificity and temporal orientation). Read them to tell criticism of the entity from praise, or a prediction from a recollection. See Speaker statement characteristics.
Pass the same labels as speaker_statement_characteristics[<axis>]=<labels> to keep only mentions said a certain way, such as speaker_statement_characteristics[sentiment]=negative for criticism: every is_mention line then carries labels the filter accepts, and an episode is returned only when one of its mentions does. It needs a subject with a knowledge graph entity. With the guest_ filters, a mention counts only when a guest they select says it that way. A rare combination can return a short page with a cursor; follow it to keep reading. See Filtering by characteristics.
If an episode mentions the entity more than 50 times, the page surfaces the first 50 windows and sets truncated: true on the episode. The next-page cursor still advances to a different episode — windows never split across pages.
Filters
Empty results
An emptydata array means no transcribed episode matching your filters names the entity; it is not an error. Three things to check, in order: that the slug is the one GET /v1/entities/search?q= returns for the name, and that the result’s mentions.podcast_episodes is non-zero (a slug that resolves to nothing is rejected with 422 unresolved_reference; a wrong-but-valid one returns someone else’s mentions; a count of zero means no episode carries an entity tag for the subject, so the only lines left to find are the verbatim name matches this endpoint returns, marked matched_by: "name", for a person or company without a linked knowledge-graph entity); whether role, podcast_id, publisher_id, or the date window is doing the narrowing, by dropping them one at a time; and whether the name only comes up in ad reads, which include_ads=true brings back. For “how often, over time” rather than “which lines”, use GET /v1/podcasts/mentions/timeseries, which returns every bucket in the window in one response, up to 1,000 buckets, so pick an interval that fits the window.
Pagination
Standardlimit (1–100, default 25) + opaque cursor. The unit of pagination is the episode — a single episode never splits across pages, so a page may return fewer total dialogue lines than another with the same limit. Pass the cursor from the previous response back as ?cursor=… for the next page.
Which shows, compared with the period before
GET /v1/podcasts/mentions/by-podcast returns the podcasts that mentioned an entity in a window, each with its counts there and in the equal-length window just before it. Use it to see which shows picked a subject up, which kept talking about it, and which went quiet, without paging the mentions themselves. It takes the same subject and filters as the timeseries: entity_id or company_id, plus publisher_id, role, language, include_ads, and the guest_ filters.
- Windows.
sinceanduntilset the current window. It defaults to the last 7 days ending now and may span 90. The previous window is as long and ends where the current one starts. The response echoes the exact bounds asstartandend: pass them back assinceanduntilwhen you page, so a default window does not move between pages. - Totals. The totals count every podcast, whatever the page or
changefilter, and the current window’s match/v1/podcasts/mentions/timeseriesfor the same filters.new_podcasts,returning_podcasts,passing_podcasts,newly_tracked_podcasts,continuing_podcasts, anddropped_podcastscount the shows with each label, and every show has exactly one. change.continuingkeeps the shows that mentioned the subject in both windows, anddroppedthose that did in the previous window only. A show in the current window only is judged against the lookback before it, which starts atlookback_start, and gets the first of these that applies:newly_tracked: it published fewer than four episodes in the lookback, too little history to tell. A monthly show has only three in the default 90 days, so passlookback_days=180to judge one.returning: it mentioned the subject earlier in the lookback.passing: a single mention line.new: two or more lines and none in the lookback. The show started talking about the subject.
lookback_days. 7 to 180, default 90. The lookback starts that many days beforesince, or atprevious_startwhen that is earlier.sort.mentionsputs the most current-window mention lines first, then the shows that dropped the subject, biggest first.risingandfallingorder bymention_count_delta.popularityputs the biggest shows first. Withchange=neworchange=returningthe default ispopularity, so the notable shows lead; otherwise it ismentions.- Before October 23, 2026,
newmeant every show absent from the previous window. That set is nownew,returning,passing, andnewly_trackedtogether, and no singlechangevalue selects it, sonew_podcastsis much smaller than it was: 529 rather than 3,983 for Walmart over October 1 to 23. Clients that validatechangeagainst a fixed list will now see three values they don’t know. interval.day,week, ormonthadds each row’sbucketsover the current window, with the same shape as the timeseries buckets.- The newest day. An episode’s mentions are counted once it is processed, usually within a day of publication, so a window ending now reads slightly low. End it a day earlier for a settled comparison.
GET /v1/podcasts/mentions with the row’s podcast as podcast_id and the same since and until. Ad reads are excluded unless include_ads=true, as everywhere on this page.
Related
- Episode search — find dialogue by topic or phrase.
- Transcripts → mentions in one episode — every entity mentioned in one episode (the inverse view).
- Podcast → mentions rollup — episode-level salience aggregated across one podcast.