Skip to content
  • LinkedIn: Early access
  • Email: Live

LinkedIn API for AI agents

An AI agent can send LinkedIn connection requests and messages and read the inbox, through a REST API or an MCP server.

Diagram: your agent calls the REST API or the MCP server, which sends through a campaign with caps and pacing to your LinkedIn account.

Key takeaways

  • LinkedIn's open API permissions cover sign-in, the member's email address and posting. They don't include sending connection requests or messages.
  • Through Bavlio, an agent sends connection requests with a note and follow-up messages as campaign steps, reads the LinkedIn inbox over REST or MCP, and replies over REST.
  • Every connection request and campaign message runs under per-account caps: 20 to 40 connection requests a day by account type, 100 per rolling 7 days, and 100 messages a day. Replies in an existing conversation don't count against them.
  • LinkedIn runs on Bavlio, the outreach product from the team behind Bavimail. Existing Bavlio customers use it today, and new accounts join the waitlist.

What LinkedIn's own API allows

LinkedIn gives every developer three open permissions: sign in (name, headline and photo), the member's email address, and posting, commenting and liking as that member. Sending connection requests and messages is not among them. Every other permission needs LinkedIn's approval through a partner program, such as the Sales Navigator Application Platform (LinkedIn, checked October 14, 2026).

So you connect your own LinkedIn account once, in the Bavlio dashboard, and every action runs as that account.

What an agent can do

ActionHow the agent does itLimit
Send a connection request with a noteA connection_request step in a campaign20 a day on a free account, 30 on Premium, 40 on Sales Navigator, and 100 per rolling 7 days
Send messages after the request is acceptedmessage and follow_up steps in the same campaign100 a day per account by default
Read the inboxGET /api/v1/linkedin/conversations and GET /api/v1/linkedin/conversations/{chat_id}/messages, or the MCP tools bavlio_list_inbox and bavlio_get_thread
Reply in a conversationPOST /api/v1/linkedin/conversations/{chat_id}/replyExisting conversations only
Search LinkedIn for peoplePOST /api/v1/linkedin/search50 a day, 10 an hour, 1 credit each
Look up a profileThe campaign looks each person up right before their invitationBulk lookups: 20 a day, one at a time
Most actions a day, per LinkedIn accountConnection requests also stop at 100 per rolling 7 days by default.
  1. Connection requestsFree account20
  2. Connection requestsPremium30
  3. Connection requestsSales Navigator40
  4. MessagesBy default100
  5. LinkedIn searches10 an hour50
  6. Bulk profile lookupsOne at a time20

Source: Limits enforced by Bavlio's outreach engine in production, checked October 14, 2026.

Guardrails

  • Caps. Daily and weekly connection request caps, a daily message limit and a 14-day warm-up for newly connected accounts. The numbers are on LinkedIn automation limits.
  • Pacing. A campaign sends in 2 to 5 short sessions a day inside its sending window, not all at once.
  • Stop on reply. A reply takes that person out of the sequence. No further steps send.
  • Opt-outs. A person who asks to stop goes on the suppression list and gets no further messages on any channel.
  • Preview. bavlio_preview_message returns the exact message a given person will receive, before launch.
  • Credit quotes. Lead search returns its maximum cost first and spends nothing until the agent confirms.

How an agent reaches it

  • REST API at api.bavlio.com, authenticated with a bav_live_ API key.
  • MCP server at https://mcp.bavlio.com/mcp, a hosted server over streamable HTTP with OAuth 2.1 sign-in, for Claude Code, Cursor, Claude Desktop and VS Code. See LinkedIn MCP server.

Send email from your agent today

Email runs on Bavimail, which is live with a free plan and no credit card. With an API key and an alias from the dashboard, this sends one email with the Node SDK, from the quickstart:

npm install bavimail
import { Bavimail } from 'bavimail'

const client = new Bavimail({ apiKey: process.env.BAVIMAIL_API_KEY })

const email = await client.emails.send({
  aliasId: 'your-alias-id',
  toEmail: '[email protected]',
  subject: 'Hello from Bavimail',
  body: '<strong>Your first email</strong>',
})

console.log('Sent:', email.id)

See inboxes for AI agents for every channel's status.

FAQ

Does LinkedIn have an official API for sending messages and connection requests?

Not one that every developer can use. LinkedIn's open permissions cover sign-in, the member's email address, and posting, commenting and liking as that member. Other permissions need LinkedIn's approval through a partner program.

Can an AI agent send a single LinkedIn message through this API?

No. Connection requests and first messages go out only as campaign steps, so the engine paces them under the account's caps. An agent can reply in an existing conversation directly.

Can I use it from Claude Code or Cursor?

Yes. The hosted MCP server at mcp.bavlio.com works with Claude Code, Cursor, Claude Desktop, VS Code and any client that supports remote MCP.

Can I sign up today?

LinkedIn is in early access. It runs today for existing Bavlio customers. New accounts join the waitlist at bavlio.com/waitlist.

How much does it cost?

There is no public price for LinkedIn yet.