The LinkedIn API is a set of REST APIs that LinkedIn opens to developers, grouped by business line: Consumer, Marketing, Sales, Talent, Learning, Compliance and a few regulatory products. LinkedIn charges no fee for API calls, but almost all of it is gated. Only a handful of products are self-serve: Sign In with LinkedIn using OpenID Connect, Share on LinkedIn and the Add to Profile button. Advertising, page management, recruiting, Sales Navigator and messaging need LinkedIn's review or a partner program, and nothing in the catalogue searches people, sends invitations or runs outreach for an independent developer.
The platform serves companies that integrate with LinkedIn's commercial products: a recruiting system posting jobs, an ad tool managing campaigns, a website letting people sign in with their LinkedIn identity. LinkedIn's access documentation says most permissions and partner programs require explicit approval. We read every official fact below on Microsoft Learn and the developer portal in October 2026, and show what a first call looks like, which limits bite once you are in, and what products use when the official API does not cover them.
Which LinkedIn APIs can you use, and which need approval?
LinkedIn's product catalogue and access documentation list the following families. The access column is what decides whether a product is realistic for you:
| Family | Main products | Access |
|---|---|---|
| Consumer | Sign In with LinkedIn using OpenID Connect, Share on LinkedIn, Verified on LinkedIn, Live Events, Add to Profile | Sign-in, sharing and the Add to Profile button are self-serve; Verified on LinkedIn and Live Events need review before production use |
| Marketing | Advertising, Community Management, Data Integrations, Events | Application through the developer portal, then approval |
| Sales | Sales Navigator Application Platform (SNAP), including Sales Display | Approved SNAP partners only, and LinkedIn is not currently accepting new ones |
| Talent | Apply Connect, Apply with LinkedIn, Job Posting, Recruiter System Connect, Talent Hub | Partner application |
| Learning | LinkedIn Learning content and reporting | Learning Partner Program members, or organizations with a LinkedIn Learning license |
| Compliance | Archiving and monitoring of member activity | Closed: access may not be requested |
| Regulatory | Pages Data Portability, Member Data Portability | Specific to data portability rules, not a general data feed |
In practice, that leaves two API products an independent developer can switch on today. Sign In with LinkedIn using OpenID Connect grants the openid, profile and email scopes: the authenticated member's name, profile photo and primary email. Share on LinkedIn gives you the w_member_social permission, which lets your app post, comment and like on behalf of the member who authorised it. Our guide to the LinkedIn Profile API details exactly which fields come back, and Sales Navigator's API gets its own guide because its partner program is where most sales tools hit the wall.
How do you get access to the LinkedIn API?
Access starts in the LinkedIn Developer Portal for the self-serve, Marketing and regulatory products. Talent, Learning and Sales Navigator have their own programs. The portal route runs like this:
- Create an app in the Developer Portal and associate it with a LinkedIn Page. Some products also require a super admin of that Page to verify the app.
- Note your Client ID and Client Secret. LinkedIn calls the Client ID your API key. The secret never goes in a URL or a front end.
- Add products from the app's Products tab. Open products activate on request. Marketing and regulatory products open an application that LinkedIn reviews.
- Get a token through OAuth 2.0, using the member flow or, where your product allows it, the application flow.
- Call the API with the token and, on versioned APIs, the version header.
Our guide on how to get a LinkedIn API key walks through each screen of that process, and how to find a LinkedIn ID explains the member, company and URN identifiers that most calls expect.
How do LinkedIn API calls work?
Three mechanics shape every integration, and they are worth understanding before you write code.
Authentication. The LinkedIn API uses OAuth 2.0. The member flow, called 3-legged, asks a LinkedIn member to authorise your app and returns a token that acts on their behalf. The application flow, called 2-legged or client credentials, is for APIs that are not member specific. Your app cannot use it by default, and LinkedIn states that it is not available for the Marketing APIs. Member access tokens last 60 days by default and client credentials tokens 30 minutes. Approved Marketing Developer Platform partners can also get refresh tokens valid for a year, after which the member must authorise the app again.
Versioning. The Marketing APIs ship a new version every month. You pick one with a Linkedin-Version header in year and month format, such as 202601, and each version is supported for at least a year before it is sunset, so an integration that never updates its header eventually breaks on a known date.
Format. Responses follow LinkedIn's Rest.li conventions. References between entities use URNs such as urn:li:person:123, while primary keys come back as plain ids. The Python LinkedIn API guide covers the official client and the community libraries that wrap these calls.
What does a first LinkedIn API call look like?
The shortest useful path through the self-serve products is four requests: send the member to LinkedIn to approve your app, swap the code for a token, read who they are, then post on their behalf. The snippets below come from Microsoft Learn, with placeholders where your values go.
First, redirect the member to the authorization endpoint. The parameters are documented on the OAuth page, and the Sign In with LinkedIn page adds the openid, profile and email scopes. Microsoft's own sample URL still shows older scope names, so this one is assembled from the parameter table:
GET https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id={your_client_id}&redirect_uri={your_callback_url}&state=foobar&scope=openid%20profile%20email%20w_member_socialLinkedIn sends the member back to your redirect URL with a code that lives 30 minutes. Exchange it for a token right away:
curl --location --request POST 'https://www.linkedin.com/oauth/v2/accessToken' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code={authorization_code_from_step2_response}' \
--data-urlencode 'client_id={your_client_id}' \
--data-urlencode 'client_secret={your_client_secret}' \
--data-urlencode 'redirect_uri={your_callback_url}'The response carries the access token and an expires_in of 5,184,000 seconds, which is 60 days. With that token, the userinfo endpoint returns the member's identity:
{
"sub": "782bbtaQ",
"name": "John Doe",
"given_name": "John",
"family_name": "Doe",
"picture": "https://media.licdn-ei.com/dms/image/C5F03AQHqK8v7tB1HCQ/profile-displayphoto-shrink_100_100/0/",
"locale": "en-US",
"email": "doe@email.com",
"email_verified": true
}Microsoft notes that email and email_verified may be missing from some responses, so code that assumes an email on every member will fail on the first one without it.
The fourth step is where the documentation contradicts itself. The Share on LinkedIn page, the one that grants w_member_social to self-serve apps, still sends every post to POST /v2/ugcPosts, while the Posts API page says the Posts API replaces ugcPosts and Microsoft labels ugcPosts as legacy. A new integration should use the Posts API, which needs two headers on every call: the protocol version and a Linkedin-Version month. Microsoft's text-post example uses a company author; for a member, the author becomes a person URN:
curl -X POST 'https://api.linkedin.com/rest/posts' \
-H 'Authorization: Bearer {INSERT_TOKEN}' \
-H 'X-Restli-Protocol-Version: 2.0.0' \
-H 'Linkedin-Version: 202609' \
-H 'Content-Type: application/json' \
--data '{
"author": "urn:li:person:{id}",
"commentary": "Sample text Post",
"visibility": "PUBLIC",
"distribution": {
"feedDistribution": "MAIN_FEED",
"targetEntities": [],
"thirdPartyDistributionChannels": []
},
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false
}'The Share on LinkedIn guide points to the Sign In with LinkedIn page for the person URN, and the only member identifier there is sub, so developers build the author as urn:li:person: followed by the sub value. A 201 response returns the new post's id in the x-restli-id header.
What are the LinkedIn API rate limits?
LinkedIn rate limits every request over a 24-hour window that resets at midnight UTC. Two limits apply at once: an application limit on the total calls your app can make in a day, and a member limit on the calls your app can make per member token. A request over either limit gets an HTTP 429 response.
Marketing products add a tier on top. The Advertising and Community Management APIs both start in a Development tier, and you apply separately for the Standard tier. In Development, the Community Management API allows 500 calls per app and 100 calls per member in 24 hours. Apart from a few product tiers like that one, LinkedIn does not publish the numbers. Its documentation says standard rate limits vary by endpoint and are not published. You find yours in the Developer Portal, on your app's Analytics tab, which only shows endpoints you have called at least once that day. Developer admins get an email alert when the app passes 75 percent of its daily quota, with a delay of an hour or two.
The self-serve products are the exception, with limits printed on their pages: Share on LinkedIn allows 150 requests a day per member and 100,000 per application, and Sign In with LinkedIn 500 per member and 100,000 per application. A throttled call returns 429 with the message "Resource level throttle limit for calls to this resource is reached."
What bites you once the integration is live?
Four details cause most of the support tickets after launch, and each has a cheap fix if you plan for it:
| Symptom | Cause in LinkedIn's docs | Fix |
|---|---|---|
| Members are logged out of your integration after two months | Access tokens last 60 days, and refresh tokens are reserved for approved Marketing Developer Platform partners | Store the expiry, prompt the member to reconnect before day 60. The consent screen is skipped if they are still logged in to LinkedIn and the old token has not expired |
| Every existing connection breaks after a release | Requesting a different scope than the one previously granted invalidates all the member's previous access tokens | Ask for every scope you will need in the first authorization, or migrate members deliberately |
| Calls start failing on a date nobody noticed | Every versioned call must name a version, the latest is not applied by default, and old versions are sunset: 202510 on 15 October 2026 | Track the sunset dates and move the Linkedin-Version header on a schedule |
| A quota is hit with no warning in the portal | The Analytics tab only lists endpoints called that day, and the 75 percent email arrives an hour or two late | Call each endpoint once in development to see its quota, and keep your own counter per app and per member |
What can't you do with the LinkedIn API?
Without a partner agreement, the official platform does not cover the features most sales and recruiting products want, and even partners get no people search or automated sending:
- No people search. There is no endpoint that returns members matching filters such as title, company or location, so you cannot build prospect lists through the official API.
- No connection requests. The Invitations API is restricted to approved partners and is not part of the open platform. Our LinkedIn Connections API guide explains the narrow connection data that does exist.
- No outreach messaging. The Messages API is limited to approved partners, to first-degree connections and to messages tied to a specific member action. LinkedIn's documentation rules out automated or scheduled sending. Our LinkedIn messaging API guide quotes the restrictions in full.
- No other people's full profiles. Without a partner program, you read the profile of the member who authorised your app, not anyone else's.
- No door into Sales Navigator data. Sales Navigator integrations run through SNAP, a partner program, and LinkedIn states it is not currently accepting new partners for the Sales Navigator API.
If your roadmap says prospecting, outreach or enrichment at scale, the official API is not the road, and no application wording changes that.
What do developers use instead of the official LinkedIn API?
Products that ship LinkedIn prospecting and outreach use one of three routes, each with a different risk profile:
| Route | How it works | What you handle | Main risk |
|---|---|---|---|
| LinkedIn's internal API, Voyager | Calls the private API LinkedIn's own apps use, through a session you control | Everything, including breakage when LinkedIn changes it | Undocumented, changes without notice, against LinkedIn's terms |
| Data providers and scrapers | Buy profile and company data collected by a third party | Matching, freshness and compliance of the data you buy | Legal exposure when the data is scraped from LinkedIn, as Proxycurl's shutdown showed |
| Account-based APIs | Act through LinkedIn accounts your own users connect | Raw action APIs leave sequencing and pacing to you; managed engines include them | Account restrictions if pacing and safeguards are weak |
Voyager is tempting because it exposes most of what LinkedIn's website can do, and fragile for the same reason. Our LinkedIn Voyager API guide explains why products built on it keep failing. Data providers sell records rather than actions, and the LinkedIn scraper APIs guide covers the legal reality of that market after LinkedIn's lawsuits.
Account-based APIs let a product act through LinkedIn accounts its own users connect, performing the actions a person could perform: profile visits, invitations, messages, InMails. Raw action APIs such as Unipile hand you those actions one by one and leave the sequencing, the pacing and what happens after a reply to your code. Managed engines such as the Swarmhit Smart API run whole campaigns behind the API, with per-sender limits enforced on the server. Our Swarmhit vs Unipile comparison walks through that trade-off, and every LinkedIn action Swarmhit exposes as an endpoint is listed on one page.
How much does the LinkedIn API cost?
LinkedIn charges no fee for API calls. Its API Terms of Use state that it does not currently charge a fee for the APIs, while reserving the right to start. What gates access is approval and a qualifying use case, and some products open only to paying customers or partners, such as Learning, which needs a LinkedIn Learning license. Third-party routes are where money changes hands: raw action APIs such as Unipile and LinkupAPI start at $55 a month for up to 10 connected accounts, Swarmhit bills from $16.90 per connected sender a month with no minimum, and data providers bill per record or per credit. Our LinkedIn API pricing guide lays out a verified price grid for 14 APIs, from LinkedIn's own to account-action and data providers, and the real cost of building outreach yourself is covered in how to build a LinkedIn outreach tool.
Which route fits what you are building?
Start from the feature, then pick the route:
| You want to | Use |
|---|---|
| Let users sign in with LinkedIn | Sign In with LinkedIn using OpenID Connect, self-serve |
| Post to LinkedIn on a member's behalf | Share on LinkedIn, self-serve |
| Manage ads, pages or lead forms | Marketing APIs, after approval |
| Post jobs or sync an ATS with Recruiter | Talent APIs, after a partner application |
| Embed Sales Navigator in a CRM | SNAP, approved partners only, closed to new partners for now |
| Send invitations and messages, run sequences | An account-based API, raw or managed |
| Enrich records with profile data | A data provider, or reads through accounts your users connect |
| Let an AI agent run outreach | An account-based API exposed as tools, with limits enforced below the agent |
For the last row, our LinkedIn API for AI agents page shows how agents call outreach actions as tools without being trusted with pacing decisions.
Build LinkedIn outreach on a maintained API
Swarmhit's Smart API runs campaigns, sender rotation, reply sync and 250+ safeguards on LinkedIn accounts your users connect, behind one API with signed webhooks.
Pricing: public, from $16.90 per LinkedIn sender a month, tiered down to $6.90; cold email from $59 a month.
Is building on an unofficial LinkedIn API allowed?
Not by LinkedIn's rules. Its User Agreement, in section 8.2, forbids bots and other unauthorised automated methods, and also using another person's account, for instance by sharing log-in credentials or copying cookies. That covers every route outside the official API, whoever provides it, account-based APIs included. The practical question is how the risk is carried. Routes that act only through accounts their own users connect, at human pace and inside daily ceilings, put most of the risk on each connected account, though LinkedIn can still act against the vendor. Routes that collect data through accounts the vendor operates carry the legal exposure that ended Proxycurl. Our guide on whether LinkedIn automation is safe explains what actually triggers restrictions.
Swarmhit uses the account-based model: it acts only through accounts its customers own and connect, extracts LinkedIn prospects only through those accounts, capped per account at 2,500 profiles a day from Sales Navigator and 1,000 from standard search, and does not resell that data.
FAQ
Does LinkedIn have a public API?
Yes, but most of it is not public in the sense developers hope. LinkedIn's developer platform is open to anyone who creates an app, yet only Sign In with LinkedIn using OpenID Connect, Share on LinkedIn and the Add to Profile button are self-serve. The Marketing, Sales and Talent products need review or a partner program, Learning needs a LinkedIn Learning license, Compliance is closed, and there is no open endpoint for people search, invitations or outreach messaging.
What is the LinkedIn API used for?
Mostly for integrations with LinkedIn's own products. Websites use it to let people sign in with LinkedIn and share content, ad platforms to manage campaigns and audiences, social tools to manage company pages and recruiting software to post jobs and sync with Recruiter. Automated prospecting, outreach sequences and bulk enrichment are not official use cases. The only sanctioned sales integration, SNAP, embeds Sales Navigator for licensed users and is closed to new partners, which is why those products turn to account-based APIs or data providers.
Can you use the LinkedIn API for outreach?
Not through the open API. LinkedIn offers no people search endpoint, and its Invitations and Messages APIs are restricted to approved partners, with each message tied to a specific member action and never automated or scheduled, which rules out sequences. Products that automate outreach act through their users' own LinkedIn accounts, with in-house automation or an account-based API, with pacing and safeguards deciding how much risk each account carries.
Does the LinkedIn API have a people search endpoint?
No. The official platform has no endpoint that returns LinkedIn members matching filters such as job title, company or location. Prospect lists come from Sales Navigator used by a person, from account-based tools that run searches through accounts their users connect, or from third-party data providers. Sales Navigator's own integration program, SNAP, is reserved for approved partners, closed to new ones for now, and embeds Sales Navigator for licensed users rather than providing a prospecting feed.
Where is the LinkedIn API documentation?
LinkedIn's API documentation lives on Microsoft Learn, under learn.microsoft.com/linkedin, organised by business line: Consumer, Marketing, Sales, Talent, Learning and Compliance, plus the regulatory products. The LinkedIn Developer Portal at developer.linkedin.com is where you create apps, request products, read your rate limits and generate test tokens. The API Terms of Use and program terms such as the SNAP Terms of Use sit on linkedin.com/legal. Third-party APIs document their own endpoints separately, outside LinkedIn's documentation.
Can AI agents use the LinkedIn API?
Only for what the official API allows, such as posting on behalf of a member who authorised the app. For prospecting and outreach, agents use account-based APIs exposed as tools: the agent asks for a campaign, a lead import or the latest replies, and the platform underneath enforces pacing and per-account limits. Keeping those limits below the agent matters, because a model has no reliable sense of how fast an account can safely act.




