Webflow API and Documentation Forms API

Forms are forms that are created on your Webflow site.

OpenAPI Specification

webflow-api-and-documentation-webflow-forms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Webflow Collections Asset Folders Forms API
  description: Webflow Data API v2 - Collections endpoints.
  version: 2.0.0
  contact:
    name: Webflow Developer Relations
    email: developers@webflow.com
    url: https://developers.webflow.com
  termsOfService: https://webflow.com/legal/terms
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://api.webflow.com/v2
  description: Webflow API v2
  x-fern-server-name: Data API
security:
- OAuth2: []
- ApiKey: []
tags:
- name: Forms
  description: Forms are forms that are created on your Webflow site.
paths:
  /sites/{site_id}/forms:
    get:
      x-fern-sdk-group-name: forms
      x-fern-sdk-method-name: list
      security:
      - OAuth2:
        - forms:read
      operationId: list-forms
      summary: Webflow List Forms
      description: 'List forms for a given site.


        Required scope | `forms:read`

        '
      tags:
      - Forms
      parameters:
      - name: site_id
        in: path
        description: Unique identifier for a Site
        example: 580e63e98c9a982ac9b8b741
        required: true
        schema:
          type: string
          format: objectid
          default: null
      - in: query
        allowEmptyValue: true
        name: limit
        example: 100
        description: 'Maximum number of records to be returned (max limit: 100)'
        required: false
        schema:
          type: integer
      - in: query
        example: 0
        allowEmptyValue: true
        name: offset
        description: Offset used for pagination if the results have more than limit records
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Request was successful
          content:
            application/json:
              schema:
                required:
                - forms
                - pagination
                description: A list of forms
                example:
                  forms:
                  - displayName: Email Form
                    createdOn: '2016-10-24T19:41:29.156Z'
                    lastUpdated: '2016-10-24T19:43:17.271Z'
                    fields:
                    - 660d5bcc9c0772150459dfb1:
                        displayName: Name
                        type: Plain
                        placeholder: null
                        userVisible: true
                    - 589a331aa51e760df7ccb89d:
                        displayName: Email
                        type: Email
                        placeholder: Enter your email
                        userVisible: true
                    responseSettings:
                      redirectUrl: https://example.com
                      redirectMethod: GET
                      redirectAction: null
                      sendEmailConfirmation: true
                    id: 589a331aa51e760df7ccb89e
                    siteId: 580e63e98c9a982ac9b8b741
                    siteDomainId: 6419db964a9c436a4baf6248
                    pageId: 6419db964a9c43f6a3af6348
                    pageName: Home
                    workspaceId: 580e63fc8c9a982ac9b8b744
                  - displayName: Name Form
                    createdOn: '2016-10-24T19:41:29.156Z'
                    lastUpdated: '2016-10-24T19:43:17.271Z'
                    fields:
                    - 589a331aa51e760df7ccb89d:
                        displayName: Name
                        type: Plain
                        placeholder: Enter your name
                        userVisible: true
                    responseSettings:
                      redirectUrl: https://example.com
                      redirectMethod: GET
                      redirectAction: null
                      sendEmailConfirmation: false
                    id: 580ff8d7ba3e45ba9fe588e9
                    siteId: 580e63e98c9a982ac9b8b741
                    siteDomainId: 6419db964a9c436a4baf6248
                    pageId: 6419db964a9c43f6a3af6348
                    pageName: Home
                    formElementId: 4e038d2c-6a1e-4953-7be9-a59a2b453177
                    workspaceId: 580e63fc8c9a982ac9b8b744
                  pagination:
                    limit: 25
                    offset: 0
                    total: 2
                properties:
                  forms:
                    type: array
                    items:
                      example:
                        displayName: Email Form
                        createdOn: '2016-10-24T19:41:29.156Z'
                        lastUpdated: '2016-10-24T19:43:17.271Z'
                        fields:
                          660d5bcc9c0772150459dfb1:
                            displayName: Name
                            type: Plain
                            placeholder: null
                            userVisible: true
                          589a331aa51e760df7ccb89d:
                            displayName: Email
                            type: Email
                            placeholder: Enter your email
                            userVisible: true
                        responseSettings:
                          redirectUrl: https://example.com
                          redirectMethod: GET
                          redirectAction: null
                          sendEmailConfirmation: true
                        id: 589a331aa51e760df7ccb89e
                        siteId: 580e63e98c9a982ac9b8b741
                        siteDomainId: 6419db964a9c436a4baf6248
                        pageId: 6419db964a9c43f6a3af6348
                        pageName: Home
                        formElementId: 4e038d2c-6a1e-4953-7be9-a59a2b453177
                        workspaceId: 580e63fc8c9a982ac9b8b744
                      description: A Webflow form
                      properties:
                        displayName:
                          type: string
                          description: The Form name displayed on the site
                          example: Galactic Intake Form
                        createdOn:
                          type: string
                          format: date-time
                          description: Date that the Form was created on
                          example: '2018-10-04T15:21:02.042Z'
                        lastUpdated:
                          type: string
                          format: date-time
                          description: Date that the Form was last updated on
                          example: '2018-10-04T15:21:02.042Z'
                        fields:
                          description: A collection of form field objects
                          type: object
                          maxProperties: 1
                          additionalProperties:
                            description: An object containing field info for a specific fieldID.
                            type: object
                            properties:
                              displayName:
                                type: string
                                description: The field name displayed on the site
                                example: Email
                              type:
                                type: string
                                description: The field type
                                enum:
                                - Plain
                                - Email
                                - Password
                                - Phone
                                - Number
                                example: Email
                              placeholder:
                                type: string
                                description: The placeholder text for the field
                                nullable: true
                                example: Enter your email
                              userVisible:
                                type: boolean
                                description: Whether the field is visible to the user
                                example: true
                        responseSettings:
                          description: Settings for form responses
                          type: object
                          properties:
                            redirectUrl:
                              type: string
                              description: The url or path to redirect the user to after form submission
                              example: /thank-you
                            redirectMethod:
                              type: string
                              description: The HTTP request method to use for the redirectUrl (eg. POST or GET)
                              nullable: true
                              example: GET
                            redirectAction:
                              type: string
                              description: The action to take after form submission
                              nullable: true
                              example: POST https://example.com
                            sendEmailConfirmation:
                              type: boolean
                              description: Whether to send an email confirmation to the user
                              example: true
                        id:
                          type: string
                          format: objectid
                          description: The unique ID for the Form
                          example: 545bbecb7bdd6769632504a7
                        siteId:
                          type: string
                          format: objectid
                          description: The unique ID of the Site the Form belongs to
                          example: 545bbecb7bdd6769632504a7
                        siteDomainId:
                          type: string
                          format: objectid
                          description: The unique ID corresponding to the site's Domain name
                          example: 6419db964a9c436a4baf6247
                        pageId:
                          type: string
                          format: objectid
                          description: The unique ID for the Page on which the Form is placed
                          example: 6419db964a9c43f6a3af6243
                        pageName:
                          type: string
                          description: The user-visible name of the Page where the Form is placed
                          example: Home
                        formElementId:
                          type: string
                          nullable: true
                          description: The unique ID of the Form element
                          example: 4e038d2c-6a1e-4953-7be9-a59a2b453177
                        workspaceId:
                          type: string
                          format: objectid
                          description: The unique ID of the Workspace the Site belongs to
                          example: 580e63fc8c9a982ac9b8b744
                  pagination:
                    description: Pagination object
                    type: object
                    required:
                    - limit
                    - offset
                    - total
                    properties:
                      limit:
                        type: integer
                        description: The limit used for pagination
                        example: 100
                        readOnly: true
                      offset:
                        type: integer
                        description: The offset used for pagination
                        example: 0
                        readOnly: true
                      total:
                        type: integer
                        description: The total number of records
                        example: 100
                        readOnly: true
              example:
                forms:
                - displayName: Email Form
                  createdOn: '2016-10-24T19:41:29.156Z'
                  lastUpdated: '2016-10-24T19:43:17.271Z'
                  fields:
                  - 660d5bcc9c0772150459dfb1:
                      displayName: Name
                      type: Plain
                      placeholder: null
                      userVisible: true
                  - 589a331aa51e760df7ccb89d:
                      displayName: Email
                      type: Email
                      placeholder: Enter your email
                      userVisible: true
                  responseSettings:
                    redirectUrl: https://example.com
                    redirectMethod: GET
                    redirectAction: null
                    sendEmailConfirmation: true
                  id: 589a331aa51e760df7ccb89e
                  siteId: 580e63e98c9a982ac9b8b741
                  siteDomainId: 6419db964a9c436a4baf6248
                  pageId: 6419db964a9c43f6a3af6348
                  pageName: Home
                  workspaceId: 580e63fc8c9a982ac9b8b744
                - displayName: Name Form
                  createdOn: '2016-10-24T19:41:29.156Z'
                  lastUpdated: '2016-10-24T19:43:17.271Z'
                  fields:
                  - 589a331aa51e760df7ccb89d:
                      displayName: Name
                      type: Plain
                      placeholder: Enter your name
                      userVisible: true
                  responseSettings:
                    redirectUrl: https://example.com
                    redirectMethod: GET
                    redirectAction: null
                    sendEmailConfirmation: false
                  id: 580ff8d7ba3e45ba9fe588e9
                  siteId: 580e63e98c9a982ac9b8b741
                  siteDomainId: 6419db964a9c436a4baf6248
                  pageId: 6419db964a9c43f6a3af6348
                  pageName: Home
                  formElementId: 4e038d2c-6a1e-4953-7be9-a59a2b453177
                  workspaceId: 580e63fc8c9a982ac9b8b744
                pagination:
                  limit: 25
                  offset: 0
                  total: 2
        '400':
          description: Request body was incorrectly formatted.
          x-logErrorCode: 400
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: bad_request
                message: 'Bad Request: Request is malformed'
                externalReference: null
                details: []
        '401':
          description: Provided access token is invalid or does not have access to requested resource
          x-logErrorCode: 401
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: not_authorized
                message: Request not authorized
                externalReference: null
                details: []
        '403':
          description: Forbidden
          x-logErrorCode: 403
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: forbidden
                message: User is not authorized to perform this action
                externalReference: null
                details: []
        '404':
          description: Requested resource not found
          x-logErrorCode: 404
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: resource_not_found
                message: 'Requested resource not found: The site cannot be found'
                externalReference: null
                details: []
        '409':
          description: To access this feature, the site needs to be republished.
          x-logErrorCode: 409
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: forms_require_republish
                message: To access this feature, the site needs to be republished.
                externalReference: null
                details: []
        '429':
          description: The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.
          x-logErrorCode: 429
          headers:
            X-RateLimit-Remaining:
              description: Contains the number of available requests remaining in the current minute
              schema:
                type: number
            X-RateLimit-Limit:
              description: Contains your current overall rate limit per minute
              schema:
                type: number
          content:
            application/json:
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_user_email
                    - item_not_found
                    - missing_scopes
                    - no_domains
                    - not_authorized
                    - not_enterprise_plan_site
                    - not_enterprise_plan_workspace
                    - order_not_found
                    - resource_not_found
                    - too_many_requests
                    - unsupported_version
                    - unsupported_webhook_trigger_type
                    - user_limit_reached
                    - user_not_found
                    - users_not_enabled
                    - validation_error
                  message:
                    type: string
                    description: Error message
                    example: Request not authorized
                  externalReference:
                    type: string
                    description: Link to more information
                    example: ''
                  details:
                    type: array
                    description: Array of errors
                    items:
                    - type: string
                      example: Invalid email address
                      description: Error message
                    - type: object
                      example:
                        field: email
                        message: Invalid email address
                      description: Error message
                    example: []
              example:
                code: too_many_requests
                message: Too many requests
                externalReference: null
                details: []
        '500':
          description: We had a problem with our server. Try again later.
          content:
            application/json:
              x-logErrorCode: 500
              schema:
                type: object
                example:
                  code: not_authorized
                  message: Request not authorized
                  externalReference: null
                  details: []
                properties:
                  code:
                    type: string
                    description: Error code
                    example: not_authorized
                    enum:
                    - bad_request
                    - collection_not_found
                    - conflict
                    - duplicate_collection
                    - duplicate_user_email
                    - ecommerce_not_enabled
                    - forbidden
                    - forms_require_republish
                    - incompatible_webhook_filter
                    - internal_error
                    - invalid_auth_version
                    - invalid_credentials
                    - invalid_domain
                    - invalid_

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