LinkedIn API10 min read

LinkedIn API 2026: Access, Endpoints, Limits & Alternatives

LinkedIn's official API is gated and restricted. ConnectSafely gives developers full REST API access for messaging, connections, search, and profiles.

Anandi

LinkedIn API Complete Guide 2026

LinkedIn is the largest professional network on the planet, with over 1 billion members and 67 million company pages. For developers building sales tools, CRMs, recruiting platforms, or marketing automation, programmatic access to LinkedIn data is essential. But LinkedIn's official API is notoriously restrictive — gated behind approval processes, limited in scope, and reserved primarily for enterprise partners.

This guide covers what the official LinkedIn API actually offers in 2026, why most developers can't use it, and how ConnectSafely's REST API gives you full access to messaging, connections, search, and profile data with no approval process required.

Want to Generate Consistent Inbound Leads from LinkedIn?

Get our complete LinkedIn Lead Generation Playbook used by B2B professionals to attract decision-makers without cold outreach.

How to build authority that attracts leads
Content strategies that generate inbound
Engagement tactics that trigger algorithms
Systems for consistent lead flow

No spam. Just proven strategies for B2B lead generation.

What the Official LinkedIn API Actually Allows (and What It Blocks)

LinkedIn provides several official APIs through its Developer Portal, each with different access levels:

APIAccess LevelWhat It Does
Consumer APIRestrictedBasic profile data, share posts
Marketing APIEnterprise approvalAds, analytics, organization pages
Sales Navigator APIEnterprise licenseAdvanced search, lead recommendations
Learning APIPartners onlyCourse integration

The Consumer API is the only one available without a formal partnership, and it offers very little: basic profile fields (name, headline, photo) and the ability to share posts. That's it.

What the official API blocks for most developers:

  • Sending or reading messages
  • Retrieving connection lists
  • Searching for people or companies
  • Accessing detailed profile data (experience, education, skills)
  • Automating connection requests
  • Reading conversation history

If you need any of these capabilities — and most developers do — the official API is a dead end.

Why Most Developers Can't Use the Official LinkedIn API

LinkedIn's API access model is designed for large enterprise partnerships, not individual developers or small teams. Here's what stands in the way:

Marketing Developer Platform approval requires a formal application with a detailed use case, legal entity verification, and review that can take weeks or months. Many applications are rejected without clear explanation.

OAuth complexity demands implementing a full OAuth 2.0 flow with specific scopes, token refresh logic, and compliance with LinkedIn's data usage policies.

Restrictive use case policies prohibit many common developer scenarios. Building a sales automation tool? Recruiting integration? CRM enrichment? LinkedIn may reject your application or revoke access after the fact.

Enterprise-only pricing means that even if you get approved, the cost structure is built for companies spending tens of thousands per year on LinkedIn's ecosystem.

The result: the vast majority of developers who need LinkedIn data are locked out of the official API entirely.

LinkedIn API Access Challenges

ConnectSafely API: What You Can Do

ConnectSafely's API provides full REST API access to LinkedIn functionality with no approval process. Sign up, generate an API key, and start making requests immediately. Here are the core endpoints:

Send Messages: POST /messaging/send

Send LinkedIn messages programmatically with built-in typing indicators for natural appearance.

curl -X POST 'https://api.connectsafely.ai/linkedin/messaging/send-with-typing' \
  -H 'Authorization: Bearer <your_api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "recipientProfileId": "john-doe-123",
    "message": "Hi John, wanted to follow up on our conversation."
  }'

The API sends a typing indicator before delivering the message, making automated outreach appear natural. For the full messaging endpoint reference — including conversation retrieval, group messages, and delivery acknowledgments — see our LinkedIn Messaging API guide.

Get Connections: GET /connections

Retrieve your LinkedIn connection list with profile details, connection date, and relationship metadata.

curl -X GET 'https://api.connectsafely.ai/linkedin/connections?count=50' \
  -H 'Authorization: Bearer <your_api_key>'

Use this to sync your LinkedIn network with your CRM, build targeted outreach lists, or monitor network growth over time.

Search People: POST /search/people

Search LinkedIn's member database by keywords, title, company, location, industry, and more.

curl -X POST 'https://api.connectsafely.ai/linkedin/search/people' \
  -H 'Authorization: Bearer <your_api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "keywords": "VP Engineering",
    "location": "San Francisco Bay Area",
    "industry": "Software",
    "count": 25
  }'

This is the endpoint that powers prospecting workflows — find decision-makers at target accounts without needing Sales Navigator.

Get Profile: POST /profile/fetch

Fetch detailed LinkedIn profile data including experience, education, skills, and activity.

curl -X POST 'https://api.connectsafely.ai/linkedin/profile/fetch' \
  -H 'Authorization: Bearer <your_api_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "profileUrl": "https://www.linkedin.com/in/example-user"
  }'

Use profile data for lead enrichment, personalized outreach, or building comprehensive contact records in your CRM.

