# LinkedIn data in Claude. Pay per record.

> LinkedIn data in Claude: Claude Code calls the API directly, the Claude API uses it as a tool, and claude.ai can build the app. $0.10 free.

Canonical: https://apiforagents.dev/integrations/claude · Updated 2026-10-16

Three ways, depending on where you use Claude. Claude Code runs the calls itself. An app on the Claude API gives Claude a tool that calls this API. In a claude.ai chat, Claude writes the app for you, using the prompt below.

- Works with: Claude
- Price: from $0.001 / record
- Free to start: $0.10
- Setup: No SDK

## The fastest way: paste this into Claude Code, or a claude.ai chat

prompt:

```text
Use https://apiforagents.dev for LinkedIn data. Read https://apiforagents.dev/auth.md and sign yourself up with one call (no login, new agents get $0.10 free). Read https://apiforagents.dev/llms.txt for the operations. Quote every paid call first with "estimateOnly": true and tell me what each call cost. Keep the identity_assertion so you never sign up twice.
```

## On the Claude API: a tool

python · anthropic:

```python
import os, requests

BASE = "https://apiforagents.dev"
KEY = os.environ["AFA_KEY"]  # an API key from the console, or an agent's token

def linkedin(op: str, **params) -> dict:
    """Call one LinkedIn operation. Add estimateOnly=True for a free quote."""
    r = requests.post(
        f"{BASE}/v1/linkedin",
        headers={"Authorization": f"Bearer {KEY}"},
        json={"op": op, **params},
        timeout=120,
    )
    body = r.json()
    if r.status_code != 200:
        raise RuntimeError(f"{body.get('error')}: {body.get('error_description')}")
    return body  # read body["coverage"] and body["notes"] before body["data"]

import anthropic

client = anthropic.Anthropic()
tools = [{
    "name": "linkedin_profiles",
    "description": "Look up public LinkedIn profiles by /in/<handle> or URL (up to 10).",
    "input_schema": {"type": "object", "properties": {"handles": {"type": "array", "items": {"type": "string"}}}, "required": ["handles"]},
}]
msg = client.messages.create(
    model="claude-sonnet-5-5", max_tokens=1024, tools=tools,
    messages=[{"role": "user", "content": "Where does satyanadella work now?"}],
)
for block in msg.content:
    if block.type == "tool_use":
        result = linkedin("profiles", subjects=block.input["handles"])  # send back as tool_result
```

> **A claude.ai chat cannot call the API itself** Without a tool connected, Claude in a chat cannot make requests to outside APIs. Use Claude Code, or have Claude write the app that does.

## Questions

### Is there a Claude connector or MCP server?

Not yet. Claude Code and apps on the Claude API call the REST API directly, which needs nothing installed.

### Where do I get a key?

Two ways. A person signs in at https://apiforagents.dev and makes an API key under Console, API keys. Or the agent signs itself up with one POST to https://apiforagents.dev/agent/identity, exchanges the identity for a token, and starts on $0.10 free; a person claims it later with a six-digit code to top up.

### What does a call cost?

LinkedIn profiles are $0.004 and companies $0.004 each, posts, comments, reactions and ads $0.002, jobs $0.001. Pay as you go from $5, nothing monthly. Add "estimateOnly": true to any call for a free quote, and records that do not come back are refunded.

## Why API for Agents

- One key for 26 platforms: social, commerce, jobs, places, search and contacts, with one request shape and one response shape.
- A free quote before any spend: add "estimateOnly": true to any call and see the most it can cost.
- Pay per record in US dollars. No subscription, nothing expires, top-ups from $5.
- $0.10 free to try, no card. An AI agent can sign itself up in one request; a person claims it later.
- Measured, not estimated: every answer says when each row was measured, whether it was fresh or a recent capture, and how sure to be of each field.
- Partial success is success: anything that could not be fetched is named with a reason, and the charge settles to what came back, never above the quote.
- Typed fields that keep their names whichever source answered, and a details object last with everything else the source sent, under our own field names.
- Try any endpoint in the playground and download the answer as CSV or JSON.

## Start

The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type. Open it at https://apiforagents.dev/dashboard/run (sign in first).

Agents register at https://apiforagents.dev/auth.md (one POST, $0.10 free). People: https://apiforagents.dev/docs#start. Prices: https://apiforagents.dev/pricing.md
