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

# List podcasts a guest could plausibly appear on next

> Returns shows the person has NOT appeared on, ranked by how related they are to the shows that booked the person as a guest — the pitch list. Seeds count once per publisher (an outlet's sibling feeds are one venue) and correspondent segments for the person's own newsroom do not seed it. Each row carries the podcast, a score in (0,1), a band (strong/moderate/weak), and with include=via the person's own shows that led to the recommendation, so a pitch can cite them ('hosts of X and Y book guests like you'). Circuit regulars are discounted upstream so the list is about fit, not fame. Recommendations are derived from each show's precomputed related set (GET /v1/podcasts/{id}/related); a person with no guest or panelist bookings on record (host and correspondent appearances do not seed the list), or whose shows have no computed related set yet, gets an empty page. For the shows a person has already been on, use GET /v1/podcasts/guests/{id}/podcasts.



## OpenAPI

````yaml /openapi.json get /v1/podcasts/guests/{id}/recommendations/podcasts
openapi: 3.1.0
info:
  description: Public API for Particle — news intelligence, financial data, and analysis.
  title: Particle API
  version: 0.1.0
  x-guidance: >-
    Podcast, people, company and topic intelligence. Authenticate with a pp_ API
    key (X-API-Key header) or pay per request with x402: a keyless call to a
    billable endpoint returns 402 with the payment requirements in the
    PAYMENT-REQUIRED header; sign the USDC transfer and repeat the request with
    PAYMENT-SIGNATURE. Start with GET /v1/podcasts/search?q=<show name>; the
    slugs in responses are the inputs to the other endpoints. Docs:
    https://docs.particle.pro; setup playbook:
    https://api.particle.pro/agents.md; endpoint and tool map with prices:
    https://api.particle.pro/llms.txt; credential recipe:
    https://api.particle.pro/auth.md.
servers:
  - url: https://api.particle.pro
security:
  - ApiKeyHeader: []
  - BearerAuth: []
paths:
  /v1/podcasts/guests/{id}/recommendations/podcasts:
    get:
      tags:
        - Podcast Guests
        - tier:standard
      summary: List podcasts a guest could plausibly appear on next
      description: >-
        Returns shows the person has NOT appeared on, ranked by how related they
        are to the shows that booked the person as a guest — the pitch list.
        Seeds count once per publisher (an outlet's sibling feeds are one venue)
        and correspondent segments for the person's own newsroom do not seed it.
        Each row carries the podcast, a score in (0,1), a band
        (strong/moderate/weak), and with include=via the person's own shows that
        led to the recommendation, so a pitch can cite them ('hosts of X and Y
        book guests like you'). Circuit regulars are discounted upstream so the
        list is about fit, not fame. Recommendations are derived from each
        show's precomputed related set (GET /v1/podcasts/{id}/related); a person
        with no guest or panelist bookings on record (host and correspondent
        appearances do not seed the list), or whose shows have no computed
        related set yet, gets an empty page. For the shows a person has already
        been on, use GET /v1/podcasts/guests/{id}/podcasts.
      operationId: list-podcast-guest-recommended-podcasts
      parameters:
        - description: Results per page
          explode: false
          in: query
          name: limit
          schema:
            default: 25
            description: Results per page
            format: int64
            maximum: 100
            minimum: 1
            type: integer
        - description: Opaque pagination cursor from previous response
          explode: false
          in: query
          name: cursor
          schema:
            description: Opaque pagination cursor from previous response
            type: string
        - description: >-
            Person identifier — person slug (recommended), knowledge-graph
            entity slug, or encoded UUID
          in: path
          name: id
          required: true
          schema:
            description: >-
              Person identifier — person slug (recommended), knowledge-graph
              entity slug, or encoded UUID
            type: string
        - description: >-
            Optional response sections. Pass include=via to attach, for each
            recommendation, the person's own shows that led to it — the venues
            to cite when pitching.
          explode: false
          in: query
          name: include
          schema:
            description: >-
              Optional response sections. Pass include=via to attach, for each
              recommendation, the person's own shows that led to it — the venues
              to cite when pitching.
            items:
              enum:
                - via
              type: string
            type:
              - array
              - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageRecommendedPodcast'
          description: OK
        '402':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/PlatformError'
          description: >-
            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:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/PlatformError'
          description: Error
      x-codeSamples:
        - label: cURL
          lang: curl
          source: |-
            curl -H "X-API-Key: $PARTICLE_API_KEY" \
              "https://api.particle.pro/v1/podcasts/guests/{id}/recommendations/podcasts?limit=25"
components:
  schemas:
    PageRecommendedPodcast:
      additionalProperties: false
      properties:
        cursor:
          description: Pass to next request for more results
          type: string
        data:
          description: List of results
          items:
            $ref: '#/components/schemas/RecommendedPodcast'
          type:
            - array
            - 'null'
        has_more:
          description: Whether more results exist
          type: boolean
      required:
        - data
        - has_more
      type: object
    PlatformError:
      additionalProperties: false
      properties:
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        error_code:
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        resolve:
          $ref: '#/components/schemas/ErrorResolve'
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    RecommendedPodcast:
      additionalProperties: false
      properties:
        band:
          description: >-
            Coarse class of the score; branch on this rather than on exact
            thresholds.
          enum:
            - strong
            - moderate
            - weak
          type: string
        podcast:
          $ref: '#/components/schemas/PodcastCompact'
          description: The recommended podcast.
        score:
          description: >-
            Strength of the recommendation in (0,1): the seed shows' relatedness
            to this one, compounded across the seeds that list it. For a guest
            the seeds are the shows that booked them, counted once per
            publisher; for a company the shows it already advertises on,
            weighted by how much it advertises there.
          format: double
          type: number
        via:
          description: >-
            The seed shows that led to this recommendation, strongest first: the
            person's own shows, or the shows the company already buys. The
            reason to cite when explaining the fit.
          items:
            $ref: '#/components/schemas/PodcastCompact'
          type:
            - array
            - 'null'
      required:
        - podcast
        - score
        - band
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    ErrorResolve:
      additionalProperties: false
      properties:
        action:
          type: string
        endpoint:
          type: string
        message:
          type: string
        method:
          type: string
        url:
          type: string
      required:
        - message
      type: object
    PodcastCompact:
      additionalProperties: false
      properties:
        best_rank:
          $ref: '#/components/schemas/PodcastRankingHandle'
          description: >-
            The single best (lowest-numbered) chart position this podcast
            currently holds across all charts. Omitted when the podcast holds no
            current chart appearances, and on endpoints that do not attach it.
            Reading a full chart (with country/category/source filters and
            history) remains premium; a single show's own placement is available
            on every plan.
        id:
          description: Podcast ID
          type: string
        image_url:
          description: Cover image URL
          type: string
        popularity:
          description: >-
            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, and on
            endpoints that build this resource from a projection rather than the
            full podcast row.
          format: double
          type: number
        publisher:
          $ref: '#/components/schemas/PodcastPublisherCompact'
          description: >-
            Publisher (network) attributed to this podcast. Present only when
            the embedding endpoint preloads publisher attribution and the
            podcast's publisher is known.
        slug:
          description: Human-readable slug identifier
          type: string
        title:
          description: Podcast title
          type: string
      required:
        - id
        - title
      type: object
    PodcastRankingHandle:
      additionalProperties: false
      properties:
        captured_at:
          format: date-time
          type: string
        category_slug:
          type: string
        chart_type:
          enum:
            - top_podcasts
          type: string
        country:
          type: string
        rank:
          format: int64
          type: integer
        source:
          enum:
            - apple
            - spotify
          type: string
      required:
        - source
        - chart_type
        - rank
        - captured_at
      type: object
    PodcastPublisherCompact:
      additionalProperties: false
      properties:
        id:
          description: Publisher ID
          type: string
        name:
          description: Publisher name
          type: string
        slug:
          description: >-
            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).
          type: string
      required:
        - id
        - name
      type: object
  securitySchemes:
    ApiKeyHeader:
      description: Pass your API key in the X-API-Key header (recommended).
      in: header
      name: X-API-Key
      type: apiKey
    BearerAuth:
      description: Pass your API key as a Bearer token in the Authorization header.
      scheme: bearer
      type: http

````