in LinkedIn API Live in production. Email, messengers & calendars next
Pricing Blog
Get API key Sign in

LinkedIn API: The Developer Guide (Official, Third-Party & MCP)

LinkedIn API: The Developer Guide (Official, Third-Party & MCP)

For developers picking an integration path: what LinkedIn sanctions, what it doesn’t, what the alternatives cost, and how to run one without losing the account.

Updated September 2026 · 19 min read

Start with what the term means, because two different things answer to it. A LinkedIn API is any programmatic way to read LinkedIn data or act on an account without a person clicking through the interface. That covers LinkedIn’s own official API and a third-party API, a managed provider acting on an account you connect. The gap between them decides what you can build.

The direct answer, before the detail: the official API does not allow outreach automation. The endpoints for it are documented, POST /v2/invitations for a connection request and POST /v2/messages for a member-to-member message, and both sit in a program LinkedIn has closed to new access. The partners already inside are barred from automated sending by the terms attached to it, and profile and search access is restricted to approved partners. To search, connect, message and enrich programmatically, developers use a third-party LinkedIn API. The rest of this page covers which kinds exist, what each one costs, and what each does to the risk of losing the account you connect.

This guide is the honest map developers actually need: which official APIs exist (and which need partner approval), what only a third-party API can do, what each costs, and how to stay compliant. Facts on the official side are drawn from LinkedIn’s own developer documentation.

Does LinkedIn have an official API?

Yes, but a restricted one. LinkedIn offers official APIs for sign-in, sharing, advertising, Sales Navigator, talent and learning. Two are self-serve. The valuable ones require partner-program approval. Critically, none of the programs you can actually join send connection requests, send member-to-member messages, or search arbitrary member profiles, the exact actions outreach needs.

Self-serve (open to any developer)

In the LinkedIn Developer Portal you can use these without approval: Sign In with LinkedIn (OpenID Connect, the member’s name, profile photo and email) and Share on LinkedIn (w_member_social, post, comment and like as the authenticated member on their own feed). Useful for auth and publishing. Nothing to do with reaching other people.

Partner-only (approval required)

The rest are gated behind an application and review: the Marketing Developer Platform (ads and audiences), the Sales Navigator Application Platform (SNAP) (analytics, display, and matched profile data, not open search), Talent solutions (Recruiter System Connect, Apply Connect, job posting), and Learning. Compliance APIs are closed to new requests entirely, and that is the tree the Invitations and Messages endpoints sit in. Approval can take weeks and is limited to qualifying companies.

Here’s the full official lineup, grouped by how you get access. “Self-serve” means you can switch it on in the Developer Portal today. “Partner approval” means an application and a review.

Product What it does Access
Sign In with LinkedIn OpenID Connect, authenticate a member. Read name, photo, email Self-serve
Share on LinkedIn Post, comment and like as the authenticated member, on their own feed (w_member_social) Self-serve
Marketing Developer Platform Create and manage ads, campaigns and matched audiences Partner approval
Sales Navigator (SNAP) Sales Navigator analytics, display services, CRM validation, matched profile data Partner approval
Talent Solutions Recruiter System Connect, Apply Connect, Apply with LinkedIn, job posting Partner approval
Learning API Sync LinkedIn Learning content & activity Partner approval
Compliance Messaging and network capture for regulated firms, plus the documented Invitations and Messages APIs Closed, may not be requested

Access works the same way for all of them, and the sequence has a few steps that are easy to miss: How to get LinkedIn API access maps the Page requirement, the product requests, the Development and Standard tiers, and the programs that are closed.

Notice what the list does not get you. A Messages API, an Invitations API and a Connections API all exist in LinkedIn’s documentation. All three sit under Compliance, whose access page lists its permissions for reference only and states that access may not be requested, and no open or partner scope grants them. Even SNAP, the closest thing to a data API, returns matched profiles to approved sales partners.

⚠️ What the docs actually sayThe endpoints exist and are documented. POST /v2/invitations sends a connection request, taking the invitee URN and an optional note, and POST /v2/messages sends a MEMBER_TO_MEMBER message to first-degree connections. Both pages carry the same note, that usage is restricted to approved partners, and both live in the closed Compliance tree. The Messages requirements shut the door from the other side: “Member actions do not include an automated or scheduled event”, and the member has to take an affirmative action to send after being shown the draft. The capability is real, unobtainable, and not automatable even for the partners who have it.

