> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Landing Page Content

> Build and edit landing pages with version 2 content, blocks, themes, and signup forms

Use this document as the `content` field when [creating](/api-reference/landing-pages/create)
or [updating](/api-reference/landing-pages/update) a page. To change an existing
page, read its `content`, modify it, and send the complete document. Updating
content replaces the document; changes to a published page are immediately live.

## Minimal content

```json theme={null}
{
  "version": 2,
  "template": "from-scratch",
  "seo": { "title": "Product updates" },
  "header": { "enabled": false },
  "theme": { "accentColor": "#0f766e" },
  "blocks": [
    {
      "id": "headline",
      "kind": "heading",
      "slot": "hero",
      "level": 1,
      "content": "Stay in the loop"
    },
    {
      "id": "signup",
      "kind": "form",
      "slot": "form",
      "heading": "Get product updates",
      "form": {
        "listMode": "default",
        "buttonText": "Subscribe"
      }
    },
    {
      "id": "footer",
      "kind": "footer",
      "slot": "footer",
      "brandText": "Acme"
    }
  ]
}
```

`version: 2` and a `blocks` array are required. An empty array is accepted;
Sequenzy appends its default footer when no footer is present. Omitted `template`,
`seo`, `header` and `theme` settings receive defaults. Valid templates are
`from-scratch`, `waitlist`, `lead-magnet`, `launch`, `demo-request`, `webinar`,
`newsletter`, `product-hunt`, `pricing-offer`, `agency-lead-gen`, and
`feature-announcement`; the default is `waitlist`.

Every block needs a unique `id` (1-128 characters), a `kind`, and a `slot`.
Slots render in this order: `top`, `hero`, `form`, `body`, `footer`. Preserve
that order when authoring the top-level array. You can supply one footer to customize it, or omit it to use the default.
After normalization the page has exactly one footer and at most one form;
both must stay at the page root. IDs must also be unique
inside groups. Text fields are trimmed.

## Shared block fields

Blocks may include `sectionId` (1-128 characters), `sectionKind` (1-80),
`sectionLabel` (1-120), `sectionVariant` (up to 80), `sectionLayout` (`stack`,
`split`, `center`), and `sectionAlign` (`left`, `center`, `right`).

An optional block-level `align` (`left`, `center`, `right`) is supported by
heading, text, image, video, button, feature-grid, stats, testimonial,
logo-cloud, FAQ and pricing blocks.

## Block kinds

Required fields below are in addition to `id`, `kind` and `slot`. Fields with
a default may be omitted.

| Kind           | Required fields                                                                                         | Optional fields and defaults                                                                                                                                                                                                                                                |
| -------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `heading`      | `content` (1-180 characters)                                                                            | `level`: 1, 2 or 3, default 2; `align`                                                                                                                                                                                                                                      |
| `text`         | `content` (up to 700 characters)                                                                        | `variant`: `paragraph` (default), `eyebrow` or `caption`; `align`                                                                                                                                                                                                           |
| `image`        | None                                                                                                    | `src` (up to 1,000 characters) and `alt` (up to 160), both default empty; `images` (up to 3 gallery entries); `align`; `width` (25-100 percent); `height` (80-640 pixels); `fit` (`cover` or `contain`)                                                                     |
| `video`        | None                                                                                                    | `url` (YouTube share URL, up to 1,000 characters), `title` (up to 160), both default empty; `aspectRatio`: `16:9` (default), `4:3`, `1:1` or `9:16`; `width` (25-100 percent); `align`                                                                                      |
| `button`       | `text` (1-80 characters)                                                                                | `url` (up to 500 characters, default empty); `variant`: `primary` (default) or `secondary`; `align`                                                                                                                                                                         |
| `custom-html`  | None                                                                                                    | `html` (up to 20,000 characters, default empty); `height` (40-1,200 pixels, default 320)                                                                                                                                                                                    |
| `feature-grid` | `features` (1-6 entries)                                                                                | `columns` (1-6); `layout` (`row` or `column`); `align`                                                                                                                                                                                                                      |
| `stats`        | `stats` (1-6 entries)                                                                                   | `columns` (1-6); `align`                                                                                                                                                                                                                                                    |
| `testimonial`  | `testimonials` (1-3 entries)                                                                            | `columns` (1-6); `layout` (`row` or `column`); `align`                                                                                                                                                                                                                      |
| `logo-cloud`   | `logos` (1-8 entries)                                                                                   | `heading` (up to 120 characters, default `Trusted by teams building faster`); `columns` (1-6); `align`                                                                                                                                                                      |
| `faq`          | `items` (1-8 entries)                                                                                   | `heading` (up to 120 characters, default `Common questions`); `align`                                                                                                                                                                                                       |
| `pricing`      | `heading` (1-140 characters), `price` (1-80), `buttonText` (1-80), `features` (1-8 strings, each 1-160) | `eyebrow` (up to 80, default `Simple pricing`); `description` (up to 300), `period` (up to 80), and `buttonUrl` (up to 500), all default empty; `align`                                                                                                                     |
| `form`         | `slot: "form"`                                                                                          | `heading` (up to 120 characters, default `Get early access`); `description` (up to 240, default empty); `form` settings below; `cardTilt` (integer -3 to 3 degrees); `cardWidth` (`narrow`, `medium`, `wide`)                                                               |
| `footer`       | `slot: "footer"`                                                                                        | `brandText` (up to 120 characters, default `Built by Sequenzy`); `showBrandText`, `showPrivacyLink`, `showTermsLink` (default true); `privacyLabel`/`termsLabel` (up to 80, defaults `Privacy`/`Terms`); `privacyUrl`/`termsUrl` (up to 500, default empty)                 |
| `spacer`       | None                                                                                                    | `height` (8-160 pixels, default 32)                                                                                                                                                                                                                                         |
| `divider`      | None                                                                                                    | Shared section fields only                                                                                                                                                                                                                                                  |
| `group`        | None                                                                                                    | `label` (1-120 characters, default `Group`); `layout`: `stack` (default), `row`, `grid` or `overlay`; `columns` (1-4, default 2); `gap` (0-64 pixels, default 16); `padding` (0-64 pixels, default 0); `children` (up to 100 blocks, default empty); overlay settings below |