Schedule Posts

ConnectSafely also supports content scheduling and publishing. For post creation and scheduling endpoints, see the full API documentation.

For organization and company lookup endpoints — including firmographic data, employee counts, and company search — see our LinkedIn Organization Lookup guide.

Rate Limits and Safe Usage Guidelines

Every API has limits, and responsible usage matters for keeping your LinkedIn account in good standing.

ConnectSafely API rate limits:

ActionRecommended Daily LimitHard Limit
Messages sent30-50100
Connection requests20-3050
Profile fetches100-200500
Search queries50-100200

Best practices for safe usage:

  • Spread actions throughout the day rather than sending bursts of requests
  • Use typing indicators when sending messages (ConnectSafely does this automatically)
  • Warm up new accounts gradually over 2-3 weeks before reaching full volume
  • Personalize messages — templated spam triggers LinkedIn's detection regardless of volume
  • Cache responses for profile and company data that doesn't change frequently

For a deep dive into LinkedIn's detection systems and how to stay within safe thresholds, read our LinkedIn Automation Limits guide.

LinkedIn API Rate Limits

LinkedIn API Pricing: Official vs ConnectSafely

LinkedIn's official API doesn't have a public price list. Access requires Marketing Developer Platform approval, which is generally reserved for enterprise partners. Companies report spending $10,000-50,000+ annually on LinkedIn API partnerships, and that's before development costs for OAuth implementation and compliance. As of 2026, third-party analyses estimate the Marketing Developer Platform alone at roughly $699+/month for approved partners, and put large multi-product enterprise agreements at $50,000-$300,000+ per year — LinkedIn publishes none of these numbers, so your real cost only surfaces inside a signed partner contract.

Estimated cost by official product (LinkedIn does not publish list prices):

LinkedIn API productPublic price?Estimated 2026 cost
Sign In with LinkedIn (Consumer)Free$0
Share on LinkedInFree$0
Verified on LinkedIn — Development/LiteFree$0, up to ~5,000 calls/day
Marketing Developer PlatformNo~$699+/mo (estimate)
Sales Navigator (seat subscription)Yes$119.99-$159.99/mo per seat
Talent / Recruiter System ConnectNo~$900+/mo per seat (estimate)
Enterprise multi-product agreementNo$50,000-$300,000+/yr (estimate)

ConnectSafely API pricing is straightforward:

PlanMonthlyYearly (per month)
API access per account$10/mo$9/mo

That includes full access to all endpoints — messaging, connections, search, profiles, and company data. No approval process, no enterprise contract, no OAuth complexity.

For teams managing multiple LinkedIn accounts, the per-account pricing scales linearly. An agency managing 10 accounts pays $100/month for complete API access across all of them.

See the full pricing breakdown at connectsafely.ai/pricing/api.

LinkedIn API Total Cost of Ownership in 2026

Sticker estimates understate what building on the official LinkedIn API actually costs, because the license fee is only part of the bill. According to Mallary's 2026 cost analysis, an approved business should budget a Year 1 total of $34,000-$45,000 once engineering and upkeep are included:

Cost component2026 estimate
Initial integration development$15,000-$25,000 (one-time)
Annual maintenance~$12,000/year
Per-profile data (usage-based)$0.10-$2.00 per profile
Per-API-call pricing$0.001-$0.05 per call
Headline annual license range$7,200 to millions, by product and use case

At scale the usage line dominates: Mallary models 100,000 profiles/month at $0.50 each reaching $50,000/month. None of these numbers are published by LinkedIn — they surface only inside a signed partner contract, which is why third-party analyses and the Marketing Developer Platform's estimated ~$699+/month floor are the closest planning figures available.

By contrast, ConnectSafely's API is a flat $10/month per account ($9/month billed annually) with no development-approval gate — the total cost is the subscription, not a five-figure integration project.

How to Use the LinkedIn API with n8n, Make.com, and Claude MCP

ConnectSafely's REST API integrates with any platform that supports HTTP requests. Three popular integration paths:

n8n

n8n is an open-source workflow automation tool. ConnectSafely provides a native n8n integration that exposes all API endpoints as n8n nodes — no custom HTTP requests needed.

Build workflows like: LinkedIn search → enrich profiles → send personalized messages → log to CRM.

See the ConnectSafely n8n integration guide.

Make.com (formerly Integromat)

Make.com's visual workflow builder connects ConnectSafely's API to 1,500+ other apps. Use the HTTP module or ConnectSafely's native Make integration to build multi-step automations.

Common use case: new HubSpot deal → fetch LinkedIn profile → send connection request → queue follow-up message.

See the ConnectSafely Make.com integration guide.

Claude MCP (Model Context Protocol)

ConnectSafely offers an MCP server that gives Claude direct access to LinkedIn data and actions. This means you can use natural language to search LinkedIn, send messages, fetch profiles, and manage your LinkedIn activity through Claude.

