---
title: "Update a landing page"
method: PUT
path: "/v1/landing-pages/{landing_page_id}"
tags: ["Landing Pages"]
---

# Update a landing page

`PUT /v1/landing-pages/{landing_page_id}`

## Request

- Base URL: `https://api.mailrith.com`
- URL: `https://api.mailrith.com/v1/landing-pages/{landing_page_id}`
- Auth: HTTP bearer

Updates an existing hosted landing page without creating a new landing page.

## Path parameters

- `landing_page_id` string, required

## Request body

- LandingPageUpdateRequest
  - `name` string
  - `slug` string
  - `custom_path` string, nullable: Optional Pro custom slug. Omit this field to keep the existing custom slug.
  - `customPath` string, nullable: Camel-case alias for custom_path. Omit this field to keep the existing custom slug.
  - `definition` LandingPageDefinition
    - `blocks` LandingPageBlock[], required
      - `id` string, required
      - `type` 'section' | 'heading' | 'paragraph' | 'blockquote' | 'image' | 'video' | 'countdown' | 'testimonial' | 'logo-strip' | 'faq' | 'divider' | 'icon' | 'button' | 'form', required
      - `content` string
      - `level` 1 | 2 | 3
      - `textAlign` 'left' | 'center' | 'right' | 'justify' | 'null', nullable
      - `highlightColor` string, nullable
      - `citation` string
      - `borderColor` string, nullable
      - `backgroundColor` string, nullable
      - `textColor` string, nullable
      - `src` string
      - `altText` string
      - `caption` string
      - `href` string
      - `borderRadius` 'none' | 'normal' | 'large' | 'custom'
      - `customBorderRadius` LandingPageBoxCorners
        - `topLeft` number, required
        - `topRight` number, required
        - `bottomRight` number, required
        - `bottomLeft` number, required
      - `title` string
      - `aspectRatio` '16:9' | '4:3' | '1:1' | '9:16'
      - `targetDate` string: The countdown target as an ISO 8601 date and time with an explicit UTC offset or Z suffix.
      - `label` string
      - `expiredMessage` string
      - `design` 'cards' | 'minimal' | 'inline' | 'card' | 'quote' | 'row' | 'grid' | 'bordered'
      - `accentColor` string, nullable
      - `align` 'left' | 'center' | 'right'
      - `quote` string
      - `name` string
      - `avatarUrl` string
      - `avatarAlt` string
      - `rating` number
      - `heading` string
      - `logos` LandingPageLogo[]
        - `id` string, required
        - `name` string, required
        - `imageUrl` string, required
        - `altText` string, required
        - `href` string
      - `logoHeight` number
      - `items` LandingPageFaqItem[]
        - `id` string, required
        - `question` string, required
        - `answer` string, required
      - `defaultOpenFirst` boolean
      - `iconPosition` 'start' | 'end'
      - `color` string, nullable
      - `thickness` number
      - `style` 'solid' | 'dashed' | 'dotted'
      - `iconName` string
      - `size` union
        - number
        - 'small' | 'medium' | 'large'
      - `cssClass` string
      - `cssId` string
      - `buttonTextColor` string
      - `borderWidth` 'none' | 'normal' | 'large' | 'custom'
      - `customBorderWidth` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `width` 'default' | 'large' | 'full' | 'fit'
      - `openInNewTab` boolean
      - `fields` FormField[]
        - union
          - object
            - `id` string, required
            - `type` 'email', required
            - `label` string, required
            - `placeholder` string, required
            - `required` true, required
          - object
            - `id` string, required
            - `type` 'text', required
            - `textVariant` 'heading' | 'subheading' | 'paragraph', required
            - `content` string, required
          - object
            - `id` string, required
            - `type` 'custom-field', required
            - `customFieldId` string, required
            - `label` string, required
            - `customFieldType` 'Text' | 'Number' | 'Date' | 'Select (Dropdown)' | 'Single Select' | 'Multi Select' | 'Text Area' | 'Checkbox', required
            - `required` boolean, required
            - `placeholder` string, nullable, required
      - `disclaimerText` string
      - `fieldLayout` 'one-column' | 'two-column'
      - `submitLayout` 'stacked' | 'inline-email'
      - `styles` FormStyles
        - `formBackgroundColor` string
        - `textColor` string
        - `accentColor` string
        - `fieldBackgroundColor` string
        - `fieldBorderColor` string
        - `fieldTextColor` string
        - `errorTextColor` string
        - `formBorderColor` string
        - `buttonTextColor` string
        - `rowGap` number
        - `columnGap` number
        - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `buttonBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `submitButtonLabel` string
        - `submitBehavior` 'message' | 'redirect'
        - `redirectUrl` string
        - `forwardSubscriberData` boolean
        - `forwardedSubscriberFields` string[]
        - `tagIds` string[]
        - `doubleOptIn` DoubleOptInSettings
          - `enabled` boolean
          - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
          - `confirmationEmailBodyDocument` BroadcastEmailDocument
            - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
            - `attrs` object
              - …
            - `content` BroadcastEmailNode[]
              - …
            - `text` string
            - `marks` BroadcastEmailMark[]
              - …
          - `confirmationSuccessBehavior` 'message' | 'redirect'
          - `confirmationSuccessMessage` string
          - `confirmationSuccessUrl` string, nullable
      - `columns` LandingPageColumn[]
        - `id` string, required
        - `blocks` LandingPageBlock[], required
        - `backgroundColor` string, nullable, required
        - `textColor` string, nullable, required
        - `backgroundImageUrl` string, nullable, required
        - `backgroundImageOverlayOpacity` number
        - `margin` 'none' | 'normal' | 'large' | 'custom', required
        - `padding` 'none' | 'normal' | 'large' | 'custom', required
        - `customMargin` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customPadding` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `verticalAlign` 'top' | 'middle' | 'bottom', required
        - `borderColor` string, required
        - `borderWidth` 'none' | 'normal' | 'large' | 'custom', required
        - `borderRadius` 'none' | 'normal' | 'large' | 'custom', required
        - `customBorderWidth` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customBorderRadius` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `visibility` LandingPageVisibility
          - `desktop` boolean, required
          - `tablet` boolean, required
          - `mobile` boolean, required
      - `backgroundImageUrl` string, nullable
      - `backgroundImageOverlayOpacity` number
      - `coverViewport` boolean
      - `margin` 'none' | 'normal' | 'large' | 'custom'
      - `padding` 'none' | 'normal' | 'large' | 'custom'
      - `customMargin` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `customPadding` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `visibility` LandingPageVisibility
        - `desktop` boolean, required
        - `tablet` boolean, required
        - `mobile` boolean, required
    - `successBlocks` LandingPageBlock[]
      - `id` string, required
      - `type` 'section' | 'heading' | 'paragraph' | 'blockquote' | 'image' | 'video' | 'countdown' | 'testimonial' | 'logo-strip' | 'faq' | 'divider' | 'icon' | 'button' | 'form', required
      - `content` string
      - `level` 1 | 2 | 3
      - `textAlign` 'left' | 'center' | 'right' | 'justify' | 'null', nullable
      - `highlightColor` string, nullable
      - `citation` string
      - `borderColor` string, nullable
      - `backgroundColor` string, nullable
      - `textColor` string, nullable
      - `src` string
      - `altText` string
      - `caption` string
      - `href` string
      - `borderRadius` 'none' | 'normal' | 'large' | 'custom'
      - `customBorderRadius` LandingPageBoxCorners
        - `topLeft` number, required
        - `topRight` number, required
        - `bottomRight` number, required
        - `bottomLeft` number, required
      - `title` string
      - `aspectRatio` '16:9' | '4:3' | '1:1' | '9:16'
      - `targetDate` string: The countdown target as an ISO 8601 date and time with an explicit UTC offset or Z suffix.
      - `label` string
      - `expiredMessage` string
      - `design` 'cards' | 'minimal' | 'inline' | 'card' | 'quote' | 'row' | 'grid' | 'bordered'
      - `accentColor` string, nullable
      - `align` 'left' | 'center' | 'right'
      - `quote` string
      - `name` string
      - `avatarUrl` string
      - `avatarAlt` string
      - `rating` number
      - `heading` string
      - `logos` LandingPageLogo[]
        - `id` string, required
        - `name` string, required
        - `imageUrl` string, required
        - `altText` string, required
        - `href` string
      - `logoHeight` number
      - `items` LandingPageFaqItem[]
        - `id` string, required
        - `question` string, required
        - `answer` string, required
      - `defaultOpenFirst` boolean
      - `iconPosition` 'start' | 'end'
      - `color` string, nullable
      - `thickness` number
      - `style` 'solid' | 'dashed' | 'dotted'
      - `iconName` string
      - `size` union
        - number
        - 'small' | 'medium' | 'large'
      - `cssClass` string
      - `cssId` string
      - `buttonTextColor` string
      - `borderWidth` 'none' | 'normal' | 'large' | 'custom'
      - `customBorderWidth` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `width` 'default' | 'large' | 'full' | 'fit'
      - `openInNewTab` boolean
      - `fields` FormField[]
        - union
          - object
            - `id` string, required
            - `type` 'email', required
            - `label` string, required
            - `placeholder` string, required
            - `required` true, required
          - object
            - `id` string, required
            - `type` 'text', required
            - `textVariant` 'heading' | 'subheading' | 'paragraph', required
            - `content` string, required
          - object
            - `id` string, required
            - `type` 'custom-field', required
            - `customFieldId` string, required
            - `label` string, required
            - `customFieldType` 'Text' | 'Number' | 'Date' | 'Select (Dropdown)' | 'Single Select' | 'Multi Select' | 'Text Area' | 'Checkbox', required
            - `required` boolean, required
            - `placeholder` string, nullable, required
      - `disclaimerText` string
      - `fieldLayout` 'one-column' | 'two-column'
      - `submitLayout` 'stacked' | 'inline-email'
      - `styles` FormStyles
        - `formBackgroundColor` string
        - `textColor` string
        - `accentColor` string
        - `fieldBackgroundColor` string
        - `fieldBorderColor` string
        - `fieldTextColor` string
        - `errorTextColor` string
        - `formBorderColor` string
        - `buttonTextColor` string
        - `rowGap` number
        - `columnGap` number
        - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `buttonBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `submitButtonLabel` string
        - `submitBehavior` 'message' | 'redirect'
        - `redirectUrl` string
        - `forwardSubscriberData` boolean
        - `forwardedSubscriberFields` string[]
        - `tagIds` string[]
        - `doubleOptIn` DoubleOptInSettings
          - `enabled` boolean
          - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
          - `confirmationEmailBodyDocument` BroadcastEmailDocument
            - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
            - `attrs` object
              - …
            - `content` BroadcastEmailNode[]
              - …
            - `text` string
            - `marks` BroadcastEmailMark[]
              - …
          - `confirmationSuccessBehavior` 'message' | 'redirect'
          - `confirmationSuccessMessage` string
          - `confirmationSuccessUrl` string, nullable
      - `columns` LandingPageColumn[]
        - `id` string, required
        - `blocks` LandingPageBlock[], required
        - `backgroundColor` string, nullable, required
        - `textColor` string, nullable, required
        - `backgroundImageUrl` string, nullable, required
        - `backgroundImageOverlayOpacity` number
        - `margin` 'none' | 'normal' | 'large' | 'custom', required
        - `padding` 'none' | 'normal' | 'large' | 'custom', required
        - `customMargin` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customPadding` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `verticalAlign` 'top' | 'middle' | 'bottom', required
        - `borderColor` string, required
        - `borderWidth` 'none' | 'normal' | 'large' | 'custom', required
        - `borderRadius` 'none' | 'normal' | 'large' | 'custom', required
        - `customBorderWidth` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customBorderRadius` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `visibility` LandingPageVisibility
          - `desktop` boolean, required
          - `tablet` boolean, required
          - `mobile` boolean, required
      - `backgroundImageUrl` string, nullable
      - `backgroundImageOverlayOpacity` number
      - `coverViewport` boolean
      - `margin` 'none' | 'normal' | 'large' | 'custom'
      - `padding` 'none' | 'normal' | 'large' | 'custom'
      - `customMargin` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `customPadding` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `visibility` LandingPageVisibility
        - `desktop` boolean, required
        - `tablet` boolean, required
        - `mobile` boolean, required
    - `customCss` string
  - `styles` LandingPageStyles
    - `headingFontFamily` string
    - `fontFamily` string
    - `fontSize` number
    - `backgroundColor` string
    - `textColor` string
    - `accentColor` string
  - `settings` LandingPageSettings
    - `seo` object
      - `title` string
      - `description` string
    - `social` object
      - `imageAssetId` string, nullable
      - `imageUrl` string
      - `altText` string
    - `analytics` object
      - `trackingCode` string
    - `form` FormStyles
      - `formBackgroundColor` string
      - `textColor` string
      - `accentColor` string
      - `fieldBackgroundColor` string
      - `fieldBorderColor` string
      - `fieldTextColor` string
      - `errorTextColor` string
      - `formBorderColor` string
      - `buttonTextColor` string
      - `rowGap` number
      - `columnGap` number
      - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
      - `formBorderWidthCustom` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
      - `fieldBorderWidthCustom` LandingPageBoxEdges
        - `top` number, required
        - `right` number, required
        - `bottom` number, required
        - `left` number, required
      - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
      - `formBorderRadiusCustom` LandingPageBoxCorners
        - `topLeft` number, required
        - `topRight` number, required
        - `bottomRight` number, required
        - `bottomLeft` number, required
      - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
      - `fieldBorderRadiusCustom` LandingPageBoxCorners
        - `topLeft` number, required
        - `topRight` number, required
        - `bottomRight` number, required
        - `bottomLeft` number, required
      - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
      - `buttonBorderRadiusCustom` LandingPageBoxCorners
        - `topLeft` number, required
        - `topRight` number, required
        - `bottomRight` number, required
        - `bottomLeft` number, required
      - `submitButtonLabel` string
      - `submitBehavior` 'message' | 'redirect'
      - `redirectUrl` string
      - `forwardSubscriberData` boolean
      - `forwardedSubscriberFields` string[]
      - `tagIds` string[]
      - `doubleOptIn` DoubleOptInSettings
        - `enabled` boolean
        - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
        - `confirmationEmailBodyDocument` BroadcastEmailDocument
          - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
          - `attrs` object
            - `id` string
            - `level` 1 | 2 | 3
            - `textAlign` 'left' | 'center' | 'right' | 'justify'
            - `columns` 1 | 2 | 3
            - `width` 'default' | 'large' | 'full' | 'fit'
            - `backgroundColor` string
            - `blockquoteBorderColor` string
            - `linkColor` string
            - `layoutAlignment` 'left' | 'center'
            - `backgroundImageUrl` string
            - `margin` 'none' | 'normal' | 'large'
            - `padding` 'none' | 'normal' | 'large'
            - `borderColor` string
            - `borderWidth` 'none' | 'normal' | 'large'
            - `borderRadius` 'none' | 'normal' | 'small' | 'large' | 'full'
            - `verticalAlign` 'top' | 'middle' | 'bottom'
            - `href` string
            - `textColor` string
            - `size` 'small' | 'medium' | 'large'
            - `align` 'left' | 'center' | 'right'
            - `label` string
            - `src` string
            - `alt` string
            - `title` string
            - `caption` string
            - `source` 'unsplash'
            - `unsplash` object
              - …
            - `widthPercent` number
            - `crop` 'none' | 'square' | 'circle'
            - `fillColumn` boolean
          - `content` BroadcastEmailNode[]
            - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
            - `attrs` object
              - …
            - `content` BroadcastEmailNode[]
            - `text` string
            - `marks` BroadcastEmailMark[]
              - …
          - `text` string
          - `marks` BroadcastEmailMark[]
            - `type` 'bold' | 'italic' | 'strike' | 'underline' | 'link' | 'textStyle' | 'highlight', required
            - `attrs` object
              - …
        - `confirmationSuccessBehavior` 'message' | 'redirect'
        - `confirmationSuccessMessage` string
        - `confirmationSuccessUrl` string, nullable
    - `display` FormDisplaySettings
      - `format` 'inline' | 'modal' | 'slide_in' | 'sticky_bar' | 'full_page'
      - `triggerType` 'exit_intent' | 'scroll_percentage' | 'timing_seconds' | 'click_trigger' | 'null', nullable
      - `scrollPercentage` integer, nullable
      - `timingSeconds` integer, nullable
      - `triggerClassName` string
      - `triggerId` string
      - `stickyBarPosition` 'top' | 'bottom' | 'null', nullable
      - `slideInPosition` 'left' | 'right' | 'null', nullable

