Campaigns

Send Campaign

Send a campaign immediately

Required Scopes: campaigns:send

Optional body {"acknowledge_warmup_warning": true} (no body = false). A large WhatsApp campaign on a number that is still warming up is refused with HTTP 409 detail = {"code": "warmup_acknowledgement_required", "message": ..., "warmup": <warm-up assessment>} unless acknowledged or split over days (send_split_config). Nothing is prepared or sent on 409. A split plan that would run too long is refused with HTTP 422 {"code": "split_plan_too_long", "message": ...}.

With send_split_config, only day 1's batch is sent now; later batches go out automatically (the response split block has days_total, next_batch_at, scheduled_count).

Response (200): {success, campaign_id, recipient_count, published_count, dispatch, split, trial_recipient_cap, message}. Messages are sent in the background after the response. published_count is the number of recipients queued to be sent now (all of them, or day 1 of a split plan). dispatch is "queued" when that number is above 0, and "pending" when nothing is due yet or queuing is retried automatically.

Send speed and batches: with send_rate_limit and/or send_batch_size saved on the campaign, messages go out at the chosen speed and, with a batch size, only the first batch is sent now. The response then also has pacing: {paced, batch_number, armed, remaining, send_rate_limit, send_batch_size} (armed = recipients in batch 1, remaining = recipients waiting for later batches; published_count is 0 because the messages are released gradually). After each batch the campaign is paused with throttle_reason = "batch_complete"; send the next one with POST /campaigns/{id}/send-next-batch. Invalid saved values are refused with HTTP 422 {code, message} (see PUT /campaigns/{id}).

Only campaigns with status draft, approved or scheduled can be sent.

Note: Campaigns with status in_review or rejected cannot be sent (HTTP 400). A campaign that is already sending, throttled, completed, paused, failed or cancelled is refused with HTTP 409 -- re-posting here would re-prepare the whole recipient list and send the campaign a second time. Use POST /campaigns/{id}/resume for a paused or failed campaign.

post/api/v1/campaigns/{campaign_id}/send

Request

  • Base URL: https://api.sendseven.com
  • URL: https://api.sendseven.com/api/v1/campaigns/{campaign_id}/send
  • Auth: HTTP bearer

Path parameters

campaign_idstring required

Request body

acknowledge_warmup_warningboolean

Response

Successful Response

object required

Changes

No recorded changes to this operation across all 3 revisions of this API.