LinkedIn
GET /v1/linkedin/profile

LinkedIn Profile API

Public LinkedIn person profile — what a logged-out visitor sees: name, headline, location, about. Flat 1 credit.

1 credit per request
TL;DR
Public LinkedIn person profile — what a logged-out visitor sees: name, headline, location, about. Flat 1 credit. The LinkedIn Profile API (LinkedIn) is a single authenticated GET request to /v1/linkedin/profile that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.

What is the LinkedIn Profile API?

Public LinkedIn person profile as clean JSON, limited to what a logged-out visitor can see. Fields: name, username, url, headline, location, about (the real bio from the page's structured data when visible — never LinkedIn's og:description SEO blurb), followers, connections, currentCompany and profileImage. headline is the member's free-text line. The URL slug is resolved as-is; we do not rematch on name. connections is exact below 500; LinkedIn's public cap (displayed 500+) is returned as 500 with connectionsIsApproximate:true. experience, education and skills are not returned: LinkedIn shows them only to signed-in members, and Captapi never signs in. Guest-masked asterisk text (******* …) is about:null with aboutRestricted:true. profileImage carries mediaUrlsExpireAt from LinkedIn's e= stamp (~19 days, midnight UTC). cached is always keyed. If LinkedIn serves its sign-in page instead of the public profile, the call fails with 502 UPSTREAM_UNAVAILABLE, reason login_wall, retryable true, 0 credits — we never work around the sign-in wall. A profile LinkedIn itself 404s is a 404. Flat 1 credit.

What you get

  • name / headline / location / about as a logged-out visitor sees them
  • no experience, education or skills — LinkedIn shows those only to signed-in members
  • connectionsIsApproximate on the 500+ cap
  • sign-in wall = 502 login_wall (retryable, 0 credits), never a workaround
  • mediaUrlsExpireAt + cached on the envelope

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
curl "https://api.captapi.com/v1/linkedin/profile?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fpaul-martin-a5aa98" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "success": true,
  "data": {
    "platform": "linkedin",
    "type": "person",
    "url": "https://www.linkedin.com/in/paul-martin-a5aa98",
    "username": "paul-martin-a5aa98",
    "name": "Paul Martin",
    "headline": "Culver City, California, United States | Professional Profile",
    "location": "Culver City, California, United States",
    "about": null,
    "followers": 5532,
    "connections": 500,
    "connectionsIsApproximate": true,
    "profileImage": "https://media.licdn.com/dms/image/v2/C5603AQERBmOpeQdTJg/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1603153614207?e=2147483647&v=beta&t=jmt32YrTWx2FRGXeRg6yYkMBcNR7iGokOvlfuVH5d3U",
    "currentCompany": null,
    "cached": false
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success and a data object with the following fields:

Top-level fields

  • platformPlatform identifier for this response (matches the endpoint's platform).
  • typeContent type of the item.
  • urlCanonical URL of the item.
  • usernameAccount username / handle.
  • nameName of the item or account. On profile endpoints: deprecated alias of displayName (one release).
  • headlineMember-authored free text. It is not a structured title.
  • locationLocation shown on the profile or item.
  • aboutAbout.
  • followersFollower count.
  • connectionsExact integer below 500. LinkedIn never displays 501 — that value is the 500+ cap and is returned as 500 with connectionsIsApproximate true.
  • connectionsIsApproximatetrue on the 500+ cap. false when LinkedIn exposed an exact count. null when connections is null (guest limit).
  • profileImageProfile image URL. Deprecated alias of avatar on Instagram/Twitter/Threads/TikTok profile endpoints (one release).
  • currentCompanyCurrent company from the public profile's structured data or headline — not SEO meta.
  • cachedAlways keyed. true on a cache=true hit. Default cache=false — live calls each bill.

Parameters

NameTypeRequiredDescription
urlstringYesLinkedIn profile URL, e.g. https://www.linkedin.com/in/paul-martin-a5aa98. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.

Using an AI agent? This endpoint is the MCP tool linkedin_profile via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/linkedin/profile and parse the JSON response.

Use cases

Profile Enrichment

Add live stats, bio, and account flags to a contact you already have.

Creator Verification

Confirm a known handle, audience size, and business/verified status before outreach.

Competitive Analysis

Track follower growth and posting cadence for accounts you already follow.

Partnership Qualification

Vet known partnership and sponsorship targets with fresh profile data.

Frequently asked questions

What does the LinkedIn Profile API do?+

The LinkedIn Profile API lets you fetch profile or page details and audience stats from a public LinkedIn profile or page using one GET request to /v1/linkedin/profile. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the LinkedIn Profile API cost?+

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a LinkedIn API key or OAuth?+

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.

Where did experience, education and skills go?+

LinkedIn shows them only to signed-in members. Captapi reads public pages exactly as a logged-out visitor sees them and never signs in, so those fields are not in the response. similarProfiles and the other profile sections were removed for the same reason (11 Oct 2026 changelog).

I got a 502 with reason login_wall. What happened?+

LinkedIn served its sign-in page instead of the public profile. That is a failed fetch, not a reason to try a signed-in route — we never work around the sign-in wall. The call is retryable and costs 0 credits.

Is connections 501 exact?+

No. LinkedIn displays exact counts below 500 and "500+" above that — it never shows 501. We return 500 with connectionsIsApproximate true. followers is a separate field and can be exact.

Is headline the job title?+

No. It is the member's free-text headline. currentCompany comes from the public profile's structured data or the headline.

Why do followers and connections show the same number?+

Often genuinely equal. Connecting on LinkedIn auto-follows, so for members who never gained extra followers (no creator mode, no viral posts) followers == connections exactly. The two fields are parsed from different page elements — we do not copy one into the other.

Did you resolve the wrong Paul Martin?+

No. /in/paul-martin-a5aa98 is used as-is — we do not rematch on display name. A different Paul Martin is a different /in/… URL.

Is the LinkedIn Profile API suitable for production use?+

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

More LinkedIn APIs

Ready to use the LinkedIn Profile API?

Sign up, grab your key, and make your first call in 60 seconds.

LinkedIn Profile API | Captapi — Captapi