Update contacts
Rewrite the subject and body of emails already in a campaign that are still waiting for review.
https://api.rankparse.com/v1/outreach/campaigns/:id/contacts/updateFreeAPI keyChanges the copy of contacts the campaign already holds, matched by email address. Use it when the user asks for a rewrite, instead of creating a second campaign (adding the same address again is skipped as duplicate_email). Only emails still waiting for review are changed, and any approval they had is cleared, so the user reviews the new version.
Path parameters
idstringrequiredThe campaign id.
Body parameters
contactsarray of objectsrequired1 to 100 { email, subject, body } items. An empty or missing array returns 400 invalid_updates; more than 100 returns 400 too_many_updates.
Show propertiesHide properties
emailstringrequiredThe address of a contact in this campaign, matched case-insensitively. The address itself never changes. A repeat of the same address in one request is reported as invalid with duplicate_email.
subjectstringrequiredThe new subject, trimmed, up to 500 characters.
bodystringrequiredThe new plain-text body, trimmed, up to 10,000 characters.
Response
updatedintegerEmails rewritten.
approval_clearedintegerHow many of those had been approved and now need review again.
resultsarrayOne { "email", "status", "reason"? } per request item, in request order. status is updated; not_found (no such address in this campaign); not_editable, with reason queued, sending, sent, skipped or not_in_review; invalid, with reason invalid_email, duplicate_email, missing_copy or copy_too_long; or unavailable (a storage error on that part of the batch, safe to retry).
next_stepstringWhat to do next, when something was updated or refused. After a rewrite, launch again so the new emails go back for review.
Behavior
- Queued, sending, sent and skipped emails are never changed. A queued email is refused because the sending sweep sends whatever a queued email holds: the user first takes it back to review in RankParse (Unapprove), then you call this again. A sent email cannot change, and a skipped one must be restored in RankParse first.
- Copy rules are the same as in Add contacts.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_json | The body is not valid JSON. |
| 400 | invalid_updates | contacts is missing, empty or not an array. |
| 400 | too_many_updates | More than 100 items. |
| 403 | capability_missing | Your role cannot manage outreach. |
| 404 | campaign_not_found | Not in your workspace, or archived. |
Plus the shared errors.
Related
MCP tool: outreach_update_contacts (accepts campaign_id, contacts).