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

# Speaker expertise

> Know who is talking. Podcast hosts, guests, panelists and correspondents have expertise profiles: what they do, what they know, how established and senior they are. Find credentialed experts, see who is being booked, and hear what they say about the companies and topics you follow.

A podcast line is only as useful as the person who said it. An analyst weighing
what was said about a drug launch needs to know whether it came from a practicing
cardiologist or from a host reading the headlines. A diligence team vetting a
commentator needs to know whether the credentials hold up. A fund tracking a
debate wants the economists and the industry analysts, not the panel of
generalists.

Particle reads the people who carry a podcast's conversation, its hosts, guests,
panelists and correspondents, and gives each one an **expertise profile**: their occupations, their fields
of knowledge, how established their standing is, how senior they are, whether they
still practice, and the credential that establishes it, quoted from the public
record. Every guest **appearance** is read too: was the guest speaking within their
field, was the appearance mainly promotional, and how did the show introduce them?

Those labels then work everywhere: as filters on episode lists, transcript search
and mentions, as rankings of who is being booked, and as a split of who is talking
about a company. And wherever a response names a speaker or a guest, it says what they
know, so you can tell who said a line without looking anyone up.

## For AI agents

<Warning>
  When a question restricts **who is speaking** by occupation, profession, credentials or
  industry ("doctors", "medical professionals", "economists", "people in finance", "lawyers",
  "analysts"), filter by expertise codes. Never rely on search wording.
</Warning>

1. **Resolve the words to codes first.** Call `particle_expertise_resolve` (free) with the
   words the question uses. Over REST, use `GET /v1/people/occupations?q=…` or
   `GET /v1/people/fields?q=…`. Pass `parent` to see a group's children. A broad code covers
   every code below it.
2. **Filter by the code.** Pass the code or slug as `guest_occupation` or `guest_field` on
   search, mentions, episode lists and the timeseries. On the guest directory and
   `particle_expertise_get`, use `occupation` or `field`. When credentials matter, add
   `guest_standing=established` or `guest_practicing=true`. Never put the profession in
   `semantic_search` or `keyword_search` to stand in for who is speaking.
3. **Retry on `unresolved_reference`; don't drop the filter.** The error names the parameter
   and suggests close codes. Resolve again and retry with a code it returns. A search without
   the filter answers a different question.
4. **Check each speaker before you attribute a line.**
   * Search, mentions and episode speakers list each identified speaker with their compact
     `expertise`: occupation codes, standing and seniority. In MCP that is a
     `**Speaker:** Name (slug, ROLE) — Title (code) · standing · seniority` row.
   * The `guest_` filters pick episodes, and on search segments, in which such a guest
     speaks. So results also carry host lines.
   * Timeseries counts with a `guest_` filter count episodes or keyword segments, not lines
     the experts spoke. Don't present them as what the experts said.

For "What risk factors do medical professionals talk about with GLP-1s?":

1. Resolve "physicians" or "cardiologists" to a code.
2. Search `semantic_search="risks and side effects of GLP-1 drugs"` with
   `guest_occupation=<code>` and `guest_standing=established`.
3. Quote only the lines whose speaker's `expertise` carries that code.

## What you can build

* **Expert sourcing.** Find practicing cardiologists, established energy analysts or
  distinguished economists, with the credential that backs each one. Use it for call
  lists, panels and expert-network outreach.
* **Signal by source.** Restrict transcript search, mentions and their trend lines to
  what credentialed people said. Hear what equity analysts say about Nvidia, apart from
  host chatter, or what cardiologists say about GLP-1 drugs.
* **Commentator diligence.** Check a speaker's standing, seniority and experience, and
  read the credential, before you cite them or book them.
* **Who is shaping a debate.** Rank the economists booked most this month, and the
  shows that book the most financial analysts.
* **Share of voice.** Split the conversation about a company or a topic by the
  professions doing the talking.

## Choosing the right endpoint

