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

LinkedIn Automation API: Actions on an Account You Own

LinkedIn Automation API

You want code or an AI agent to do on LinkedIn what a person does by hand. LinkedIn’s own API will not, so the API that does acts on an account you connect.

Updated October 2026 · 23 min read

A LinkedIn automation API is an API that acts on a LinkedIn account a person owns. You connect the account once, and from then on your code or your AI agent sends invitations and messages, reads the inbox and searches profiles through endpoints, while the API holds the session and paces each call. LinkedIn’s own API offers none of that to new developers.

This page explains the category to anyone deciding whether to build on one. The API vendors are ranked on Best LinkedIn API, and LinkedIn’s official programs are mapped in the LinkedIn API developer guide. GTM API is our product and is listed first in both vendor tables below. Every fact about another vendor comes from that vendor’s own pages, read on 14 or 15 October 2026, re-checked on 24 October and linked in Sources.

How it differs from LinkedIn’s own API

LinkedIn runs a developer platform of its own, and what it opens to any developer is sign-in and posting to the member’s own feed. Ads, Sales Navigator and recruiting integrations sit behind partner review. The two endpoints an automation buyer is looking for do exist in its documentation. The Invitations API and the Messages API both open with the note “Usage of this API is restricted to approved partners”, and both are filed under Compliance, the program whose permissions LinkedIn lists “for reference purposes only. Access is closed and may not be requested.” The Messages requirements close the door on the partners already inside too: “Member actions do not include an automated or scheduled event.”

An automation API starts from the other end. It asks LinkedIn for no scope. It connects the account of a member who signs in, and it performs through that account the actions the member could take by hand. Three parts make one:

  • A connected account. One LinkedIn member, usually you, a teammate or your customer, signed in through the vendor. Everything the API does, it does as that member and inside what that member can see.
  • Actions as endpoints. An invitation, a message, an InMail, an accepted request or a reaction is one typed call, with a documented request and a documented error.
  • A daily budget and a gap between calls. A person spreads actions across a day without thinking about it. Behind an API that pacing has to live somewhere, in the vendor’s servers or in your code, and the limits section below is about which.

Two other products get called a LinkedIn API. A data API sells records with no account connected at any point. LinkdAPI describes its own design as “No browser automation, no sessions”, so a product of that shape can read and can never send. A LinkedIn automation tool is a dashboard a person drives, with campaigns built in a browser and a price per seat, and an automation API is the layer such a tool, or an AI agent, would be built on. How LinkedIn automation runs as a whole, tools and APIs together, is on the LinkedIn automation hub.

How the account gets connected

Every automation API needs a signed-in LinkedIn session to act through, and the ten on this page get one in four ways. The choice settles two things for a builder: whether anything has to stay running on your side, and whether the LinkedIn password passes through the vendor.

  • A cloud browser per account, signed into by the member. The vendor runs a browser for each connected account, and the member logs in to LinkedIn inside it. GTM API works this way, with a dedicated proxy for each account, and its docs note that the login happens inside that browser, so the password is never handed over. Linked API describes the same model (“Each LinkedIn account gets its own full browser in the cloud”) and says of the password: “We never see, intercept, or store it.”
  • A hosted sign-in flow. Unipile lists “Hosted Auth”, “a ready-made, white-label sign-in page hosted by Unipile”, among its ways to connect an account, alongside custom authentication, credentials and cookies, which fits a product that connects its own customers’ accounts.
  • Credentials and a one-time code through the API. We-Link’s reference has a call to “Log in and submit an OTP to connect an account”.
  • An extension in your own browser. “OutX runs through the Chrome extension installed on your browser”, and its API answers only while a team member’s extension has been active within the last 48 hours.

The first three keep working with your laptop closed. The fourth ties the API to a browser of yours that opens at least once every two days. How the four architectures compare beyond the API is on cloud vs extension LinkedIn automation.

What it can and cannot do

