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

# List Forms

> List a team's forms. Pass is_published=false to list only the forms that have never been published — the drafts experimentation leaves behind — then delete them individually.



## OpenAPI

````yaml /sections/api-reference/openapi-spec-v2.yaml get /v2/forms
openapi: 3.1.0
info:
  title: Serval Public API
  description: Serval Public API
  contact:
    name: Serval
    url: https://serval.com
    email: support@serval.com
  license:
    name: Serval License
    url: https://serval.com/license
  version: 2.0.0
servers:
  - url: https://public.api.serval.com
security:
  - BearerAuth: []
tags:
  - name: Access Policy API
  - name: Access Policy Approval Procedure API
  - name: Access Profile API
  - name: Access Relationship API
  - name: Access Request API
  - name: Agent API
  - name: App Instance API
  - name: App Resource API
  - name: App Resource Role API
  - name: Approval Delegation API
  - name: Approval Request API
  - name: Audit Log API
  - name: Change Blackout API
  - name: Change Model API
  - name: Custom Field API
  - name: Custom Service API
  - name: Entity API
  - name: Entity Field Mapping API
  - name: Entity Ingestion Config API
  - name: Entity Scan Action API
  - name: Entity Type API
  - name: Folder API
  - name: Forms API
  - name: Group API
  - name: Guidance API
  - name: Help Agent API
  - name: Journey API
  - name: Knowledge API
  - name: Knowledge Base API
  - name: Report API
  - name: SLA API
  - name: Schedule API
  - name: Tag API
  - name: Team API
  - name: Team Group API
  - name: Team User API
  - name: Ticket API
  - name: Topic API
  - name: User API
  - name: User Relationship API
  - name: Workflow API
  - name: Workflow Approval Procedure API
  - name: Workflow Run API
paths:
  /v2/forms:
    get:
      tags:
        - Forms API
      summary: List Forms
      description: >-
        List a team's forms. Pass is_published=false to list only the forms that
        have never been published — the drafts experimentation leaves behind —
        then delete them individually.
      operationId: svrelay.publicv2.PublicAPIServiceV2.ListForms
      parameters:
        - name: teamId
          in: query
          description: The ID of the team.
          schema:
            type: string
            title: team_id
            description: The ID of the team.
        - name: pageSize
          in: query
          description: >-
            Maximum number of results to return. Default is 1000, maximum is
            2000.
          schema:
            type: integer
            title: page_size
            format: int32
            description: >-
              Maximum number of results to return. Default is 1000, maximum is
              2000.
        - name: pageToken
          in: query
          description: Token for pagination. Leave empty for the first request.
          schema:
            type: string
            title: page_token
            description: Token for pagination. Leave empty for the first request.
        - name: isPublished
          in: query
          description: |-
            Return only published forms (true) or only never-published ones
             (false). Omit to return both.
          schema:
            type: boolean
            title: is_published
            description: |-
              Return only published forms (true) or only never-published ones
               (false). Omit to return both.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/svflow.publicapi.ListFormsResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    svflow.publicapi.ListFormsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/svflow.pubapimodels.Form'
          title: data
          description: The list of forms.
          x-stainless-terraform-configurability: optional
        nextPageToken:
          type:
            - string
            - 'null'
          title: next_page_token
          description: >-
            Token for retrieving the next page of results. Empty if no more
            results.
          x-stainless-terraform-configurability: optional
      title: ListFormsResponse
      additionalProperties: false
    svflow.pubapimodels.Form:
      type: object
      properties:
        id:
          type: string
          title: id
          description: The ID of the form.
          readOnly: true
          x-stainless-terraform-configurability: computed
        teamId:
          type: string
          title: team_id
          description: The ID of the team that the form belongs to.
          x-stainless-terraform-configurability: optional
        name:
          type: string
          title: name
          description: The name of the form.
          x-stainless-terraform-configurability: optional
        description:
          type: string
          title: description
          description: A description of the form.
          x-stainless-terraform-configurability: optional
        content:
          type: string
          title: content
          description: |-
            The form module source: TSX importing "serval/forms", exporting
             `main = view({ fn })`. Compiled when the form is published.
          x-stainless-terraform-configurability: optional
        isPublished:
          type: boolean
          title: is_published
          description: Whether the form is published. Set to true to publish the form.
          x-stainless-terraform-configurability: computed_optional
        hasUnpublishedChanges:
          type: boolean
          title: has_unpublished_changes
          description: >-
            Whether there are unpublished changes to the form (computed by
            server).
          readOnly: true
          x-stainless-terraform-configurability: computed
        isEnabled:
          type: boolean
          title: is_enabled
          description: >-
            Whether the form accepts new sessions. A form that is not enabled
            keeps
             its versions and its published state; it just stops being fillable.
          x-stainless-terraform-configurability: computed_optional
        scopedId:
          type: string
          title: scoped_id
          description: |-
            The copy-invariant scoped ID of the form (e.g. "form_..."), stable
             across cross-team copies. Set it explicitly at create time to push a
             form between teams or environments under one identity; resolve it back
             to a form id with ResolveScopedRefs.
          readOnly: true
          x-stainless-terraform-configurability: computed
        folderId:
          type:
            - string
            - 'null'
          title: folder_id
          description: |-
            The ID of the folder the form lives in, if any. Unset means the form
             lives at the team root.
          readOnly: true
          x-stainless-terraform-configurability: computed
        workflowIds:
          type: array
          items:
            type: string
            readOnly: true
          title: workflow_ids
          description: >-
            The IDs of the workflows this form's content references — the
            workflow
             its submit handler runs, plus any it queries for data. Extracted from
             the module source on every save, so they describe the same version of
             the form the other fields do.
          readOnly: true
          x-stainless-terraform-configurability: computed
      title: Form
      additionalProperties: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````