> ## 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 a podcast's guests in an occupation or field

> Ranks the guests and panelists a show booked who are listed under one occupation or field of research, by their appearances on the show, all time unless since or until narrows it: the people behind one of the codes GET /v1/podcasts/{id}/guests/expertise counts, and every other code and level too, including SOC groups and everyday names such as doctors. Appearances follow that profile's rules (settled links, an analyzed appearance, and none whose analysis doubts the guest is the person linked), so the guests' appearances add up to the profile's count for the code; this list is current, while the profile is rebuilt at most once a day, so the two can differ until it is. The {code} segment accepts a code, slug, or title from GET /v1/people/occupations or GET /v1/people/fields; a value both standards name resolves to the occupation, and the response's code says which it resolved to. For the people in an occupation across every show, use GET /v1/people/occupations/{code}/guests.



## OpenAPI

````yaml /openapi.json get /v1/podcasts/{id}/guests/expertise/{code}
openapi: 3.1.0
info:
  contact:
    email: api@particle.pro
    name: Particle
    url: https://particle.pro
  description: >-
    Podcast API for transcripts, mentions and sponsorship data. 140,000+
    podcasts transcribed, diarized and speaker-identified within minutes of
    airing, about 28,000 episodes a day. Search transcripts by keyword or
    meaning, track brand and company mentions with alerts, pull sponsor and
    ad-read data and rankings. REST API plus an MCP server for AI agents. Also
    company, people and topic intelligence.
  summary: >-
    Podcast API: transcripts, mentions, sponsors and rankings for 140,000+
    podcasts.
  termsOfService: https://particle.pro/legal/tos-api
  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.
  x-logo:
    url: https://particle.pro/favicon.svg
servers:
  - url: https://api.particle.pro
security:
  - ApiKeyHeader: []
  - BearerAuth: []
externalDocs:
  url: https://docs.particle.pro
paths:
  /v1/podcasts/{id}/guests/expertise/{code}:
    get:
      tags:
        - Podcast Guests
        - tier:standard
      summary: List a podcast's guests in an occupation or field
      description: >-
        Ranks the guests and panelists a show booked who are listed under one
        occupation or field of research, by their appearances on the show, all
        time unless since or until narrows it: the people behind one of the
        codes GET /v1/podcasts/{id}/guests/expertise counts, and every other
        code and level too, including SOC groups and everyday names such as
        doctors. Appearances follow that profile's rules (settled links, an
        analyzed appearance, and none whose analysis doubts the guest is the
        person linked), so the guests' appearances add up to the profile's count
        for the code; this list is current, while the profile is rebuilt at most
        once a day, so the two can differ until it is. The {code} segment
        accepts a code, slug, or title from GET /v1/people/occupations or GET
        /v1/people/fields; a value both standards name resolves to the
        occupation, and the response's code says which it resolved to. For the
        people in an occupation across every show, use GET
        /v1/people/occupations/{code}/guests.
      operationId: list-podcast-expertise-guests
      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: Podcast slug, internal ID, or numeric iTunes ID.
          in: path
          name: id
          required: true
          schema:
            description: Podcast slug, internal ID, or numeric iTunes ID.
            type: string
        - description: >-
            An occupation or field of research: a SOC 2018 or ISCO-08 code,
            slug, or title, a SOC group or everyday name such as doctors, or an
            ANZSRC 2020 field's code, slug, or title (political-science). A
            value both standards name resolves to the occupation, so reach a
            field whose code an ISCO group shares (3211) by its slug.
          in: path
          name: code
          required: true
          schema:
            description: >-
              An occupation or field of research: a SOC 2018 or ISCO-08 code,
              slug, or title, a SOC group or everyday name such as doctors, or
              an ANZSRC 2020 field's code, slug, or title (political-science). A
              value both standards name resolves to the occupation, so reach a
              field whose code an ISCO group shares (3211) by its slug.
            maxLength: 200
            type: string
        - description: >-
            Only appearances on episodes published on or after this date. Omit
            to count from the show's first episode, as GET
            /v1/podcasts/{id}/guests/expertise does.
          explode: false
          in: query
          name: since
          schema:
            description: >-
              Only appearances on episodes published on or after this date. Omit
              to count from the show's first episode, as GET
              /v1/podcasts/{id}/guests/expertise does.
            examples:
              - '2026-01-01'
            type: string
        - description: >-
            Only appearances on episodes published on or before this date; a
            bare date includes that whole day. Defaults to now.
          explode: false
          in: query
          name: until
          schema:
            description: >-
              Only appearances on episodes published on or before this date; a
              bare date includes that whole day. Defaults to now.
            examples:
              - '2026-09-30'
            type: string
        - description: >-
            Only guests whose standing in their expertise is recognized this
            way: established (credentialed or widely recognized),
            self_described, or unverified.
          explode: false
          in: query
          name: standing
          schema:
            description: >-
              Only guests whose standing in their expertise is recognized this
              way: established (credentialed or widely recognized),
              self_described, or unverified.
            enum:
              - established
              - self_described
              - unverified
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PodcastExpertiseGuests'
          description: OK
        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/{id}/guests/expertise/{code}?limit=25"
