Klaviyo Forms API

forms

Operations 9

GET /api/forms Get Forms #
POST /api/forms Create Form #
GET /api/forms/{id} Get Form #
DELETE /api/forms/{id} Delete Form #
GET /api/form-versions/{id} Get Form Version #
GET /api/forms/{id}/form-versions Get Versions for Form #
GET /api/forms/{id}/relationships/form-versions Get Version IDs for Form #
GET /api/form-versions/{id}/form Get Form for Form Version #
GET /api/form-versions/{id}/relationships/form Get Form ID for Form Version #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/klaviyo-forms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

klaviyo-forms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Klaviyo Accounts Forms API
  version: '2026-04-15'
  description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
  contact:
    name: Klaviyo Developer Experience Team
    email: developers@klaviyo.com
    url: https://developers.klaviyo.com
  termsOfService: https://www.klaviyo.com/legal/api-terms
  license:
    name: License
    url: https://www.klaviyo.com/legal
servers:
- url: https://a.klaviyo.com
  description: Production
security:
- Klaviyo-API-Key: []
tags:
- name: Forms
  description: forms
paths:
  /api/forms:
    get:
      operationId: get_forms
      summary: Get Forms
      description: 'Get all forms in an account.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: fields[form]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ab_test
            - created_at
            - name
            - status
            - updated_at
        explode: false
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`id`: `any`, `equals`<br>`name`: `any`, `contains`, `equals`<br>`ab_test`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`status`: `equals`'
        schema:
          type: string
          example: equals(id,'Y6nRLr')
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - created_at
          - -created_at
          - updated_at
          - -updated_at
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormResponseCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
    post:
      operationId: create_form
      summary: Create Form
      description: 'Create a new form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:write`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        description: Creates a Form from parameters
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/FormCreateQuery'
      responses:
        '201':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/PostEncodedFormResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:write
  /api/forms/{id}:
    get:
      operationId: get_form
      summary: Get Form
      description: 'Get the form with the given ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form
        required: true
        schema:
          description: The ID of the form
          type: string
          example: Y6nRLr
      - name: fields[form]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ab_test
            - created_at
            - definition
            - definition.versions
            - name
            - status
            - updated_at
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetEncodedFormResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
    delete:
      operationId: delete_form
      summary: Delete Form
      description: 'Delete a given form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:write`'
      parameters:
      - name: id
        in: path
        description: The ID of the form
        required: true
        schema:
          description: The ID of the form
          type: string
          example: Y6nRLr
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '204':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:write
  /api/form-versions/{id}:
    get:
      operationId: get_form_version
      summary: Get Form Version
      description: 'Get the form version with the given ID.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form version
        required: true
        schema:
          description: The ID of the form version
          type: string
          example: '1234567'
      - name: fields[form-version]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ab_test
            - ab_test.variation_name
            - created_at
            - form_type
            - status
            - updated_at
            - variation_name
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormVersionResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
  /api/forms/{id}/form-versions:
    get:
      operationId: get_versions_for_form
      summary: Get Versions for Form
      description: 'Get the form versions for the given form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form
        required: true
        schema:
          description: The ID of the form
          type:
          - string
          - 'null'
          example: Y6nRLr
      - name: fields[form-version]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ab_test
            - ab_test.variation_name
            - created_at
            - form_type
            - status
            - updated_at
            - variation_name
        explode: false
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`form_type`: `any`, `equals`<br>`status`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`'
        schema:
          type: string
          example: equals(form_type,'popup')
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - created_at
          - -created_at
          - updated_at
          - -updated_at
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormVersionResponseCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-operation-aliases:
      - get_form_form_versions
      - get_form_versions
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
  /api/forms/{id}/relationships/form-versions:
    get:
      operationId: get_version_ids_for_form
      summary: Get Version IDs for Form
      description: 'Get the IDs of the form versions for the given form.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form
        required: true
        schema:
          description: The ID of the form
          type:
          - string
          - 'null'
          example: Y6nRLr
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`form_type`: `any`, `equals`<br>`status`: `equals`<br>`updated_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`created_at`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`'
        schema:
          type: string
          example: equals(form_type,'popup')
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 20. Min: 1. Max: 100.'
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - created_at
          - -created_at
          - updated_at
          - -updated_at
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormVersionsRelationshipsResponseCollection'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-operation-aliases:
      - get_form_relationships_form_versions
      - get_form_relationships_versions
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
  /api/form-versions/{id}/form:
    get:
      operationId: get_form_for_form_version
      summary: Get Form for Form Version
      description: 'Get the form associated with the given form version.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form version
        required: true
        schema:
          description: The ID of the form version
          type: string
          example: '1234567'
      - name: fields[form]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - ab_test
            - created_at
            - name
            - status
            - updated_at
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-operation-aliases:
      - get_form_version_form
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
  /api/form-versions/{id}/relationships/form:
    get:
      operationId: get_form_id_for_form_version
      summary: Get Form ID for Form Version
      description: 'Get the ID of the form associated with the given form version.<br><br>*Rate limits*:<br>Burst: `3/s`<br>Steady: `60/m`


        **Scopes:**

        `forms:read`'
      parameters:
      - name: id
        in: path
        description: The ID of the form version
        required: true
        schema:
          description: The ID of the form version
          type: string
          example: '1234567'
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetFormVersionFormRelationshipResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Forms
      x-klaviyo-operation-aliases:
      - get_form_version_relationships_form
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 3/s
        steady: 60/m
      x-klaviyo-scopes:
      - forms:read
components:
  schemas:
    GetFormVersionsRelationshipsResponseCollection:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            required:
            - type
            - id
            properties:
              type:
                $ref: '#/components/schemas/FormVersionEnum'
              id:
                description: ID of the form version. Generated by Klaviyo.
                type: string
                example: '1234567'
        links:
          $ref: '#/components/schemas/CollectionLinks'
      required:
      - data
    CartValueProperties:
      type: object
      properties:
        comparison:
          description: Number comparison enumeration.
          type:
          - string
          - 'null'
          enum:
          - equals
          - greater_than
          - less_than
        value:
          type:
          - number
          - 'null'
    SkipToSuccessProperties:
      type: object
      maxProperties: 0
    RichTextStyle:
      type: object
      properties:
        font_family:
          example: Arial, 'Helvetica Neue', Helvetica, sans-serif
          default: Arial, 'Helvetica Neue', Helvetica, sans-serif
          oneOf:
          - type: string
            enum:
            - Arial Black,Arial
            - Arial, 'Helvetica Neue', Helvetica, sans-serif
            - Century Gothic,AppleGothic,Arial
            - Comic Sans MS,Comic Sans,cursive
            - Courier
            - Courier New
            - Geneva,Arial
            - Georgia
            - Helvetica,Arial
            - Lucida Grande,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif
            - Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif
            - Lucida,Lucida Sans Unicode,Lucida Sans,Geneva,Verdana,sans-serif
            - MS Serif,Georgia
            - New York,Georgia
            - Palatino Linotype,Palatino,Georgia
            - Palatino,Georgia
            - Tahoma,sans-serif
            - Times New Roman
            - Trebuchet MS
            - Verdana
            description: Web safe font enumeration.
          - type: string
        font_size:
          type: integer
          example: 16
          default: 16
        font_weight:
          description: Font weight enumeration.
          type:
          - integer
          - 'null'
          example: 400
          default: 400
          enum:
          - 100
          - 200
          - 300
          - 400
          - 500
          - 600
          - 700
          - 800
          - 900
        text_color:
          type: string
          example: '#000000'
          default: '#000000'
        font_style:
          type:
          - string
          - 'null'
        text_decoration:
          type:
          - string
          - 'null'
        line_spacing:
          type: number
          example: 1
          default: 1
        character_spacing:
          type:
          - integer
          - 'null'
          default: 0
        alignment:
          description: Horizontal alignment enumeration.
          type: string
          example: left
          default: left
          enum:
          - center
          - left
          - right
        margin:
          $ref: '#/components/schemas/RichTextMargin'
    TextStyles:
      type: object
      properties:
        padding:
          $ref: '#/components/schemas/Padding'
        background_color:
          type:
          - string
          - 'null'
    ResendOptInCode:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        submit:
          type: boolean
          default: false
          enum:
          - false
        type:
          type: string
          enum:
          - resend_opt_in_code
        properties:
          enum:
          - null
      required:
      - type
    Padding:
      type: object
      properties:
        left:
          type: integer
          default: 0
        right:
          type: integer
          default: 0
        top:
          type: integer
          default: 0
        bottom:
          type: integer
          default: 0
    GoToInbox:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        submit:
          type: boolean
          example: true
          default: true
          enum:
          - true
        type:
          type: string
          enum:
          - go_to_inbox
        properties:
          enum:
          - null
      required:
      - type
    DropdownProperties:
      type: object
      properties:
        display_device:
          type: array
          items:
            type: string
            enum:
            - both
            - desktop
            - mobile
            description: Enumeration for mobile and desktop.
        classname:
          type:
          - string
          - 'null'
        property_name:
          type: string
        label:
          type:
          - string
          - 'null'
        show_label:
          type: boolean
          default: false
        required:
          type:
          - boolean
          - 'null'
          default: false
        error_messages:
          $ref: '#/components/schemas/ErrorMessages'
        options:
          type: array
          items:
            $ref: '#/components/schemas/PropertyOption'
        placeholder:
          type:
          - string
          - 'null'
      required:
      - property_name
      - options
    ReviewProperties:
      type: object
      properties:
        display_device:
          type: array
          items:
            type: string
            enum:
            - both
            - desktop
            - mobile
            description: Enumeration for mobile and desktop.
        classname:
          type:
          - string
          - 'null'
        author:
          type:
          - string
          - 'null'
        content:
          type:
          - string
          - 'null'
        rating:
          type: integer
          example: 5
          default: 5
        verified:
          type: boolean
          default: false
        review_id:
          type:
          - integer
          - 'null'
        show_rating:
          type: boolean
          example: true
          default: true
        show_author:
          type: boolean
          example: true
          default: true
        show_verified:
          type: boolean
          example: true
          default: true
    SubscribeViaWhatsAppProperties:
      type: object
      properties:
        opt_in_keyword:
          type:
          - string
          - 'null'
        opt_in_message:
          type: string
        sending_number:
          type:
          - string
          - 'null'
      required:
      - opt_in_keyword
      - opt_in_message
      - sending_number
    SignupCounterStyles:
      type: object
      properties:
        padding:
          $ref: '#/components/schemas/Padding'
        background_color:
          type:
          - string
          - 'null'
    VersionProperties:
      type: object
      properties:
        side_image_settings:
          $ref: '#/components/schemas/SideImageSettings'
        click_outside_to_close:
          type:
          - array
          - 'null'
          items:
            type: string
            enum:
            - both
            - desktop
            - mobile
            description: Enumeration for mobile and desktop.
        rule_based_trigger_evaluation:
          description: Side image alignment enumeration.
          type:
          - string
          - 'null'
          example: any
          default: any
          enum:
          - all
          - any
        record_utm_params_on_submit:
          type: boolean
          default: false
        show_close_button:
          type: boolean
          example: true
          default: true
    PropertyOption:
      type: object
      properties:
        label:
          type: string
        value:
          type: string
      required:
      - label
      - value
    CloseProperties:
      type: object
      properties:
        list_id:
          type:
          - string
          - 'null'
    GetFormVersionResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/FormVersionResponseObjectResource'
        links:
          $ref: '#/components/schemas/ObjectLinks'
      required:
      - data
    RedirectProperties:
      type: object
      properties:
        list_id:
          type:
          - string
          - 'null'
        url:
          type: string
        new_window:
          type: boolean
          default: false
      required:
      - url
    ErrorMessages:
      type: object
      properties:
        required:
          type: string
          example: This field is required
          default: This field is required
        invalid:
          type: string
          example: This field is invalid
          default: This field is invalid
    FormVersionEnum:
      type: string
      enum:
      - form-version
    Delay:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - delay
        properties:
          $ref: '#/components/schemas/DelayProperties'
      required:
      - type
    Channel:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - channel
        properties:
          $ref: '#/components/schemas/ChannelProperties'
      required:
      - type
      - properties
    BackgroundImageStyles:
      type: object
      properties:
        horizontal_alignment:
          description: Horizontal alignment enumeration.
          type: string
          example: center
          default: center
          enum:
          - center
          - left
          - right
        width:
          type:
          - integer
          - 'null'
        position:
          description: Image position enumeration.
          type: string
          example: contain
          default: contain
          enum:
          - contain
          - cover
          - custom
        vertical_alignment:
          description: Vertical alignment enumeration.
          type: string
          example: center
          default: center
          enum:
          - bottom
          - center
          - top
        custom_width:
          type:
          - integer
          - 'null'
    ExitIntent:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        properties:
          $ref: '#/components/schemas/TriggerBaseProperties'
        type:
          type: string
          enum:
          - exit_intent
      required:
      - type
    SpinToWinStyles:
      type: object
      properties:
        padding:
          $ref: '#/components/schemas/Padding'
        background_color:
          type:
          - string
          - 'null'
        slice_styles:
          type: array
          items:
            $ref: '#/components/schemas/SpinToWinSliceStyle'
        text_styles:
          $ref: '#/components/schemas/TextStyleV0'
        center_color:
          type: string
          example: rgba(255,255,255,1)
          default: rgba(255,255,255,1)
        outline_color:
          type: string
          example: rgba(0,0,0,1)
          default: rgba(0,0,0,1)
        outline_thickness:
          type: integer
          example: 12
          default: 12
        pin_color:
          type: string
          example: rgba(255,255,255,1)
          default: rgba(255,255,255,1)
        wheel_size:
          type: integer
          example: 400
          default: 400
    SubmitBackInStock:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - submit_back_in_stock
        properties:
          $ref: '#/components/schemas/SubmitBackInStockProperties'
        submit:
          type: boolean
          example: true
          default: true
          enum:
          - true
      required:
      - type
    RatingStyle:
      type: object
      properties:
        color:
          type: string
          example: '#F8BE00'
          default: '#F8BE00'
        empty_color:
          type: string
          example: '#EBEEEF'
          default: '#EBEEEF'
        font_size:
          type: integer
          example: 16
          default: 16
        shape:
          description: Enumeration for review shapes.
          type: string
          example: star
          default: star
          enum:
          - circle
          - heart
          - star
        alignment:
          description: Horizontal alignment enumeration.
          type: string
          example: center
          default: center
          enum:
          - center
          - left
          - right
        character_spacing:
          type: number
          default: 0
    CollectionLinks:
      type: object
      properties:
        self:
          type: string
          format: uri
        first:
          type: string
          format: uri
        last:
          type: string
          format: uri
        prev:
          type: string
          format: uri
        next:
          type: string
          format: uri
      required:
      - self
    UniqueCouponConfig:
      type: object
      properties:
        type:
          type: string
          enum:
          - unique
        id:
          type:
          - integer
          - 'null'
        code:
          type:
          - string
          - 'null'
        fallback_coupon_code:
          type:
          - string
          - 'null'
        integration:
          description: Coupon integration types for unique coupon blocks.
          type: string
          example: shopify
          default: shopify
          enum:
          - api
          - magento_two
          - prestashop
          - shopify
          - uploaded
          - woocommerce
      required:
      - type
    Checkboxes:
      type: object
      properties:
        id:
          description: Not allowed on create.
          type:
          - string
          - 'null'
        type:
          type

# --- truncated at 32 KB (146 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-forms-api-openapi.yml