{"uid":"cap_g-HkjwTALyd0wsWfLApLg","slug":"particle-pro-podcast-episode-content-search-4caff5d8","name":"Particle Pro Podcast Episode Content Search","description":"Search podcast episode content. To find podcasts (shows) by name or topic, use /v1/podcasts/search?q=….","url":"https://api.particle.pro/v1/podcasts/episodes/search","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","properties":{"role":{"enum":["guest","host","panelist","correspondent","speaker","mention"],"type":"string","description":"How the entity must relate to the episode. Speaking roles: 'guest', 'host', 'panelist', 'correspondent', or 'speaker' for any of them. 'mention' means the entity is talked about rather than speaking. Omit to match both. Matches the role values on /v1/podcasts/episodes."},"sort":{"enum":["relevance","recency"],"type":"string","description":"Sort order. Defaults to relevance."},"type":{"enum":["INTRO","PERSONAL_BANTER","TOPIC_DISCUSSION","INTERVIEW","TRANSITION","AD","OUTRO"],"type":"string","description":"Segment type filter."},"limit":{"type":"integer","format":"int64","description":"Results per page (1-100, default 25)."},"since":{"type":"string","description":"Only segments from episodes published after this date."},"until":{"type":"string","description":"Only segments from episodes published on or before this date. A bare date includes that whole day."},"cursor":{"type":"string","description":"Opaque cursor from a previous response."},"context":{"type":"integer","format":"int64","description":"Lines of surrounding dialogue around each matched line (1-15, default 1). Widens each match's transcript window in place — request more context instead of fetching the full transcript. Window size stays bounded even at the maximum."},"language":{"type":"string","description":"Restrict to episodes of podcasts in this language (ISO 639-1 code, e.g. 'fr'). Matches the podcast's primary language subtag, so 'fr' covers 'fr-FR'."},"entity_id":{"type":"string","description":"Optional entity slug or ID. Filters results to episodes featuring this entity. For 'every line about X', use /v1/podcasts/mentions instead."},"company_id":{"type":"string","description":"Optional company slug, domain, or ID. Resolves to the company's linked entity and applies as a filter."},"episode_id":{"type":"string","description":"Filter to a specific episode by slug or ID."},"podcast_id":{"type":"string","description":"Podcast slug, internal ID, or numeric iTunes ID."},"entity_type":{"type":"string","description":"Optional entity category slug. Filters to episodes that *mention* any entity in that category (e.g. 'company', 'school', 'book'). Speakers are always people, so this filter only narrows mentioned entities. Cannot be combined with 'role'. Ignored when entity_id resolves to a specific entity. See GET /v1/entities/types for the available slugs."},"keyword_match":{"enum":["required","ranked"],"type":"string","description":"How unquoted keyword_search terms are applied. 'required' (default) filters to segments containing every term, so results are guaranteed to contain what you typed — this also constrains semantic_search, making a hybrid query an intersection of the two. 'ranked' instead lets unquoted terms only boost BM25 relevance without excluding anything, which widens recall for loose bag-of-words queries but returns segments that may contain none of them. Quoted phrases are unaffected: they filter in BOTH modes, so to relax a phrase remove its quotes. Ignored when keyword_search is empty."},"keyword_search":{"type":"string","description":"BM25 lexical search over dialogue. Use when an exact token must appear verbatim — tickers, drug names, product codes. By default every token must appear somewhere in the matched segment (see keyword_match). Wrap any token sequence in double quotes (e.g. \"machine learning\") to additionally require those words adjacent and in order in the segment's spoken dialogue — a speaker's own name is not indexed as dialogue, so quoting a person's name finds segments where the name appears in what was said, not segments they speak in. Adjacency spans consecutive lines, so a phrase may rarely straddle a line break. Multiple quoted phrases AND together (e.g. \"central bank\" \"interest rates\"). There is no boolean OR — a bare OR is treated as an ordinary word, so pass alternatives as separate requests."},"semantic_search":{"type":"string","description":"Vector-similarity search by meaning. Express the query the way you'd describe the topic to a colleague — paraphrase tolerant, finds segments that express the same idea in different vocabulary. Combine with keyword_search for hybrid ranking. Describe a topic, not a name: to find a specific person or company, filter with entity_id / company_id (or use /v1/podcasts/mentions for every line about them) — and for an exact token like a ticker, use keyword_search."}}}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.03","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.03/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_6kzuGxuBA3QV_2J6Q7BGa","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.03","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Full-text search of podcast episode transcript segments, with filtering by entity, role, segment type, date range, and language.","exampleAgentPrompt":"Search Particle Pro for podcast transcript segments where Elon Musk appeared as a guest discussing AI regulation, published since January 2024, sorted by recency, and show me 5 results with 3 lines of surrounding context each.","exampleUseCases":[{"title":"Research guest appearances by executive","prompt":"Find me podcast episodes where Satya Nadella appeared as a guest and talked about cloud computing — search Particle Pro's transcript index and show the top 10 most relevant segments with a bit of surrounding dialogue."},{"title":"Topic monitoring across podcast universe","prompt":"Search podcast episode transcripts for any segments discussing 'interest rate hikes' published between January 1 2024 and June 30 2024, sorted by recency, and return up to 25 results."},{"title":"Competitive intelligence on ad placements","prompt":"Look through podcast transcript segments for any mentions of our competitor 'Acme Corp' — filter to mention role so I can see where they're being talked about rather than sponsored, and give me 5 lines of context around each hit."}],"resultDescription":"A paginated list of transcript segment objects from matching podcast episodes, each including the matched dialogue lines, surrounding context window, episode and show metadata, speaker role attribution, segment type label, and a cursor for fetching the next page of results.","failureModes":["Invalid or unrecognized entity_id returns empty results or 404","Unsupported language code returns no results or validation error","Date range with since > until returns empty or error","Cursor from a different query invalidated — returns error or stale page","Query too broad returns low-relevance segments with high noise","Limit outside 1-100 range returns validation error","Payment failure (x402) blocks access if USDC not provided"],"whenToPreferThis":"Choose this endpoint when you need to search within the spoken content of podcast episodes — transcript-level full-text search with fine-grained filters like speaker role, segment type, date range, and language. Prefer it over /v1/podcasts/search when you care about what was said inside episodes rather than finding shows by name or topic. Ideal for media monitoring, competitive intelligence, guest appearance research, or any workflow requiring podcast transcript analysis at scale.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:33:58.466Z","isFirstParty":false}