> ## 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_guests

> Browse podcast guests across the catalog — the directory by lifetime appearances, or who's trending right now.

Browse podcast guests across the catalog, in two opinionated modes:

* **`directory`** (default): the guest directory ranked by lifetime appearances (guests with 2+ appearances).
* **`trends`**: who's making the rounds right now — guests with appearances on 2+ distinct podcasts in the last 30 days, which surfaces cross-show press tours rather than show regulars. The press-tour shape is enforced by several baked filters: every in-window appearance must be on a different podcast (no stacking repeats on one show), each appearance needs 5+ minutes of identified speaking time, mononymous catch-all people are excluded, and the in-window rate must be at least a 2× spike over the guest's lifetime baseline. A guest matching the headline criteria but failing any of these will not appear.

`podcast_slug` switches the listing from the corpus to one show's **guest roster**: every guest who has appeared on that podcast, ranked by appearances on the show — with no lifetime-appearance floor, so one-off guests are included. It only combines with the default `directory` mode (`trends` is corpus-wide and has no podcast filter — combining them is an `invalid_input` error).

`topic_slug` narrows either corpus mode to guests appearing on episodes about that topic (it is ignored when `podcast_slug` is set). Guest identifiers **are** person handles — usually the canonical person slug, falling back to the encoded person ID when a slug hasn't been backfilled yet (both forms are accepted everywhere a person is taken). Feed them into [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest) for the appearance profile or [`particle_person_get`](/mcp/tools/people/person-get) for the person profile.

<Note>
  This surface is deliberately minimal — a podcast filter (`podcast_slug` for one show's roster), a topic filter, and pagination. The directory uses lifetime appearance counts (floor of 2 appearances); trends uses a 30-day window with a 2+ distinct-podcast bar. The full filter surface lives on the REST API.
</Note>

## Inputs

| Field          | Type           | Required | Default     | Description                                                                                                                                                                                       |
| -------------- | -------------- | -------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`         | string         | no       | `directory` | What to return: `directory` (lifetime appearances) or `trends` (last-30-day cross-show press tours).                                                                                              |
| `podcast_slug` | string         | no       | —           | Return one show's guest roster (every guest who has appeared on the podcast, ranked by on-show appearances, one-offs included). Slug from `particle_podcast_resolve`. Directory mode only.        |
| `topic_slug`   | string         | no       | —           | Restrict to guests with appearances on episodes classified under this topic (slug from `particle_topic_browse`, e.g. `"technology/artificial-intelligence"`). Ignored when `podcast_slug` is set. |
| `limit`        | integer (1–50) | no       | 20          | Guests per page.                                                                                                                                                                                  |
| `cursor`       | string         | no       | —           | Opaque pagination cursor.                                                                                                                                                                         |

## Output

A markdown document with `## Podcast guests — <mode> (N)` (or `## Guest roster — <podcast_slug> (N)` when `podcast_slug` is set) and a flat bullet list — one bullet per guest, formatted `**Name** (slug) — <stats>`. In `directory` mode `<stats>` is `N appearances across M podcasts, last YYYY-MM-DD`; in `trends` mode it is `N podcasts in the last 30 days, M lifetime appearances, last YYYY-MM-DD`. The parenthesized identifier is the canonical person slug when one has been backfilled, otherwise the encoded person ID — both forms are accepted everywhere a person is taken (guest\_slug, person\_slug, particle\_person\_get). When more pages exist, a horizontal rule and a `**Cursor:** <value>` line are appended.

Sample (`mode=trends`, `limit=3`):

```markdown theme={"dark"}
## Podcast guests — trends (3)

- **Sam Altman** (sam-altman) — 4 podcasts in the last 30 days, 38 lifetime appearances, last 2026-05-28
- **Cathie Wood** (cathie-wood) — 3 podcasts in the last 30 days, 21 lifetime appearances, last 2026-05-26
- **Marc Andreessen** (marc-andreessen) — 2 podcasts in the last 30 days, 15 lifetime appearances, last 2026-05-22
```

## Example

```text theme={"dark"}
Agent calls: particle_podcast_list_guests {
  "mode": "directory",
  "topic_slug": "technology/artificial-intelligence",
  "limit": 25
}
```

## Related

* REST equivalent: [`GET /v1/podcasts/guests`](/podcasts/guests) for `mode="directory"`; [`GET /v1/podcasts/guests/trends`](/podcasts/guests#trending-guests) for `mode="trends"`; [`GET /v1/podcasts/{id}/guests`](/podcasts/guests) for `podcast_slug` rosters.
* For a single guest's appearance profile, use [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest).
* Browse the topic taxonomy with [`particle_topic_browse`](/mcp/tools/topics/topic-browse).
