---
title: "List forms"
method: GET
path: "/forms"
tags: ["Forms"]
---

# List forms

`GET /forms`

## Request

- Base URL: `https://api.clipform.io/v1`
- URL: `https://api.clipform.io/v1/forms`
- Auth: HTTP bearer

Lists the forms in a workspace.

## Query parameters

- `limit` integer
- `cursor` string
- `tag` string
- `published` 'true' | 'false'
- `deleted` 'true' | 'false'
- `search` string
- `sort` 'created_at' | 'updated_at'
- `order` 'asc' | 'desc'
- `include` string

## Response `200`

Paginated form list

- FormList
  - `forms` FormSummary[]
    - `id` string, uuid
    - `title` string
    - `share_id` string
    - `is_live` boolean
    - `has_unpublished_changes` boolean: True when the working copy has drifted from the published snapshot.
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `deleted_at` string, date-time, nullable: When the form was moved to the trash. Null for an active form.
    - `tags` object[]: Only present when `?include=tags` is passed.
      - `id` string, uuid
      - `name` string
      - `color` string, nullable
    - `builder_url` string, uri: Dashboard Build tab for this form. Absent for an anonymous caller.
    - `viewer_url` string, uri: Live respondent link. Present only for a published (is_live) form, and absent for an anonymous caller.
  - `next_cursor` string, nullable: Opaque cursor for the next page. Null when there are no more results.

## Other responses

- `401`: Authentication required
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/clipform/apis/clipform-api.md) · [All operations](https://skmtc.dev/clipform/apis/clipform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/clipform/apis/clipform-api/revisions/490de83af482?raw)
