---
title: "Update email"
method: PATCH
path: "/emails/{emailId}"
tags: ["Emails"]
---

# Update email

`PATCH /emails/{emailId}`

Updates email metadata or replaces the email body.

## Path parameters

- `emailId` 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
  - `name` string
  - `subject` string
  - `previewText` string, nullable

## Response `200`

Email updated

- object
  - `success` boolean
  - `email` Email
    - `id` string
    - `companyId` string
    - `name` 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
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — No company selected
- `404` — Email not found
- `500` — Internal server error

## 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 `email/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 `email/blocks/items/styles` to the response with the `200` status
- **2026-04-20** `f6c695031246` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/emails/:emailId/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/f9a826460811/schema)