| You want… | Use this |
| - | - |
| People with an expertise profile, filtered by occupation, field, standing, seniority and more | [`GET /v1/people/expertise`](#find-experts) |
| One person's full profile | [`GET /v1/people/{id}/expertise`](#a-persons-profile) |
| The occupations and fields you can filter by | [`GET /v1/people/occupations`, `GET /v1/people/fields`](#occupations-and-fields) |
| The most-booked guests in an occupation or field | [`GET /v1/people/occupations/{code}/guests`](#who-is-being-booked) |
| The shows that book an occupation or field most | [`GET /v1/people/occupations/{code}/podcasts`](#who-is-being-booked) |
| Episodes with an expert guest | [`GET /v1/podcasts/episodes?guest_occupation=…`](#episodes-with-expert-guests) |
| What experts said about a topic | [`GET /v1/podcasts/episodes/search?semantic_search=…&guest_occupation=…`](#what-experts-said-about-a-topic) |
| What experts said about a company or person | [`GET /v1/podcasts/mentions?entity_id=…&guest_occupation=…`](#what-experts-said-about-a-company) |
| How often experts mention it, over time | [`GET /v1/podcasts/mentions/timeseries?entity_id=…&guest_occupation=…`](#what-experts-said-about-a-company) |
| Which professions talk about it most | [`GET /v1/podcasts/mentions/share-of-voice`](#share-of-voice) |
| The guests on one episode, and how each appearance reads | [`GET /v1/podcasts/episodes/{id}/expertise`](#an-episodes-guests) |
| Guests filtered by expertise | [`GET /v1/podcasts/guests?occupation=…`](#the-guest-directory) |
| The guest mix of one show | [`GET /v1/podcasts/{id}/guests/expertise`](#a-shows-guests) |
| Shows that book a kind of expert | [`GET /v1/podcasts?guest_occupation=…`](#a-shows-guests) |

## The data

### A person's expertise

| Field | What it tells you |
| - | - |
| `standing` | How the person's expertise is recognized. **`established`**: others confer it, as with a professorship, a medical license, a senior role at a known institution or a body of published work. **`self_described`**: the person presents themselves as an expert, but the public record doesn't confirm it. **`unverified`**: neither. A lower standing never means someone isn't an expert, only that the public record we found doesn't establish it. |
| `seniority` | `professional`, `senior` or `distinguished`: a working professional, someone with senior responsibility or a leading voice in the field. |
| `experience` | `at_least_10_years` or `at_least_25_years` in the field. |
| `career_start_year` | The year of the earliest dated role or degree in the person's records. |
| `capacity` | How the person knows their field: as a `researcher`, a `licensed_professional`, a `practitioner`, an `executive_founder`, a `public_official`, a `journalist_analyst`, or in other ways. |
| `occupations` | What they do, in the [SOC 2018](https://www.bls.gov/soc/2018/) occupation standard with its [ISCO-08](https://isco.ilo.org/) equivalents. A detailed SOC 2018 occupation carries `established` and `practicing`: whether the person's standing in that occupation is recognized, and whether they still work in it. Major groups, ISCO-08 equivalents and fields don't carry them. |
| `fields` | What they know, in the [ANZSRC 2020](https://www.abs.gov.au/statistics/classifications/australian-and-new-zealand-standard-research-classification-anzsrc) Fields of Research. |
| `organization` | Where the person works, when their records name an organization. It's the company the `employer` filter matches. |
| `credential` | The single strongest piece of evidence, quoted verbatim from the public record. |

Profiles are built from the public record: biographies, professional profiles,
encyclopedia entries and how shows introduce the person. A code is listed only when
we're confident it applies, so a profile names what someone demonstrably does rather
than everything they've touched. Fields the record doesn't support, such as
`organization` or `career_start_year`, are left out.

### A guest appearance

| Field | What it tells you |
| - | - |
| `in_field` | The guest spoke within their field on this episode: an economist discussing tariffs rather than their favorite restaurants. `false` means the read didn't confirm it, not that the guest spoke outside their field. |
| `promotional` | The appearance was mainly promotion, such as a book tour or a product launch. |
| `introduced_as` | How the episode introduced the guest, quoted from the show notes or the host's introduction. |

When we aren't confident that the person linked to an appearance is really the
person speaking, that appearance is left out of every expertise filter until the
link is settled. A namesake's appearances don't count toward someone's record.

### Beside every speaker

Search matches and mention episodes carry `speakers`: the identified people speaking in
their lines, matched to each line by name. Episode speakers
(`GET /v1/podcasts/episodes/{id}` and `/speakers`) and guest listings
(`GET /v1/podcasts/guests`, a show's roster and trends) carry the same compact
`expertise` on each person:

```json theme={"dark"}
{
  "name": "Robert Califf",
  "role": "GUEST",
  "person": { "slug": "robert-califf", "name": "Robert Califf" },
  "expertise": {
    "standing": "established",
    "seniority": "distinguished",
    "occupations": [ { "code": "29-1212", "title": "Cardiologists", "slug": "cardiologists", "standard": "soc_2018", "level": 2, "parent_code": "29-0000", "established": true, "practicing": false } ],
    "fields": [ { "code": "320101", "title": "Cardiology (incl. cardiovascular diseases)", "slug": "cardiology-incl-cardiovascular-diseases", "standard": "anzsrc_for_2020", "level": 3, "parent_code": "3201" } ]
  }
}
```

It lists up to three of the most specific SOC 2018 occupations and ANZSRC 2020 fields,
never a code beside its own parent, each ready to pass to `guest_occupation` or
`guest_field`. `expertise` is omitted when the person has no profile yet, when their
link is unsettled, when that appearance may describe someone else, or when the speaker
is in a role profiles don't cover, such as a moderator or a narrator. Hosts, guests,
panelists and correspondents carry theirs. The full profile is `GET /v1/people/{id}/expertise`.

## A person's profile

`GET /v1/people/{id}/expertise` returns one person's profile. `{id}` is a person's
slug or ID.

<CodeGroup>
  ```bash curl theme={"dark"}
  curl "https://api.particle.pro/v1/people/daron-acemoglu/expertise" \
    -H "X-API-Key: $PARTICLE_API_KEY"
  ```

  ```js JavaScript theme={"dark"}
  const res = await fetch(
    "https://api.particle.pro/v1/people/daron-acemoglu/expertise",
    { headers: { "X-API-Key": process.env.PARTICLE_API_KEY } },
  );
  const expertise = await res.json();
  ```

  ```python Python theme={"dark"}
  import os, requests

  expertise = requests.get(
      "https://api.particle.pro/v1/people/daron-acemoglu/expertise",
      headers={"X-API-Key": os.environ["PARTICLE_API_KEY"]},
  ).json()
  ```
</CodeGroup>

```json theme={"dark"}
{
  "standing": "established",
  "seniority": "distinguished",
  "experience": "at_least_25_years",
  "capacity": "researcher",
  "occupations": [
    { "standard": "soc_2018", "code": "19-3011", "title": "Economists", "slug": "economists",
      "level": 2, "parent_code": "19-0000", "established": true, "practicing": true },
    { "standard": "soc_2018", "code": "19-0000",
      "title": "Life, Physical, and Social Science Occupations", "level": 1 },
    { "standard": "isco_08", "code": "2631", "title": "Economists", "level": 4 }
  ],
  "fields": [
    { "standard": "anzsrc_for_2020", "code": "38", "title": "Economics", "level": 1 }
  ],
  "credential": "He received the John Bates Clark Medal in 2005 and the Nobel Memorial Prize in Economic Sciences in 2024."
}
```

## Find experts

`GET /v1/people/expertise` ranks the people listed under an occupation or a field,
most likely first, so every request names an `occupation` or a `field` (one without
either returns a 422). Narrow it with any of the other filters:

| Parameter | Keeps people who… |
| - | - |
| `occupation` | are listed under this occupation (a code, slug or title) |
| `field` | are listed under this field of research |
| `standing` | have this standing: `established`, `self_described` or `unverified` |
| `seniority` | are at least this senior: `professional`, `senior` or `distinguished` |
| `practicing` | still work in `occupation`, which must be a detailed SOC 2018 occupation; with a major group or a `field` it returns a 422 |
| `capacity` | know their field in this capacity, such as `practitioner` or `executive_founder` |
| `employer` | work for this company (slug, domain or ID) |

Practicing cardiologists with established standing:

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/people/expertise" \
  --data-urlencode "occupation=cardiologists" \
  --data-urlencode "standing=established" \
  --data-urlencode "practicing=true" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

The first results include Martha Gulati, Director of Preventive Cardiology at
Cedars-Sinai; Rachel Bond, System Director of Women's Heart Health; and Faraz Ahmad,
Associate Director of AI at Northwestern Medicine's Bluhm Cardiovascular Institute.
Each is someone who has spoken on a podcast, so you can follow them straight into
their appearances and what they said.

Established financial and investment analysts (`occupation=financial-and-investment-analysts&standing=established`)
start with sector specialists: Bloomberg Intelligence's analysts covering EMEA media and
telecom, and global fertilizer markets, and a Wells Fargo equity analyst covering
integrated oils and refiners. Distinguished economists (`occupation=economists&seniority=distinguished`)
start with Eric Hanushek of the Hoover Institution, Thomas Sowell, the Brookings
Institution's Martin Baily, a former chair of the Council of Economic Advisers, and
Alicia Munnell of Boston College's Center for Retirement Research.

## Occupations and fields

Every `occupation` and `field` parameter accepts a code, a slug or a title, such as
`19-3011`, `economists` or `Economists`. Browse the standards to find the right one:

* `GET /v1/people/occupations` and `GET /v1/people/occupations/{code}` walk SOC 2018,
  from major groups such as `13-0000` Business and Financial Operations Occupations down
  to detailed occupations such as `13-2051` Financial and Investment Analysts, with the
  ISCO-08 equivalents of each.
* `GET /v1/people/fields` and `GET /v1/people/fields/{code}` walk ANZSRC 2020, from
  divisions such as `38` Economics down to groups and fields such as `3801` Applied
  economics.

## Who is being booked

`GET /v1/people/occupations/{code}/guests` ranks the people in an occupation by their
guest appearances in a window of publication dates (the last 30 days by default, up to
90\), then by how many distinct shows booked them. Raise `min_podcasts` to favor people
booked across the medium over one show's regulars. `GET /v1/people/fields/{code}/guests`
does the same for a field of research.

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/people/occupations/economists/guests" \
  --data-urlencode "min_podcasts=3" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

```json theme={"dark"}
{
  "data": [
    { "rank": 1, "person": { "name": "Justin Wolfers", "slug": "justin-wolfers" }, "appearances": 26, "podcasts": 18 },
    { "rank": 2, "person": { "name": "EJ Antoni", "slug": "ej-antoni" }, "appearances": 23, "podcasts": 14 },
    { "rank": 3, "person": { "name": "Owen Zidar", "slug": "owen-zidar" }, "appearances": 19, "podcasts": 15 },
    { "rank": 6, "person": { "name": "Daron Acemoglu", "slug": "daron-acemoglu" }, "appearances": 11, "podcasts": 11 }
  ]
}
```

The inverse, `GET /v1/people/occupations/{code}/podcasts`, ranks the shows that book an
occupation. Over the last 30 days, the shows booking the most distinct financial and
investment analysts were Schwab Network (148 analysts), CNBC's *Closing Bell* (85) and
*Bloomberg Surveillance* (77). That's where to listen for sell-side and buy-side views
in volume. Use `min_guests` to keep only shows that book several people from the
occupation.

## Episodes with expert guests

The episode list takes guest filters: `guest_occupation`, `guest_field`, `guest_standing`,
`guest_seniority`, `guest_practicing` and `guest_in_field`. They select episodes with at
least one guest who matches all of them, so `guest_in_field=true` with an occupation
keeps episodes where that kind of expert spoke within their field. Like `practicing`,
`guest_practicing` needs a detailed SOC 2018 `guest_occupation`.

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/podcasts/episodes" \
  --data-urlencode "guest_occupation=cardiologists" \
  --data-urlencode "guest_in_field=true" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

Recent results include Yale's *Health & Veritas* on "The Revolution in Heart Care with
Eric Velazquez" and a preventive-cardiology episode on exercise, nutrition and
longevity. The same filters work on `GET /v1/podcasts/episodes/timeseries` to chart how
often such episodes appear. The timeseries needs a subject to count, and
`guest_occupation` or `guest_field` serves as one; `guest_standing`, `guest_seniority`,
`guest_practicing` and `guest_in_field` narrow a subject rather than replace it.

## What experts said about a topic

Transcript search takes the same guest filters, and with them it keeps the segments in
which a matching guest speaks, its preview opening on that guest's first line. A
segment can also carry the host's lines, so read each line's speaker in the match's
`speakers`. Ask how tariffs affect prices, and hear from established economists:

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/podcasts/episodes/search" \
  --data-urlencode "semantic_search=how tariffs will affect inflation and prices" \
  --data-urlencode "guest_occupation=economists" \
  --data-urlencode "guest_standing=established" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

The top result is NPR's *Planet Money*, "Days of our Tariffs", with Harvard Business
School's Alberto Cavallo:

> "In principle, you know, tariffs are a tax on imported goods, so why are domestic goods
> also increasing? But there are very valid reasons for that… It could be that some of
> these domestic manufacturers have imports in their inputs."

The next is the Free To Choose Media podcast, where Jeff Ferry cites the steel study
that found "the 25 percent tariff on steel raised… the price paid in the U.S. for steel
by two point four percent, a tenth of the headline value of the tariffs." Swap in
`guest_occupation=cardiologists` and ask about GLP-1 drugs and heart risk, and the
results come from physician shows: *The Podcast by KevinMD* on GLP-1s and the
inflammation tests a patient needs, and the ISTH podcast on GLP-1s and blood clots.

## What experts said about a company

[Mentions](/podcasts/mentions) take the guest filters too, and keep only the lines that
a matching guest spoke. Every line in which a financial or investment analyst named
Nvidia:

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/podcasts/mentions" \
  --data-urlencode "entity_id=nvidia" \
  --data-urlencode "guest_occupation=financial-and-investment-analysts" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

On Schwab Network, Bob Lang reads the options market: "always have a lot of… positive
bullish flow in Nvidia all the way out into January and February of 2027… those strikes
are all the way up to 240 to 250, so somebody's looking for some large, large moves in
that stock." Each line comes with the speaker, the segment and the time in the episode,
so you can cite it or clip it.

`GET /v1/podcasts/mentions/timeseries` takes the same filters and counts those lines per
day, week or month: how often analysts bring up a company, apart from everyone else.

## Share of voice

`GET /v1/podcasts/mentions/share-of-voice` splits the lines that mention a company,
person or topic by the occupations or fields of the people who said them. Use it to see
which professions are driving the conversation about a stock, a drug or a policy.

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/podcasts/mentions/share-of-voice" \
  --data-urlencode "entity_id=nvidia" \
  --data-urlencode "speakers=guests" \
  --data-urlencode "level=detailed" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

```json theme={"dark"}
{
  "entity": { "slug": "nvidia", "name": "Nvidia" },
  "by": "occupation",
  "level": "detailed",
  "start": "2026-09-11",
  "end": "2026-10-11",
  "mentions": 14760,
  "attributed_mentions": 3431,
  "groups": [
    { "code": "13-2051", "title": "Financial and Investment Analysts", "mentions": 726, "share": 0.212, "speakers": 289, "episodes": 373 },
    { "code": "11-1011", "title": "Chief Executives", "mentions": 487, "share": 0.142, "speakers": 235, "episodes": 256 },
    { "code": "27-3023", "title": "News Analysts, Reporters, and Journalists", "mentions": 301, "share": 0.088, "speakers": 153, "episodes": 205 }
  ]
}
```

Over those 30 days, guests with an expertise profile spoke 3,431 of the 14,760 lines
that named Nvidia. Financial and investment analysts led with a fifth of them, chief
executives followed, then journalists. Pass a group's `code` as `guest_occupation` to
[mentions](#what-experts-said-about-a-company) to read what that group said.

| Parameter | Meaning |
| - | - |
| `by` | `occupation` (default) or `field` |
| `level` | `major` (default) groups, such as Business and Financial Operations, or `detailed` ones, such as Financial and Investment Analysts |
| `speakers` | `all` (default; hosts included) or `guests` |
| `published_after`, `published_before` | The window: the last 30 days by default, up to a year |
| `interval` | `day`, `week` or `month` adds each group's mentions per period |
| `podcast_id`, `publisher_id`, `include_ads`, `limit` | As on the mentions timeseries; `limit` is how many groups to return |

`mentions` counts every line in the window. `attributed_mentions` counts the lines
spoken by someone with an expertise profile, and each group's `share` is of those. A
person listed under two occupations counts in both, so shares can add up to more than 1.

## An episode's guests

`GET /v1/podcasts/episodes/{id}/expertise` lists each guest on an episode with their
profile and how the appearance reads:

```bash theme={"dark"}
curl "https://api.particle.pro/v1/podcasts/episodes/days-of-our-tariffs/expertise" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

```json theme={"dark"}
{
  "data": [
    {
      "person": { "name": "Alberto Cavallo", "slug": "alberto-cavallo",
        "description": "Thomas S. Murphy Professor of Business Administration at Harvard Business School; economist specializing in inflation measurement and online price data" },
      "appearance": { "in_field": true, "promotional": false },
      "expertise": {
        "standing": "established",
        "seniority": "senior",
        "capacity": "researcher",
        "occupations": [ { "code": "19-3011", "title": "Economists", "established": true, "practicing": true } ],
        "credential": "He pioneered the use of online price data to measure inflation and co-founded The Billion Prices Project (2008) and PriceStats (2011), which provide real-time inflation statistics in over 25 countries."
      }
    }
  ]
}
```

## A show's guests

`GET /v1/podcasts/{id}/guests/expertise` profiles the guests a show books, across every
analyzed guest appearance: how many were by established, self-described and unverified
guests, how many stayed within the guest's field, how many were mainly promotional, the
seniority mix, and the occupations and fields booked most.

```bash theme={"dark"}
curl "https://api.particle.pro/v1/podcasts/bloomberg-surveillance/guests/expertise" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

```json theme={"dark"}
{
  "guest_appearances": 2887,
  "guests": 1055,
  "standing": {
    "established": { "appearances": 2700, "share": 0.935 },
    "self_described": { "appearances": 1, "share": 0 },
    "unverified": { "appearances": 186, "share": 0.064 }
  },
  "in_field": { "appearances": 2569, "share": 0.89 },
  "promotional": { "appearances": 22, "share": 0.008 },
  "occupations": [
    { "code": "13-2051", "title": "Financial and Investment Analysts", "appearances": 1353, "guests": 364, "share": 0.469 },
    { "code": "19-3011", "title": "Economists", "appearances": 141, "guests": 32, "share": 0.049 }
  ]
}
```

Each `share` is of `guest_appearances`. A guest listed under two occupations counts in
both, so occupation shares can add up to more than 1.

The podcast list filters on the same profiles. `guest_occupation` and `guest_field` keep
shows that have booked such a guest; `min_established_guest_share`,
`min_in_field_guest_share` and `max_promotional_guest_share` bound the shares above, and
`min_analyzed_guest_appearances` leaves out shows with too few analyzed appearances for
their shares to mean much. Shows that book established economists:

```bash theme={"dark"}
curl --get "https://api.particle.pro/v1/podcasts" \
  --data-urlencode "guest_occupation=economists" \
  --data-urlencode "min_established_guest_share=0.8" \
  --data-urlencode "min_analyzed_guest_appearances=50" \
  -H "X-API-Key: $PARTICLE_API_KEY"
```

A show with no analyzed guest appearance has no profile, so it never matches `guest_occupation`,
`guest_field`, a share bound above 0 or `max_promotional_guest_share`. A minimum share of 0 sets
no bound.

## The guest directory

The [guest directory](/podcasts/guests), `GET /v1/podcasts/guests`, takes `occupation`,
`field`, `standing`, `seniority`, `practicing`, `capacity` and `employer`, so you can
browse the guests of a profession by their lifetime appearances. A guest's appearances,
`GET /v1/podcasts/guests/{id}/appearances`, take `in_field=true` and
`exclude_promotional=true` to keep the episodes where they spoke as an expert rather than
to sell something.

## Things to know

* **Hosts have profiles too.** Anyone who has appeared as a host, guest, panelist or
  correspondent gets an expertise profile, so `speakers=all` on share of voice includes hosts.
  Lines from speakers without one, such as narrators, announcers and soundbites, count toward
  `mentions` but not `attributed_mentions`. Appearance reads (`in_field`, `promotional`,
  `introduced_as`) and the `guest_` filters cover guests and panelists.
* **Profiles follow the record.** When a person's public record changes, such as a new role or
  new published work, their profile is updated.
* **Codes overlap by design.** A person can be listed under several occupations and fields,
  such as an economist who is also an author, and counts under each one.


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