Skip to Content
Outreach

Add contacts

Add researched contacts, each with its own email, to a draft or live campaign.

POSThttps://api.rankparse.com/v1/outreach/campaigns/:id/contactsFreeAPI key

Stores up to 100 contacts with their subject and body. Works on a draft, a campaign ready for review, and a launched campaign (a top-up). Nothing is sent: added emails wait until the campaign is launched and, for agents, reviewed. Contacts that break a rule are not added and come back in skipped.

Path parameters

idstringrequired

The campaign id. Its status must be draft, ready_to_review or pushed, otherwise 409 campaign_not_editable (for example while a launch is running).

Body parameters

contactsarray of objectsrequired

1 to 100 contacts. An empty or missing array returns 400 no_contacts; more than 100 returns 400 too_many_contacts. The campaign holds at most 500, so a batch over the remaining room keeps its first valid contacts and skips the rest as campaign_full.

Show properties
emailstringrequired

A researched, real address. Lowercased. Must look like name@domain.tld, otherwise skipped as invalid_email.

domainstringrequired

The prospect's domain. Lowercased, with http(s)://, www. and paths removed. Internationalized domains must be in punycode (xn--) form. Otherwise skipped as invalid_domain.

subjectstringrequired

Trimmed. Up to 500 characters.

bodystringrequired

Plain text, trimmed. Up to 10,000 characters.

namestring

Contact name, trimmed and cut to 200 characters.

domain_authoritynumber

Optional, from Domain Authority. Rounded; values outside 0 to 100 are stored as unknown instead of rejecting the contact.

Response

addedinteger

Contacts added by this call.

total_contactsinteger

Contacts in the campaign after this call.

skippedarray

One { "email", "reason" } per contact that was not added. Reasons: invalid_email, invalid_domain, missing_copy (subject or body empty), copy_too_long, duplicate_email, duplicate_domain (already in this campaign or earlier in the batch), campaign_full, already_contacted (you emailed this address from an earlier campaign).

next_stepstring

Only when contacts were added to a launched campaign: a reminder that the new emails do nothing until you launch again (and, for an agent, that they then wait for the user's review).

Behavior

  • A contact already in the campaign is skipped and its copy is not changed. To rewrite emails that are in the campaign, use Update contacts instead of creating a second campaign.
  • Contacts are matched case-insensitively by email and by domain.
  • Adding contacts to a launched campaign keeps it pushed.

Errors

HTTPCodeWhen
400invalid_jsonThe body is not valid JSON.
400no_contactscontacts is missing or empty.
400too_many_contactsMore than 100 contacts in one call.
403capability_missingYour role cannot manage outreach.
404campaign_not_foundNot in your workspace, or archived.
409campaign_not_editableThe campaign is mid-launch or in a state that cannot take contacts. Retry shortly.

Plus the shared errors.

MCP tool: outreach_add_contacts (accepts campaign_id, contacts).