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

# List podcast persons

> [OpenAPI JSON Spec](/docs/output/v1_other_podcast_persons_get.json)
The person registry that `/podcast/transcripts` links speakers to.
`person_id` here is the exact value a transcript's
`resolved_speakers` carries, so this endpoint turns a voice into a
profile. A `tw-`/`ac-` prefix means the curated import already had
them; `pc_` means speaker resolution created the entry.
`name` searches aliases as well as the display name, so a name
copied out of a transcript — where it may be misheard — still finds
the person.
`tags` is not written by speaker resolution; it exists for labels
maintained outside this pipeline, so empty means "not labeled".
Every filter is optional; results are ordered by how often speaker
resolution has landed on the person, most-seen first.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/other/podcast/persons
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Welcome to Arrays!


    Arrays is a unified financial data layer for both financial institutions and
    retail users, delivering comprehensive market data across crypto and equity
    markets. Our datasets cover fundamentals, ETFs, options, crypto, and more.


    Visit [arrays.org](https://arrays.org) to request an API key and start your
    free trial. You can explore our full API offerings in the documentation
    below.


    For any questions regarding APIs or pricing, please contact
    support@arrays.org.
  title: Arrays API
  version: '1.0'
servers:
  - url: https://data-tools.prd.arrays.org/api
security: []
paths:
  /v1/other/podcast/persons:
    get:
      tags:
        - Other
      summary: List podcast persons
      description: |-
        [OpenAPI JSON Spec](/docs/output/v1_other_podcast_persons_get.json)
        The person registry that `/podcast/transcripts` links speakers to.
        `person_id` here is the exact value a transcript's
        `resolved_speakers` carries, so this endpoint turns a voice into a
        profile. A `tw-`/`ac-` prefix means the curated import already had
        them; `pc_` means speaker resolution created the entry.
        `name` searches aliases as well as the display name, so a name
        copied out of a transcript — where it may be misheard — still finds
        the person.
        `tags` is not written by speaker resolution; it exists for labels
        maintained outside this pipeline, so empty means "not labeled".
        Every filter is optional; results are ordered by how often speaker
        resolution has landed on the person, most-seen first.
      parameters:
        - description: Name, case-insensitive, matches display name or an alias
          in: query
          name: name
          schema:
            type: string
        - description: Exact person id, as it appears in resolved_speakers
          in: query
          name: person_id
          schema:
            type: string
        - description: Only people speaker resolution created (pc_ prefix)
          in: query
          name: created_by_pipeline
          schema:
            type: boolean
        - description: Max rows, 1-200 (default 10)
          in: query
          name: limit
          schema:
            type: integer
        - description: Rows to skip (default 0)
          in: query
          name: offset
          schema:
            type: integer
      responses:
        '200':
          description: Persons
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/model.PodcastPerson'
                        type: array
                    type: object
        '400':
          description: Invalid parameters
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
      security:
        - ApiKeyAuth: []
components:
  schemas:
    model.APIResponse:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/model.APIError'
        metadata: {}
        pagination: {}
        request_id:
          type: string
        success:
          type: boolean
      type: object
    model.PodcastPerson:
      properties:
        affiliation:
          type: string
        aliases:
          description: |-
            Aliases are other spellings of the same person, mostly the forms a
            transcriber produced. They are searchable through the name filter.
          items:
            type: string
          type: array
        display_name:
          type: string
        occurrences:
          description: |-
            Occurrences is how many times speaker resolution has landed on this
            person. One may be a mishearing that looked plausible; twenty is a
            recurring host.
          type: integer
        person_id:
          description: >-
            PersonID is the value a transcript's resolved_speakers carries. A
            tw-/ac-

            prefix means the curated import already had them; pc_ means speaker

            resolution created the entry.
          type: string
        position:
          description: |-
            Position and Affiliation are the job and the employer, kept apart so
            "CEO" and "ARK Invest" can be read separately.
          type: string
        source_url:
          description: >-
            SourceURL is where this record came from. An auto-created person
            must

            have one; when the web could cite no page it is the episode they
            spoke on.
          type: string
        tags:
          description: >-
            Tags classify the person (e.g. fund_manager). Speaker resolution
            does not

            write this — it exists for labels maintained outside this pipeline —
            so an

            empty value means "not labeled", not "failed to label".
          items:
            type: string
          type: array
        twitter_handle:
          type: string
        twitter_id:
          description: |-
            TwitterID is the stable identifier the registry deduplicates on. The
            handle changes; this does not.
          type: string
      type: object
    model.APIError:
      properties:
        code:
          example: RESOURCE_NOT_FOUND
          type: string
        details:
          items:
            $ref: '#/components/schemas/model.APIErrorDetail'
          type: array
        docs_url:
          type: string
        examples:
          items:
            type: string
          type: array
        hint:
          type: string
        message:
          example: The requested resource was not found.
          type: string
        suggestions:
          items:
            type: string
          type: array
      type: object
    model.APIErrorDetail:
      properties:
        field:
          type: string
        got:
          type: string
        reason:
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: 'API Key authentication. Example: "your-api-key-here"'
      in: header
      name: X-API-Key
      type: apiKey

````