# People search API - Veezee

When an agent holds a fragment, "Jane Doe, VP Data at Acme", a people search API turns it into concrete candidates: names, current positions, locations, and identifiers ready for a follow-up profile fetch. Veezee runs this against LinkedIn's public professional graph.

Combine free-text keywords with filters for name, title, school, and current or past employer; 10 credits per search. Matches then expand with the [profile API](https://veezee.io/linkedin-profile-api) (anonymous results excepted).

## Try it now

No account, no card: mint a free key in one call, then call the endpoint.

```
curl -s -X POST https://api.veezee.io/v1/keys/mint
```

```
curl "https://api.veezee.io/v1/linkedin/search?keywords=CTO&current_company=anthropic" \
  -H "Authorization: Bearer $VEEZEE_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
```

## Over MCP

Point an MCP client at `https://mcp.veezee.io/linkedin` (streamable-http; `https://mcp.veezee.io/all` serves every platform over one connection) and call `linkedin_search_people`:

```json
{
  "method": "tools/call",
  "params": {
    "name": "linkedin_search_people",
    "arguments": {
      "keywords": "CTO",
      "current_company": "anthropic"
    }
  }
}
```

## Parameters

| Param | Required | Type | Description |
| --- | --- | --- | --- |
| `keywords` | no | `string` | Free-text query: a name, a title, or both. |
| `first_name` | no | `string` | First-name filter, exact match. |
| `last_name` | no | `string` | Last-name filter, exact match. |
| `title` | no | `string` | Current job title filter. |
| `school` | no | `string` | School or university name filter. |
| `current_company` | no | `string` | Company name, slug, numeric id, or urn:li:fsd_company URN. Names are fuzzy-matched by LinkedIn; ids and URNs filter exactly. |
| `past_company` | no | `string` | Same accepted forms as current_company; names are resolved to an id server-side. |
| `limit` | no | `integer` | How many results to return. |
| `cursor` | no | `string` | Cursor from a previous page. |
| `freshness` | no | `string` | recent (default) serves cached data from the last few hours when available; realtime forces a live fetch for +2 credits (refunded if we fall back to cached data). Trial keys are cached-only and reject realtime with TRIAL_CAP_EXCEEDED; paying upgrades this same key to unlock it. |
| `max_credits` | no | `integer` | Spend ceiling for this one call. The call is rejected (nothing charged) if its quote exceeds this. Only the quote is ever reserved, never this ceiling. |

Returns a `people_search` envelope. Full field list: https://veezee.io/docs/fields#people_search

## Pricing

`linkedin_search_people` costs 10 credits base per call (surcharges for optional sections, cursor pages, and batches: https://veezee.io/docs/tools/linkedin_search_people). Every key starts with a free budget of 200 credits per IP per day, no account, no card; past that, credits are $2.00 per 1,000 with no subscription required.

## FAQ

**Can I look someone up by email address?**

No: search is by name, title, school, and company. There is no email-to-person resolution.

**What about people who aren't on LinkedIn?**

They won't appear; coverage is LinkedIn's public graph.

**How many results per call?**

Up to 30 on a paid key, 10 on the free tier; cursor pages are new, separately priced calls.

## Read next

- [linkedin_search_people: the full reference](https://veezee.io/docs/tools/linkedin_search_people)
- [LinkedIn API for AI agents](https://veezee.io/linkedin-api-for-ai-agents)
- [Pricing](https://veezee.io/pricing)
