Skip to main content
DELETE

Authorizations

Authorization
string
header
required

Org-scoped Norbelys API key. Create one in Settings → API keys and send it as Authorization: Bearer ak_….

Path Parameters

id
string
required

The resource id (path).

Response

OK

activeDays
integer[] | null
required

Weekdays sends are allowed (0=Sun..6=Sat).

Required range: 0 <= x <= 6
Example:
addUnsubscribe
boolean
required

Attach RFC 8058 one-click unsubscribe headers + footer.

autoPauseOnCompanyReply
boolean
required

Pause every lead at a company once one of them replies.

bouncePauseThreshold
number
required

Auto-pause when the bounce rate reaches this percent; 0 disables.

Required range: 0 <= x <= 100
Example:

2

id
string
required

The program id.

Example:

"prg_b2n4x8mq1w7e9rk3v5tz0yc6"

jitterMaxSeconds
integer
required

Random extra wait per send, upper bound (seconds).

Required range: x >= 0
Example:

60

jitterMinSeconds
integer
required

Random extra wait per send, lower bound (seconds).

Required range: x >= 0
Example:

30

kind
enum<string>
required

Kind of sending; cold_sequence is the only kind today.

Available options:
cold_sequence
Example:

"cold_sequence"

name
string
required

Display name.

Example:

"Q3 outbound — founders"

newPerDay
integer
required

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.

Required range: x >= 0
Example:

25

pausedMeta
ProgramPauseMeta · object | null
required

For an auto-pause, the numbers behind it (measured rate vs threshold); null for a manual pause or no pause.

pausedReason
enum<string> | null
required

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).

Available options:
manual,
bounce_rate,
spam_rate,
orphaned_sender
Example:

"bounce_rate"

plainTextMode
boolean
required

Send the body as plain text only: no HTML part, open pixel, or link tracking.

senderTags
string[] | null
required

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.

Example:
sendIntervalMinutes
integer
required

Minutes between sends from one mailbox.

Required range: x >= 0
Example:

5

spamPauseThreshold
number
required

Auto-pause when the spam-complaint rate reaches this percent; 0 disables.

Required range: 0 <= x <= 100
Example:

0.3

status
enum<string>
required

Lifecycle status: draft, active, paused, done.

Available options:
draft,
active,
paused,
done
Example:

"active"

stopCondition
enum<string>
required

Engagement that pulls a lead out of the cadence: reply, click, open, none.

Available options:
reply,
click,
open,
none
Example:

"reply"

timezone
string
required

IANA timezone the window applies in.

Example:

"America/Chicago"

timezoneSource
enum<string>
required

Evaluate the sending window in the campaign timezone (sender) or each person's timezone (recipient, falling back to the campaign timezone when absent).

Available options:
sender,
recipient
Example:

"sender"

trackClicks
boolean
required

Rewrite links to track clicks.

trackingDomainId
string | null
required

Optional campaign-level tracking hostname override; null resolves automatically per sender domain.

trackOpens
boolean
required

Insert the open pixel.

unsubscribeText
string | null
required

Custom unsubscribe footer copy.

variantDistribution
enum<string>
required

How A/B arms are spread across leads with no decided winner: pattern (deterministic per-lead hash) or random (independent roll per lead).

Available options:
pattern,
random
Example:

"pattern"

windowFrom
string | null
required

Daily window start, "HH:MM".

Example:

"09:00"

windowTo
string | null
required

Daily window end, "HH:MM".

Example:

"17:00"

archivedAt
any

When it was archived, or null if live.

createdAt
any

Creation instant (RFC 3339).

object
any
default:program

Always "program" — the resource discriminator.

pausedAt
any

When it was paused (RFC 3339), or null.

startDate
any

Scheduled first-send instant (RFC 3339), or null.

Example:

"2026-07-01T14:00:00.000Z"

updatedAt
any

Last-update instant (RFC 3339).