Enroll people into a program
Add an audience as leads — the union of personIds, a groupId’s members, and a segmentId’s current matches (omit all to enroll every active person). Never starts sending on its own; call programs.launch to go live.
Authorizations
Org-scoped Norbelys API key. Create one in Settings → API keys and send it as Authorization: Bearer ak_….
Headers
Opt-in idempotency for a safely retried write: reuse the same key to replay the original result for 24h instead of re-executing. Recommended on every POST.
255Path Parameters
The program id.
Body
Enroll EVERY active person. Required explicitly — omitting all selectors is an error, never an implicit enroll-everyone.
Enroll every LIVE person in these groups (static lists) — several at once, resolved as one union.
When the personIds came from CSV imports, the import ids — each is recorded as an audience source so the campaign shows where its people came from.
snapshot (default): enroll the CURRENT matches once and freeze. reactive: also keep the campaign in sync with EVERY given segment — new people are enrolled automatically as they come to match. Groups are static lists, so they always behave as snapshots.
snapshot, reactive Explicit person ids (CSV/preview-resolved sets).
Enroll every person CURRENTLY matching these segments (saved filters) — several at once, resolved as one union.
Response
OK
Whether the program is live after this enroll (true = the new leads start sending).
How many of the resolved audience were already in this program and were skipped.
x >= 013
Number of people newly enrolled.
x >= 0412
The program id.
"prg_b2n4x8mq1w7e9rk3v5tz0yc6"
The program's attached mailboxes.
How many of the resolved audience were excluded by the suppression list (unsubscribed, hard-bounced, or verified-undeliverable addresses never enter a campaign).
x >= 04