An email design theme is a reusable definition of an email's look and feel, such as its colors, fonts, and spacing. Email design themes are used by emails composed in the Wix email editor, including Wix Email Marketing campaigns and automated emails: a site owner picks a theme in the editor, and the editor applies it to the email they're composing. Themes are stored per site, so a site's emails can share a consistent visual identity without repeating styling decisions in every email.
With the Email Design Themes API, you can:
The Wix email editor applies a theme by copying the theme's body into the email at compose time. It doesn't keep a reference to the theme, which has two consequences worth designing around:
Themes your app creates are visible in Wix. A theme created through this API appears in the theme picker wherever the Wix email editor is used, such as when composing an Email Marketing campaign or an automated email. There, it can be selected and applied to the email being composed, exactly like a theme saved from the editor. Deleting a theme through this API removes it from the picker everywhere.
A theme's body is a free-form JSON object whose structure is defined by the Wix email editor. It holds a palette of colors, a body object with page-level settings such as background color and width, and a classes object mapping named styles, such as heading-text, section, and primary-button, to the properties applied when the theme is rendered. Some themes also carry an elements object holding defaults for built-in email elements.
Treat body as the editor's, not as a schema to build against. The set the editor writes can change without a version bump to this API, so code that reads body should tolerate keys it doesn't recognize. The method and event samples in this reference show an abbreviated body with 3 representative classes. The Email Design Theme object sample shows a complete one.
The API doesn't validate the structure of body. It accepts any JSON object up to 256 KB (262,144 bytes), so a theme that saves successfully may still fail to render. The Wix email editor doesn't render styling that doesn't follow its structure. Validating the structure, and handling themes written by an earlier version of your app, is the responsibility of the app that renders the theme.
A body doesn't need to define every style class. When a theme doesn't define a class, the Wix email editor uses its default styling for that class. When a theme doesn't include a palette, its color palette in the editor is empty.
The number of email design themes a site can hold depends on its Wix Email Marketing plan. To read the cap, call Get Account Details and read package.featureAllowances.designThemes.limit. A limit of -1 means unlimited, and a limit of 0 means the plan doesn't include email design themes.
Create Email Design Theme fails with OUT_OF_QUOTA when the site is at its cap. Deleting a theme frees a slot, and upgrading the site's plan raises the cap. If a site downgrades to a plan with a lower cap, its existing themes are kept and can still be retrieved, updated, and deleted. Creating themes fails until the site has fewer themes than the new cap.
Email design themes are taggable. Tags are a generic Wix labeling mechanism: a tag is an entity in its own right, owned by the Tags API (SDK | REST), and an email design theme references tags by ID in its tags field. Use the Tags API to create tags and to resolve the IDs you get back into human-readable labels.
Tags are split into publicTags, visible to anyone who can read the theme, and privateTags, which require an additional permission. Assign and unassign them with Bulk Update Email Design Theme Tags, or across a filtered set with Bulk Update Email Design Theme Tags By Filter. Update Email Design Theme also accepts tags, but replaces the existing tags instead of adding to them. No Wix UI currently displays email design theme tags, so they're only useful for classification within your own app.
It's important to note the following points before starting to code:
body on its own side.id, title, createdDate, updatedDate, and tags are queryable. You can't filter or sort by anything inside body.classes object, such as heading-text or primary-button, holding the styling the editor applies wherever that class is used.palette array of its body.Last updated: 5 October 2026