Create draft campaigns and manage their lifecycle with advanced sequencing
The Campaigns API lets connected tools create draft campaigns, add leads, list and inspect lifecycle state, pause or end campaigns, use Fast Forward on nearly complete campaigns, and reopen ended campaigns using your Organization API Key.
Create a draft campaign with leads, sending schedule, and automated email sequence steps.
Add leads to an existing campaign while applying the same dedupe and validation rules.
List by exact status or lifecycle scope, inspect available actions, pause or end campaigns, use Fast Forward on nearly complete campaigns, and reopen ended campaigns.
All requests use the standard bearer token header.
http:// or https:// and contain linkedin.com._ or - only, up to 100 characters. Reserved keys include id, customer_id, email, first_name, last_name, company, company_name, linkedin_url, timezone, created_at, and updated_at.lead_dedupe_scope must be none, active_campaigns, all_campaigns, or all_audiences. Omitted or empty values default to none.YYYY-MM-DD value when a valid campaign timezone is included in the schedule. Responses keep completion_deadline as date-only for compatibility and expose the exact stored cut-off in completion_deadline_at.Begin with GET /api/v1/campaigns/{campaign_id}/creative. It returns target-labelled Default and adaptation documents plus the server-owned adaptations_activated capability; the capability is not a client request flag or response filter. Use the Creative endpoints to save one or more numbered subjects above each shared body, plus planned subject eligibility, variants, step delays, and threading settings before approval. Updating Creative saves immutable snapshot history but does not change the Ready Creative used for future sends.
Call POST /api/v1/campaigns/{campaign_id}/creative/approve when the current Creative working copy should become an immutable approved snapshot and be marked Ready for future sends. Existing Creative fields are protected from accidental overwrite unless overwrite_existing is true. New subject numbers must leave each body with a contiguous set starting at 1; one request may provide a complete batch in any array order. Optional is_disabled on subject documents plans eligibility for the next Ready Creative. Use PATCH /api/v1/campaigns/{campaign_id}/subjects/{subject_id} to change one current Ready subject without editing or reapproving the shared body.
Submit the complete campaign or add-leads request with preview_only: true. The response names other affected campaigns and compares current and imported values. When confirmation_required is true, obtain an explicit choice, then resend the unchanged request with preview_only: false, review_token from review.token, and decision: "overwrite" or "preserve". A stale review must be reviewed again. Current-campaign-only and finished-only changes do not require an extra decision.
Successful apply responses can contain failed rows. Inspect row_outcomes for every input row: conflicting identities are left unapplied while independently valid rows proceed. Do not retry successful rows. Blank imported values do not erase existing details, and choosing overwrite never merges different people. The user manual explains shared values and finished campaigns.