> ## Documentation Index
> Fetch the complete documentation index at: https://docs.particle.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# particle_podcast_list_episodes

> Filter-driven episode discovery across the catalog — by podcast, person, company, language, date range, duration, or transcript availability.

List episodes across the catalog with rich filters: by podcast, person, company, language, date range, duration, or transcript availability.

Use this for episode-level discovery when you only need metadata (title, duration, speakers, counts). For dialogue around a person in any episode, use [`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions). For ranked retrieval by topic, use [`particle_podcast_search_transcripts`](/mcp/tools/podcasts/podcast-search-transcripts).

## Inputs

| Field              | Type           | Required | Default | Description                                                                                                                                                                                                      |
| ------------------ | -------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `podcast_slug`     | string         | no       | —       | Podcast slug, internal ID, or numeric iTunes ID. Restrict to one podcast.                                                                                                                                        |
| `person_slug`      | string         | no       | —       | Person slug from `particle_person_resolve` or `particle_entity_resolve` (e.g. `"sam-altman"`). Episodes featuring or mentioning the person. Also accepts a bare entity slug for non-person entities like places. |
| `company_slug`     | string         | no       | —       | Company slug, domain, or ID. Resolves to the linked entity.                                                                                                                                                      |
| `role`             | string         | no       | —       | Role filter when `person_slug` or `company_slug` is set. One of: `guest`, `host`, `panelist`, `correspondent`, `mention`.                                                                                        |
| `published_after`  | string         | no       | —       | ISO 8601 date or date-time.                                                                                                                                                                                      |
| `published_before` | string         | no       | —       | ISO 8601 date or date-time.                                                                                                                                                                                      |
| `language`         | string         | no       | —       | ISO 639-1 language code (e.g. `"en"`).                                                                                                                                                                           |
| `has_transcript`   | boolean        | no       | `false` | When `true`, return only episodes with a completed transcript. `false` or omitted means no transcript filter.                                                                                                    |
| `min_duration`     | integer (≥0)   | no       | —       | Minimum episode duration in seconds.                                                                                                                                                                             |
| `max_duration`     | integer (≥0)   | no       | —       | Maximum episode duration in seconds.                                                                                                                                                                             |
| `limit`            | integer (1–50) | no       | 10      | Episodes per page.                                                                                                                                                                                               |
| `cursor`           | string         | no       | —       | Opaque pagination cursor.                                                                                                                                                                                        |

## Output

A markdown document with `## Episodes (N)` and one `### Episode title` section per episode. Each section carries bulleted KV rows: `- **Podcast:**`, `- **Published:**`, `- **Episode slug:**`, `- **Duration:**`, `- **Counts:**` (segments / clips / entities), and `- **Speakers:**`. The Speakers row is a comma-separated list with up to 6 names; entries with linked entities render as `Name (entity_slug)`. When more pages exist, a horizontal rule and a `**Cursor:** <value>` line are appended; pass that value back as `cursor` to fetch the next page.

Sample (`podcast_slug="6-minute-english", limit=2`):

```markdown theme={"dark"}
## Episodes (2)

### Should we eat ultra-processed food?

- **Podcast:** 6 Minute English
- **Published:** 2026-04-30
- **Episode slug:** should-we-eat-ultra-processed-food
- **Duration:** 402s
- **Counts:** 12 segments, 0 clips, 5 entities
- **Speakers:** Hannah Gelbart (hannah-gelbart), Pippa, speaker_2, speaker_3, Phil, Annabel Rackham (annabel-rackham)

### Why are we all so stressed?

- **Podcast:** 6 Minute English
- **Published:** 2026-04-23
- **Episode slug:** why-are-we-all-so-stressed
- **Duration:** 402s
- **Counts:** 9 segments, 0 clips, 4 entities
- **Speakers:** Iqra Farooq, Neil, Becca, Claudia Hammond (claudia-hammond)
---

**Cursor:** r.4gfFC6
```

The string after `- **Episode slug:**` is what you pass back as `episode_slug` to [`particle_podcast_get_episode`](/mcp/tools/podcasts/podcast-get-episode) or [`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions).

## Example

```text theme={"dark"}
Agent calls: particle_podcast_list_episodes {
  "person_slug": "marc-andreessen",
  "role": "guest",
  "published_after": "2025-01-01",
  "has_transcript": true,
  "limit": 20
}
```

## Related

* REST equivalent: [`GET /v1/podcasts/episodes`](/podcasts/episodes).
* For per-episode dialogue, drill into [`particle_podcast_get_episode`](/mcp/tools/podcasts/podcast-get-episode) or [`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions) with the returned `episode_slug`.