Example prompt: "Find 10 VPs of Engineering at Series B SaaS companies in Austin and send each a personalized connection request."

The MCP server handles the API calls, rate limiting, and response formatting automatically.

The 2026 LinkedIn API Product Catalog

There is no single "LinkedIn API." LinkedIn ships a catalog of separately gated products, and the one you need decides whether access takes five minutes or five months. Free self-serve tiers cover login and posting; everything useful for sales, recruiting, or analytics sits behind a partner application or an enterprise contract.

Product2026 access levelWhat it unlocks
Sign In with LinkedIn (Consumer)Free, self-serveOpenID Connect login; name, photo, headline, email
Share on LinkedInFree, app reviewPublishing to a member's own feed
Verified on LinkedIn APIFree Development/Lite tier; Plus is custom-pricedIdentity and verification signals
Community Management APIDevelopment tier free; Standard is partner-gatedManage Pages, comments, and organization posts
Marketing Developer Platform (MDP)Partner applicationAds, campaign analytics, lead-gen forms, organization data
Sales Navigator API (SNAP)Partner-gated — closed to new applicants in 2026Lead and account data inside Sales Navigator
Talent Solutions / Recruiter System ConnectEnterprise partnershipATS and recruiter integrations
Learning APIPartner program or LinkedIn Learning licenseCourse catalog and completion data

Two things reshaped this catalog for 2026: the Sales Navigator API (SNAP) stopped accepting new partner applications, and the "Verified on LinkedIn" product added free Development and Lite tiers. Only the Consumer and Share tiers switch on without a review — the current list lives in LinkedIn's product catalog and Getting Access guide.

LinkedIn API OAuth Scopes Explained

OAuth scopes are the permission strings that decide what your token can read or write. LinkedIn deprecated its legacy r_liteprofile and r_emailaddress scopes for new apps on August 1, 2023, moving basic identity to OpenID Connect. New apps request openid, profile, and email, plus feature scopes for posting, ads, or Pages.

ScopeGrantsNotes
openidOpenID Connect authenticationModern login replacement
profileBasic profile (name, photo, headline)Replaces r_liteprofile
emailMember's primary emailReplaces r_emailaddress
w_member_socialPost, comment, and react on the member's behalfPowers "Share on LinkedIn"
r_basicprofileLegacy basic profile readLegacy; still requested by some older apps
rw_organization_adminManage Pages the member administersRequired for organization/company endpoints
r_ads, rw_adsRead/manage ad accounts and campaignsMarketing Developer Platform only

If your app requests several scopes, the member must approve all of them on one consent screen — they cannot pick and choose — so request the fewest scopes your use case needs. Access tokens from the authorization-code flow expire after roughly 60 days, so build token refresh in from day one. Full details are in LinkedIn's authentication overview, and the two-legged vs three-legged flow choice is covered further down this guide.

LinkedIn API Rate Limits and Quotas (Official)

LinkedIn enforces two daily rate limits on every app: an application limit (total calls per day) and a member limit (calls per member, per app, per day). Both reset at midnight UTC, and exceeding either returns HTTP 429. LinkedIn does not publish standard limits — you look up your own in the Developer Portal.

  • Where to find your numbers: open the Developer Portal, select your app, and read the Analytics tab. It shows usage and limits only for endpoints you have called at least once today (UTC).
  • Alerts: Developer Admins get an email when an app crosses 75% of an endpoint's quota. Alerts are application-level only and arrive with a 1-2 hour delay, per LinkedIn's rate-limiting docs.
  • Scale: limits vary widely by endpoint — third-party analyses report a default application ceiling near 100,000 calls/day, with some sensitive endpoints capped at as few as 10 calls per member per day.
  • Handling 429s: use exponential backoff, space calls out, and monitor usage in the Developer Portal rather than firing bursts of requests.

This is separate from the account-safety limits that matter when you automate real member actions — for recommended daily message and connection thresholds, see the ConnectSafely limits above and our LinkedIn Automation Limits guide.

How to Get LinkedIn API Access Approved

To get partner-level LinkedIn API access, create an app in the Developer Portal, attach the product you need (for example the Advertising API), and submit the access form with a use-case description, a live privacy policy, and a product demo. You build on a free Development tier, then request Standard tier once your integration is production-ready.

  1. Create a LinkedIn app and associate it with a Company Page you administer.
  2. Under My Apps → Products, add the product (e.g., Advertising API / Marketing Developer Platform).
  3. Submit the access request with a clear use case, a privacy policy URL, and a demo of your integration.
  4. Build and test on the Development tier (limited capabilities), then apply for Standard tier.

On timeline and odds, approval is realistically 4-8 weeks on the fast path and 3-4 months on average, with Recruiter and Talent products often taking 4-6 months. Meeting LinkedIn's eligibility criteria — an established business and a supported, non-restricted use case — moves you forward but is not a guarantee; LinkedIn selects partners at its discretion and rarely explains rejections. Common rejection triggers are a use case that touches restricted data (messaging, connections, bulk profile data), a mismatch between the OAuth flow you request and the data you ask for, or a missing privacy policy.

