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

# List forms

> Returns only resources owned by the organization encoded in the tenant API key.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/forms
openapi: 3.1.0
info:
  title: Nautilus Public API
  version: 1.0.0
  description: >-
    Tenant-scoped public API. Except for /api/v1/openapi.json, requests use a
    Clerk tenant API key as a Bearer token. The key's organizationId is the sole
    tenant scope; organization IDs supplied by callers are never accepted.
    Detail endpoints deliberately return 404 for both missing and cross-tenant
    records. Canonical collections use the standard envelope and endpoint-bound
    cursor pagination. Timestamps are UTC ISO 8601 values and monetary amounts
    ending in Cents are integer cents. Responses use narrow serializers and
    exclude credentials, API keys, provider configuration, access tokens,
    webhook secrets, raw provider payloads, and internal workflow or activity
    data.
servers:
  - url: https://app.nautilus.co
security:
  - tenantApiKey: []
tags:
  - name: Contract
  - name: Cancellations
  - name: Sites
  - name: Products
  - name: Checkout links
  - name: Purchases
  - name: Contact lists
  - name: Contacts
  - name: Marketing
  - name: Forms
  - name: Vouchers
  - name: Links
  - name: Automations
  - name: Surveys
  - name: Cases
  - name: Sonny's POS
  - name: Analytics
  - name: Messaging
  - name: Legacy
    description: Deprecated noncanonical endpoints retained for compatibility.
paths:
  /api/v1/forms:
    get:
      tags:
        - Forms
      summary: List forms
      description: >-
        Returns only resources owned by the organization encoded in the tenant
        API key.
      operationId: listForms
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 100
          description: >-
            Page size. Invalid values use 100; values above 500 are capped at
            500.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque continuation token returned by this forms collection. Cursors
            are bound to this endpoint (and, for nested or sorted collections,
            to that parent or sort) and cannot be reused elsewhere.
      responses:
        '200':
          description: Tenant-scoped collection.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CollectionEnvelope'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Form'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CollectionEnvelope:
      type: object
      additionalProperties: false
      properties:
        organizationId:
          type: string
        filters:
          type: object
          additionalProperties: true
          description: Normalized filters actually applied to the request.
        data:
          type: array
          items: {}
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - organizationId
        - filters
        - data
        - pagination
      description: Standard envelope for canonical collection endpoints.
    Form:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        name:
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
        published:
          type: boolean
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FormField'
        contactListId:
          anyOf:
            - type: string
            - type: 'null'
        publicTitle:
          anyOf:
            - type: string
            - type: 'null'
        publicDescription:
          anyOf:
            - type: string
            - type: 'null'
        heroImageUrl:
          anyOf:
            - type: string
            - type: 'null'
        openGraphTitle:
          anyOf:
            - type: string
            - type: 'null'
        openGraphDescription:
          anyOf:
            - type: string
            - type: 'null'
        openGraphImageUrl:
          anyOf:
            - type: string
            - type: 'null'
        successTitle:
          anyOf:
            - type: string
            - type: 'null'
        successMessage:
          anyOf:
            - type: string
            - type: 'null'
        successImageUrl:
          anyOf:
            - type: string
            - type: 'null'
        successButtonText:
          anyOf:
            - type: string
            - type: 'null'
        successButtonUrl:
          anyOf:
            - type: string
            - type: 'null'
        maxSubmissionsPerUser:
          anyOf:
            - type: integer
            - type: 'null'
        showVouchersOnCompletion:
          type: boolean
        termsMode:
          type: string
        customTerms:
          anyOf:
            - type: string
            - type: 'null'
        requireEmailVerification:
          type: boolean
        shortUrl:
          anyOf:
            - type: string
            - type: 'null'
        notificationEmails:
          type: array
          items:
            type: string
        createdAt:
          type: string
          format: date-time
          description: UTC ISO 8601 timestamp.
        updatedAt:
          type: string
          format: date-time
          description: UTC ISO 8601 timestamp.
      required:
        - id
        - name
        - description
        - published
        - fields
        - contactListId
        - publicTitle
        - publicDescription
        - heroImageUrl
        - openGraphTitle
        - openGraphDescription
        - openGraphImageUrl
        - successTitle
        - successMessage
        - successImageUrl
        - successButtonText
        - successButtonUrl
        - maxSubmissionsPerUser
        - showVouchersOnCompletion
        - termsMode
        - customTerms
        - requireEmailVerification
        - shortUrl
        - notificationEmails
        - createdAt
        - updatedAt
      description: >-
        Public form configuration only. Internal webhook, credential, provider,
        and workflow fields are excluded.
    Pagination:
      type: object
      additionalProperties: false
      properties:
        limit:
          type: integer
        hasMore:
          type: boolean
        nextCursor:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - limit
        - hasMore
        - nextCursor
    FormField:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
        type:
          type: string
        label:
          type: string
        required:
          type: boolean
        placeholder:
          type: string
        options:
          type: array
          items:
            type: string
        allowMultiple:
          type: boolean
        maxFiles:
          type: number
        acceptedFileTypes:
          type: array
          items:
            type: string
        visibility:
          $ref: '#/components/schemas/FormFieldVisibility'
        defaultValue:
          type: string
      required:
        - id
        - type
        - label
        - required
      description: >-
        Allowlisted form field properties. Credentials, provider configuration,
        and internal metadata are never copied from the stored field JSON.
    Error:
      type: object
      additionalProperties: false
      properties:
        error:
          type: string
      required:
        - error
    FormFieldVisibility:
      type: object
      additionalProperties: false
      properties:
        match:
          type: string
          enum:
            - all
            - any
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/FormVisibilityCondition'
      required:
        - match
        - conditions
    FormVisibilityCondition:
      type: object
      additionalProperties: false
      properties:
        fieldId:
          type: string
        operator:
          type: string
          enum:
            - is
            - is_not
            - contains
            - not_contains
            - includes
            - not_includes
            - gt
            - lt
            - gte
            - lte
            - before
            - after
            - is_empty
            - is_not_empty
        value:
          type: string
      required:
        - fieldId
        - operator
  responses:
    BadRequest:
      description: >-
        Malformed parameters, unsupported provider, or unavailable resource for
        this organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid, legacy, or non-tenant Bearer credential.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error. No internal exception data is exposed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    tenantApiKey:
      type: http
      scheme: bearer
      bearerFormat: Clerk tenant API key
      description: >-
        Clerk tenant API key. The organizationId encoded by the key is the exact
        and only tenant scope.

````