---
title: "Save an email version"
method: POST
path: "/v1/design_studio/emails/{id}/versions"
tags: ["Design Studio emails"]
---

# Save an email version

`POST /v1/design_studio/emails/{id}/versions`

Saves a version of the email's current content, envelope, and any component dependencies it references.

If you need to revert to a previous version, use [Restore an email version](/integrations/api/app/tag/design-studio-emails/restoreVersion/).

If the email is identical to the most recent version, this returns that version with `"created": false` instead of saving a duplicate. If the code of a referenced custom component changes, you can save a new version of the email with the latest component changes; however, the code diff in Design Studio will show no change because the component code isn't compiled in that view.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `name` string, required — Name for the version, shown in the [version history list](/integrations/api/app/tag/design-studio-emails/listVersions/).
  - `description` string — Note about the version.

## Response `200`

Returns the new version saved, or the latest version if nothing changed.

- object
  - `version` VersionSummary
    - `id` string, uuid — UUID of the version.
    - `node_id` string, uuid — UUID of the email node this version belongs to.
    - `node_type` 'EMAIL' — Always `"EMAIL"`.
    - `name` string — Name given to the version when it was saved.
    - `description` string — Explanatory text you provided when creating a version. Omitted if no description.
    - `created` integer — The date-time the version was created.
    - `created_on_publish` boolean — `false` if you [saved the email](/integrations/api/app/tag/design-studio-emails/saveVersion/). `true` if Design Studio created this version automatically when you [published the email](/integrations/api/app/tag/design-studio-emails/publishEmail/). You can't delete versions generated by Design Studio.
    - `feedback` boolean — `true` is you saved this version by creating a [round of feedback in Design Studio](/messaging/design-studio/collaboration/feedback/).
  - `created` boolean — `false` when the email and its dependencies matched the most recent version exactly, so no new version was saved. `true` when this call created a new version.

## Other responses

- `400` — Bad request. Possible reasons include `:id` is not a valid UUID or `name` is missing.
- `401` — Unauthorized - missing or invalid API key
- `404` — Possible reasons include the email node doesn't exist.

## Changes

- **2026-09-11** `367edfd26dbd` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/design_studio/emails/:id/versions/post.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/revisions/d9edec5f938c?raw)
