agentlyleads docs
Forms API

GET /api/v1/forms/{id}/submissions

Returns the leads a form created, newest first. Requires the read:forms scope (or *).

GET /api/v1/forms/cmq7form0alk34567890/submissions?since=2026-09-01T00:00:00Z&limit=50 HTTP/1.1
Host: agentlyleads.com
Authorization: Bearer alk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Query parameters

ParameterDescription
sinceISO 8601 datetime. Only submissions at or after it
limit1 to 500, default 100
cursorThe nextCursor from the previous page

Response: 200

{
  "form": { "id": "cmq7form0alk34567890", "name": "Contact us", "...": "..." },
  "submissions": [
    {
      "leadId": "cmq2lead0alk34567891",
      "name": "Ann Lee",
      "email": "ann@example.com",
      "phone": null,
      "company": "Acme",
      "leadStatus": "NEW",
      "pageUrl": "https://example.com/pricing",
      "contactId": null,
      "submittedAt": "2026-09-27T14:02:00.000Z",
      "updatedAt": "2026-09-27T14:02:00.000Z"
    }
  ],
  "nextCursor": null
}
  • leadId is the lead the submission created. Read it with the Leads API.
  • contactId is set once the lead has been converted to a contact.
  • pageUrl is the page the form was embedded on, when the browser sent it.
  • When nextCursor is not null, pass it as cursor to get the next page.

How submissions are counted

Each submission becomes a lead, so this list is the form's leads. Two cases to know about:

  • Repeat submissions. When someone submits again with an email that already has a lead, we update that lead instead of creating a second one, so they appear once. submissionCount on the form still counts both.
  • Renamed forms. Leads are matched to a form by its name. After a rename, leads captured under the old name are no longer listed here. They are still in your leads, with source Web form: <old name>.

A form ID from another workspace returns 404 with { "error": "Form not found." }.

On this page