CorrectInbox API
llms.txt

Methods

Campaigns

Multi-step outreach sequences — connection requests and follow-ups with delays and personalization.

A campaign runs an outreach sequence for you: it sends connection requests and follow‑up messages across one or more accounts, spacing activity within safe daily limits so accounts stay healthy.

Create a campaign

POST /v1/campaigns
Field Type Required Description
name string yes A name for the campaign.
account_ids string[] yes Accounts that will send. Work is spread across them.
lead_list_id string yes The lead list to target.
steps array yes Ordered steps (see below).

Each step is one of:

type Fields Description
invite message, delay_days Send a connection request with an optional note.
message message, delay_days Send a message (requires an accepted connection).

Messages support personalization tokens: {{first_name}}, {{name}}, {{company}}.

curl -X POST https://api.correctinbox.com/v1/campaigns \
  -H "X-API-KEY: $CORRECTINBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q1 founders",
    "account_ids": ["acc_8f21c0"],
    "lead_list_id": "lst_77aa",
    "steps": [
      { "type": "invite",  "delay_days": 0, "message": "Hi {{first_name}}, love what {{company}} is building." },
      { "type": "message", "delay_days": 2, "message": "Thanks for connecting, {{first_name}}! Quick question —" }
    ]
  }'
const campaign = await (
  await fetch("https://api.correctinbox.com/v1/campaigns", {
    method: "POST",
    headers: {
      "X-API-KEY": process.env.CORRECTINBOX_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: "Q1 founders",
      account_ids: ["acc_8f21c0"],
      lead_list_id: "lst_77aa",
      steps: [
        { type: "invite", delay_days: 0, message: "Hi {{first_name}}, love what {{company}} is building." },
        { type: "message", delay_days: 2, message: "Thanks for connecting, {{first_name}}!" },
      ],
    }),
  })
).json();
campaign = requests.post(
    "https://api.correctinbox.com/v1/campaigns",
    headers={"X-API-KEY": os.environ["CORRECTINBOX_API_KEY"]},
    json={
        "name": "Q1 founders",
        "account_ids": ["acc_8f21c0"],
        "lead_list_id": "lst_77aa",
        "steps": [
            {"type": "invite", "delay_days": 0, "message": "Hi {{first_name}}, love what {{company}} is building."},
            {"type": "message", "delay_days": 2, "message": "Thanks for connecting, {{first_name}}!"},
        ],
    },
).json()

A campaign is created in draft. It does nothing until you start it.

Start, pause, inspect

POST   /v1/campaigns/{campaign_id}/start   # begin sending
POST   /v1/campaigns/{campaign_id}/pause   # stop sending; resume later
GET    /v1/campaigns                       # list campaigns
GET    /v1/campaigns/{campaign_id}         # status + per-step progress
DELETE /v1/campaigns/{campaign_id}         # delete
curl -X POST https://api.correctinbox.com/v1/campaigns/cmp_5kd2/start \
  -H "X-API-KEY: $CORRECTINBOX_API_KEY"

Response (status)

{
  "id": "cmp_5kd2",
  "name": "Q1 founders",
  "status": "running",
  "stats": { "invites_sent": 24, "messages_sent": 11, "replies": 3, "pending": 61 }
}

Safe sending

CorrectInbox enforces conservative per‑account daily limits and adds natural spacing and jitter between actions, so a running campaign never bursts. Add more account_ids to a campaign to raise total throughput without pushing any single account past its limit.