## Response `200`

Successful response

- object
  - `data` LandingPage, required
    - `self` string, required: Stable relative Public API path for retrieving this resource.
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `custom_path` string, nullable, required: Optional Pro custom slug for the workspace's verified landing page subdomain.
    - `customPath` string, nullable, required: Camel-case alias for custom_path. Optional Pro custom slug for the workspace's verified landing page subdomain.
    - `definition` LandingPageDefinition, required
      - `blocks` LandingPageBlock[], required
        - `id` string, required
        - `type` 'section' | 'heading' | 'paragraph' | 'blockquote' | 'image' | 'video' | 'countdown' | 'testimonial' | 'logo-strip' | 'faq' | 'divider' | 'icon' | 'button' | 'form', required
        - `content` string
        - `level` 1 | 2 | 3
        - `textAlign` 'left' | 'center' | 'right' | 'justify' | 'null', nullable
        - `highlightColor` string, nullable
        - `citation` string
        - `borderColor` string, nullable
        - `backgroundColor` string, nullable
        - `textColor` string, nullable
        - `src` string
        - `altText` string
        - `caption` string
        - `href` string
        - `borderRadius` 'none' | 'normal' | 'large' | 'custom'
        - `customBorderRadius` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `title` string
        - `aspectRatio` '16:9' | '4:3' | '1:1' | '9:16'
        - `targetDate` string: The countdown target as an ISO 8601 date and time with an explicit UTC offset or Z suffix.
        - `label` string
        - `expiredMessage` string
        - `design` 'cards' | 'minimal' | 'inline' | 'card' | 'quote' | 'row' | 'grid' | 'bordered'
        - `accentColor` string, nullable
        - `align` 'left' | 'center' | 'right'
        - `quote` string
        - `name` string
        - `avatarUrl` string
        - `avatarAlt` string
        - `rating` number
        - `heading` string
        - `logos` LandingPageLogo[]
          - `id` string, required
          - `name` string, required
          - `imageUrl` string, required
          - `altText` string, required
          - `href` string
        - `logoHeight` number
        - `items` LandingPageFaqItem[]
          - `id` string, required
          - `question` string, required
          - `answer` string, required
        - `defaultOpenFirst` boolean
        - `iconPosition` 'start' | 'end'
        - `color` string, nullable
        - `thickness` number
        - `style` 'solid' | 'dashed' | 'dotted'
        - `iconName` string
        - `size` union
          - number
          - 'small' | 'medium' | 'large'
        - `cssClass` string
        - `cssId` string
        - `buttonTextColor` string
        - `borderWidth` 'none' | 'normal' | 'large' | 'custom'
        - `customBorderWidth` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `width` 'default' | 'large' | 'full' | 'fit'
        - `openInNewTab` boolean
        - `fields` FormField[]
          - union
            - object
              - …
            - object
              - …
            - object
              - …
        - `disclaimerText` string
        - `fieldLayout` 'one-column' | 'two-column'
        - `submitLayout` 'stacked' | 'inline-email'
        - `styles` FormStyles
          - `formBackgroundColor` string
          - `textColor` string
          - `accentColor` string
          - `fieldBackgroundColor` string
          - `fieldBorderColor` string
          - `fieldTextColor` string
          - `errorTextColor` string
          - `formBorderColor` string
          - `buttonTextColor` string
          - `rowGap` number
          - `columnGap` number
          - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
          - `formBorderWidthCustom` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
          - `fieldBorderWidthCustom` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `formBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `fieldBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `buttonBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `submitButtonLabel` string
          - `submitBehavior` 'message' | 'redirect'
          - `redirectUrl` string
          - `forwardSubscriberData` boolean
          - `forwardedSubscriberFields` string[]
          - `tagIds` string[]
          - `doubleOptIn` DoubleOptInSettings
            - `enabled` boolean
            - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
            - `confirmationEmailBodyDocument` BroadcastEmailDocument
              - …
            - `confirmationSuccessBehavior` 'message' | 'redirect'
            - `confirmationSuccessMessage` string
            - `confirmationSuccessUrl` string, nullable
        - `columns` LandingPageColumn[]
          - `id` string, required
          - `blocks` LandingPageBlock[], required
          - `backgroundColor` string, nullable, required
          - `textColor` string, nullable, required
          - `backgroundImageUrl` string, nullable, required
          - `backgroundImageOverlayOpacity` number
          - `margin` 'none' | 'normal' | 'large' | 'custom', required
          - `padding` 'none' | 'normal' | 'large' | 'custom', required
          - `customMargin` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `customPadding` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `verticalAlign` 'top' | 'middle' | 'bottom', required
          - `borderColor` string, required
          - `borderWidth` 'none' | 'normal' | 'large' | 'custom', required
          - `borderRadius` 'none' | 'normal' | 'large' | 'custom', required
          - `customBorderWidth` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `customBorderRadius` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `visibility` LandingPageVisibility
            - `desktop` boolean, required
            - `tablet` boolean, required
            - `mobile` boolean, required
        - `backgroundImageUrl` string, nullable
        - `backgroundImageOverlayOpacity` number
        - `coverViewport` boolean
        - `margin` 'none' | 'normal' | 'large' | 'custom'
        - `padding` 'none' | 'normal' | 'large' | 'custom'
        - `customMargin` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customPadding` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `visibility` LandingPageVisibility
          - `desktop` boolean, required
          - `tablet` boolean, required
          - `mobile` boolean, required
      - `successBlocks` LandingPageBlock[]
        - `id` string, required
        - `type` 'section' | 'heading' | 'paragraph' | 'blockquote' | 'image' | 'video' | 'countdown' | 'testimonial' | 'logo-strip' | 'faq' | 'divider' | 'icon' | 'button' | 'form', required
        - `content` string
        - `level` 1 | 2 | 3
        - `textAlign` 'left' | 'center' | 'right' | 'justify' | 'null', nullable
        - `highlightColor` string, nullable
        - `citation` string
        - `borderColor` string, nullable
        - `backgroundColor` string, nullable
        - `textColor` string, nullable
        - `src` string
        - `altText` string
        - `caption` string
        - `href` string
        - `borderRadius` 'none' | 'normal' | 'large' | 'custom'
        - `customBorderRadius` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `title` string
        - `aspectRatio` '16:9' | '4:3' | '1:1' | '9:16'
        - `targetDate` string: The countdown target as an ISO 8601 date and time with an explicit UTC offset or Z suffix.
        - `label` string
        - `expiredMessage` string
        - `design` 'cards' | 'minimal' | 'inline' | 'card' | 'quote' | 'row' | 'grid' | 'bordered'
        - `accentColor` string, nullable
        - `align` 'left' | 'center' | 'right'
        - `quote` string
        - `name` string
        - `avatarUrl` string
        - `avatarAlt` string
        - `rating` number
        - `heading` string
        - `logos` LandingPageLogo[]
          - `id` string, required
          - `name` string, required
          - `imageUrl` string, required
          - `altText` string, required
          - `href` string
        - `logoHeight` number
        - `items` LandingPageFaqItem[]
          - `id` string, required
          - `question` string, required
          - `answer` string, required
        - `defaultOpenFirst` boolean
        - `iconPosition` 'start' | 'end'
        - `color` string, nullable
        - `thickness` number
        - `style` 'solid' | 'dashed' | 'dotted'
        - `iconName` string
        - `size` union
          - number
          - 'small' | 'medium' | 'large'
        - `cssClass` string
        - `cssId` string
        - `buttonTextColor` string
        - `borderWidth` 'none' | 'normal' | 'large' | 'custom'
        - `customBorderWidth` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `width` 'default' | 'large' | 'full' | 'fit'
        - `openInNewTab` boolean
        - `fields` FormField[]
          - union
            - object
              - …
            - object
              - …
            - object
              - …
        - `disclaimerText` string
        - `fieldLayout` 'one-column' | 'two-column'
        - `submitLayout` 'stacked' | 'inline-email'
        - `styles` FormStyles
          - `formBackgroundColor` string
          - `textColor` string
          - `accentColor` string
          - `fieldBackgroundColor` string
          - `fieldBorderColor` string
          - `fieldTextColor` string
          - `errorTextColor` string
          - `formBorderColor` string
          - `buttonTextColor` string
          - `rowGap` number
          - `columnGap` number
          - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
          - `formBorderWidthCustom` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
          - `fieldBorderWidthCustom` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `formBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `fieldBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
          - `buttonBorderRadiusCustom` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `submitButtonLabel` string
          - `submitBehavior` 'message' | 'redirect'
          - `redirectUrl` string
          - `forwardSubscriberData` boolean
          - `forwardedSubscriberFields` string[]
          - `tagIds` string[]
          - `doubleOptIn` DoubleOptInSettings
            - `enabled` boolean
            - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
            - `confirmationEmailBodyDocument` BroadcastEmailDocument
              - …
            - `confirmationSuccessBehavior` 'message' | 'redirect'
            - `confirmationSuccessMessage` string
            - `confirmationSuccessUrl` string, nullable
        - `columns` LandingPageColumn[]
          - `id` string, required
          - `blocks` LandingPageBlock[], required
          - `backgroundColor` string, nullable, required
          - `textColor` string, nullable, required
          - `backgroundImageUrl` string, nullable, required
          - `backgroundImageOverlayOpacity` number
          - `margin` 'none' | 'normal' | 'large' | 'custom', required
          - `padding` 'none' | 'normal' | 'large' | 'custom', required
          - `customMargin` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `customPadding` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `verticalAlign` 'top' | 'middle' | 'bottom', required
          - `borderColor` string, required
          - `borderWidth` 'none' | 'normal' | 'large' | 'custom', required
          - `borderRadius` 'none' | 'normal' | 'large' | 'custom', required
          - `customBorderWidth` LandingPageBoxEdges
            - `top` number, required
            - `right` number, required
            - `bottom` number, required
            - `left` number, required
          - `customBorderRadius` LandingPageBoxCorners
            - `topLeft` number, required
            - `topRight` number, required
            - `bottomRight` number, required
            - `bottomLeft` number, required
          - `visibility` LandingPageVisibility
            - `desktop` boolean, required
            - `tablet` boolean, required
            - `mobile` boolean, required
        - `backgroundImageUrl` string, nullable
        - `backgroundImageOverlayOpacity` number
        - `coverViewport` boolean
        - `margin` 'none' | 'normal' | 'large' | 'custom'
        - `padding` 'none' | 'normal' | 'large' | 'custom'
        - `customMargin` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `customPadding` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `visibility` LandingPageVisibility
          - `desktop` boolean, required
          - `tablet` boolean, required
          - `mobile` boolean, required
      - `customCss` string
    - `styles` LandingPageStyles, required
      - `headingFontFamily` string
      - `fontFamily` string
      - `fontSize` number
      - `backgroundColor` string
      - `textColor` string
      - `accentColor` string
    - `settings` LandingPageSettings, required
      - `seo` object
        - `title` string
        - `description` string
      - `social` object
        - `imageAssetId` string, nullable
        - `imageUrl` string
        - `altText` string
      - `analytics` object
        - `trackingCode` string
      - `form` FormStyles
        - `formBackgroundColor` string
        - `textColor` string
        - `accentColor` string
        - `fieldBackgroundColor` string
        - `fieldBorderColor` string
        - `fieldTextColor` string
        - `errorTextColor` string
        - `formBorderColor` string
        - `buttonTextColor` string
        - `rowGap` number
        - `columnGap` number
        - `formBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `fieldBorderWidthMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderWidthCustom` LandingPageBoxEdges
          - `top` number, required
          - `right` number, required
          - `bottom` number, required
          - `left` number, required
        - `formBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `formBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `fieldBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `fieldBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `buttonBorderRadiusMode` 'none' | 'normal' | 'large' | 'custom'
        - `buttonBorderRadiusCustom` LandingPageBoxCorners
          - `topLeft` number, required
          - `topRight` number, required
          - `bottomRight` number, required
          - `bottomLeft` number, required
        - `submitButtonLabel` string
        - `submitBehavior` 'message' | 'redirect'
        - `redirectUrl` string
        - `forwardSubscriberData` boolean
        - `forwardedSubscriberFields` string[]
        - `tagIds` string[]
        - `doubleOptIn` DoubleOptInSettings
          - `enabled` boolean
          - `confirmationEmailSubject` string, nullable: For Subscriber personalization in email subjects and body text nodes, use Mailrith bracket tokens such as [Subscriber_Name, fallback="friend"] or [Subscriber_Email, fallback=""]. Before using a custom field, call custom_fields_list or custom_fields_get and copy its personalization_token exactly. Do not use Handlebars-style variables such as {{ subscriber.name }}; Mailrith sends them as literal text.
          - `confirmationEmailBodyDocument` BroadcastEmailDocument
            - `type` 'doc' | 'paragraph' | 'heading' | 'text' | 'hardBreak' | 'bulletList' | 'orderedList' | 'listItem' | 'blockquote' | 'emailSection' | 'emailSectionColumn' | 'emailButton' | 'image' | 'horizontalRule', required
            - `attrs` object
              - …
            - `content` BroadcastEmailNode[]
              - …
            - `text` string
            - `marks` BroadcastEmailMark[]
              - …
          - `confirmationSuccessBehavior` 'message' | 'redirect'
          - `confirmationSuccessMessage` string
          - `confirmationSuccessUrl` string, nullable
      - `display` FormDisplaySettings
        - `format` 'inline' | 'modal' | 'slide_in' | 'sticky_bar' | 'full_page'
        - `triggerType` 'exit_intent' | 'scroll_percentage' | 'timing_seconds' | 'click_trigger' | 'null', nullable
        - `scrollPercentage` integer, nullable
        - `timingSeconds` integer, nullable
        - `triggerClassName` string
        - `triggerId` string
        - `stickyBarPosition` 'top' | 'bottom' | 'null', nullable
        - `slideInPosition` 'left' | 'right' | 'null', nullable
    - `public_token` string, required
    - `public_url` string, required
    - `subscribers_90d` integer, required
    - `views_90d` integer, required
    - `conversion_rate_90d` number, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: The request is invalid.
- `404`: The landing page was not found.
- `409`: The request conflicts with the current landing page state.

---

[API](https://skmtc.dev/mailrith/apis/mailrith-api.md) · [All operations](https://skmtc.dev/mailrith/apis/mailrith-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mailrith/apis/mailrith-api/revisions/41f09536f2da?raw)
