# Quickstart (/docs)



LinkFetch gives AI agents typed LinkedIn data — profiles, companies, jobs,
posts, groups, search, and outbound writes — through one REST API and a
native MCP server for Claude Desktop, Cursor, and Zed.

Every response ships with a **provenance stamp**
(`source`, `fetched_at`, `freshness_days`) and every profile lookup is
rooted in the end user's own LinkedIn session. No fake accounts, no
rented sessions.

## 1 — Get a key [#1--get-a-key]

Sign in at [linkfetch.io/signin](/signin&#x29; and grab your **$5 in free
credit**. No card required.

```bash
export LINKFETCH_KEY=sk_live_...
```

## 2 — Make your first call [#2--make-your-first-call]

The lowest-friction call is `/v1/jobs` — it reads from our own scraped
LinkedIn-jobs dataset, so no extension or signed-in session is involved.

```bash
curl "https://api.linkfetch.io/v1/jobs?q=staff%20engineer&posted_within=week&limit=5" \
  -H "Authorization: Bearer $LINKFETCH_KEY"
```

Or run it inline:

<EndpointDemo id="jobs-search" />

## 3 — Understand the response envelope [#3--understand-the-response-envelope]

Every endpoint returns a two-part envelope: `data` with the typed
record(s), and `meta` with provenance, credit cost, and the request id.

```json
{
  "data": { /* the typed record(s) for this surface */ },
  "meta": {
    "request_id": "req_01HZ...",
    "credits_charged": 1,
    "rate_limit": { "remaining": 4995, "reset_at": "..." },
    "provenance": {
      "source": "extension",
      "fetched_at": "2026-04-23T10:14:22Z",
      "freshness_days": 0
    }
  }
}
```

Errors use the same envelope with a top-level `error` object — code,
message, and the same `request_id` you'd find in our logs. Empty result
sets return `data: []` and **are never charged**.

See [Provenance](/docs/provenance) for the full model and
[Errors](/docs/errors) for the shape of failures.

## 4 — Wire Claude Desktop (MCP) [#4--wire-claude-desktop-mcp]

The MCP server ships as the `linkfetch-mcp` npm package and runs
locally over stdio. Drop this into your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "linkfetch": {
      "command": "npx",
      "args": ["-y", "linkfetch-mcp"],
      "env": { "LINKFETCH_API_KEY": "sk_live_..." }
    }
  }
}
```

Or, in Claude Code:

```bash
claude mcp add linkfetch -e LINKFETCH_API_KEY=sk_live_... -- npx -y linkfetch-mcp
```

Restart Claude. Try: &#x2A;"Find five staff-engineering jobs in NYC posted
this week."*

## 5 — Install the Chrome extension (optional) [#5--install-the-chrome-extension-optional]

Profile, company, post, group, search, and all outbound endpoints
resolve through the user's own LinkedIn session via the
[LinkFetch Chrome extension](/docs/extension) — the extension only
exists so we never have to touch a fake account on your behalf.
The Jobs surface doesn't need it.

## What to read next [#what-to-read-next]

<Cards>
  <Card title="Authentication" href="/docs/auth" description="Bearer keys, rotation, secret handling." />

  <Card title="Pricing & credits" href="/docs/pricing" description="What a call costs. Empty rows are free." />

  <Card title="Rate limits" href="/docs/rate-limits" description="Per-tier limits and headers." />

  <Card title="Compliance" href="/docs/compliance" description="Public data only. DSR + suppression." />

  <Card title="API reference" href="/docs/api" description="Every endpoint, typed." />

  <Card title="MCP server" href="/docs/mcp" description="Claude, Cursor, Zed, Continue." />
</Cards>