One official route does put a message in a member’s inbox, and it belongs in an honest comparison. Message Ads and Conversation Ads, part of the Advertising API, build their content through POST /rest/inMailContents and land in LinkedIn Messaging. LinkedIn’s own wording is “A Message Ad is a message delivered to a LinkedIn member’s InMail inbox.” What the schema has no field for is a recipient. You set a sender, a subject and a body, and delivery goes to a campaign audience. The person is never named. The only per-person send in that API is the test send, and its recipient is the authenticated member, which is you.

The capability map: official vs third-party

The split is consistent once you go action by action: anything about your own presence has an official route, and anything that reaches another member does not. In the table below, “official” means LinkedIn’s own developer program, and “third-party API” means a managed provider like GTM API acting on an account you own.

Capability Official LinkedIn API Third-party API (gtm-api.com)
Sign in / identity Yes, OpenID Connect Reads the connected account’s own profile
Post / comment / like on your feed Yes, w_member_social Yes, plus track posts & engagers
Send a connection request Closed program only Yes
Send a direct message (member→member) Closed program only Yes, DM, voice, InMail
Search people / Sales Navigator search Partner only, matched profiles Yes
Enrich an arbitrary profile / company No Yes, lite & full
Read your inbox / conversations No Yes
Ads & audiences Partner (Marketing) Not offered
Post jobs / integrate an ATS Partner (Talent) Not offered
Access model App + partner approval (days to weeks) API key (minutes)
Agent / MCP interface No MCP-first + REST + webhooks

† Posting to a company or organization Page, rather than your own member feed, needs the organization scope (w_organization_social) and admin rights on that Page.

In short: the official API is built for your own presence and ads. A third-party API is built for reaching and researching other people. Almost every “LinkedIn automation” or “AI SDR” product is built on the second because the first simply doesn’t expose those actions.

🔑 The rule of thumbIf the action is about your own account (log in, post) it’s probably official and self-serve. If it’s about reaching or researching other people (invite, message, search, enrich) the official route is closed or partner-gated, and you need a third-party one.

Why LinkedIn restricts its API

LinkedIn keeps outreach and search out of reach on the official API deliberately, and the closed Compliance tree is the proof. The endpoints were built and documented, then put behind a door that no longer opens. Open programmatic messaging and bulk profile access would flood members and erode trust, and member data is the platform’s core asset. This is a product decision backed by the Terms of Service, so building a roadmap around some future official outreach API is wishful thinking.

The stance has been tested in court, though only narrowly. The long-running hiQ Labs v. LinkedIn case concerned scraping logged-out public profiles under the CFAA, and even there LinkedIn ultimately prevailed on breach of contract, with hiQ paying $500K, deleting its data and shutting down. Authenticated, account-based automation is a separate Terms-of-Service question that hiQ leaves open. It’s useful background, and it’s a long way from legal cover. The three legal questions, and how hiQ actually ended, are taken apart on Is scraping LinkedIn legal?.

Which reframes the decision. The official API will not hand an outreach product what it needs, so the practical question is how to do it with the least risk.

What a third-party LinkedIn API can do

A third-party LinkedIn API turns the actions a person does by hand, search, connect, message, engage, enrich, into typed endpoints an app or AI agent can call. What any given provider can actually do depends on where it sits in the market, and the category splits four ways:

  • The official API. Sign-in and publishing, plus the partner-gated ads, sales and talent programs above. No outreach, no open search.
  • Scrapers (Bright Data, Apify). Fetch public pages at volume. No authenticated actions, and the page is all you get.
  • Dataset providers (People Data Labs, Coresignal). Sell a pre-built database of profiles. Broad coverage, but the records are as fresh as the last crawl.
  • Account-based APIs (gtm-api.com, Unipile, Linked API, OutX, LinkdAPI). Act on a LinkedIn account you connect, so they return live data and perform actions. This is the only bucket that can send an invite or a message.

In that last bucket sits GTM API. It groups 160+ tools into typed LinkedIn toolsets (representative below), all behind one key and one schema, so the same contract powers a REST integration and a Claude or ChatGPT agent. If you are choosing between the vendors in that bucket, there is a separate ranking of the best LinkedIn API options, with every safety figure those vendors publish quoted and sourced.

Group Representative actions
Messaging Send DM, voice note, InMail, Sales Navigator message. Sync & search inbox. Reply metrics
Network Send/withdraw connection requests, accept/ignore invitations, list connections & followers
Enrichment Lite & full profile, experience, skills, education, posts, company data
Search / data People, company & post search. Similar profiles, employees, decision-makers. Saved searches
Content Track posts & metrics, comment, react, pull engagers & commenters
Account health Snapshots, benchmarks, quota-hit & block logs, activity log
Infrastructure Isolated cloud browsers, dedicated residential proxies, webhooks for real-time events

