---
title: "List form templates"
method: GET
path: "/form-templates"
tags: ["Form Templates"]
---

# List form templates

`GET /form-templates`

## Request

- Base URL: `https://api.omnisend.com/api`
- URL: `https://api.omnisend.com/api/form-templates`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://app.omnisend.com/oauth2/token` scopes: `forms.read`
  - API key in header `Authorization`

List form templates with sorting, filtering and cursor-based pagination support.
Only templates available in the brand's library are returned, each with its full content and brand assets applied.

**Scopes:**
`forms.read`

**Rate Limiting:**
This endpoint is rate limited to 400 requests per minute.

**Pagination:**
This endpoint uses cursor-based pagination. Use the `after` cursor from the response to get the next page,
or the `before` cursor to get the previous page. Do not use both `after` and `before` parameters simultaneously.

**Sorting:**
- Only single-field sorting is supported. You cannot sort by multiple fields.
- Available sort fields: `createdAt` (default).
- Sort parameters are only required on the first request. Subsequent requests using a cursor
will automatically use the sort settings embedded in the cursor.

**Cursor Behavior:**
- Cursors are self-contained and include all parameters needed for pagination.
- Once you have a cursor, you only need to pass the cursor for subsequent pages.
- If sort parameters are provided with a cursor, they must match the cursor's sort settings.
- Cursors may become invalid if the underlying data changes significantly (e.g., the referenced template is removed).

## Query parameters

- `limit` integer
- `after` string
- `before` string
- `sort` 'createdAt'
- `direction` 'asc' | 'desc'
- `displayType` 'popup' | 'landingPage' | 'embedded' | 'flyout' | 'fullscreen'

## Headers

- `Omnisend-Version` string, required

## Response `200`

Form templates list