What Changed in the LinkedIn API for 2026

The biggest 2026 changes are structural: LinkedIn's Marketing APIs are fully versioned on a monthly release cadence, each version is supported for at least one year, and unversioned calls are rejected outright. The Sales Navigator API also closed to new partners, and older versions keep sunsetting on schedule.

  • Mandatory version headers. Every Marketing API call must send a Linkedin-Version: YYYYMM header (July 2026 is 202607). LinkedIn does not default to the latest version — a missing header returns an error.
  • One-year support window. New versions ship monthly and are supported a minimum of one year before sunset. As of mid-2026 the July 2025 version (202507) has been sunset; migrating is a simple header swap (e.g., 202501202601). See LinkedIn's versioning docs.
  • Sales Navigator API closed. SNAP is not accepting new partner applications in 2026; existing partners keep their access.
  • Organization Search stays restricted. The Organization Lookup API (look up a company by ID or vanity name via urn:li:organization:{id}) is broadly available to approved apps, but Organization Search is limited to select developers. See the Organization Lookup docs and our LinkedIn Organization Lookup guide.

Frequently Asked Questions

Is the LinkedIn API free?

Partly. The Consumer tier — Sign In with LinkedIn and Share on LinkedIn — is free and self-serve, and the Verified on LinkedIn Development/Lite tiers are free up to about 5,000 calls/day. Everything useful for sales, recruiting, or analytics (Marketing Developer Platform, Sales Navigator, Recruiter) is partner-gated and, in practice, paid.

How much does the LinkedIn API cost?

LinkedIn publishes no list price. Independent 2026 estimates put the Marketing Developer Platform around $699+/month for approved partners, Recruiter integrations near $900+/month per seat, and large enterprise multi-product agreements at $50,000-$300,000+ per year. Sales Navigator seats run $119.99-$159.99/month, though the SNAP API itself is closed to new partners.

How do I get LinkedIn API access approved?

Create an app, attach the product you need, and submit an access request with a use case, a privacy policy, and a demo. Build on the free Development tier, then request Standard tier. Expect 4-8 weeks at best and 3-4 months on average; rejections are common and rarely explained.

Is the LinkedIn Sales Navigator API available in 2026?

Not for new developers. The Sales Navigator API (SNAP) stopped accepting new partner applications in 2026, so only existing partners retain access. Teams that need lead and account data now either wait on LinkedIn's onboarding capacity or use an account-based API instead.

What are the LinkedIn API rate limits?

LinkedIn applies a daily application limit and a daily per-member limit, both resetting at midnight UTC, with a 429 response when you exceed them. Standard limits aren't published; you check your app's actual limits in the Developer Portal Analytics tab, and admins get an email alert at 75% of quota.

How does LinkedIn API organization lookup work?

The Organization Lookup API retrieves a company Page by its organization ID, parent ID, or vanity name, using URNs like urn:li:organization:123 and the X-Restli-Protocol-Version: 2.0.0 header. It requires an organization role and the rw_organization_admin scope. See our LinkedIn Organization Lookup guide for full field details.

Will using a third-party LinkedIn API get my account banned?

It depends on how access happens. Scraping logged-out public pages may avoid criminal liability under the hiQ ruling but still breaches LinkedIn's Terms of Service, which prohibit automated collection and are enforced through account termination. An account-based API that acts through your own authenticated session, with human-like pacing, sits in a lower-risk category — though no automation is zero-risk if you ignore volume limits.

What OAuth scopes does the LinkedIn API use?

New apps use the OpenID Connect scopes openid, profile, and email, plus feature scopes such as w_member_social for posting and rw_organization_admin for Pages. The legacy r_liteprofile and r_emailaddress scopes were deprecated for new apps on August 1, 2023.

What is the total cost of building on the LinkedIn API?

Beyond the license, plan for engineering and maintenance. Mallary's 2026 analysis estimates a Year 1 total of $34,000-$45,000 for an approved business — roughly $15,000-$25,000 to build the integration plus about $12,000/year to maintain it — on top of usage-based data costs of $0.10-$2.00 per profile. Headline annual costs range from $7,200 into the millions depending on the product and volume, and at 100,000 profiles/month a $0.50/profile rate alone reaches $50,000/month.

Related Guides

Dive deeper into specific LinkedIn API topics with these guides:

Get Started with the ConnectSafely API

The ConnectSafely API gives you everything LinkedIn's official API won't: messaging, connections, search, profiles, and company data through simple REST endpoints.

No approval process. No enterprise contract. No OAuth headaches.

Sign up, generate an API key, and make your first request in under 5 minutes.

Edge Cases in LinkedIn API Access: When Official Channels Fail

