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

# particle_entity_resolve

> Resolve any named thing — person, company, place, or other entity — by free-text name in one union search.

Resolve any named thing — person, company, place, or other entity — by free-text name in **one union search**. Each candidate carries a `type` (`person`, `company`, `place`, or `other`) and the canonical `slug` for that type.

Use this first whenever you only have a name and don't know what kind of thing it names. The slug each result hands back is already the right handle for that type's downstream tools — no second resolve step:

* **`person`** → the canonical person slug. Feed it into [`particle_person_get`](/mcp/tools/people/person-get), every `person_slug` parameter ([`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions), [`particle_podcast_search_transcripts`](/mcp/tools/podcasts/podcast-search-transcripts), [`particle_podcast_list_episodes`](/mcp/tools/podcasts/podcast-list-episodes)), or [`particle_podcast_get_guest`](/mcp/tools/podcast_guests/podcast-get-guest)'s `guest_slug`.
* **`company`** → the canonical company slug. Feed it into [`particle_company_get`](/mcp/tools/companies/company-get) and every `company_slug` parameter.
* **`place`** / **`other`** → a bare entity slug. It still works as a filter in `person_slug` parameters for non-person entities.

If you already know it's a person, [`particle_person_resolve`](/mcp/tools/people/person-resolve) ranks people only; for companies with a known ticker, domain, CIK, or QID, [`particle_company_resolve`](/mcp/tools/companies/company-resolve) has more identifier surface.

For bulk resolution, pass a comma-separated `query` — each name is resolved independently in a single call and `limit` applies per query.

## Inputs

| Field   | Type           | Required | Default | Description                                                                                                                                                                                                                        |
| ------- | -------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query` | string         | yes      | —       | Free-text name(s) of a person, organization, place, or company (e.g. `"sam altman"`, `"nvidia"`, `"davos"`). Case-insensitive. Comma-separated for bulk lookup — each query is resolved independently and grouped in the response. |
| `limit` | integer (1–10) | no       | 5       | Maximum candidates per query.                                                                                                                                                                                                      |

## Output

A markdown document with one section per input query, separated by horizontal rules in multi-query responses.

* **Queries with matches** render as a `## Entity matches for "<query>" (N)` heading followed by one `### Name` section per result. Each result leads with `- **Type:**` (`person` / `company` / `place` / `other`), then a type-aware handle row whose label matches the type — `- **Person slug:**`, `- **Company slug:**`, or `- **Entity slug:**`. Person results add `- **Title:**` and `- **Company:**` (the person's current role) when known; company results add `- **Ticker:**` and `- **Domain:**`; `- **Description:**` and `- **Wikipedia:**` appear when present.
* **Queries with no matches** render as a single `No entities matched "<query>". ...` paragraph (no H2 heading), so the caller can see which input failed without losing the rest.

For person-backed results the handle row is the **canonical person slug**, not the underlying knowledge-graph entity slug. The KGE handle is suppressed deliberately — the agent must never receive a competing identifier that diverges from the canonical one. Company-backed results expose the entity slug, which *is* the canonical company slug.

Sample (`query="Marc Andreessen, nvidia", limit=1`):

```markdown theme={"dark"}
## Entity matches for "Marc Andreessen" (1)

### Marc Andreessen

- **Type:** person
- **Person slug:** marc-andreessen
- **Title:** General Partner
- **Company:** Andreessen Horowitz
- **Wikipedia:** https://en.wikipedia.org/wiki/Marc_Andreessen

---

## Entity matches for "nvidia" (1)

### Nvidia

- **Type:** company
- **Company slug:** nvidia
- **Description:** Nvidia is a leading developer of graphics processing units. …
- **Ticker:** NVDA
- **Domain:** nvidia.com
```

The first result in each block is usually the one you want for unambiguous queries. For ambiguous names read the `- **Title:**` / `- **Description:**` / `- **Wikipedia:**` rows to disambiguate.

## Example

```text theme={"dark"}
User: Find every recent podcast where Marc Andreessen is mentioned.

Agent calls: particle_entity_resolve { "query": "Marc Andreessen" }
            → reads "- **Type:** person" + "- **Person slug:**" → "marc-andreessen"

Agent calls: particle_podcast_find_mentions { "person_slug": "marc-andreessen", "limit": 10 }
```

### Bulk resolution

```text theme={"dark"}
User: Pull mentions for Sam Altman, Kara Swisher, and Marc Andreessen.

Agent calls: particle_entity_resolve { "query": "Sam Altman, Kara Swisher, Marc Andreessen" }
            → reads each block's handle row → ["sam-altman", "kara-swisher", "marc-andreessen"]

Agent calls: particle_podcast_find_mentions { "person_slug": "sam-altman", ... }
            (etc., one call per resolved slug)
```

## Related

* REST equivalent: [`GET /v1/entities`](/knowledge-graph/entities).
* For people only, use [`particle_person_resolve`](/mcp/tools/people/person-resolve); for company-specific identifiers, use [`particle_company_resolve`](/mcp/tools/companies/company-resolve).
* Use the returned slug with [`particle_person_get`](/mcp/tools/people/person-get), [`particle_company_get`](/mcp/tools/companies/company-get), [`particle_podcast_find_mentions`](/mcp/tools/podcasts/podcast-find-mentions), [`particle_podcast_search_transcripts`](/mcp/tools/podcasts/podcast-search-transcripts), or [`particle_podcast_list_episodes`](/mcp/tools/podcasts/podcast-list-episodes).
