Skip to main content
Use Unipile through Corsair: one client, typed API calls, and incoming webhooks. Every account-level call takes the account_id (acc_…) of a connected account; connect one with accounts.createAuthLink (LinkedIn can sign in with credentials, cookies or the UniLogin extension). One plugin covers 148 operations: chats and messages on any messaging provider, emails, drafts and folders, calendars and events, posts and comments, LinkedIn searches, Sales Navigator lists, and admin (scopes, API keys, webhooks). On LinkedIn, chats are listed with inboxes.listChats and started with inboxes.startChat (inbox CLASSIC_PRIMARY); chats.list and chats.start cover WhatsApp, Telegram and Instagram. Writes are never retried after a timeout or 5xx, so a lost answer cannot cause a duplicate message, email, invitation or post. LinkedIn calls that spend a daily budget (profile and company views, post reads, searches) are only retried after Unipile’s own 429. Unipile does not pace sends for you: LinkedIn allows roughly 100-200 invitations a week and about 80-100 profile views a day. If Unipile accepts a write but answers with an unexpected body, the call returns { parse_warning, raw } instead of throwing; check result.parse_warning !== undefined before reading fields, and do not resend. Pictures and attachments return their type and size unless include_content is set. Scopes, API keys and webhook endpoints need a Unipile Service API Key; Account API Keys get 403 api/insufficient_permissions. Deliveries are verified with the endpoint’s signing secret (unipile-signature header, HMAC-SHA256 of the raw body), so pass the raw request body to Corsair and set webhookSecret (or store the webhook signature) to that secret. Secrets are returned once: webhookEndpoints.create and apiKeys.create; other calls never show them. What you get:
  • 148 typed API operations
  • 40 incoming webhook event types

Setup

1

Install

2

Add the plugin

corsair.ts
Multi-tenancy is the default — scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

Look up a LinkedIn profile
Send a LinkedIn invitation
See the full list on the API page.

Webhooks

Runs when an invitation is accepted. LinkedIn can report it up to 6 hours late.
Mount your framework handler once (see Frameworks), then point the provider at that URL. Full event list: Webhooks. Concepts: Webhooks, Hooks.

What’s next

API reference

Every unipile.api.* operation with input and output types.

Webhooks

Event paths, payloads, and webhookHooks examples.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.