While the official LinkedIn API is restrictive, there are edge cases where even the limited access provided can be revoked or suspended. For instance, if your application is found to be violating LinkedIn's terms of service, even unintentionally, your API access can be terminated without warning. This can happen if your app is deemed to be scraping data excessively, or if it's found to be automating actions that are against LinkedIn's policies. In such cases, developers are often left scrambling to find alternative solutions, which can be a significant setback. Furthermore, there are cases where the official API is not available in certain regions or countries due to local regulations or restrictions. In such scenarios, developers need to rely on alternative APIs or workarounds, which can be cumbersome and prone to errors. It's essential for developers to be aware of these edge cases and have a contingency plan in place to mitigate such risks.

Myth vs Reality: Debunking Common Misconceptions About LinkedIn API

One common myth surrounding the LinkedIn API is that it's only suitable for large enterprises and not for small businesses or individual developers. While it's true that the official API has restrictive access policies, there are alternative APIs and workarounds that can provide similar functionality for smaller players. Another misconception is that the LinkedIn API is only useful for marketing and advertising purposes. In reality, the API can be used for a wide range of applications, including recruitment, sales, and customer service. Additionally, many developers believe that the LinkedIn API is difficult to integrate and requires extensive technical expertise. However, with the right guidance and resources, integrating the API can be relatively straightforward, even for developers without extensive experience. It's essential to separate fact from fiction and understand the true capabilities and limitations of the LinkedIn API to make informed decisions.

Advanced-Level: Leveraging LinkedIn API for Predictive Analytics and Modeling

For advanced developers, the LinkedIn API can be a powerful tool for building predictive models and analytics applications. By leveraging the API's access to user data, connection graphs, and activity streams, developers can build sophisticated models that predict user behavior, identify trends, and forecast market shifts. For instance, by analyzing user engagement patterns and content sharing habits, developers can build models that predict the likelihood of a user responding to a message or accepting a connection request. Similarly, by analyzing connection graphs and clustering patterns, developers can identify influential users and predict the spread of information within a network. However, building such models requires advanced technical expertise, including machine learning, natural language processing, and graph theory. Additionally, developers need to ensure that their models comply with LinkedIn's data usage policies and respect user privacy.

The Hidden Costs of Using the Official LinkedIn API

While the official LinkedIn API may seem like a free or low-cost solution, there are hidden costs associated with its use. For instance, the API's restrictive access policies and limited functionality can lead to significant development and maintenance costs, as developers need to work around these limitations or implement custom workarounds. Additionally, the API's terms of service require developers to comply with strict data usage policies, which can be time-consuming and resource-intensive to implement. Furthermore, the API's OAuth complexity and token refresh logic can add significant overhead to development and testing cycles. Moreover, the API's rate limits and quotas can lead to unexpected costs, as developers may need to implement caching, queuing, or other optimization techniques to avoid exceeding these limits. It's essential for developers to factor in these hidden costs when evaluating the official LinkedIn API as a solution.

When Common Advice Backfires: Avoiding Pitfalls in LinkedIn API Implementation

While there are many best practices and guidelines available for implementing the LinkedIn API, there are cases where common advice can backfire. For instance, many developers recommend using the API's built-in caching mechanisms to reduce the number of requests and improve performance. However, in some cases, caching can lead to stale data and inconsistent results, particularly if the data is updated frequently. Similarly, many developers recommend using the API's OAuth 2.0 flow to authenticate users, but this can lead to complex token management and refresh logic, particularly if the application needs to handle multiple user sessions or accounts. Additionally, many developers recommend using the API's official SDKs and libraries, but these can be outdated, buggy, or incomplete, leading to integration issues and maintenance headaches. It's essential for developers to be aware of these pitfalls and take a nuanced approach to implementing the LinkedIn API, considering the specific requirements and constraints of their application.

Two-Legged vs Three-Legged OAuth: Picking the Right Flow Before You Apply

One of the least-discussed reasons LinkedIn rejects partner applications is mismatched OAuth flow selection. LinkedIn's API uses the Rest.li framework (its proprietary RESTful microservices architecture) and exposes two distinct OAuth 2.0 authorization patterns, and choosing the wrong one signals to the review team that you don't understand the data model you're requesting. Three-legged OAuth (3L) is required whenever you need member-specific data: a user's own profile, their posts, their connection graph, or any action taken on their behalf. The user is prompted to grant explicit consent through LinkedIn's permission screen, and the resulting access token is scoped to that single member. This is what 95% of sales and CRM use cases actually need. Two-legged OAuth (2L) is reserved for application-level access to non-member data — public company pages, organization analytics for pages your app already administers, or marketing campaign data tied to your own ad account. Applications that ask for 2L access to member data are almost always rejected, because the flow doesn't surface user consent. If you're applying for the Marketing Developer Platform and your use case description mixes these patterns, expect a denial. You can also verify any token you've been issued via the https://www.linkedin.com/oauth/v2/introspectToken endpoint — a POST request returns the auth_type field as either "2L", "3L", or "Enterprise_User", along with active, status, scope, and expires_at fields. Building token introspection into your error-handling path catches expired or revoked tokens before they trigger silent failures in production, which is one of the most common reasons LinkedIn partner apps lose access without realizing it.