Most of what a member can do in LinkedIn’s own interface, an automation API can do as a call. The verbs group much the same way across the vendors in this category:

  • Messaging. Send a message, a voice note or an InMail, read and sync the inbox, reply inside a thread.
  • Network. Send, withdraw, accept or ignore connection requests, and list connections and followers.
  • Search. People, companies and posts, plus Sales Navigator search when the account has a seat.
  • Profiles and companies. Read a profile or a company page the member can open, with experience, skills and recent posts.
  • Content. Publish a post, comment, react, and pull the people who engaged with a post.
  • Account state. Whether the session is signed in, how much of today’s budget is spent, and what LinkedIn refused.

GTM API exposes these as 190+ typed tools on its LinkedIn side, each one both a REST endpoint and an MCP tool generated from one schema. The first call in its docs lists the LinkedIn accounts connected to your workspace, with the key sent as a bearer token:

list your connected accountsbash
curl -X POST "https://app.gtm-api.com/linkedin/v4/api/linkedin-accounts/search" \
  -H "Authorization: Bearer gtm_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page_size": 5}'

What it cannot do follows from acting as one member:

  • Act without a signed-in account. No session, no action. A newly connected account on GTM API can be read at once, and its outbound actions answer invalid_transition until the first sync of its inbox, connections and profile has finished.
  • Go past what LinkedIn allows that account. The API sends as the member, so the member’s own allowances are the ceiling, and any cap a vendor sets works inside them. LinkedIn publishes no numeric invitation cap, and the commonly observed ceiling is roughly 100 invitations a week on free and Premium accounts (the figures are on LinkedIn connection limits).
  • Read what the member cannot see. Search and profile reads return what that account would see in its own interface. A bulk dataset about people nobody on your side is connected to is a data API’s product.
  • Run ads, post jobs or sign members in to your app. Those belong to LinkedIn’s own Marketing, Talent and Sign In with LinkedIn programs.
  • Send everything at once. Behind a paced API, an account sends one action of a kind at a time. On GTM API, parallel calls on one account wait in the same queue, and at the full default of 25 connection requests a day, 100 invitations take four days of that account’s budget.

What automation APIs charge per unit

Automation APIs charge by one of four units: the connected account, the seat or sender (one account under another name, sometimes with credits attached), a plan that bundles accounts with a monthly lead allowance, or a credit spent per action. The unit decides how the bill moves with volume. Per account, an account that sends all day costs what a quiet one costs. Per credit, every invitation and every message is a line on the bill.

GTM API is our product and is listed first. Every other row is the vendor’s own published price, read on 14 October 2026 (We-Link’s credits per action on 15 October) and linked in Sources.

API Unit Published price What the unit covers
gtm-api.com Connected account, per month Free plan for one account, no card. Paid plans from $10/account Calls and actions are not metered. The account’s daily caps come from its smart limits
Unipile Connected account, per month, any channel EUR 49 minimum, covering up to 10 accounts, then EUR 5.00 down to EUR 3.00 an account, ex VAT. 7-day trial “No additional cost per request or per message”
Linked API Seat, per month. “One seat equals one connected LinkedIn account” Core $49 billed annually or $69 monthly, Plus $74 or $99 with Sales Navigator actions. 7-day trial “Unlimited workflow execution”
LinkupAPI Connected account, per month, any channel $55 flat for up to 10 accounts, then $5.50 down to $4.50 an account up to 640, or Unlimited at $3,000 flat. Ex VAT “No credits, no per-call fees”
ConnectSafely LinkedIn account, per month $10, or $9 a month billed yearly, for up to 100 accounts The REST API, the MCP server and the CLI in one plan
Edges Identity, per month, plus credits for data $7.99 down to $3.82 an identity. Data credits from $43.99 per 1,000 at the base tier An identity is “One real LinkedIn or Sales Navigator account that sends invites, messages or InMails”. Read-only use of a seat is free
FirstTouch Sender, per month: “One connected LinkedIn account” $99 a sender with 500 credits a month, extra credits 2 cents each. 14-day trial “Connection requests and messages don’t use credits”
ScaliQ Plan, per month, by accounts and leads Starter $46 for 1 LinkedIn account and 500 leads a month, Pro $96 for 3 accounts and 1,500 leads, marked “Launch pricing for the first 1,500 users” A monthly lead allowance per plan
We-Link Credit, prepaid $39 for 4,000 credits ($0.0098 each) up to $490 for 100,000 ($0.0049 each). 100 free credits for 14 days 5 credits for a connection request or a message, so $0.049 down to $0.0245 an action. The internal proxy is 410 credits a month
OutX Plan, per month Free plan, then $99, $249 or $999 a month The plan, run through your Chrome extension, with the API answering only while one is active

