Get a program
Read one program. Pass expand[]=steps to inline the cadence (each step with its arms) and expand[]=senders for the attached mailboxes.
Authorizations
Org-scoped Norbelys API key. Create one in Settings → API keys and send it as Authorization: Bearer ak_….
Path Parameters
The program id (path).
Query Parameters
Inline related data: steps (the cadence, each with its arms) and/or senders (the attached mailboxes).
steps, senders Response
OK
Weekdays sends are allowed (0=Sun..6=Sat).
0 <= x <= 6Attach RFC 8058 one-click unsubscribe headers + footer.
Pause every lead at a company once one of them replies.
Auto-pause when the bounce rate reaches this percent; 0 disables.
0 <= x <= 1002
The program id.
"prg_b2n4x8mq1w7e9rk3v5tz0yc6"
Random extra wait per send, upper bound (seconds).
x >= 060
Random extra wait per send, lower bound (seconds).
x >= 030
Kind of sending; cold_sequence is the only kind today.
cold_sequence "cold_sequence"
Display name.
"Q3 outbound — founders"
New leads started per day for the WHOLE campaign, shared across all its mailboxes (follow-ups are not counted). 0 = no daily cap — new leads flow at mailbox capacity. Real throughput is always bounded by the mailboxes' own daily limits.
x >= 025
For an auto-pause, the numbers behind it (measured rate vs threshold); null for a manual pause or no pause.
Why it's paused, or null: manual (an operator paused it), bounce_rate or spam_rate (an auto circuit-breaker tripped), orphaned_sender (it lost its last live mailbox).
manual, bounce_rate, spam_rate, orphaned_sender "bounce_rate"
Send the body as plain text only: no HTML part, open pixel, or link tracking.
Dynamic mailbox selector: senders carrying ANY of these tags are auto-attached to (and auto-detached from) the campaign as their tags change. Manual attaches are unaffected. null = manual assignment only.
Minutes between sends from one mailbox.
x >= 05
Auto-pause when the spam-complaint rate reaches this percent; 0 disables.
0 <= x <= 1000.3
Lifecycle status: draft, active, paused, done.
draft, active, paused, done "active"
Engagement that pulls a lead out of the cadence: reply, click, open, none.
reply, click, open, none "reply"
IANA timezone the window applies in.
"America/Chicago"
Evaluate the sending window in the campaign timezone (sender) or each person's timezone (recipient, falling back to the campaign timezone when absent).
sender, recipient "sender"
Rewrite links to track clicks.
Optional campaign-level tracking hostname override; null resolves automatically per sender domain.
Insert the open pixel.
Custom unsubscribe footer copy.
How A/B arms are spread across leads with no decided winner: pattern (deterministic per-lead hash) or random (independent roll per lead).
pattern, random "pattern"
Daily window start, "HH:MM".
"09:00"
Daily window end, "HH:MM".
"17:00"
Per-campaign state rollup: enrollment counts + next-send schedule.
When it was archived, or null if live.
Creation instant (RFC 3339).
Always "program" — the resource discriminator.
When it was paused (RFC 3339), or null.
Scheduled first-send instant (RFC 3339), or null.
"2026-07-01T14:00:00.000Z"
Last-update instant (RFC 3339).
The attached mailboxes — present when expand[]=senders.
The cadence with arms — present when expand[]=steps (always returned by create/update).