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.
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,continuing_podcasts, anddropped_podcastscount the shows in each state. change.newkeeps the shows that mentioned the subject in the current window only,continuingthose that did in both, anddroppedthose that did in the previous window only.sort.mentions(the default) puts 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.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.