---
title: "Update A/B test variant"
method: PATCH
path: "/ab-tests/{abTestId}/variants/{variantId}"
tags: ["A/B Tests"]
---

# Update A/B test variant

`PATCH /ab-tests/{abTestId}/variants/{variantId}`

Updates a draft A/B test variant's subject, preview text, or body content.

## Path parameters

- `abTestId` string, required
- `variantId` string, required

## Request body

- object
  - `html` string — Raw HTML body. Provide either html or blocks, not both.
  - `blocks` EmailBlock[] — Structured email blocks. Provide either blocks or html, not both. Put visual styling under styles; top-level style keys such as backgroundColor, backgroundOpacity, borderColor, borderWidth, and borderRadius are normalized into styles.
    - `id` string
    - `type` 'text' | 'html' | 'heading' | 'list' | 'button' | 'spacer' | 'divider' | 'image' | 'columns' | 'conditional-group' | 'card' | 'cta' | 'social' | 'logo' | 'footer' | 'video' | 'product', required
    - `content` string — Content for text, html, and heading-like blocks.
    - `styles` object — Per-block visual styles. For compatibility, style fields such as backgroundColor, backgroundOpacity, borderColor, borderWidth, and borderRadius can also be supplied at the block top level and are normalized into this object.
      - `paddingTop` number
      - `paddingBottom` number
      - `paddingLeft` number
      - `paddingRight` number
      - `backgroundColor` string
      - `backgroundOpacity` number — Background opacity percentage from 0 to 100.
      - `textColor` string
      - `textAlign` 'left' | 'center' | 'right'
      - `borderRadius` number
      - `borderColor` string
      - `borderWidth` number
  - `subject` string
  - `previewText` string, nullable

## Response `200`

Variant updated

- object
  - `success` boolean
  - `variant` ABTestVariant
    - `id` string
    - `variantId` string
    - `abTestId` string
    - `label` string
    - `variantLabel` string
    - `emailId` string
    - `subject` string
    - `previewText` string, nullable
    - `blocks` EmailBlock[]
      - `id` string
      - `type` 'text' | 'html' | 'heading' | 'list' | 'button' | 'spacer' | 'divider' | 'image' | 'columns' | 'conditional-group' | 'card' | 'cta' | 'social' | 'logo' | 'footer' | 'video' | 'product', required
      - `content` string — Content for text, html, and heading-like blocks.
      - `styles` object — Per-block visual styles. For compatibility, style fields such as backgroundColor, backgroundOpacity, borderColor, borderWidth, and borderRadius can also be supplied at the block top level and are normalized into this object.
        - `paddingTop` number
        - `paddingBottom` number
        - `paddingLeft` number
        - `paddingRight` number
        - `backgroundColor` string
        - `backgroundOpacity` number — Background opacity percentage from 0 to 100.
        - `textColor` string
        - `textAlign` 'left' | 'center' | 'right'
        - `borderRadius` number
        - `borderColor` string
        - `borderWidth` number
    - `testSends` integer
    - `testOpens` integer
    - `testClicks` integer
    - `isWinner` boolean
    - `localizations` object[]
    - `createdAt` string, date-time

## Other responses

- `400` — Validation error or non-draft A/B test
- `401` — Unauthorized
- `404` — A/B test or variant not found
- `500` — Variant could not be updated

## Changes

- **2026-05-25** `402884feb64a` — 2 info
  - added the new optional request property `allOf[#/components/schemas/EmailBodyInput]/blocks/items/styles/backgroundOpacity`
  - added the optional property `variant/blocks/items/styles/backgroundOpacity` to the response with the `200` status
- **2026-05-25** `e8b9a2b46341` — 2 info
  - added the new optional request property `allOf[#/components/schemas/EmailBodyInput]/blocks/items/styles`
  - added the optional property `variant/blocks/items/styles` to the response with the `200` status
- **2026-05-15** `b040bb8c6608` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/ab-tests/:abTestId/variants/:variantId/patch.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/fd494fa7e64d/schema)
