Skip to main content
POST
Enroll leads into a campaign

Authorizations

Authorization
string
header
required

A ManyPI API key (mpi_...) from the profile menu → API Access in the dashboard, or an OAuth 2.1 access token obtained through the MCP consent flow.

Body

application/json
campaign_id
string<uuid>
required
lead_ids
string<uuid>[]
required
Required array length: 1 - 1000 elements

Response

Enrollment outcome.

Skips are reported as one counter per cause rather than a single total. Counters for causes that did not occur may be omitted. For the number of leads that were not enrolled, add up every skipped_* counter and already_enrolled — or compute requested - enrolled.

enrolled
integer

Leads that now have an enrollment they did not have before. Includes queued_for_validation.

requested
integer

Lead ids in the request, before any skipping.

already_enrolled
integer

Leads already enrolled in this campaign.

skipped_not_found
integer

Ids that match no lead this workspace can see.

skipped_no_email
integer

Leads with no email address.

skipped_unsubscribed
integer

Leads who unsubscribed or are on the do-not-contact list.

skipped_bounced
integer

Leads whose address bounced the last time you wrote.

skipped_invalid
integer

Addresses known to be dead: invalid, disposable, or a domain that takes no mail.

skipped_unverifiable
integer

Addresses the mail server would not confirm, skipped because the brand only writes to confirmed addresses.

skipped_over_limit
integer

Ids past the first 1,000 in this request.

queued_for_validation
integer

Enrolled leads whose unchecked address is being verified in the background, when the brand has validate-on-enroll turned on.

summary
string

What happened, in plain language — the same text the dashboard shows.