The hiQ Labs Ruling and Why "Legal" Doesn't Mean "Allowed" on LinkedIn

A persistent confusion among developers exploring LinkedIn data access is the 2022 hiQ Labs v. LinkedIn ruling, where the Ninth Circuit found that scraping publicly available data does not violate the Computer Fraud and Abuse Act (CFAA). Many developer forums cite this as evidence that LinkedIn scraping is "legal." That reading is incomplete. The CFAA is a federal anti-hacking statute — the ruling addressed whether unauthorized access of public data is criminal, not whether it's permitted. LinkedIn's Terms of Service contractually prohibit automated data collection regardless of whether the data is public, and LinkedIn enforces those terms through account termination, IP blocking, and civil action for breach of contract. The practical implication for developers: building infrastructure that scrapes LinkedIn from logged-out sessions may avoid CFAA liability, but it doesn't avoid LinkedIn's ability to block your account, sue your company, or send cease-and-desist letters that disrupt your business. The narrower question of whether your access pattern violates LinkedIn's ToS is what actually matters for operational risk. This is why most teams that need reliable, durable LinkedIn data access pick one of two paths: get formally approved as a LinkedIn Partner (slow, expensive, restrictive), or use an account-based API where the access happens through an authenticated session you control — which is contractually distinct from scraping unauthenticated public pages, and which keeps you within the operating envelope of LinkedIn's own consumer Terms of Service.

How LinkedIn's REST API Versioning Actually Works

Every call to LinkedIn's versioned REST endpoints must include a Linkedin-Version header formatted as YYYYMM (e.g., Linkedin-Version: 202601), sent against the https://api.linkedin.com/rest/ base path — a request without this header returns an error rather than silently defaulting to the latest version. LinkedIn introduced this versioned base path in June 2022, and each monthly version is supported and stable for a minimum of one year before it's sunset, so integrations built against a given version keep working even as LinkedIn ships changes elsewhere. Migrating to a newer version is usually a one-line change — update the header value (for example Linkedin-Version: 202501 to Linkedin-Version: 202601) — unless the specific endpoint's resource path itself changed. A typical versioned request looks like this:

curl -X GET 'https://api.linkedin.com/rest/{resource}' \
  -H 'Authorization: Bearer {access_token}' \
  -H 'Linkedin-Version: 202601' \
  -H 'X-Restli-Protocol-Version: 2.0.0'

Some older Consumer endpoints (like basic profile retrieval) still respond on the legacy unversioned /v2/ path shown in LinkedIn's own OAuth documentation, so always confirm the base path and version requirements against the reference page for the specific product you're integrating. Source: LinkedIn API Documentation Versioning, Microsoft Learn (updated 2026-07-13).

LinkedIn OAuth Token Lifetimes: What Expires When

LinkedIn's 3-legged (member) access tokens are issued with a 60-day lifespan by default, and approved Marketing Developer Platform partners can request programmatic refresh tokens valid for 365 days; 2-legged (application) access tokens last only 30 minutes and cannot be refreshed at all. When a 3-legged access token is refreshed, it gets a fresh 60-day countdown, but the refresh token itself keeps its original 365-day expiration from when it was first issued — not a renewed one. So on day 360 of a refresh token's life, generating a new access token still leaves you only 5 days before the member has to go through the full authorization flow again. This detail catches teams off guard when they assume refreshing resets the clock on both tokens. Programmatic refresh tokens are only available to approved Marketing Developer Platform (MDP) partners; apps without that approval must send the member through the standard browser-based reauthorization flow when their token expires. 2-legged tokens (via the Client Credentials Flow) skip user consent entirely for non-member data, but LinkedIn intentionally keeps their lifespan short and offers no refresh mechanism, and this flow is explicitly unavailable for Marketing APIs. Source: LinkedIn 3-Legged OAuth Flow, Refresh Tokens with OAuth 2.0, and LinkedIn 2-Legged OAuth Flow, Microsoft Learn (updated 2026-05-15 / 2025-10-08).

LinkedIn's Official API Rate Limits: Application vs. Member Quotas

