---
title: "Preview default footer application"
method: POST
path: "/email-components/defaults/{slot}/preview"
tags: ["Email Components"]
---

# Preview default footer application

`POST /email-components/defaults/{slot}/preview`

Read-only affected counts and optional layout HTML. Requires the same write scopes and admin role as applying. No subscriber-specific personalization or sending.

## Path parameters

- `slot` 'footer', required

## Request body

- object
  - `blocks` EmailBlock[], required
    - `id` string
    - `type` 'text' | 'html' | 'heading' | 'list' | 'button' | 'spacer' | 'divider' | 'image' | 'columns' | 'group' | 'conditional-group' | 'repeat' | 'card' | 'cta' | 'social' | 'logo' | 'header' | 'footer' | 'video' | 'product' | 'discount-code' | 'code' | 'countdown' | 'hero' | 'testimonial' | 'gallery' | 'badge' | 'table' | 'features' | 'image-card' | 'pricing' | 'author' | 'article' | 'rating' | 'stats' | 'steps' | 'product-grid' | 'poll', required
    - `content` string — Content for text, html, and heading-like blocks.
    - `label` string — Editor label for a structural group block.
    - `layout` 'stack' | 'row' | 'grid' | 'overlay' — Direct-child layout for a structural group block.
    - `columns` integer — Number of columns used by a group with grid layout.
    - `gap` integer — Gap in pixels between direct group children.
    - `padding` integer — Uniform group padding in pixels; per-side styles.padding* fields override it.
    - `overlayColor` string — Opaque fallback and shade color for an overlay group.
    - `overlayShade` integer — Overlay shade intensity as a percentage.
    - `overlayPosition` 'top' | 'center' | 'bottom' — Vertical position of overlay foreground content.
    - `children` EmailBlock[] — Recursive child blocks for group and repeat containers.
    - `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
      - `bleed` boolean — Stretch the block edge-to-edge across the email container. Top-level blocks only.
    - `conditions` object[] — Optional per-block display rules. The block renders only when every rule matches. The same shape is used for a conditional-group block's top-level `conditions`.
      - `id` string, required
      - `field` 'variable' | 'attribute' | 'email' | 'firstName' | 'lastName', required — `variable` resolves a merge-tag path from the transactional send `variables` or an automation `event` payload (nested paths like `order.total` or `event.plan` work). `attribute` reads a stored subscriber attribute. `email`, `firstName`, and `lastName` read core subscriber fields.
      - `operator` 'is' | 'is_not' | 'contains' | 'not_contains' | 'gt' | 'gte' | 'lt' | 'lte' | 'is_empty' | 'is_not_empty', required
      - `value` string, required — For `variable` and `attribute`, use `name:value` - the part before the colon is the variable path or attribute name, and the part after it is the comparison value. For `email`, `firstName`, and `lastName`, provide the plain comparison string.
  - `name` string
  - `description` string, nullable
  - `application` FooterApplicationOptions, required
    - `scopes` string[], required
    - `includeCustomized` boolean
  - `renderPreview` boolean
  - `sample` object
    - `id` string, required
    - `kind` 'email' | 'ab_variant' | 'localization', required

## Response `200`

Preview created without writes

- object
  - `success` boolean
  - `application` FooterApplicationPreview
    - `token` string, required — Pass as previewToken with identical input when applying. Relevant content changes invalidate it.
    - `counts` object, required
      - `sequences` integer
      - `campaigns` integer
      - `transactional` integer
      - `templates` integer
    - `affected` FooterApplicationItem[], required
      - `id` string, required
      - `name` string, required
      - `kind` 'email' | 'ab_variant' | 'localization', required
      - `scope` 'sequences' | 'campaigns' | 'transactional' | 'templates', required
      - `reason` 'customized' | 'no_footer' | 'ambiguous_footer' | 'raw_html' | 'protected' | 'shared'
    - `skipped` FooterApplicationItem[], required
      - `id` string, required
      - `name` string, required
      - `kind` 'email' | 'ab_variant' | 'localization', required
      - `scope` 'sequences' | 'campaigns' | 'transactional' | 'templates', required
      - `reason` 'customized' | 'no_footer' | 'ambiguous_footer' | 'raw_html' | 'protected' | 'shared'
  - `renderedPreview` FooterRenderedPreview
    - `footerHtml` string
    - `note` string
    - `samples` object[]
      - `id` string, required
      - `name` string, required
      - `kind` 'email' | 'ab_variant' | 'localization', required
      - `scope` 'sequences' | 'campaigns' | 'transactional' | 'templates', required
      - `reason` 'customized' | 'no_footer' | 'ambiguous_footer' | 'raw_html' | 'protected' | 'shared'
      - `beforeHtml` string
      - `afterHtml` string
  - `warnings` string[] — Non-blocking advisories about a successful write. Present when an input was discarded or did not take effect as requested. This includes block fields that do not render as their names suggest, sequence email-step formatting restored on top of submitted blocks, and sender-identity conflicts such as a replyToName that differs from the saved profile. Each message identifies the affected input and gives recovery guidance. Absent when there is nothing to report.

## Other responses

- `400` — Invalid blocks or unsupported slot
- `401` — Unauthorized
- `403` — Missing application permissions
- `409` — Component name conflict
- `422` — Request shape validation failed (missing fields or invalid option types)
- `500` — Preview failed
- `503` — The database was temporarily unavailable. The request may be retried after the delay in Retry-After.

## Changes

- **2026-09-08** `f1d8cfd9faaf` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/email-components/defaults/:slot/preview/post.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.dev/sequenzy/apis/sequenzy-api/revisions/e93563b0d37e?raw)