Numeric layout fields in this table are integers. Nested collection entries use
these shapes:

| Collection                 | Entry fields                                                                                                         |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `images`                   | `src` (up to 1,000 characters, default empty), `alt` (up to 160, default empty), optional `linkUrl` (up to 500)      |
| `features` on feature-grid | `title` (up to 120 characters), `description` (up to 300)                                                            |
| `stats`                    | `value` (1-40 characters), `label` (1-120)                                                                           |
| `testimonials`             | `quote` (1-500 characters), `name` (1-120), optional `role` (up to 160, default empty) and `avatarUrl` (up to 1,000) |
| `logos`                    | `name` (1-80 characters)                                                                                             |
| `items` on FAQ             | `question` (1-160 characters), `answer` (1-500)                                                                      |

Button `url` and pricing `buttonUrl` support HTTPS URLs and anchors such as
`#form`, `#section-<sectionId>`, `#block-<blockId>`, and `#top`. Anchors open in
the same tab. Video blocks support YouTube, not other providers or direct files.

### Groups

Groups may nest up to eight levels. Every child must use its parent's slot;
form and footer blocks cannot be children. Overlay settings are `overlayColor`
(six-digit hex, default `#000000`), `overlayPosition` (`top`, `center`, `bottom`,
default `center`) and `overlayShade` (0-100, default 35).

An overlay requires exactly one direct image block with at most one gallery
image. Otherwise its layout normalizes to `stack`. An image inside another
nested group does not count as the parent's background.

## Form settings

Set these fields inside a form block's `form` object:

| Field                                                                                 | Values and default                                                                             |
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `enabled`                                                                             | Boolean, default true                                                                          |
| `duplicateStrategy`                                                                   | `skip` (default), `merge`, `overwrite`                                                         |
| `listMode`                                                                            | `default` uses the workspace's default lists; `none` joins no lists; `specific` uses `listIds` |
| `listIds`, `tagIds`                                                                   | Arrays of IDs belonging to your company, default empty                                         |
| `showFirstName`, `showLastName`, `showPhone`                                          | Booleans, defaults true, false, false                                                          |
| `firstNameRequired`, `lastNameRequired`, `phoneRequired`                              | Booleans, all default false                                                                    |
| `emailPlaceholder`, `firstNamePlaceholder`, `lastNamePlaceholder`, `phonePlaceholder` | Up to 120 characters; defaults `you@example.com`, `First name`, `Last name`, `Phone number`    |
| `buttonText`                                                                          | 1-80 characters, default `Join the list`                                                       |
| `successMessage`                                                                      | 1-240 characters, default `You're on the list.`                                                |
| `redirectUrl`                                                                         | Optional HTTP/HTTPS success redirect, up to 500 characters                                     |
| `customFields`                                                                        | Up to 8 custom subscriber fields, default empty                                                |

Custom fields require a unique `name` (1-80 characters, starting with a letter,
then letters, numbers, underscores, dots or dashes). `email`, `firstName`,
`lastName` and `website` are reserved. Prefer the native phone field over a
custom field named `phone`.

A custom field also accepts `label` and `placeholder` (up to 120 characters,
default empty), `required` (default false), and `inputType`: `text` (default),
`phone`, `number`, `textarea`, `select`, `radio`, `checkbox`, `consent` or
`hidden`. Choice fields use `options` (up to 20 `{ label, value }` objects, each
string 1-120 characters). Consent fields use `consentText` (up to 300
characters); hidden fields use `defaultValue` (up to 500). Both default empty.

## Theme, header and SEO

Theme colors (`accentColor`, `backgroundColor`, `textColor`, `mutedTextColor`,
`cardColor`) must be six-digit hex values. Their defaults are `#f97316`,
`#ffffff`, `#111827`, `#6b7280`, and `#ffffff`, respectively.

| Theme field                           | Values and default                                                                                                 |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `borderRadius`                        | Integer 0-24 pixels, default 8                                                                                     |
| `fontPair`                            | `modern-sans` (default), `editorial-serif`, `classic-serif`, `friendly-rounded`, `commerce-sans`, `technical-mono` |
| `headingFontFamily`, `bodyFontFamily` | Up to 160 characters, default empty                                                                                |
| `density`                             | `compact`, `balanced` (default), `spacious`                                                                        |
| `accentStyle`                         | `pill` (default), `underline`, `bar`, `badge`                                                                      |
| `surfaceStyle`                        | `soft` (default), `outlined`, `solid`, `minimal`                                                                   |
| `sectionAnimation`                    | `none` (default), `fade`, `slide-up`, `zoom-in`                                                                    |
| `sectionAnimationSpeed`               | `slow`, `normal` (default), `fast`                                                                                 |

Scroll animation is skipped when the visitor prefers reduced motion.

`header` accepts `enabled`, `showLogo`, and `showName` (all default true),
`logoUrl` (up to 1,000 characters, default empty), `logoSize` (integer 24-96
pixels, default 36), and `name` (up to 120 characters, default empty).

`seo` accepts optional `title` (up to 70 characters) and `description` (up to
160\), `faviconUrl` (up to 1,000, default empty, falling back to the company
logo), and `hideFromSearchEngines` (default false). Setting the last field adds
`noindex, nofollow`; visitors can still open the page by URL.
