Podcast Episodes
tier:standard

Poll the episode feed

Resumable, strictly-ordered poll of episodes as they are ingested — the all-plans pull alternative to the Enterprise stream. Subscribe to a milestone (default transcribed); each call returns episodes that reached it since your cursor, in ingestion order, with a cursor to poll again. Filter by podcast_ids, topic_ids, and/or popularity_threshold — a filter is required, and coverage is capped at 100 podcasts. Enterprise organizations are exempt: they may poll unfiltered (the pull form of the stream) and popularity_threshold applies uncapped.

get/v1/podcasts/episodes/feed

Request

  • Base URL: https://api.particle.pro
  • URL: https://api.particle.pro/v1/podcasts/episodes/feed
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

milestone'discovered' | 'transcribed' | 'segmented' | 'fully_ingested'

Deliver episodes once they reach this ingestion stage. Ordered discovered < transcribed < segmented < fully_ingested.

podcast_idsstring[] nullable

Filter to a set of podcasts by slug or ID (comma-separated). Hard limit of 100 per request. Unknown values are ignored; if no filter matches any podcast you get a 404. Always included over popularity_threshold.

popularity_thresholdnumber double

Filter to the most-popular podcasts whose popularity percentile is at least this value, in (0,1). Omit (or 0) for no popularity filter. The feed covers at most 100 podcasts total: your podcast_ids plus the most-popular podcasts above this threshold, with the least-popular trimmed to fit. Enterprise organizations are exempt from the cap when topic_ids is omitted — the threshold applies to every qualifying podcast, and they may also poll with no filter at all. Requests with topic_ids remain capped at 100 podcasts on every plan.

topic_idsstring[] nullable

Scope the feed to one or more topics (comma-separated): each a topic slug path (e.g. sports/football/fantasy-football), ID, or ancestry-path hash. A topic also matches its descendants, and multiple topics are unioned. Only podcasts that regularly cover the topic are included — a show that merely mentions it in passing is excluded. The feed still covers at most 100 podcasts total, so combine with popularity_threshold to keep just the most popular. An unknown topic returns a 404.

cursorstring

Opaque cursor from a prior feed response. Poll again with it to receive episodes ingested since. Omit (with no since) to start from now.

sincestring

ISO 8601 date or date-time to start from when no cursor is supplied. Ignored if cursor is set.

limitinteger

Maximum episodes per page.

includestring[] nullable

Heavy relations to embed in each episode (comma-separated). transcript is the dialogue transcript; segments and clips are the AI-derived sets; entities are the knowledge graph entities discussed, with the transcript lines that mention each; ads are the advertising spots detected; all means everything available at the chosen milestone. A field is only valid when its data is guaranteed at the milestone (transcript→transcribed, segments→segmented, clips, entities and ads→fully_ingested); requesting one earlier is a 422.

Response

OK

cursorstring

Pass to next request for more results

has_moreboolean required

Whether more results exist

Changes

No recorded changes to this operation across all 2 revisions of this API.