Two names that turn up in API roundups are left out. On the pages read on 14 October, Captain Data sells data by the credit with no LinkedIn account connected, and TexAu hands enriched leads to other tools to send. Neither acts on an account of yours.

A per-account price and a per-credit price compare only once you fix a volume. The full grid by charging unit, data APIs included, with the arithmetic for setting a credit against an account, is on LinkedIn API pricing.

How limits and pacing work behind the API

Behind every automation API, something decides how many actions an account takes in a day and how far apart they leave. Either the API holds that budget and queues or refuses the call that would exceed it, or it passes every call through and the budget lives in your code. LinkedIn publishes no numeric invitation cap to design against, so whichever side holds the budget works from its own numbers.

How gtm-api.com paces an account

Smart limits are on by default for every connected account. Each action type has its own daily bucket, and every outbound call is checked against it on the server before it leaves. Work that would exceed a bucket is parked, and it resumes by itself when the budget refreshes. Inside the day, calls from one bucket leave one at a time, each gap drawn at random within 20% of the bucket’s delay, and on top of every bucket one account starts at most 10 calls a minute. The defaults once an account has warmed up:

Action Per day One call about every
Connection requests 25 30 s
Messages, voice notes 50 10 s
InMails, Sales Navigator and Recruiter messages 30 23 s
Profile visits 50 10 s
Comments 30 30 s
Posts 20 40 s

A freshly connected account starts lower and ramps up on six live signals: recent activity, concurrent sessions and IPs, blocks, limit hits, account age and profile completeness. You can hold any bucket lower with target_limit. Switching smart limits off hands every number to you, and the app asks in words before it does. The per-account sync window, business hours by default, schedules only the recurring syncs (inbox, connections, invitations, followers, profile), and sends run whenever they are triggered, under the same limits.

A call that would wait more than 20 seconds for its slot comes back as 429 rate_limited, with bucket_saturated and a retry_after timestamp. A call that goes through carries the clock with it, so code can plan the next call without running into the gap first:

the pacing block on a successful calljson
"pacing": {
  "linkedin_account_sid": "ln_ac_YOUR_ACCOUNT",
  "limit_type": "send_messages",
  "next_call_after": "2026-09-18T12:00:10+00:00",
  "remaining_today": 46
}

Who holds the budget at each vendor

Asked of every automation API on this page, the question splits the field in two, with shades in between: the API holds a budget, or your code does. The quotes are the vendors’ own.

API Who holds the daily budget What the vendor publishes
gtm-api.com The API, on by default, checked before each send A daily bucket per action, a random gap per call, a warm-up for new accounts, and a ceiling you can set lower
Edges The API, per identity “Per-identity rate limits are enforced in our infra.” 25 connection requests per rolling 24 hours, 30 on Premium and Sales Navigator, and a new identity “does not receive its full allowance immediately”
Linked API The API, against caps you set “When a limit is hit, the system stops and returns an error. It never exceeds your configured caps.” Its Admin API example shows defaults of 10 connection requests and 50 messages a day
We-Link The API, by the hour A “Global Action Rate Limit” of “100 requests/hour” on a rolling 60 minutes, answered with a 429 until the window resets
ConnectSafely The vendor, by account age “Conservative daily limits based on account age and activity”, with no figure published
FirstTouch Caps you configure “Treat any configured FirstTouch limit as an operational ceiling, not a guarantee.”
ScaliQ The API, per key and on reads “120 requests / minute per API key”, and profile lookups at “80 / day classic or 150 / day Sales Navigator / Premium” per account. Sends are rate-limited per key, 10 a minute, with no daily send cap published
Unipile Your code “We don’t enforce any limits on our side, so you’ll have the exact same limit in the LinkedIn UI.” Its account protection page lists pre-emptive rate limiting with the note “This feature is coming soon.”
LinkupAPI Your code, with monitoring “We don’t impose blind daily limits”, and on pricing, “Only each platform’s own limits apply”
OutX Your code “OutX does not enforce API rate limits.” Its docs give pace as guidance, such as “Like up to 50 a day at least 2 minutes apart”

