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

# List forms

> Returns a paginated list of forms belonging to a customer. Supports filtering by form ID, title/description search, and archived/active state, plus ordering and pagination.




## OpenAPI

````yaml openapi-forms GET /api/forms
openapi: 3.0.0
info:
  title: Paubox Forms API
  description: >
    The Paubox Forms API has two kinds of endpoints. Public, respondent-facing
    endpoints (retrieving a form definition for rendering and submitting a form
    response) require no authentication. Authenticated management endpoints
    (creating, listing, updating, copying, archiving forms, and reading or
    exporting submissions) require a Paubox API key with the "forms" scope, sent
    as `Authorization: Bearer YOUR_API_KEY`. API keys are generated in the
    Paubox dashboard.
  version: 1.0.0
servers:
  - url: https://api.paubox.com/v1/forms
    description: Paubox Forms API
security: []
tags:
  - name: Forms
    description: Retrieve form definitions and accept submissions
  - name: Form management
    description: Create, list, update, copy, and archive forms (requires API key)
  - name: Submissions
    description: List and export form submissions (requires API key)
paths:
  /api/forms:
    get:
      tags:
        - Form management
      summary: List forms
      description: >
        Returns a paginated list of forms belonging to a customer. Supports
        filtering by form ID, title/description search, and archived/active
        state, plus ordering and pagination.
      operationId: listForms
      parameters:
        - name: customer_id
          in: query
          required: true
          schema:
            type: integer
          description: >
            Your Paubox customer ID. Requests for a customer you do not have
            access to return 403.
        - name: form_id
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Filter the results to a single form by its UUID.
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: |
            Substring match against the form title or description.
        - name: archived
          in: query
          required: false
          schema:
            type: boolean
          description: Filter by archived state.
        - name: active
          in: query
          required: false
          schema:
            type: boolean
          description: Filter by active state.
        - name: order_by
          in: query
          required: false
          schema:
            type: string
            enum:
              - created_at
              - title
              - updated_at
              - submission_count
            default: created_at
          description: |
            Field to order results by. Unknown values fall back to `created_at`.
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: desc
          description: Sort direction.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
          description: Page number to return.
        - name: items
          in: query
          required: false
          schema:
            type: integer
            default: 50
            maximum: 100
          description: Number of forms per page (maximum 100).
      responses:
        '200':
          description: Paginated list of forms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormListResponse'
              examples:
                example:
                  summary: Example response
                  value:
                    results:
                      - id: 550e8400-e29b-41d4-a716-446655440000
                        title: Patient Intake Form
                        description: Please complete before your appointment.
                        form_html: <form>...</form>
                        form_json: {}
                        form_css: 'form { font-family: sans-serif; }'
                        vanity_url: null
                        version: 2
                        active: true
                        customer_id: 123
                        old_form_id: null
                        recipient: intake@example.com,records@example.com
                        signable: false
                        signature_confirmation_label: null
                        submission_count: 42
                        type: null
                        subscription_list_id: null
                        deleted: false
                        archived: false
                        created_at: '2024-01-15T10:30:00Z'
                        updated_at: '2024-06-01T08:00:00Z'
                    page_info:
                      count: 1
                      pages: 1
                      page: 1
                      items: 50
        '401':
          description: Missing or invalid API key, or the key lacks the "forms" scope
        '403':
          description: The API key does not have access to the requested customer
      security:
        - bearerAuth: []
components:
  schemas:
    FormListResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Form'
        page_info:
          $ref: '#/components/schemas/PageInfo'
    Form:
      type: object
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
        description:
          type: string
          nullable: true
        form_html:
          type: string
          nullable: true
        form_json:
          type: object
          nullable: true
        form_css:
          type: string
          nullable: true
        vanity_url:
          type: string
          nullable: true
        version:
          type: integer
        active:
          type: boolean
        customer_id:
          type: integer
        old_form_id:
          type: integer
          nullable: true
        recipient:
          type: string
          nullable: true
          description: |
            Comma-separated email addresses notified on each submission.
        signable:
          type: boolean
        signature_confirmation_label:
          type: string
          nullable: true
        submission_count:
          type: integer
        type:
          type: string
          nullable: true
        subscription_list_id:
          type: string
          nullable: true
          description: >
            ID of the connected Marketing contact list. For marketing forms, new
            subscribers are added to this list.
        deleted:
          type: boolean
        archived:
          type: boolean
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    PageInfo:
      type: object
      properties:
        count:
          type: integer
          description: Total number of matching forms
        pages:
          type: integer
          description: Total number of pages
        page:
          type: integer
          description: Current page number
        items:
          type: integer
          description: Number of items per page
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        Paubox API key sent as `Authorization: Bearer YOUR_API_KEY`. API keys
        are created in the Paubox dashboard and must have the "forms" scope; a
        key without the forms scope receives 401 Unauthorized. A valid key used
        against a resource that belongs to a different customer receives 403
        Forbidden.

````