fetch_drip_enrollments
List the contacts enrolled in a drip campaign: where each one is in the sequence, what is scheduled next, and why anyone left. Defaults to 25 per page, maximum 100. Rows are passed through exactly as the API sends them, in PascalCase. Each row carries SourceType — participant, amoe, lead or subscriber — so read it before treating the id as a participant. This endpoint NEVER returns email addresses or phone numbers: you cannot look a contact up by address here, and source_token is the only handle you get. ExitReason is a closed vocabulary — unsubscribed, suppressed, no_consent, removed, clicked, won, invalid, undeliverable or over_quota: quote the value, do not paraphrase it into a cause you were not given. NextStep is 1-BASED — verified against a live enrolment whose step at Index 0 had been sent and whose NextStep read 2 — while Steps[].Index in get_drip and in fetch_drip_report is 0-based, so NextStep N is the step at Index N-1. A row also carries EnrollmentToken, Status, EnrolledAt, LastSentAt, NextStepAt and EndedAt; ExitReason is null while the contact is still in the sequence, not absent, so treat null as "has not left" rather than as missing data. Ended enrolments are kept 180 days and then disappear: an absent row means "not in the last 180 days", NEVER "this contact was never enrolled". Enrollment rows identify people; report them to the account owner and do not copy them elsewhere. Account-gated, and the two sides of this category are gated differently: the reads need only the Drip Marketing module, while pause_drip, resume_drip and remove_drip_contact need Drip Marketing plus Send Message. The gate was NOT observed on the test account, so on a 403 read back which module the API named instead of guessing. Drips are created, edited, activated and deleted ONLY in the Sweeppea app: those actions run a launch checklist (template, sender, 10DLC registration, content screening, plan allowance) that this API deliberately does not reproduce. There is no create endpoint and that is by design, not a gap — the API leaves these writes out on purpose (confirmed by the API maintainer, October 2026) — say so plainly instead of hunting for a workaround, and never propose or invent a tool for it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, starting at 1. Defaults to 1 | |
| status | No | Enrollment status to filter by. Note this list differs from the drip statuses used by fetch_drips | |
| drip_token | Yes | The drip campaign token (UUID v4) | |
| source_token | No | Only this contact. The contact: a ParticipantToken, OR a lead / subscriber id. NOT always a UUID — pass it through exactly as you received it, and read SourceType in fetch_drip_enrollments to know which kind it is. Never feed it to get_participant without checking SourceType first. | |
| items_per_page | No | Results per page, 1 to 100. Defaults to 25 |