- ListTemplatesResponse: Paginated list of form templates.
  - `formTemplates` Template[]: List of form templates
    - `contactTags` string[]: Tags applied to contacts who submit forms created from this template
    - `content` FormContentResponse: Form content returned in a form response.
      - `generalSettings` FormGeneralSettingsResponse: General presentation settings returned in a form response.
        - `backgroundImage` FormBackgroundImageResponse: Background image returned in a form response.
          - `fit` string: Background image fit
          - `padding` string: Background image padding in pixels or percent
          - `position` string: Background image position
          - `size` string: Background image size in pixels or percent
          - `url` string: URL to the background image
        - `body` FormBody: Form body (container) presentation.
          - `backgroundColor` string: Body background color
          - `borderColor` string: Body border color
          - `borderRadius` string, required: Body border radius in pixels
          - `borderStyle` 'dotted' | 'solid' | 'dashed', required: Body border style
          - `borderWidth` string, required: Body border width in pixels
        - `buttonPresets` FormButtonPreset[]: Named button style presets
          - `id` 'primary_button' | 'secondary_button' | 'tertiary_button', required: Preset identifier
          - `name` string: Preset name
          - `styles` FormButtonStyle, required: Styling applied to a button preset.
            - `backgroundColor` string: Button background color
            - `borderColor` string: Button border color
            - `borderRadius` string, required: Button border radius in pixels. Range: 0-50
            - `borderStyle` 'dotted' | 'solid' | 'dashed', required: Button border style
            - `borderWidth` string, required: Button border width in pixels
            - `color` string, required: Button text color
            - `fontFamily` string, required: Button font family
            - `fontSize` string, required: Button font size in pixels. Range: 8-96
            - `fontStyle` 'italic' | 'normal', required: Button font style
            - `fontWeight` 'bold' | 'normal', required: Button font weight
            - `hoverBackgroundColor` string: Button background color on hover
            - `hoverBorderColor` string: Button border color on hover
            - `hoverColor` string: Button text color on hover
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
            - `textAlign` 'left' | 'center' | 'right': Button text alignment
            - `textDecoration` 'underline' | 'none', required: Button text decoration
        - `closeButton` FormCloseButton: Close button appearance.
          - `backgroundColor` string: Close button background color
          - `color` string, required: Close button color
          - `isVisible` boolean: Whether the close button is visible
        - `content` FormContentSettings: Form container dimensions and overlay color.
          - `color` string, required: Overlay color behind the form
          - `width` string, required: Form container width in pixels
        - `fieldStyles` FormFieldStyles: Styling shared across form input fields.
          - `errorColor` string, required: Validation error text color
          - `field` FormFieldStyle, required: Styling for the input field itself.
            - `backgroundColor` string: Field background color
            - `borderColor` string, required: Field border color
            - `borderRadius` string, required: Field border radius in pixels. Range: 0-50
            - `borderStyle` 'dotted' | 'solid' | 'dashed', required: Field border style
            - `borderWidth` string, required: Field border width in pixels
            - `color` string, required: Field text color
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
          - `fontFamily` string, required: Field font family
          - `fontSize` string, required: Field font size in pixels. Range: 8-96
          - `fontStyle` 'italic' | 'normal': Field font style
          - `fontWeight` 'bold' | 'normal': Field font weight
          - `label` FormFieldLabelStyles, required: Styling for field labels.
            - `color` string, required: Label color
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
          - `placeholder` FormFieldPlaceholderStyles, required: Styling for field placeholders.
            - `color` string, required: Placeholder color
          - `textAlign` 'left' | 'center' | 'right': Field text alignment
          - `textDecoration` 'underline' | 'none': Field text decoration
        - `link` FormLink: Link color settings.
          - `color` string, required: Link color
        - `position` string: Form position on the page
        - `textPresets` FormTextPreset[]: Named text style presets
          - `id` 'heading_large' | 'heading_medium' | 'heading_small' | 'paragraph' | 'footnote', required: Preset identifier
          - `name` string: Preset name
          - `styles` FormTextStyle, required: Styling applied to a text preset.
            - `color` string, required: Text color
            - `fontFamily` string, required: Text font family
            - `fontSize` string, required: Text font size in pixels. Range: 8-96
            - `lineHeight` '100%' | '115%' | '125%' | '150%' | '200%', required: Text line height
      - `steps` FormStepResponse[]: Form steps, each a list of sections
        - `sections` FormSectionResponse[]: Sections contained in the step
          - `id` string: Section unique identifier (read-only)
          - `rows` FormRowResponse[]: Rows contained in the section
            - `columns` FormColumnResponse[]: Columns contained in the row
              - …
            - `id` string: Row unique identifier (read-only)
            - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
              - …
          - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
            - `alignment` 'left' | 'center' | 'right': Horizontal alignment
            - `backgroundColor` string: Background color
            - `border` string: CSS border shorthand
            - `borderRadius` string: Border radius in pixels
            - `color` string: Primary color
            - `dividerColor` string: Divider color
            - `fontFamily` string: Font family
            - `fontSize` string: Font size in pixels. Range: 8-96, except legal blocks which allow a minimum of 4
            - `lineHeight` string: Line height
            - `opacity` number: Opacity. Range: 0-1
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
            - `secondaryColor` string: Secondary color
            - `verticalAlign` 'top' | 'middle' | 'bottom': Vertical alignment
      - `subscribedStep` FormStepResponse: A step of a form returned in a form response.
        - `sections` FormSectionResponse[]: Sections contained in the step
          - `id` string: Section unique identifier (read-only)
          - `rows` FormRowResponse[]: Rows contained in the section
            - `columns` FormColumnResponse[]: Columns contained in the row
              - …
            - `id` string: Row unique identifier (read-only)
            - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
              - …
          - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
            - `alignment` 'left' | 'center' | 'right': Horizontal alignment
            - `backgroundColor` string: Background color
            - `border` string: CSS border shorthand
            - `borderRadius` string: Border radius in pixels
            - `color` string: Primary color
            - `dividerColor` string: Divider color
            - `fontFamily` string: Font family
            - `fontSize` string: Font size in pixels. Range: 8-96, except legal blocks which allow a minimum of 4
            - `lineHeight` string: Line height
            - `opacity` number: Opacity. Range: 0-1
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
            - `secondaryColor` string: Secondary color
            - `verticalAlign` 'top' | 'middle' | 'bottom': Vertical alignment
      - `successStep` FormStepResponse: A step of a form returned in a form response.
        - `sections` FormSectionResponse[]: Sections contained in the step
          - `id` string: Section unique identifier (read-only)
          - `rows` FormRowResponse[]: Rows contained in the section
            - `columns` FormColumnResponse[]: Columns contained in the row
              - …
            - `id` string: Row unique identifier (read-only)
            - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
              - …
          - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
            - `alignment` 'left' | 'center' | 'right': Horizontal alignment
            - `backgroundColor` string: Background color
            - `border` string: CSS border shorthand
            - `borderRadius` string: Border radius in pixels
            - `color` string: Primary color
            - `dividerColor` string: Divider color
            - `fontFamily` string: Font family
            - `fontSize` string: Font size in pixels. Range: 8-96, except legal blocks which allow a minimum of 4
            - `lineHeight` string: Line height
            - `opacity` number: Opacity. Range: 0-1
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
            - `secondaryColor` string: Secondary color
            - `verticalAlign` 'top' | 'middle' | 'bottom': Vertical alignment
      - `teaser` FormTeaser: Teaser shown before or after the form.
        - `closeButton` FormTeaserCloseButton: Teaser close button settings.
          - `isEnabled` boolean: Whether the teaser close button is shown
        - `isEnabled` boolean: Whether the teaser is enabled
        - `position` 'topLeft' | 'topCenter' | 'topRight' | 'middleLeft' | 'middleRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight', required: Teaser position on the page
        - `styleProperties` FormTeaserStyleProperties: Teaser styling.
          - `backgroundColor` string: Background color
          - `border` string: CSS border shorthand
          - `borderRadius` string: Border radius in pixels. Range: 0-50
          - `color` string: Text color
          - `desktopStyle` FormResponsiveTeaserStyle, required: Responsive teaser margins.
            - `marginBottom` string: Bottom margin in pixels
            - `marginLeft` string: Left margin in pixels
            - `marginRight` string: Right margin in pixels
            - `marginTop` string: Top margin in pixels
          - `fontFamily` string: Font family
          - `fontSize` string: Font size in pixels. Range: 8-96
          - `fontStyle` 'italic' | 'normal': Font style
          - `fontWeight` 'bold' | 'normal': Font weight
          - `mobileStyle` FormResponsiveTeaserStyle, required: Responsive teaser margins.
            - `marginBottom` string: Bottom margin in pixels
            - `marginLeft` string: Left margin in pixels
            - `marginRight` string: Right margin in pixels
            - `marginTop` string: Top margin in pixels
          - `paddingBottom` string: Bottom padding in pixels
          - `paddingLeft` string: Left padding in pixels
          - `paddingRight` string: Right padding in pixels
          - `paddingTop` string: Top padding in pixels
          - `shape` 'rectangle' | 'circle' | 'triangle', required: Teaser shape
          - `textDecoration` 'underline' | 'none': Text decoration
        - `text` string, required: Teaser text
        - `visibility` 'before' | 'after' | 'always', required: When the teaser is shown relative to the form
      - `unavailablePageStep` FormStepResponse: A step of a form returned in a form response.
        - `sections` FormSectionResponse[]: Sections contained in the step
          - `id` string: Section unique identifier (read-only)
          - `rows` FormRowResponse[]: Rows contained in the section
            - `columns` FormColumnResponse[]: Columns contained in the row
              - …
            - `id` string: Row unique identifier (read-only)
            - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
              - …
          - `styleProperties` FormStyleProperties: Style properties shared by sections, rows, columns and blocks.
            - `alignment` 'left' | 'center' | 'right': Horizontal alignment
            - `backgroundColor` string: Background color
            - `border` string: CSS border shorthand
            - `borderRadius` string: Border radius in pixels
            - `color` string: Primary color
            - `dividerColor` string: Divider color
            - `fontFamily` string: Font family
            - `fontSize` string: Font size in pixels. Range: 8-96, except legal blocks which allow a minimum of 4
            - `lineHeight` string: Line height
            - `opacity` number: Opacity. Range: 0-1
            - `paddingBottom` string: Bottom padding in pixels
            - `paddingLeft` string: Left padding in pixels
            - `paddingRight` string: Right padding in pixels
            - `paddingTop` string: Top padding in pixels
            - `secondaryColor` string: Secondary color
            - `verticalAlign` 'top' | 'middle' | 'bottom': Vertical alignment
    - `displayType` 'popup' | 'landingPage' | 'embedded' | 'flyout' | 'fullscreen': Form display type, controlling how the form is presented to visitors. `popup` is a modal centered over the page (highest visibility, best for offers and exit-intent); `flyout` is a compact panel anchored to a corner (non-intrusive, always-on signup); `embedded` renders inline within the host page's content (permanent signup block); `landingPage` is a full standalone page hosted by Omnisend (ad or link driven campaigns); `fullscreen` is a modal that covers the whole viewport (maximum attention, no surrounding page visible).
    - `id` string: Template unique identifier (read-only)
    - `name` string: Template name
    - `targeting` FormTargeting: Targeting rules controlling when and to whom a form is shown.
      - `audience` FormAudience: Subscriber audience targeting.
        - `type` 'subscribers' | 'notSubscribers': Subscriber audience type.
      - `cart` FormCartTargeting: Shopping cart targeting rules. Available only for Shopify stores; requests for other platforms are rejected. Each threshold means "at least"; when both are set, both must hold.
        - `itemCount` integer: Minimum number of items in the cart
        - `value` integer: Minimum cart value in minor currency units (e.g. 5000 means 50.00). Currency-agnostic
      - `device` 'desktop' | 'mobile': Device targeting for a form.
      - `display` FormDisplay: Display trigger configuration controlling when a form appears.
        - `afterScrollDown` integer: Scroll depth percentage that triggers the form. Range: 0-100
        - `afterSeconds` integer: Seconds elapsed on the page before the form appears
        - `afterViewedPageCount` integer: Number of viewed pages before the form appears
        - `customTrigger` 'only': Custom trigger mode activating the form
        - `isExitIntentEnabled` boolean: Whether the form appears on exit intent
      - `frequency` FormFrequency: Frequency configuration for repeat form displays.
        - `type` 'second' | 'minute' | 'hour' | 'day': Time unit for the display frequency
        - `value` integer: Number of time units between repeat displays
      - `isBackInStock` boolean: Whether targeting is limited to back-in-stock visitors
      - `location` FormLocationTargeting: Geographic location targeting.
        - `excludes` FormCountry[]: Countries the form is hidden in
          - `code` string, required: ISO 3166-1 alpha-2 country code
          - `name` string, required: Country name
          - `states` FormState[]: States or regions within the country
            - `code` string, required: State or region code
            - `name` string, required: State or region name
        - `includes` FormCountry[]: Countries the form is shown in
          - `code` string, required: ISO 3166-1 alpha-2 country code
          - `name` string, required: Country name
          - `states` FormState[]: States or regions within the country
            - `code` string, required: State or region code
            - `name` string, required: State or region name
      - `scheduling` FormScheduling: Scheduling window during which a form is active.
        - `endsAt` string: Scheduling window end timestamp (RFC 3339). Must be later than startsAt.
        - `startsAt` string: Scheduling window start timestamp (RFC 3339)
      - `segments` FormSegments: Segment membership targeting.
        - `excludes` string[]: Segment identifiers the form is hidden for
        - `includes` string[]: Segment identifiers the form is shown for
      - `source` FormSourceTargeting: Traffic-source targeting rules.
        - `excludes` FormSourceType[]: Traffic sources the form is hidden for
        - `includes` FormSourceType[]: Traffic sources the form is shown for
      - `url` FormURLTargeting: URL targeting rules.
        - `excludes` FormURLTarget[]: URLs the form is hidden on
          - `type` 'exact' | 'contains', required: Match mode for the URL rule
          - `value` string, required: URL or URL fragment to match
        - `includes` FormURLTarget[]: URLs the form is shown on
          - `type` 'exact' | 'contains', required: Match mode for the URL rule
          - `value` string, required: URL or URL fragment to match
      - `utm` FormUTMTargeting: UTM parameter targeting.
        - `includes` FormUTMTarget[]: UTM rules the form is shown for
          - `type` 'id' | 'source' | 'medium' | 'campaign' | 'term' | 'content', required: UTM parameter the rule matches
          - `value` string, required: UTM value to match
  - `paging` PagingResponse: Cursor-based pagination metadata
    - `cursors` CursorsResponse: Cursor pointers for paginating forward and backward through results
      - `after` string, nullable: Opaque cursor for fetching the next page of results
      - `before` string, nullable: Opaque cursor for fetching the previous page of results
    - `hasMore` boolean: Whether there are more items available beyond the current page
    - `limit` integer: Maximum number of items returned per page

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication is missing or invalid
- `403`: Insufficient permissions for this operation
- `410`: API version has been retired
- `429`: Rate limit exceeded
- `500`: Unexpected error occurred

---

[API](https://skmtc.dev/omnisend/apis/forms-api.md) - [All operations](https://skmtc.dev/omnisend/apis/forms-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnisend/apis/forms-api/revisions/9b53556b2e97?raw)
