---
title: "List submissions"
method: GET
path: "/forms/{formId}/submissions"
tags: ["Analytics"]
---

# List submissions

`GET /forms/{formId}/submissions`

## Request

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

Returns a form's submissions.

## Path parameters

- `formId` string, uuid, required

## Query parameters

- `submission_id` string, uuid

## Response `200`

List of submissions

- object[]
  - `submission_id` string, uuid: Stable per-row key: one row per completed session (id = that session's id), or one row for a still-open response_set with no completed session yet (id = the response_set's id).
  - `response_set_id` string, uuid: The parent response_set - may repeat across sibling completions of the same set.
  - `session_id` string, uuid, nullable
  - `status` string
  - `processing_status` string, nullable: Back-office processing lifecycle: none/complete (ready), pending/processing (in-flight - answers not yet final), processing_error/failed (released unverified).
  - `created_at` string, date-time
  - `completed_at` string, date-time, nullable
  - `last_activity_at` string, date-time: When the respondent last made progress (falls back to created_at)
  - `total_sessions` integer
  - `total_responses` integer
  - `contact_email` string, nullable
  - `contact_first_name` string, nullable
  - `contact_last_name` string, nullable
  - `node_responses` object, nullable
  - `locked` boolean: True when this response is over the workspace's plan limit. Locked rows have their answer/contact fields nulled.

## Other responses

- `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)
