# Profile enrichment API - Veezee

Profile enrichment takes a record you already have, a signup, a CRM row, a lead, and fills in who the person is now: current role, company, and background from their LinkedIn profile. Veezee serves recent data, and paid keys can force a real-time read with `freshness=realtime`, so a recent job change shows up.

Pass the profile URL or slug and request up to two sections (experience, education, skills, about) free on the 4 credits base call. The worked enrichment loop with real credit arithmetic is at [/use-cases/prospect-enrichment](https://veezee.io/use-cases/prospect-enrichment).

## 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/profiles?identifier=williamhgates&sections=experience%2Ceducation" \
  -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_get_profile`:

```json
{
  "method": "tools/call",
  "params": {
    "name": "linkedin_get_profile",
    "arguments": {
      "identifier": "williamhgates",
      "sections": [
        "experience",
        "education"
      ]
    }
  }
}
```

## Parameters

| Param | Required | Type | Description |
| --- | --- | --- | --- |
| `identifier` | yes | `string` | Profile URL, slug (after /in/), or urn:li:fsd_profile URN. |
| `sections` | no | `array` | Extra profile sections. First 2 are included in the base price. |
| `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 `person` envelope. Full field list: https://veezee.io/docs/fields#person

## Pricing

`linkedin_get_profile` costs 4 credits base per call (surcharges for optional sections, cursor pages, and batches: https://veezee.io/docs/tools/linkedin_get_profile). 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

**What if I only have a name and employer?**

Search first: [linkedin_search_people](https://veezee.io/docs/tools/linkedin_search_people) takes keywords plus a current_company filter and returns matches with the identifiers this call accepts.

**How fresh is the data?**

Recent by default. Paid keys can pass `freshness=realtime` (2 credits extra) to force a live read.

**Can it enrich by email address?**

No. There is no email-to-person resolution; start from a URL, a slug, or a name search.

## Read next

- [linkedin_get_profile: the full reference](https://veezee.io/docs/tools/linkedin_get_profile)
- [Prospect enrichment recipe](https://veezee.io/use-cases/prospect-enrichment)
- [LinkedIn API for AI agents](https://veezee.io/linkedin-api-for-ai-agents)
- [Pricing](https://veezee.io/pricing)
