Skip to content
Switching tools? We’ll help you move.See how
GrowthxAI Outreach

REST endpoints over the same functions the app uses, keys scoped by role and client, and signed webhooks for every event that matters.

Adding a lead with one API call: the request carries an API key and an idempotency key, and the response says the lead was created with no fields left unchanged.

An API shouldn’t be a side door around the limits.

When an automation can enrol leads or send faster than the app would, it’s the LinkedIn account that pays for it.

Here, every call goes through the same functions as the app, and every action spends the same sender budgets. The API adds nothing on top and skips nothing.

Webhooks

Every event that matters, sent to your URL.

Pick all events or only the ones you need. Each delivery is a signed JSON POST, so you can check it came from us before you act on it.

  • Signed: an HMAC-SHA256 of the raw body, keyed with your webhook’s secret.
  • Retried: up to 5 times, with the wait doubling each time (about 2, 4, 8, then 16 minutes).
  • Switched off when failing: after 50 failures in a row, and back on with one click.
  • Replayable: the last 100 attempts are listed with status and error, and any delivery can be sent again.
Read the webhook guide
A signed webhook delivery for a new interested reply: the event name, delivery id and signature headers, and a payload with the lead id and intent.

The events

Payloads carry ids, not full records. The ones most people start with are highlighted: a new interested reply, a meeting booked, a stalled campaign and an account running dry or disconnected.

Leads

  • lead.created
  • lead.updated
  • lead.unsubscribed

Invites

  • invite.sent
  • invite.accepted
  • invite.withdrawn

Messages

  • message.sent
  • message.received
  • message.classified

Email

  • email.sent
  • email.opened
  • email.clicked
  • email.bounced

Enrollments

  • enrollment.started
  • enrollment.exited
  • enrollment.completed
  • enrollment.held
  • enrollment.resumed
  • enrollment.recovered

Tasks and meetings

  • task.created
  • task.completed
  • meeting.booked

Sequences

  • sequence.activated
  • sequence.paused
  • sequence.published
  • sequence.throttled
  • sequence.stalled
  • sequence.recovered
  • sequence.webhook

Senders

  • sender.connected
  • sender.disconnected
  • sender.reconnected
  • sender.paused
  • sender.level_changed
  • sender.running_dry

Workspace

  • workspace.billing_recovered

Public API

REST over the same functions the app uses.

Base path /v1, JSON in and out. Keys carry a role and an optional client scope, every write takes an idempotency key, and the full reference is an OpenAPI file you can import into Postman, Insomnia or Swagger UI.

Early access
  1. 1

    Same limits as the app

    Every call runs the same database function the app runs, and uses the same sender budgets. Daily caps, schedules, warm-up, health, reply-stop and blacklists apply. There is no flag to turn a cap off.

  2. 2

    Updates never blank a field

    Creating or updating a lead changes only the fields you send. A field you leave out keeps its value, and unknown fields are rejected.

  3. 3

    Retries are safe

    Send an Idempotency-Key header on any write. A retry returns the first answer and runs nothing twice.

  4. 4

    Preview, then commit

    Enrolling takes two calls. The preview shows who is eligible and why others aren’t. The commit checks every rule again.

What you can call

Leads

Search, create or update, tag, set stage and list, suppress, read the timeline, queue enrichment.

Enrollments

Preview, commit, list, pause, resume, exit, and recover failed leads.

Sequences

List, read steps and stats, activate, pause, and ask why a sequence isn’t sending.

Inbox

List threads, read a thread with the step and sender behind each message, set the intent, assign a teammate.

Senders

Status, health breakdown, today’s budgets and the caps that apply right now.

Reports

Overview, funnel, sequences, senders, clients, reply intents and cost.

Webhooks

Create, list and delete webhooks, see recent deliveries, and replay any delivery.

Keys

Each key has a role and can be limited to some clients. It acts as the teammate who created it.

Building and publishing sequences, connecting senders and changing caps stay in the app, or go through Claude.

Steps that call out

Two sequence steps reach your own systems from inside a campaign.

Call webhook

Sends a signed sequence.webhook event when a lead reaches the step, for example to create a CRM task after the second follow-up.

Call API

Makes an HTTP request to any endpoint you choose, filled in with the lead’s variables.

Recipes

Copy-paste recipes for the tools you already use

Each file has four recipes with the exact HTTP settings: interested reply to Slack or a CRM, new row to lead to enrolment, found email to lead, booked meeting to CRM deal. They run over the public API.

The detail that matters

A failing endpoint never loses an event.

Deliveries are retried up to 5 times. After 50 failures in a row the webhook switches itself off instead of hammering your server, and any delivery in the log can be replayed once you’re back up, signed like the original and marked as a replay.

API and webhook questions

Which plan includes the API and webhooks?

Agency Plus, which covers outbound webhooks, the public API and CRM sync. The Claude connector is on every plan.

What are the rate limits?

Per key and per hour: 600 reads, 300 writes, and 60 calls that start spending a sender’s budget, such as committing an enrolment. These protect the API; how much a sender does each day is still set by its own limits.

Is there a sandbox?

Not a separate one. Read calls and the enrolment preview change nothing, and a key can be limited to a single client, so you can try calls against a test client first.

How do I get a key?

A manager creates keys in Settings, under API & webhooks. The key is shown once, so store it safely. A workspace can have 25 active keys, and any key can be revoked.

Can a webhook delivery be sent again?

Yes. Recent deliveries are listed with their status and last error, and any of them can be replayed. The replay carries the same payload, marked as a replay, and is signed like every other delivery.

Can I send inbox replies through the API?

Not yet. The route is in the reference and answers “not implemented” for now. Replies go out from the inbox or the Claude connector.

Can I build sequences through the API?

No. Building and publishing sequences, connecting senders and changing caps stay in the app or go through Claude.

Your next customers are already on LinkedIn.

Start booking meetings this week. Free for 14 days with up to 3 LinkedIn accounts, no card.

14 days free · 3 LinkedIn accounts · no card

  • Cancel any time in the billing portal
  • Nothing deleted if a payment fails
  • Teammates are free