---
title: "Update a sequence email"
method: PUT
path: "/v4/sequences/{sequence_id}/emails/{id}"
tags: ["Sequence Emails"]
---

# Update a sequence email

`PUT /v4/sequences/{sequence_id}/emails/{id}`

Updates any field on a sequence email — `subject`, `preview_text`, `content`, `delay_value`, `delay_unit`, `send_days`, `position`, `email_template_id`, or `published`. Only fields included in the request body change; everything else is preserved.

**Note:** pass `send_days: null` to revert a per-email schedule override and inherit the parent sequence's `send_days` again. The response will then return all 7 days, indicating no per-email restriction.

**Warning:** sending `send_days` on an email with `delay_unit: "hours"` returns `422` — `send_days` only applies to day-based emails.

**Warning:** changing `position` while subscribers are actively progressing through the sequence can cause emails to be sent out of order or skipped. The same caution applies to flipping `published` on a `position: 0` email — it triggers Kit to process all queued subscribers for that email.

For the sequence-email model and how `delay_unit` and `send_days` interact, see [Create a sequence email](/api-reference/sequence-emails/create-a-sequence-email).

## Path parameters

- `id` integer, required
- `sequence_id` integer, required

## Request body

- object
  - `subject` string — New subject line for the email
  - `preview_text` string, nullable — New preview text shown in email clients before the email is opened
  - `content` string, nullable — New HTML body content of the email
  - `delay_value` integer — New delay value
  - `delay_unit` 'days' | 'hours' — New delay unit. Use `days` for schedule-aware delivery, `hours` for a fixed hourly delay
  - `email_template_id` integer, nullable — New email template ID for layout and styling. Pass `null` to clear
  - `published` boolean — Pass `true` to publish a draft email or `false` to unpublish it
  - `send_days` string[], nullable — Days of the week this email may be sent. Pass a subset to restrict delivery, or `null` to reset to all days (inherits the sequence schedule)
  - `position` integer, nullable — New zero-based position of the email in the sequence

## Response `200`

Updates the sequence email and returns its details

- object
  - `email` object, required
    - `id` integer, required
    - `sequence_id` integer, required
    - `subject` string, required
    - `preview_text` string, required
    - `email_address` string, required
    - `email_template_id` unknown, required
    - `published` boolean, required
    - `position` unknown, required
    - `delay_value` integer, required
    - `delay_unit` string, required
    - `send_days` string[], required
    - `content` string, nullable, required

## Other responses

- `401` — Returns a 401 if the token and/or account cannot be authenticated
- `404` — Returns a 404 when the provided id does not exist
- `422` — Returns a 422 with an error message when one or more of the parameters were invalid

---

[API](https://skmtc.net/kit/apis/kit-api.md) · [All operations](https://skmtc.net/kit/apis/kit-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kit/kit-api/revisions/0df0c90d12da/schema)
