---
title: "Find experts"
method: GET
path: "/v1/people/expertise"
tags: ["People", "tier:standard"]
---

# Find experts

`GET /v1/people/expertise`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/people/expertise`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Ranks the people listed under an occupation or field of research, most likely first, with their expertise as GET /v1/people/{id}/expertise describes it. Narrow by standing, seniority, whether they still practice the occupation, how they know their field, a second field, or their employer. Occupations and fields accept a code, slug, or title (browse them with GET /v1/people/occupations and GET /v1/people/fields). Hosts, guests, panelists, and correspondents are read once linked to a podcast appearance.

## Query parameters

- `occupation` string: Rank people listed under this occupation: a SOC 2018 or ISCO-08 code (29-1212), slug (cardiologists), or title (Cardiologists), or a SOC group or everyday name, such as physicians (29-1210) or doctors, which matches every occupation under it. A word with no occupation filters by the field of research or capacity it names (oncologists, founders); a capacity narrows but cannot rank. Browse values with GET /v1/people/occupations. A name both standards share means the SOC occupation. Either occupation or field is required.
- `field` string: Keep people listed under this ANZSRC 2020 field of research: a code (320101), slug, or title. Browse values with GET /v1/people/fields. Without an occupation, people are ranked under the field.
- `standing` 'established' | 'self_described' | 'unverified': Keep people whose standing is recognized this way (see standing on GET /v1/people/{id}/expertise).
- `seniority` 'professional' | 'senior' | 'distinguished': Keep people at this seniority or above.
- `practicing` boolean: Keep people who still work in the occupation, rather than having worked in it. Needs a SOC 2018 occupation or group.
- `capacity` 'researcher' | 'licensed_professional' | 'practitioner' | 'executive_founder' | 'public_official' | 'journalist_analyst' | 'creator_entertainer' | 'athlete_coach' | 'clergy' | 'firsthand' | 'layperson': Keep people who know their field in this capacity.
- `employer` string: Keep people whose organization is this company: its slug (microsoft-corporation), domain (microsoft.com), or ID.
- `limit` integer: Results per page.
- `cursor` string: Opaque cursor from the previous page.

## Response `200`

OK

- PagePersonExpert
  - `cursor` string: Pass to next request for more results
  - `data` PersonExpert[], nullable, required: List of results
    - `expertise` PersonExpertise, required
      - `capacity` string: How the speaker knows their field: researcher, licensed_professional, practitioner, executive_founder, public_official, journalist_analyst, creator_entertainer, athlete_coach, clergy, firsthand, or layperson. Omitted when no single capacity is likely.
      - `career_start_year` integer: The year of the earliest dated role or degree in the speaker's records.
      - `credential` string: A sentence from the speaker's records, verbatim, that states their credentials.
      - `experience` 'at_least_10_years' | 'at_least_25_years': How long the speaker's career spans, from the earliest dated role or degree in their records or as the records state it; omitted under ten years or when the records do not say.
      - `fields` ExpertiseCode[], nullable: The ANZSRC 2020 fields of research the speaker is listed under, most specific first (see GET /v1/people/fields).
        - `code` string, required: The standard's own notation, such as 29-1212 (SOC), 2212 (ISCO), or 320101 (FoR).
        - `group` 'minor' | 'broad' | 'alias': 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.
        - `level` integer: 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).
        - `parent_code` string: 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).
        - `slug` string, required: The title as a URL segment, such as cardiologists.
        - `standard` 'soc_2018' | 'isco_08' | 'anzsrc_for_2020', required: 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).
        - `title` string, required: The standard's official title, such as Cardiologists.
      - `occupations` PersonOccupation[], nullable: The SOC 2018 occupations, then the ISCO-08 groups, the speaker is listed under, most specific first. Filter by any of them with its code, slug, or title (see GET /v1/people/occupations).
        - `code` string, required: The standard's own notation, such as 29-1212 (SOC), 2212 (ISCO), or 320101 (FoR).
        - `established` boolean: Whether others conferred the speaker's standing in this occupation, such as a licence or an appointment, rather than the speaker describing it. Present for detailed SOC 2018 occupations only.
        - `group` 'minor' | 'broad' | 'alias': 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.
        - `level` integer: 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).
        - `parent_code` string: 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).
        - `practicing` boolean: Whether the speaker still works in this occupation, as opposed to having worked in it. Present for detailed SOC 2018 occupations only.
        - `slug` string, required: The title as a URL segment, such as cardiologists.
        - `standard` 'soc_2018' | 'isco_08' | 'anzsrc_for_2020', required: 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).
        - `title` string, required: The standard's official title, such as Cardiologists.
      - `organization` PersonOrganization
        - `company` CompanyCompact
          - `description` string: Short company description, when known.
          - `domain` string: Primary website domain (e.g. 'nvidia.com'), when known.
          - `id` string, required: Company identifier (domain, slug, or encoded ID)
          - `image_url` string: Company logo or image URL
          - `name` string, required: Company name
          - `slug` string: Stable human-readable handle (the linked knowledge-graph slug, e.g. 'nvidia'), when known. Companies have no slug of their own; prefer this for display and pass it (or id) to /v1/companies.
          - `ticker` string: Primary stock ticker symbol, when listed.
        - `kind` string: What kind of organization it is: university, research_institute, government, military, think_tank, financial_firm, company, media_outlet, own_company, nonprofit, religious_organization, or sports_team.
        - `name` string, required: The organization's name as the speaker's records give it.
      - `seniority` 'professional' | 'senior' | 'distinguished': The highest level the speaker has reached in their field; omitted below professional.
      - `standing` 'established' | 'self_described' | 'unverified', required: How the speaker's standing is recognized: established (conferred by others: a credential, a position, recognition in the field), self_described (claimed by the speaker), or unverified (the records do not say, which never means the speaker is not an expert).
    - `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.
  - `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)
