---
title: "List guests a podcast could plausibly book"
method: GET
path: "/v1/podcasts/{id}/recommendations/guests"
tags: ["Podcast Guests", "tier:standard"]
---

# List guests a podcast could plausibly book

`GET /v1/podcasts/{id}/recommendations/guests`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/podcasts/{id}/recommendations/guests`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Returns people who have guested on the podcast's related shows but never on this one, ranked by how related those venues are and how many distinct publishers among them chose the person — a booking pipeline, not a prediction. Recurring on any one show does not count, and a publisher's sibling feeds count once, so an outlet's own correspondents do not outrank guests several independent shows chose. Guests who appear everywhere (circuit regulars) are excluded, since recommending them says nothing about this show. Each row carries the person, a score, a band, how many related shows booked them, and with include=via which shows. For the show's existing roster use GET /v1/podcasts/{id}/guests; for shows like this one use GET /v1/podcasts/{id}/related.

## Path parameters

- `id` string, required: Podcast slug (e.g., 'all-in'), internal ID, or numeric iTunes ID

## Query parameters

- `limit` integer: Results per page
- `cursor` string: Opaque pagination cursor from previous response
- `include` string[], nullable: Optional response sections. Pass include=via to attach, for each recommended guest, the related shows that booked them.

## Response `200`

OK

- PageRecommendedGuest
  - `cursor` string: Pass to next request for more results
  - `data` RecommendedGuest[], nullable, required: List of results
    - `band` 'strong' | 'moderate' | 'weak', required: Coarse class of the score.
    - `person` PersonCompact, required
      - `description` string: Short description (e.g. current role), when known.
      - `id` string, required: Encoded Person identifier
      - `image_url` string: Canonical headshot URL when one is known for the Person
      - `name` string, required: Display name
      - `slug` string: Stable human-readable handle (e.g. 'satya-nadella'). Recommended canonical identifier on every Particle Pro person surface.
    - `score` number, double, required: Strength of the recommendation in (0,1): how related the shows that booked this person are, counted once per publisher and damped for how widely the person already circulates. Recurring on any one show does not raise it, and circuit regulars who appear everywhere are excluded.
    - `shared_show_count` integer, required: How many of the show's related shows have booked this person.
    - `via` PodcastCompact[], nullable: The related shows that booked this person, strongest first.
      - `best_rank` PodcastRankingHandle
        - `captured_at` string, date-time, required
        - `category_slug` string
        - `chart_type` 'top_podcasts', required
        - `country` string
        - `rank` integer, required
        - `source` 'apple' | 'spotify', required
      - `id` string, required: Podcast ID
      - `image_url` string: Cover image URL
      - `popularity` number, double: Global popularity percentile in (0,1], a cume_dist ranking over all currently-charting podcasts (Apple Podcasts charts). Higher is more popular. Omitted when the podcast is not currently charting, on endpoints that build this resource from a projection rather than the full podcast row, and in episode stream, feed and archive payloads, which are stored and replayed: read it live from the podcast endpoints.
      - `publisher` PodcastPublisherCompact
        - `id` string, required: Publisher ID
        - `name` string, required: Publisher name
        - `slug` string: Human-readable slug identifier (e.g., 'goalhanger', 'iheartpodcasts'). When present, accepted in place of the ID anywhere a publisher reference is taken in the API. Occasionally absent on publishers whose name doesn't slugify (e.g., scripts not representable in ASCII URL slugs).
      - `slug` string: Human-readable slug identifier
      - `title` string, required: Podcast title
  - `has_more` boolean, required: Whether more results exist

## Other responses

- `402`: Payment Required. Read error_code. payment_required is the x402 path: either a keyless request being challenged — pay $0.03 in USDC per request (requirements in the PAYMENT-REQUIRED header) or send a pp_ API key — or a supplied payment that failed settlement (details in the PAYMENT-RESPONSE header; retry the same signature before signing a new one). See https://docs.particle.pro/x402. Any other code means the credential was accepted but does not cover this request (a plan or session gate such as premium_required or paid_plan_confirmation_required); its resolve says how to obtain access, and no payment header is sent.
- `default`: Error

---

[API](https://skmtc.dev/particle/apis/particle-api.md) · [All operations](https://skmtc.dev/particle/apis/particle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/particle/apis/particle-api/revisions/416ba82ab9d7?raw)
