List a contact's submissions

Every form response this contact has left, newest first. The answers behind the identity, on the same append-only record the dashboard reads.

Updated ·2 min read
GET/v1/contacts/{contact}/submissions

Requires the contacts:read scope.

Every form response this contact has left, newest first. A submission is the raw answer set behind the deduplicated contact. One contact can have many, from the signup form, a survey, or any other form on the project.

The submission object#

Field Description
id The sub_ handle, the same one the webhooks carry.
form The frm_ handle the response came through.
data The answers, as a flat object of field key to value.
source Where it was captured: page, embed, html, api or platform.
locked true when the overflow lock is withholding this row's data.
created_at When it was submitted, ISO 8601.

A signup you created through POST /v1/contacts carries source: "api".

Submissions are read through their contact. There is no endpoint that fetches one submission by its id or lists them across contacts.

Reading a long history#

limit works here as it does everywhere else, from 1 to 100, default 25, and has_more tells you whether there is more behind it. To read the next page, pass the last row's sub_ handle as starting_after, as on every other list (Pagination).

Next#

Common questions

Can I look up one submission by its id?

No. Read submissions through the owning contact. Each one carries a sub_ handle, the same one the signup.created and form.submitted webhooks carry, so you can match a webhook to a row here.

Why is the data object empty on some rows?

The workspace is over its plan's contact limit. The overflow lock withholds the answer data, so the row returns locked true and an empty data object, until the plan is upgraded. Nothing is deleted.

Was this page helpful?
curl "https://api.getlaunchlist.com/v1/contacts/con_4mKp9Wq2Rx/submissions" \\
  -H "Authorization: Bearer llk_live_8xKq3Rp9Wm2Nz7Vt6yL1cG5dH0jA4sE8uNqB2fXk"
{
  "object": "list",
  "url": "/v1/contacts/con_4mKp9Wq2Rx/submissions",
  "has_more": false,
  "data": [
    {
      "object": "submission",
      "id": "sub_01k2g6j4qx7c8vg2x5s6rb7vsd",
      "form": "frm_2Bn8Vd5Lk",
      "data": {
        "email": "ada@lovelace.dev",
        "role": "Founder",
        "referred_by": "SARAH42"
      },
      "source": "page",
      "locked": false,
      "created_at": "2026-08-01T09:24:11+00:00"
    }
  ]
}