LinkedIn is the live channel today. Email (Gmail, Outlook, IMAP), messengers (WhatsApp, Telegram, Instagram DMs) and calendars (Google, Microsoft) are on the roadmap on the same typed contract. Details on the agent interface are on the LinkedIn MCP server page.

Is a third-party LinkedIn API safe & compliant?

Honest answer: LinkedIn’s Terms of Service don’t permit third-party automation, so any tool in this space carries inherent risk. What separates providers is how much they reduce it, and the levers are the same everywhere: accounts you actually own, isolated browser sessions, and daily limits enforced before an action goes out.

Concretely, that is five mechanisms, and it’s worth asking any provider which of them they actually run:

  • Accounts you own. You connect them and you can disconnect them. There is no shared pool of borrowed sessions.
  • An isolated cloud browser per account, so one account’s browser profile is never reused for another.
  • A dedicated residential proxy per account. Shared datacenter IP ranges are what get a whole fleet flagged at once.
  • Health-aware daily limits enforced server-side, checked before an action goes out, while refusing it still costs nothing.
  • Preview then confirm available on outward actions, with an activity and audit log behind it.

On that setup, GTM API reports 20,000+ accounts at under a 1% ban rate. Frédéric D., co-founder of MirrorProfiles, calls the stack behind GTM API “the safest and most reliable option we’ve tested”.

Durability matters as much as ban-rate, and the category has a worked example. LinkedIn filed suit against Proxycurl, then one of the most-used LinkedIn data APIs, in January 2025, and the company announced its shutdown that July. Founder Steven Goh put it plainly in the shutdown post: “Regardless of the merits of LinkedIn’s lawsuit, there is no winning in fighting this.” Every product built on that API went dark. Because GTM API is account-based and you own the connected accounts, there is no shared scraped-data pool for a single lawsuit to switch off.

One objection deserves a direct answer, because it comes up in every comparison: isn’t cloud automation riskier than a browser extension on your own machine, given the traffic leaves a datacenter? It is, for tools that route accounts through a shared datacenter IP pool. That’s the failure mode being described, and it’s an implementation choice, which is why the second and third items on that list are per-account and residential. A session on this setup reads as one person on one home connection. The trade the other way is that an extension inherits whatever your own browser looks like and enforces its ceilings in a page script, which nothing stops you from closing mid-run.

It’s also a very different risk profile from a scraper hitting pages with a borrowed cookie, and the data stays in your workspace either way. That’s the framing a technical buyer should use. The full method is on the safe LinkedIn automation page, and the per-account ceilings are on the LinkedIn connection limits page.

LinkedIn API pricing

Third-party LinkedIn APIs price one of two ways: per connected account (a flat monthly fee, unlimited actions) or per call (metered credits per request). Of the two, GTM API uses the per-account model, from $10 per account per month at volume, with unlimited outreach and action calls.

There are no per-action fees on that plan, so an agent that sends thousands of messages costs the same as one that sends ten. Scraping and enrichment are live too, with pricing not yet published.

From$10per connected account / month at volume · unlimited calls · scraping and enrichment are live but not yet priced

Per-account pricing is usually cheaper for outreach (steady sending) and per-call is cheaper for occasional lookups. Work out roughly how many actions a month you need before you compare quotes, because the two models cross over fast. The full brackets, the 5G Proxy add-on and the costs providers tend to bury are on the LinkedIn API pricing page.

How to get started

Getting programmatic LinkedIn access takes minutes, with no partner review to wait on: create a key, connect an account, and make your first call over REST or MCP. Both interfaces hit the same typed contract, so moving between them later changes nothing about the calls you’ve already written. There’s a forever free plan, Sandbox, with no card and no time limit.

  1. Create an API key. Sign up and generate it in the dashboard. The free plan takes no card.
  2. Connect a LinkedIn account you own. It gets its own isolated browser session and its own residential proxy, and a new account warms up before it scales.
  3. Make a call. Hit the REST endpoint directly, or point Claude, Cursor or ChatGPT at the MCP server and let the agent call the same tools.
  4. Watch account health. Snapshots, quota-hit logs and block logs are endpoints too, so an agent can read its own headroom and back off before a restriction tells it to.

Make your first call (REST)

Every action is a typed endpoint. Sending a message is the same send_linkedin_message operation you’d call from an agent, over HTTPS:

send a LinkedIn messagebash
# full reference: docs.gtm-api.com
curl -X POST https://app.gtm-api.com/linkedin/v4/api/linkedin-messages/send \
  -H "Authorization: Bearer $GTM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "linkedin_account_sid": "ln_ac_...", "ln_id": "ACoAA...", "text": "Thanks for connecting!" }'

