---
title: "List form submissions (alias)"
method: GET
path: "/forms/{companyIdOrFormId}/submissions"
tags: ["Widgets"]
---

# List form submissions (alias)

`GET /forms/{companyIdOrFormId}/submissions`

## Request

- Base URL: `https://api.sequenzy.com/api/v1`
- URL: `https://api.sequenzy.com/api/v1/forms/{companyIdOrFormId}/submissions`
- Auth: HTTP bearer

Form-only alias for GET /submissions/form/{formId}. Requires widgets:read and subscribers:read. Returns immutable accepted answers recorded since tracking began. Reads can be retried safely.

## Path parameters

- `companyIdOrFormId` string, required

## Query parameters

- `limit` integer
- `cursor` string
- `field` string
- `value` string
- `format` 'json' | 'csv'

## Response `200`

Newest-first page of accepted submissions

- object
  - `success` boolean, required
  - `source` object, required
    - `id` string, required
    - `name` string, required
    - `type` 'form' | 'popup' | 'landing_page', required
  - `submissions` object[], required
    - `id` string, required
    - `companyId` string, required
    - `sourceType` 'form' | 'popup' | 'landing_page'
    - `sourceId` string
    - `formId` string, nullable, required
    - `popupId` string, nullable
    - `landingPageId` string, nullable
    - `subscriberId` string, required
    - `createdAt` string, date-time, required
    - `fieldLabels` object, required
    - `payload` object, required
      - `email` string, required
      - `firstName` string
      - `lastName` string
      - `phone` string
      - `customAttributes` object, required
      - `recovery` object: Present only for reconstructed historical records. The source is inferred and createdAt is an evidence event time, not a verified submission timestamp.
        - `evidenceType` 'contact.added' | 'subscriber.updated', required
        - `evidenceId` string, required
        - `recoveredAt` string, date-time, required
        - `sourceAttribution` 'inferred', required
        - `timestampMeaning` 'event_time', required
  - `nextCursor` string, nullable, required
  - `csv` string: Present only for format=csv.

## Other responses

- `400`: Invalid cursor, format, limit, or incomplete filter pair
- `401`: Missing or invalid authentication
- `403`: Missing read scopes or workspace access
- `404`: Source not found in the authorized workspace
- `500`: Database failure; safe to retry this read

## Changes

- **2026-10-16** `db3873ca3d4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/forms/:companyIdOrFormId/submissions/get.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) - [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sequenzy/apis/sequenzy-api/revisions/8156dc12d8b4?raw)