When the API does not hold the budget, your code has to hold it: a counter per account, per action type and per day, a slower start for a new account, a random gap between calls of one kind, and a stop on the first answer that says the account reached a limit. When the API does hold it, the useful question is whether the remaining budget can be read before a call, so an agent can plan a day’s work, or only shows up afterwards as an error.

Retries that do not send twice

A send can lose its answer to a timeout or a dropped connection, and a retry that sends blind can put the same message in front of a person twice. Every send endpoint on GTM API takes a client_reference, your own id for that one send. A repeat under the same key is answered with what the first send came to, and nothing goes out a second time:

POST /linkedin/v4/api/linkedin-messages/sendjson
{
  "linkedin_account_sid": "ln_ac_YOUR_ACCOUNT",
  "linkedin_conversation_sid": "ln_cv_YOUR_THREAD",
  "text": "Thanks, Thursday at 3 works for me. I'll send the invite.",
  "client_reference": "task-48213"
}

What a send came to is always one of four outcomes, sent, not_sent, in_flight or unknown, and a check-sent endpoint asks the question without sending anything. The sending once page of the docs walks through every case.

The MCP layer for AI agents

MCP, the Model Context Protocol, is how an AI agent such as Claude, ChatGPT or Cursor finds and calls tools. An automation API with an MCP server lets the agent take the actions your code would take, from a plain request. Four things separate one server from another: whether it exposes LinkedIn actions or only documentation, how it signs in, whether it runs under the same limits as the REST API, and whether a send waits for a confirmation.

GTM API’s server is at https://mcp.gtm-api.com/mcp over streamable HTTP. It exposes 250+ typed tools across the whole platform, 190+ of them on the LinkedIn side, and each tool maps 1:1 to a REST endpoint from the same schema, so an agent and your backend see the same shapes and the same server-side limits. Anything that sends, one message or a bulk dispatch, returns a preview first and needs an explicit confirmation before it reaches LinkedIn, while reads run straight away. Interactive clients sign in with OAuth. A server, a CI job or any client with no browser passes the same API key the REST API takes, as a bearer token:

connect Claude Code with an API keybash
claude mcp add --transport http gtm-api https://mcp.gtm-api.com/mcp --header "Authorization: Bearer gtm_live_..."

Clients that can only start a command use the @gtm-api/linkedin-mcp launcher, which reads the key from GTM_API_KEY in version 1.3.0 and later. The LinkedIn MCP config generator writes the config for each client, and the LinkedIn MCP server page has the setup and the full tool list.

Across the other automation APIs on this page, the MCP servers come in three shapes:

  • Servers that operate the account. Linked API runs a hosted server, with tokens in the server URL, and publishes its source on GitHub. LinkupAPI’s server is at https://mcp.linkupapi.com/mcp, signed into with OAuth 2.1 or an x-api-key header. We-Link’s takes one connected account per connection, through an account-id credential, and its tools include sending a connection request and a message. ScaliQ says its server’s “Tools map 1:1 to REST under /public/v1”. FirstTouch’s lets an agent “review generated content, approve outreach”.
  • Local, started by the client. OutX’s server runs over stdio through npx, and its docs say “There is no hosted or remote endpoint for the OutX API”.
  • Built for coding agents. Unipile pitches its server to coding agents that “read the Unipile API and build LinkedIn, WhatsApp and email integrations into your app”. It is a tool for writing the integration, where the servers above operate an account.

ConnectSafely includes an MCP server in its per-account API plan, next to the REST API and the CLI.

What an agent should be trusted to do on its own, and where a person stays in the loop, is on LinkedIn AI agent.

What to check before you build on one