components:
  schemas:
    PodcastExpertiseGuests:
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/ExpertiseCode'
          description: >-
            The occupation or field of research the {code} segment resolved to.
            A value both standards share resolves to the occupation: 3211 is
            ISCO-08 3211, and FoR 3211 is reached by its slug.
        cursor:
          description: Pass to next request for more results
          type: string
        data:
          description: List of results
          items:
            $ref: '#/components/schemas/PodcastExpertiseGuest'
          type: array
        has_more:
          description: Whether more results exist
          type: boolean
      required:
        - code
        - 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
    ExpertiseCode:
      additionalProperties: false
      properties:
        code:
          description: >-
            The standard's own notation, such as 29-1212 (SOC), 2212 (ISCO), or
            320101 (FoR).
          type: string
        group:
          description: >-
            Set for a code that stands for several detailed SOC 2018
            occupations: a SOC minor group (such as 29-1000 Healthcare
            Diagnosing or Treating Practitioners), a broad group (such as
            29-1210 Physicians), or an alias, an everyday name such as doctors
            (physicians and surgeons). Every occupation filter accepts one and
            matches a speaker listed under any of its occupations.
          enum:
            - minor
            - broad
            - alias
          type: string
        level:
          description: >-
            Depth in the standard's official hierarchy: SOC major group 1 and
            detailed occupation 2; FoR division 1, group 2, field 3; ISCO-08
            unit group 4 and minor group 3. ISCO-08 codes are the groups SOC
            maps to, listed flat without the standard's upper levels. Omitted
            for a SOC group or alias (see group).
          format: int64
          type: integer
        parent_code:
          description: >-
            The standard's official parent code; omitted at the top level and
            for every ISCO-08 code, since ISCO-08 is listed without its upper
            levels. A SOC broad group's parent is its minor group and a minor
            group's its major group, but a detailed SOC occupation's official
            parent is its major group (29-1211 has parent_code 29-0000), so it
            can differ from parent, which is the browse parent one level up
            (29-1210).
          type: string
        slug:
          description: The title as a URL segment, such as cardiologists.
          type: string
        standard:
          description: >-
            The standard the code belongs to: soc_2018 (US Standard Occupational
            Classification), isco_08 (the ILO's International Standard
            Classification of Occupations), or anzsrc_for_2020 (ANZSRC Fields of
            Research).
          enum:
            - soc_2018
            - isco_08
            - anzsrc_for_2020
          type: string
        title:
          description: The standard's official title, such as Cardiologists.
          type: string
      required:
        - standard
        - code
        - title
        - slug
      type: object
    PodcastExpertiseGuest:
      additionalProperties: false
      properties:
        appearances:
          description: >-
            The guest's analyzed guest and panelist appearances on the show in
            the window, one per episode. Across the guests they add up to the
            code's appearances in GET /v1/podcasts/{id}/guests/expertise, which
            is rebuilt at most once a day, so the two can differ until it is.
          format: int64
          type: integer
        last_appeared_at:
          description: Publication date of the latest of those episodes.
          format: date-time
          type: string
        person:
          $ref: '#/components/schemas/PersonCompact'
        rank:
          description: >-
            Position among the show's guests under the code, from 1: most
            appearances first.
          format: int64
          type: integer
      required:
        - rank
        - person
        - appearances
        - last_appeared_at
      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
    PersonCompact:
      additionalProperties: false
      properties:
        description:
          description: Short description (e.g. current role), when known.
          type: string
        id:
          description: Encoded Person identifier
          type: string
        image_url:
          description: Canonical headshot URL when one is known for the Person
          type: string
        name:
          description: Display name
          type: string
        slug:
          description: >-
            Stable human-readable handle (e.g. 'satya-nadella'). Recommended
            canonical identifier on every Particle Pro person surface.
          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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.