Skip to content
Founding offerUnlimited LinkedIn accounts for $1,000/mo, locked for life · 10 of 10 spots left.Unlimited accounts, $1,000/mo for lifeApply →
ProductAPIMCPAgenciesPricing Integrations Compare Log in Start 7-day trial

LinkedIn automation APIAutomate LinkedIn outreach .

Create sequences as JSON, enroll leads from any tool, and get a webhook for every invite, accept and reply. The SalesMix app runs on this same API, so nothing is held back.

Quickstart

Your first LinkedIn reply in three API calls.

01

Create a key

In Settings → API keys. Keys are scoped to a workspace, so agencies can hand each client its own.

02

Create a sequence

Send the steps as JSON to POST /v1/sequences, or build it on the canvas and grab its id.

03

Enroll leads and listen

Push leads to /v1/sequences/:id/leads and register a webhook for message.replied.

# Enroll leads straight from your Clay table, CRM or script
curl https://api.salesmix.com/v1/sequences/seq_8Fk2/leads \
  -H "Authorization: Bearer $SALESMIX_KEY" \
  -H "Idempotency-Key: clay-row-4471" \
  -d '{
    "leads": [{
      "linkedin_url": "https://linkedin.com/in/juliatan",
      "first_name": "Julia",
      "company": "Brightpath",
      "custom": { "signal": "hiring_sdrs" }
    }],
    "start": "now"
  }'

# → 202 Accepted
{ "enrolled": 1, "skipped_duplicates": 0 }
Reference

LinkedIn API endpoints

Base URL https://api.salesmix.com/v1. JSON in, JSON out. Bearer-token auth. Machine-readable: openapi.json.

Accounts
GET/accountsList connected LinkedIn accounts and their limits
PATCH/accounts/:idUpdate daily limits, working hours, warm-up
Sequences
POST/sequencesCreate a sequence from JSON steps
GET/sequences/:idFetch a sequence, its steps and stats
POST/sequences/:id/launchStart or resume sending
POST/sequences/:id/pausePause without losing progress
Leads
POST/sequences/:id/leadsEnroll up to 1,000 leads per call
GET/leadsFilter by status, sequence, account or intent
DELETE/sequences/:id/leads/:lead_idRemove a lead from a sequence
Conversations
GET/conversationsUnified inbox across every account
POST/conversations/:id/replyReply as the original account
Approvals
POST/approvalsQueue a draft for human review
POST/approvals/:id/approveApprove, optionally with edits
Webhooks & analytics
POST/webhooksSubscribe a URL to events
GET/analytics/funnelFunnel by sequence, account or step
Webhooks

Your code hears about it instantly.

Every event is a signed POST with the lead, the account, the sequence and the step attached. Failed deliveries retry with backoff.

lead.enrolledA lead joined a sequence
connection.sentAn invite went out
connection.acceptedThe lead accepted
message.sentA LinkedIn message or InMail was sent
message.repliedThe lead replied, with an intent label
approval.requestedA draft is waiting for review
sequence.completedA lead reached an End step
account.limit_reachedAn account hit its daily cap
POST → https://hooks.yourapp.com/salesmixlive
  • message.replied · Julia Tan · intent=interested200
  • connection.accepted · Marcus Lee200
  • connection.sent · Priya Raman · sender=dana200
  • approval.requested · draft_5Hq · step 3200
  • lead.enrolled · 48 leads · seq_8Fk2200
verify.js
import { createHmac, timingSafeEqual } from "node:crypto";

export function verify(raw, header, secret) {
  const [t, sig] = header.split(",");
  const mac = createHmac("sha256", secret)
    .update(`${t}.${raw}`).digest("hex");
  return timingSafeEqual(Buffer.from(mac), Buffer.from(sig));
}
MCP server

Give your agent . Keep a human on the lock.

The SalesMix MCP server exposes sequences, leads, conversations and approvals as tools. Connect Claude, Cursor or your own agent and ask for outcomes in plain language. Read the MCP server guide →

  • “Enroll everyone from this Clay view into the Series A sequence.”
  • “Which step in Agency Q4 loses the most people?”
  • “Draft replies to this week's interested leads and queue them for approval.”
agent session
you › Which sequence has the best reply rate this month,
      and move its stalled leads into a new follow-up?

  ⏺ salesmix.analytics_funnel(period="30d")
  ⏺ salesmix.leads_list(status="connected", replied=false)
  ⏺ salesmix.sequences_create(from="seq_8Fk2", name="Nudge")
  ⏺ salesmix.approvals_create × 41

agent › Founders · Series A leads with 18% replies.
        I built "Nudge" from it and queued 41 drafts
        in Approvals. Nothing sends until you approve.
Conventions

Built so your integration just works.

Auth

Bearer keys per workspace

Create, scope and revoke keys in Settings. Keys never cross workspaces.

Idempotency

Retries are safe

Send an Idempotency-Key header and repeated requests return the original result.

Rate limits

Headers tell you where you stand

X-RateLimit-Remaining on every response, and a clear 429 with Retry-After.

Errors

Errors you can act on

A stable code, a human message and the field that caused it.

Pacing

LinkedIn limits are enforced for you

The API queues actions; accounts still send at a human pace inside their own caps.

FAQ

API questions

Is there an official LinkedIn API for outreach?

LinkedIn’s official APIs are limited to approved partners and don’t cover sending connection requests or messages for most companies. The SalesMix API runs outreach through the LinkedIn accounts you connect to SalesMix, with each account paced inside its own limits.

What can I do with the SalesMix API?

Everything the app does: list and configure LinkedIn accounts, create sequences from JSON, launch and pause them, enroll and remove leads, read and reply to conversations, queue drafts for approval, subscribe to webhooks and query funnel analytics.

Is the API included in every plan?

Yes. The REST API, webhooks and the MCP server are on every plan. There are no per-call fees, and the 7-day free trial includes full API access. See pricing.

Will API calls make my LinkedIn accounts send too fast?

No. The API queues work; it doesn’t bypass pacing. Every action still goes out at a human pace inside the account’s daily limits and working hours, however many leads you enroll at once.

What if I retry a request from Clay, n8n or Zapier?

Send an Idempotency-Key header and a retried request returns the original result instead of enrolling the same lead twice. Leads are also deduplicated by LinkedIn profile URL.

Do you have an OpenAPI spec or SDKs?

Yes. The spec is at /openapi.json, and there are SDKs for Node.js and Python. You can generate a client in any other language from the spec.

Unlimited LinkedIn accounts, one API, $1,000/mo.

API, webhooks and the MCP server come with every plan. No per-call fees. 7-day free trial, cancel anytime.

Apply · $1,000/moStart free trial