Add contacts to a campaign that is already running.
Allowed only on an active or paused campaign of this account. Each new contact starts at step 1 on the campaign's own sequence and schedule, under every launch rule: addresses are trimmed and lower-cased, a {{firstName}} or {{key}} the sequence uses must have a value on every new contact (else 400 and nothing is added), and listSource is required on a crowdfunding account. Skipped and counted, never an error: an address already in the campaign (nothing about it changes), an address on your suppression list (stored as suppressed, never emailed), and an address repeated in the request. Adding never resumes a paused campaign, and repeating the call adds nothing. A campaign holds at most 5000 contacts in total. People who already got this email are skipped: a contact is left out, never stored or emailed, when another campaign of this account has sent them, or still has waiting for them, an email with the same subject and body as this campaign's first email, as written before {{tokens}} are filled in (spacing differences do not count). A trial's test email counts only while the account is still on the trial, and the built-in demo campaign never counts. alreadyEmailed in the answer is how many were skipped (anyone also on your suppression list is counted there, not in suppressed): tell the person in plain words, for example "skipped 12 people who already got this email". To include them, send includeAlreadyEmailed: true on the launch itself (previewOnly: true shows the count first), or after a launch add them to that same campaign with add_leads and includeAlreadyEmailed: true. Never launch the same list again to include them: that emails everyone who was not skipped a second time. Naming a repeat with repeatOf includes them too. A launch on which everyone would be skipped is refused (400) and nothing is created; an add of contacts on which everyone is skipped adds no one, with no error. A trial account can launch up to 5 test campaigns in any 24 hours, each holding up to 100 contacts, which is enough for a small test. Both are limits of the trial, not of Coldrig: going live removes them. Nothing in a campaign launched on the trial is ever really sent: when the account goes live, the emails it still has waiting are canceled and it cannot be resumed or added to, so launch a new campaign to send real email.
A launch, or an add of contacts, is refused with 409 duplicate_campaign when it would leave a campaign with exactly the same set of contact addresses and the same subjects and bodies in the same step order as another campaign of this account, however long ago that one was launched and whether it is running, paused, ended or finished, so the same people are not sent the same emails twice. repeatOf states a deliberate repeat, exactly as on POST /campaigns.
Request
- Base URL: https://api.coldrig.dev
- URL: https://api.coldrig.dev/campaigns/{id}/leads
- Auth: HTTP bearer
Path parameters
The MCP tool campaign_results takes this same identifier as a campaignId argument (there is no URL path in MCP tool calls).
Request body
Response
The contacts were processed; the counts say what happened to each.
Changes
No recorded changes to this operation across all 2 revisions of this API.