# LinkedIn profile API - Veezee

Give a profile URL, the slug after /in/, or a URN, and get the profile back as structured JSON: name, headline, location, current position, and follower counts, plus up to two sections from about, experience, education, and skills at no extra cost. Messy URLs (utm params, m. subdomains) are cleaned automatically.

The base call costs 4 credits; each section beyond two adds 2 credits (max 4 sections). Data is recent by default; paid keys can force a live fetch with `freshness=realtime` for 2 credits extra. If you only have a name, start with the [people search API](https://veezee.io/linkedin-people-search-api) and pass its result here.

## 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" \
  -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"
    }
  }
}
```

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

**Does it return email addresses or phone numbers?**

No. It returns what the public profile shows (identity, position, background); no contact details.

**Can I search by name with this?**

No: it fetches one known profile. [linkedin_search_people](https://veezee.io/docs/tools/linkedin_search_people) turns a name into profile identifiers first.

**Which sections should I request?**

The two you actually need: experience and education cover most enrichment jobs, and two sections ride free on the base call.

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