Skip to Content
Outreach

Outreach

Store link-building campaigns your agent researched and wrote, put the emails up for review, and send them from your Gmail on a schedule.

The outreach endpoints persist what your agent produced (a campaign, its contacts and one email per contact) and hand the emails to RankParse's Gmail sending pipeline. RankParse does not find prospects or write copy for you: your agent does that with the research endpoints, then stores the result here. The Outreach guide walks through a whole campaign; this page holds the shared concepts.

All routes live under https://api.rankparse.com/v1/outreach, take your X-API-Key, cost 0 credits and share the limit of 60 requests per minute per key. Only the research calls (for example Competitor Gap and Domain Authority) use credits.

Operations

Campaigns

Sending

Review before sending

Outreach is the one action RankParse never runs on an agent's word alone.

  • Agents (the RankParse MCP server, or any call carrying the header X-RankParse-Client: mcp): launching a campaign does not queue anything. It marks the campaign ready and returns status: "ready_for_review" with a review_url, the campaign page in RankParse. A person approves the emails there, one by one or in bulk, and only the approved emails are sent. Raising a mailbox's daily cap or turning sending on is held for approval too, where the inbox is enforced (see Update sending settings).
  • The one opt-out: a person can switch on Let Claude send without review for a mailbox in RankParse. Then, and only while approval enforcement is off for the account, an agent's launch queues that mailbox's emails directly. The API can turn this setting off but never on.
  • Direct REST calls with your key and without the agent header are you acting yourself: launch queues the emails immediately.

Changing copy after review clears the approval of the changed emails, and an approved email whose content changed is not sent. See Approval inbox for the full model.

Campaign status

StatusMeaning
draftCreated, no contacts yet.
ready_to_reviewHas contacts waiting for review or launch.
pushingA launch is running right now. Contacts cannot be added until it finishes (a claim older than 5 minutes is treated as dead and released).
pushedLaunched at least once. It can still be topped up with new contacts and launched again.

Campaigns created in the dashboard's older wizard can show other states. Those cannot take contacts through the API (409 campaign_not_editable).

Email status

Each contact is one email. Counts on Get a campaign group them as awaiting_launch (waiting for review or launch), queued (approved and waiting for the sending sweep), sending, sent and skipped.

Mailboxes and sending

A workspace can connect several Gmail accounts ("mailboxes"), each with its own daily cap, counter, sending window and on/off switch.

  • A campaign sends from the mailbox mapped to its website, or from the workspace's default mailbox when the website has none (or the campaign has no website).
  • A mapped mailbox that is disconnected or needs reconnecting is still the campaign's mailbox: RankParse never falls back to the default, because that would send one client's mail from another address. Launch then returns 400 gmail_not_connected.
  • An email is pinned to the mailbox it was approved under, so remapping a website later only affects emails approved afterwards.
  • An hourly sweep sends queued emails inside each mailbox's sending window, up to its daily cap (max_sends_per_day, 1 to 100, default 20). On the Free plan, when plan limits are enforced, each mailbox sends at most 5 emails a day whatever its own cap says, and the responses report the lowered cap.
  • A website or mailbox beyond what your plan covers cannot start new sends (402 plan_limit_reached on launch). Emails already queued keep sending.

Contact rules

RuleValue
Contacts per add callup to 100
Contacts per campaignup to 500
Emails per agent review requestup to 100 (launch again for the rest)
Uniquenessone contact per domain and one per email address in a campaign
Already emailedan address you emailed from an earlier campaign is skipped (already_contacted)
Subjectup to 500 characters
Bodyup to 10,000 characters, plain text
Nameup to 200 characters, optional
Domainslowercased, http(s)://, www. and paths stripped; internationalized domains in punycode (xn--) form

Errors shared by every route

HTTPCodeWhen
400invalid_jsonThe body is not valid JSON.
401invalid_api_keyMissing, invalid or revoked API key.
403capability_missingYour role in the workspace does not allow this.
404campaign_not_foundThe campaign is not in your workspace, or is archived.
429rate_limitedMore than 60 requests in a minute.

Errors use the shape { "error", "code", "message" }. See Errors.

The outreach MCP tools are on the API-key MCP endpoint only; the OAuth connector has propose_outreach_send where proposing is switched on. Each operation page names its tool. See MCP server.

On this page