Skip to content

Update Sequence Variant

Change an A/B variant. The campaign must not be active.

PATCH/api/v1/campaigns/{campaign_id}/sequences/{sequence_id}/variants/{variant_id}

Requires an API key with the write scope.

Only the fields you send change.

Path Parameters#

campaign_idstringpathrequired
The campaign.
sequence_idstringpathrequired
The sequence step.
variant_idstringpathrequired
The variant.

Body Parameters#

subjectstringbody
Subject line, up to 500 characters.
bodystringbody
Body, up to 200,000 characters.
labelstringbody
Unique within the step, up to 10 characters.
weightintegerbody
1 to 1000.
sendAsHtmlbooleanbody
Send as HTML.

Response#

dataobject
Show Variant object
idstring
Variant identifier.
sequenceIdstring
The step it belongs to.
labelstring
Unique within the step, for example A.
subjectstring
Subject line. Supports variables and spin syntax.
bodystring
Body. Supports variables and spin syntax.
weightinteger
Share of sends relative to the other variants.
sendAsHtmlboolean
Sent as HTML.
createdAtstring
ISO 8601 timestamp.
updatedAtstring
ISO 8601 timestamp.

Errors#

StatusDescription
401Missing, invalid, revoked or expired API key
403API key does not have the required scope: write
400The campaign is active (pause it first), the spin syntax is invalid, or the label is already used on this step
404Campaign, sequence step or variant not found in this workspace

Rate Limit#

  • 120 requests per minute, shared by every write call in your workspace. Fixed 60-second window.
  • Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix epoch seconds) and X-RateLimit-Bucket (write).
  • A 429 response includes a Retry-After header (seconds until the bucket resets).

For client-side patterns (Retry-After, exponential backoff, monitoring X-RateLimit-Remaining), see Rate Limiting.

Was this page helpful?
View as MarkdownLast updated November 4, 2026