Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

If using Bearer auth, pass the Secret Key as the token:

Path Parameters

id
string
required

Body

application/json
enabled
boolean
required

Legacy alias for monitoring mode (true => auto, false => manual).

Response

200 - application/json

Resource created

id
string
required

Unique identifier (rs_ prefix)

dateCreated
string<date-time>
required
dateUpdated
string<date-time>
required
name
string
required
entityType
enum<string>
required
Available options:
feature
entityId
string
required
targets
object[]
required

Controlled entity references

steps
object[]
required

Ordered ramp steps

status
enum<string>
required
Available options:
pending,
ready,
running,
paused,
completed,
rolled-back
currentStepIndex
integer
required

Index of current step; -1 = not yet started

Required range: x >= -1
nextStepAt
string<date-time> | null
required

When the current step's time gate elapses; null for steps with no interval (pure approval gates) and terminal states

awaitingApproval
boolean
required

Computed at read time: whether a human approval is the gate blocking the schedule right now — either the start-approval gate (requiresStartApproval before step 0) or the current step's holdConditions.requiresApproval once its time hold (if any) has elapsed. Paused schedules report false (the pause is the blocking gate). For monitored steps the approve-step endpoint may still reject an approval until analysis-based gates clear.

startActions
object[]

Actions that restore controlled rules to their pre-ramp state. Applied when rolling back or jumping to start.

endActions
object[]

Actions applied on top of all step patches when the ramp completes. Represents the final desired rule state.

startDate
string<date-time> | null

When the ramp fires. Absent/null means immediately on publish; set to a future datetime to delay start and keep the rule disabled until that time.

cutoffDate
string<date-time> | null

Rule-level kill date. When reached, the ramp is completed and the rule is disabled (enabled=false). Use for time-boxed rules that must stop serving on a fixed date regardless of ramp progress. Set to null to clear.

requiresStartApproval
boolean

When true, the ramp holds at step -1 with its rule disabled (zero traffic) until a human approves the start via /actions/approve-step. Composes with startDate ('hold until approved, then arm for that date').

startApprovedAt
string<date-time> | null

When the current launch's start was approved. Cleared on every return to step -1 (publish, rollback), re-arming the approval gate.

startedAt
string<date-time> | null
phaseStartedAt
string<date-time> | null

Anchor for cumulative interval timing; resets after each approval gate is satisfied

pausedAt
string<date-time> | null
nextProcessAt
string<date-time> | null
elapsedMs
integer | null

Milliseconds since startedAt (computed at response time, not stored)

lockdownConfig
object
monitoringConfig
object | null
experimentHealthAction
enum<string>
Available options:
rollback,
hold,
warn
currentStepEnteredAt
string<date-time> | null
stepApproval
object | null

Approval record for the current step. Valid only while stepApproval.stepIndex === currentStepIndex.

monitoringStartDate
string<date-time> | null

When the monitored section most recently started (first monitored step entered). Used for no-traffic grace period gating.

lastRollbackAt
string<date-time> | null
lastRollbackReason
string | null
monitoringStatus
object | null

Read-only monitoring status. Present when monitoringConfig is set.