Six questions cover what this page walked through. Ask each vendor for the docs page that answers each:

  1. Whose account does it act on? An account you or your customer owns and signs into, and one you can disconnect at any time.
  2. Where does the session live? A cloud browser, a hosted sign-in, credentials sent through the API, or an extension that has to stay active.
  3. What is the unit on the bill? Account, seat, plan or credit, and whether a send is metered.
  4. Who holds the daily budget? The API before each send, or your code, and whether the remaining budget can be read before a call.
  5. What happens when an answer is lost? Whether a retry can send twice, and how to ask what came of the first attempt.
  6. What does the agent surface expose? Actions or documentation, hosted or local, and whether a send waits for a confirmation.

The API vendors are ranked against questions like these on Best LinkedIn API. LinkedIn’s official programs, and the first REST and MCP calls on GTM API, are in the LinkedIn API developer guide. Every endpoint, guard and error code is in the developer docs.

Frequently Asked Questions

What is a LinkedIn automation API?

An API that acts on a LinkedIn account a person owns. You connect the account once, and code or an AI agent then sends connection requests and messages, reads the inbox, searches people and reads profiles through typed endpoints, as that member. LinkedIn’s own developer platform does not open these actions to new developers, so automation APIs come from vendors such as GTM API, Unipile, Linked API, LinkupAPI and We-Link.

Does LinkedIn have an official automation API?

No. LinkedIn documents an Invitations API and a Messages API, but both are restricted to approved partners and sit in its Compliance program, which is closed to new requests. The Messages requirements also say member actions do not include an automated or scheduled event, which rules automated sending out for the partners already inside. What LinkedIn opens to any developer is sign-in and posting to the member’s own feed.

How is a LinkedIn automation API different from a LinkedIn automation tool?

A tool is a dashboard a person drives, with campaigns built in a browser and a price per seat. An automation API is the layer underneath, called from code or an AI agent, with each action as an endpoint and the daily budget held either by the API or by your code. Some vendors sell both: We-Connect is a cloud app priced per seat, and We-Link is the API from the same team, priced per credit.

How much does a LinkedIn automation API cost?

It depends on the unit the vendor bills. GTM API, our product, has a free plan for one account and paid plans from $10/account, with calls and actions not metered. Elsewhere, per connected account, Unipile runs from EUR 5.00 down to EUR 3.00 after a EUR 49 minimum covering ten, LinkupAPI from $5.50 down to $4.50 after $55 for ten, and ConnectSafely $10. Linked API sells a seat at $49 to $99, FirstTouch a sender at $99, and We-Link credits that put a connection request or a message at $0.0245 to $0.049.

Who enforces the daily limits when you use an automation API?

Either the API or your own code. GTM API, Edges and Linked API hold a daily budget per account and stop or queue the call that would pass it. Unipile’s docs say it does not enforce limits on its side, LinkupAPI says it imposes no blind daily limits and alerts you from its account monitoring, and OutX does not rate-limit its API, so with those three the counters live in your code. LinkedIn’s own ceilings sit above both and are not published as numbers.

Can an AI agent use a LinkedIn automation API?

Yes, through an MCP server, which presents the API’s actions as tools that Claude, ChatGPT, Cursor or another agent calls from a plain request. Check what the server exposes, LinkedIn actions or only documentation, how it signs in, whether it runs under the same limits as the REST API, and whether a send waits for a confirmation. GTM API, Linked API, LinkupAPI, We-Link and ScaliQ expose LinkedIn actions as MCP tools, OutX runs its server locally, and Unipile’s server is built for coding agents writing an integration.

Does GTM API charge per action or per call?

No. The unit is the connected account, priced per month, and API calls and actions on it are not metered. What bounds an account’s day is its smart limits, a daily budget per action type that starts lower on a new account and ramps up as it warms. The free plan covers one account with no card and lower daily caps, and paid plans start from $10/account.

Sources & Further Reading

LinkedIn actions as typed calls, on accounts you own.

Connect an account on the free plan, call it over REST or point an agent at the MCP server, and every send is checked against the account’s daily budget before it leaves. Paid plans start from $10/account when you need more accounts.

Get your API key →

Last updated: October 2026 · Definitions and benchmarks verified at time of publication