Every parameter, guard and error code for this call is on the developer docs. The linkedin-api-examples repo on GitHub has the same call as a runnable script, in curl and TypeScript, next to nine more covering search, enrichment and connection requests.

Or skip the code (MCP)

The same tools are also exposed over the Model Context Protocol, so an agent running in Claude, Cursor or ChatGPT can call them with no integration code. The agent works from typed tool definitions, which is what lets it pick send_linkedin_connection_request on its own and still sit inside the same server-side limits a REST call gets. That’s the short version. Setup, client configs and the full toolset are on the LinkedIn MCP server page.

Frequently Asked Questions

Does LinkedIn have an official API?

Yes, but a restricted one. LinkedIn offers official APIs for sign-in (OpenID Connect), sharing posts, ads (the Marketing Developer Platform), Sales Navigator (SNAP), talent and learning. None of the programs open to new developers send connection requests or member-to-member messages, and none search arbitrary member profiles. The valuable ones also require partner-program approval.

Is there a LinkedIn API to send messages or connection requests?

Not one you can get. LinkedIn documents both, POST /v2/invitations for a connection request and POST /v2/messages for a member-to-member message, and both sit in the Compliance program, which the access page lists for reference only with access that may not be requested. The Messages rules also bar automated or scheduled sending for the partners inside, and partner programs like SNAP expose limited Sales Navigator data under approval without open messaging. To do that programmatically, developers use a third-party LinkedIn API. The account-based options include GTM API, Unipile and LinkedAPI, which all act on a real LinkedIn account you connect. Of the three, GTM API sends through an isolated browser session with health-aware limits enforced before the action. The full picture is on LinkedIn messaging API.

How do I get access to the official LinkedIn API?

Sign In with LinkedIn and Share on LinkedIn are granted on request once your app is associated with a verified LinkedIn Page. Every other product goes to a partner review, and several programs are closed to new applicants. The current map is on How to get LinkedIn API access.

What is SNAP (the Sales Navigator API)?

LinkedIn’s partner platform for Sales Navigator integrations, covering display embedding, seller analytics and CRM sync. It has never returned search results or lead lists, and LinkedIn stopped accepting new partners. The detail is on Sales Navigator API.

Is using an unofficial LinkedIn API legal?

It’s a grey area. Third-party automation is against LinkedIn’s Terms of Service, so it carries inherent risk. The hiQ v. LinkedIn case is sometimes cited here, but it’s narrow. It concerned scraping logged-out public profiles under the CFAA, and LinkedIn ultimately prevailed on breach of contract, with hiQ paying $500K, deleting its data and shutting down. Authenticated, account-based automation is a distinct ToS question that hiQ doesn’t settle. Providers reduce risk by acting on owned accounts with isolated browser sessions and health-aware limits. Across 20,000+ accounts, gtm-api.com reports under a 1% ban rate.

What's the difference between GTM API, Unipile and LinkedAPI?

All three are third-party LinkedIn APIs. Unipile is a broad multichannel wrapper. LinkedAPI is another agent-native peer. The closest managed MCP+API rival is ConnectSafely.ai, and OutX and LinkdAPI sit in the same account-based bucket. Of these, GTM API is MCP-first with 160+ typed LinkedIn tools, and what it puts forward is a published safety record: it reports 20,000+ accounts at under a 1% ban rate. Pick on what you can verify. Several vendors here publish a safety number, so read its shape: a rate that can be non-zero, the window it covers, and the accounts underneath it. Then check whether the connected accounts are yours outright. Email, messengers and calendars are on the same contract next.

Do I own my data with a third-party LinkedIn API?

With GTM API the account is yours. You connect it and you can disconnect it. The messages, connections and enriched records belong to your workspace, with an activity and audit log. That’s different from a scraper reselling a shared pool of data.

Can I use the LinkedIn API for scraping or enrichment?

The official API does not offer open profile search or enrichment. A third-party API can return profile, company and post data through a typed contract on owned accounts, the safer equivalent of scraping. On that model, GTM API exposes people/company search and lite-and-full enrichment as typed tools on the same contract.

Sources & Further Reading

Build on the LinkedIn API that actually does outreach.

Skip the partner-approval queue. Get a key, connect an account, and send your first message from REST or an AI agent in minutes, on the stack gtm-api.com reports at 20,000+ accounts and under 1% ban.

Get your API key →

Last updated: September 2026 · Official-API details verified against LinkedIn’s developer documentation at time of publication