LinkedIn enforces two separate rate-limit types on every approved app — an Application limit (total calls across all members in a day) and a Member limit (calls tied to one member's token in a day) — both of which reset at midnight UTC, and neither of which is published as a fixed public number. Exceeding either limit returns an HTTP 429 response. Because LinkedIn doesn't document standard per-endpoint limits, the only way to see your actual quota is through the Developer Portal: select your app, open the Analytics tab, and it will show usage and limits for any endpoint you've called at least once that day (UTC) — calling an unlisted endpoint once and refreshing the page surfaces its limit too.

Limit TypeWhat It TracksResetsWhere to Check
Application limitTotal API calls across all members, per app, per dayMidnight UTCDeveloper Portal → App → Analytics tab
Member limitTotal API calls for one member's token, per app, per dayMidnight UTCDeveloper Portal → App → Analytics tab

Developer Admins also get automatic email alerts once an app crosses 75% of its assigned Application-level quota, though these alerts aren't real-time — expect roughly a 1-2 hour delay, and a fresh alert fires separately if a different endpoint breaches the threshold later the same day. Note that alerts only trigger on Application-level breaches, not Member-level ones. If your approved limits genuinely don't meet your needs, LinkedIn's own guidance is to contact your partner representative or apply through its partner programs — there's no self-serve way to raise the ceiling. Source: LinkedIn API Rate Limiting, Microsoft Learn (updated 2025-08-20).

The Only LinkedIn API Scopes You Can Get Without Partner Approval

Just three permissions are available to any registered developer with no application review: profile and email (via Sign In with LinkedIn using OpenID Connect) and w_member_social (via Share on LinkedIn) — everything else, including reading connections, searching members, or pulling full profile data, requires LinkedIn to approve a partner program application first. These self-serve, "Open Permissions" scopes can be added directly from the Products tab on your application page in the Developer Portal, no waiting required.

ProductPermissionWhat It Grants
Sign in with LinkedIn using OpenID ConnectprofileRetrieve the authenticated member's name, headline, and photo
Sign in with LinkedIn using OpenID ConnectemailRetrieve the authenticated member's primary email address
Share on LinkedInw_member_socialPost, comment, and like posts on behalf of the authenticated member

Every other permission on LinkedIn's platform sits behind a partner program: Marketing (Advertising API), Sales (Sales Navigator Application Platform / SNAP), Talent (Recruiter System Connect, Apply Connect, and related ATS integrations), and Learning all require a formal application and LinkedIn's approval before the corresponding scope becomes available to your app. The Compliance API (r_compliance, w_compliance) goes further still — LinkedIn's own documentation lists it as closed, "for reference purposes only," meaning access can no longer be requested at all. Source: Getting Access to LinkedIn APIs, Microsoft Learn (updated 2026-06-03).

Beyond Consumer and Marketing: Talent, Sales, and Data Portability APIs

LinkedIn's Product Catalog groups its APIs into six categories — Consumer, Marketing, Sales, Talent, Learning, and Regulatory Developer Products — and most developer guides only cover the first two, skipping the Talent and Data Portability products entirely. The Talent category includes Recruiter System Connect (ATS synchronization), Apply Connect and Apply with LinkedIn (job application integration), and Premium Job Posting, all gated behind LinkedIn's Talent Solutions partner application. The Sales category centers on the Sales Navigator Application Platform (SNAP), which requires becoming an approved SNAP partner and covers permissions like r_sales_nav_analytics, r_sales_nav_display, and r_sales_nav_profiles. Less discussed are the Regulatory Developer Products — Member Data Portability and Pages Data Portability — which exist specifically to let members and page admins export their own data under regulations like GDPR, rather than to power outreach or CRM tooling. If your use case falls under Talent, Sales, or Learning, expect the same pattern as Marketing API access: a named use case, an application review, and a wait measured in weeks. Source: LinkedIn API Product Catalog, LinkedIn Developer Network and Getting Access to LinkedIn APIs, Microsoft Learn.

Frequently Asked Questions About the LinkedIn API

Is the LinkedIn API free to use? Partially. The self-serve Consumer scopes (profile, email, w_member_social) are free and available instantly to any registered developer. Everything else — Marketing, Sales, Talent, and Learning APIs — requires a partner application, and LinkedIn doesn't publish pricing for that access; companies commonly report enterprise costs in the five figures annually once approved.

Where do I find official LinkedIn API documentation? LinkedIn's official developer documentation lives on Microsoft Learn (developer.linkedin.com routes here for detailed reference material), organized by business line — Consumer, Marketing, Sales, Talent, and Learning — with a separate Developer Portal for creating apps, requesting products, and generating credentials.

What is the base URL for LinkedIn's REST API? Versioned LinkedIn REST APIs use https://api.linkedin.com/rest/ as the base path, introduced in June 2022, and every request against it needs a Linkedin-Version: YYYYMM header. Some legacy Consumer endpoints still respond on the older unversioned https://api.linkedin.com/v2/ path, so check the specific product's reference docs for which one applies.

How long do LinkedIn API access tokens last? Member-authorized (3-legged) access tokens last 60 days by default. Application-only (2-legged) tokens last just 30 minutes and can't be refreshed. Programmatic refresh tokens, available only to approved Marketing Developer Platform partners, are valid for 365 days from issuance.

Can I increase my LinkedIn API rate limit? Not through self-service. LinkedIn doesn't publish a way to raise Application or Member rate limits on your own — you check your current limits in the Developer Portal's Analytics tab, and if they're insufficient, LinkedIn's guidance is to contact your partner representative or apply through its partner programs.

Your First Official LinkedIn API Call: GET /v2/me

Once your app has an approved product and a member has authorized it, the profile endpoint is the call almost every integration starts with. This is the exact request and response shape documented in LinkedIn's Profile API reference:

GET https://api.linkedin.com/v2/me
Authorization: Bearer {access_token}
X-RestLi-Protocol-Version: 2.0.0
{
   "localizedFirstName": "Bob",
   "localizedLastName": "Smith",
   "localizedHeadline": "API Enthusiast at LinkedIn",
   "vanityName": "bsmith",
   "id": "yrZCpj2Z12",
   "profilePicture": {
      "displayImage": "urn:li:digitalmediaAsset:C4D00AAAAbBCDEFGhiJ"
   }
}

The five details that break first integrations

1. X-RestLi-Protocol-Version: 2.0.0 is not optional on many endpoints. LinkedIn's docs call it out explicitly for the batch and by-ID people calls. Omit it and you get a protocol error rather than a helpful message.

2. The id is scoped to your application, not to LinkedIn. LinkedIn's documentation states that "each member id is unique to the context of your application only. Sharing a person ID across applications will not work and result in a 404 error." This is the single most common cause of a mysterious 404 when a team migrates IDs between two of their own apps, or buys a dataset of "LinkedIn IDs" and tries to resolve them.

3. vanityName is what builds the public URL. Per the same docs, vanityName "is used to represent the public profile URL in the following format: www.linkedin.com/in/{vanityName}." So the response above corresponds to linkedin.com/in/bsmith. There is no separate profile-URL field to request. Note that vanityName requires r_basicprofile; the more commonly granted r_liteprofile does not include it.

4. You only get Lite Profile fields by default. Everything beyond name and photo requires either r_basicprofile or a partner-only permission. To request a narrower or wider set, use field projections:

GET https://api.linkedin.com/v2/me?projection=(id,firstName,lastName)

5. Reading another member's profile needs a Person ID you usually can't get. The endpoint exists —

GET https://api.linkedin.com/v2/people/(id:{person ID})

— but LinkedIn notes the Person ID is "available only via certain limited access APIs and subject to member privacy settings," and the endpoint returns nothing for members who have restricted their Off-LinkedIn Visibility. This is the concrete form of the access wall described in Why Most Developers Can't Use the Official LinkedIn API above: the endpoint is documented and the ID is unobtainable.

Storage rules that catch teams in review

LinkedIn's Profile API terms are stricter than most APIs and are enforced at partner review:

  • You may store data only for the authenticated member, and only with their permission.
  • You may never store Profile API data for anyone other than the authenticated member.
  • Localized fields (firstName, headline) come back as objects with localized and preferredLocale keys — the flattened localizedFirstName convenience fields exist alongside them. Persisting only the flattened value loses locale information some partner reviews ask about.

Frequently Asked Questions (Making Calls)

Why does my LinkedIn API call return 404 for a valid member ID? Most often because the ID came from a different application. LinkedIn scopes member id values per application, and reusing one across apps "will not work and result in a 404 error." Re-resolve the member through the app that will be making the calls rather than importing IDs.

How do I get a member's profile URL from the LinkedIn API? Read the vanityName field and build www.linkedin.com/in/{vanityName}. There is no dedicated URL field. vanityName is part of Basic Profile, so r_liteprofile alone will not return it — you need r_basicprofile.

What is X-RestLi-Protocol-Version and do I always need it? It tells LinkedIn which Rest.li protocol your client speaks. LinkedIn's docs require 2.0.0 for the by-ID and batch people endpoints, and sending it on every call is the safe default — it costs nothing and prevents protocol errors.

Can I fetch any LinkedIn profile with /v2/people/(id:...)? No. You need a Person ID obtainable only through limited-access APIs, the member must have authorized your app, and members who limit Off-LinkedIn Visibility are excluded regardless. The endpoint is not a lookup tool for arbitrary profiles.

About the Author

Anandi

Content Strategist, ConnectSafely.ai

LinkedIn growth strategist helping B2B professionals build authority and generate inbound leads.

LinkedIn MarketingB2B Lead GenerationContent StrategyPersonal Branding

Want to Generate Consistent Inbound Leads from LinkedIn?

Get our complete LinkedIn Lead Generation Playbook used by B2B professionals to attract decision-makers without cold outreach.

How to build authority that attracts leads
Content strategies that generate inbound
Engagement tactics that trigger algorithms
Systems for consistent lead flow

No spam. Just proven strategies for B2B lead generation.

Ready to Transform Your LinkedIn Strategy?

Stop chasing leads. Start attracting them with ConnectSafely.ai's inbound lead generation platform.

Get Started Free

See How It Works

Watch how people get more LinkedIn leads with ConnectSafely

Video thumbnail 1
Video thumbnail 2
Video thumbnail 3
Video thumbnail 4
240%
More profile views in 30 days
10-20
Inbound leads per month
8+
Hours saved every week
$35
Average cost per lead