Campaigns

Create a campaign

Creates a campaign in the API key's workspace. The campaign starts in draft status and is placed in the workspace's default folder. Before it can be launched with POST /campaigns/{id}/resume, it needs four things: a sequence (PUT /campaigns/{id}/sequence), sending days (PUT /campaigns/{id}/schedule; there is no default), at least one email account (POST /campaigns/{id}/sender-emails), and at least one lead (POST /leads with campaignId). Campaigns with flow api can launch without leads.

post/campaigns

Request

  • Base URL: https://api.emailchaser.com/r
  • URL: https://api.emailchaser.com/r/campaigns
  • Auth: HTTP bearer

Request body

allowNonBusinessEmailsboolean
dailyLimitinteger

DailyLimit caps the total emails (initial + follow-ups) this campaign may schedule per calendar day in the campaign timezone. Omit for no campaign-level cap; per-inbox limits still apply either way.

emojistring
flow'multiple_leads_scheduled' | 'api'

Flow defaults to multiple_leads_scheduled, which is what the app creates, so a campaign made through the API behaves identically to one made in the UI. The api flow skips lead validation and the processing-leads guard at launch; pass it only if you want that.

ignoreOutOfOfficeRepliesboolean
isEnabledCatchallValidatedboolean
isEnabledEmailVerifierboolean
isEnabledIgnoreHardBouncedLeadsboolean
isEnabledIgnoreLeadsWhoAlreadyRespondedboolean
isEnabledLlmboolean

Settings - all optional, mirroring UpdateCampaignRequest

isEnabledSkipLeadIfAlreadyExistsboolean
isEnabledStopFollowUpsForSameCompanyboolean
isEnabledStopFollowUpsOnReplyboolean
maximumSendingLimitPerSenderEmailinteger
maximumSendingLimitPerSenderEmailVariationinteger
maximumTimeBetweenEmailsinteger
minimumHealthScoreinteger

MinimumHealthScore, 1-100, is the lowest email account health score (see healthScore on the sender emails) that may send in this campaign. An account below it, or with no score yet, sends nothing here, first emails and follow-ups alike, until its score is back at or above it; its conversations wait for it and never move to another account. Omit or send 0 for no minimum.

minimumTimeBetweenEmailsinteger
namestring required
timezonestring

Example request

{
  "minimumHealthScore": 80
}

Response

Campaign created successfully

messagestring

Example response

{
  "campaign": {
    "createdAt": "2024-01-15T10:30:00Z",
    "emoji": "📥",
    "flow": "multiple_leads_scheduled",
    "id": 8589949820,
    "name": "RB2B High Intent",
    "status": "draft",
    "timezone": "America/New_York",
    "updatedAt": "2024-01-15T10:30:00Z"
  },
  "message": "campaign created successfully"
}

Changes

No recorded changes to this operation across all 1 revision of this API.