Leads

Read lead form submissions with their consent record, code and location.

Plan: Pro and up (lead capture).

GET /api/v1/leads

Returns submissions newest first, 100 per page.

Query parameterNotes
codeIdOnly leads from this code (UUID)
formIdOnly leads from this form (UUID)
fromReceived at or after, ISO 8601 with offset, e.g. 2026-11-01T00:00:00Z
toReceived before, same format
pagePage number, from 1. See Pagination
curl "https://dynaqr.app/api/v1/leads?from=2026-11-01T00:00:00Z" \
  -H "Authorization: Bearer qrm_live_your_key"

Response

{
  "data": [
    {
      "id": "5a7c9e1b-2d4f-4a6b-8c0d-e1f2a3b4c5d6",
      "createdAt": "2026-11-13T18:22:05.000Z",
      "locked": false,
      "values": {
        "firstName": "Ana",
        "lastName": "Silva",
        "email": "[email protected]",
        "phone": "+447700900123"
      },
      "consent": {
        "terms": { "shown": true, "text": "I agree to the terms of Corner Cafe.", "checked": true, "url": "https://example.com/terms" },
        "marketing": { "shown": true, "text": "Send me offers from Corner Cafe.", "checked": false },
        "at": "2026-11-13T18:22:05.000Z"
      },
      "form": "Loyalty sign-up",
      "formId": "9c8b7a6d-5e4f-4321-8abc-def012345678",
      "code": "Counter sticker",
      "codeId": "0b8f6c2e-3f7a-4d0e-9a61-2f4c7f1d9b10",
      "placement": "Till",
      "location": { "country": "GB", "region": "ENG", "city": "London" },
      "utm": { "source": "qr", "campaign": "loyalty" }
    }
  ],
  "page": 1,
  "total": 1
}
FieldNotes
lockedtrue when the lead came in after the plan's monthly lead limit was reached. values is then empty {} until the plan allows it, for example after an upgrade or at the start of the next month
valuesWhat the visitor typed. Only the fields the form asks for are present: firstName, lastName, email, phone, address (an object with any of line1, line2, city, district, state, postalCode, country), and message (free text, up to 2,000 characters, as typed: escape it before showing it in HTML)
consentExactly what the visitor saw and ticked. terms and marketing are null when the form didn't show them
form, codeNames at the time you read them. null if the form or code was deleted
placementThe code's placement when the lead came in
locationFrom the visitor's IP address at submission; any part can be null
utmUTM parameters on the page the form was submitted from, without the utm_ prefix: any of source, medium, campaign, term, content

Leads are personal data. Store and use them in line with the consent recorded here.