# List Custom Forms

`lawmatics_list-custom-forms` · Lawmatics MCP tool · Custom Forms

List custom intake forms from Lawmatics with optional pagination and sorting. Each form includes its layout of rows and components; the IDs of its input components are the field keys accepted by lawmatics_submit-custom-form.

## Input

- **page** `integer` (> 0) — Page number (1-based)
- **sortBy** `string` (enum: "id", "created_at", "updated_at") — Column to sort by
- **sortOrder** `string` (enum: "asc", "desc") — Sort direction; ascending or descending

## Output

- **customForms** `array` (required) — Custom forms on this page of results
  - **[]** `object`
    - **id** `string` (required) — UUID of the custom form
    - **name** `string` (required) — Display name of the form
    - **contactableType** `string | null` (required) — Record type the form creates on submission, lowercase (e.g. "prospect" — a Lawmatics matter); null if not reported
    - **prettyType** `string | null` (required) — Display-cased variant of the record type (e.g. "Prospect"); null if not reported
    - **displayName** `string | null` (required) — Public-facing display name of the form; null if unset
    - **internal** `boolean | null` (required) — Whether the form is internal (used by firm staff rather than embedded publicly); null if not reported
    - **redirectUrl** `string | null` (required) — URL the form redirects to after submission; null if unset
    - **status** `string | null` (required) — Form status as reported by Lawmatics (e.g. "active"); null if not reported
    - **createdAt** `string` (required) — When the form was created, as an ISO 8601 timestamp
    - **updatedAt** `string` (required) — When the form was last updated, as an ISO 8601 timestamp
    - **rows** `array` (required) — Form layout as rows of components; input components carry the field IDs
      - **[]** `object`
        - **components** `array` (required) — Components laid out on this row of the form
          - **[]** `object`
            - **id** `string` (required) — Component ID. For input components (componentType "field"/"general_field") this is the form field ID — a key accepted by lawmatics_submit-custom-form (standard fields use readable IDs like first_name; custom/general fields use opaque IDs). Layout-only component IDs are not submit keys
            - **componentType** `string` (required) — Kind of component: "field" and "general_field" are inputs; "instructions" and "horizontal_divider" are layout-only. Other kinds exist (e.g. "booking_request")
            - **simplifiedId** `string | null` (required) — Friendly alias for the field ID, also accepted by lawmatics_submit-custom-form (e.g. "first_name", "custom_field_2263"); null when the API does not report one
            - **fieldType** `string | null` (required) — Value type for input components (e.g. "string", "integer", "boolean", "date", "list", "text", "lookup"); null for layout-only components or when not reported
            - **label** `string | null` (required) — Human-readable label shown on the form (HTML for instructions components); null when the component has none
            - **required** `boolean | null` (required) — Whether the field must be filled to submit the form; null when the API does not report it. Typically set on input components, but the API can return it on layout-only components too
            - **listOptions** `array | null` (required) — Selectable choices for "list"-type fields; null otherwise
              - **[]** `object`
                - **label** `string` (required) — Display label of the choice
                - **value** `string | number` (required) — Value to submit when this choice is selected
- **pagination** `object | null` (required) — Pagination metadata derived from the API `meta` envelope; null when the API returns none (live-confirmed: this list returns no `meta`)
  - **totalPages** `number` (required) — Total number of pages available
  - **limitPerPage** `number` (required) — Maximum forms returned per page
  - **totalEntries** `number` (required) — Total number of forms across all pages
