List form submissions, newest first
Returns submissions newest first, a page at a time. Pass form to scope to one form; omit it to list every form together. Narrow the list with fromMs and toMs (a time range) or q (email or any field value, case-insensitive).
Each item carries the full fields, so treat the response as personal data. To page, send nextCursor back as cursor until it comes back null. Submissions hold visitors' personal data, so this needs at least the editor role on the site. A viewer gets 403 forbidden_role.
Request
- Base URL: https://api.dotsy.ai
- URL: https://api.dotsy.ai/api/v1/sites/{slug}/form-submissions
- Auth: one of:
- HTTP bearer
- HTTP bearer
Path parameters
Site slug or site id (UUID). An old slug answers 301/308 and a site id 307 to the canonical slug path.
Query parameters
Form id, as wired on the page, for example contact. Omit to list every form's submissions newest first.
Page size. Defaults to 50, so a request without limit returns the first 50 submissions and a nextCursor. A value over the site's own limit (100 or 200) is lowered to it.
Opaque cursor from the previous page's nextCursor. Send it with limit to get the next page.
Only submissions made at or after this time, Unix ms.
Only submissions made at or before this time, Unix ms.
Search text, case-insensitive. Matches the reply-to email and any field value (substring). On graduated sites the SQL list path applies when q is omitted; with q set, search scans up to 5,000 rows.
Response
One page of submissions.
Example response
{
"items": [
{
"id": "5b1c0f6e-3c1a-4a52-9f4e-0d7a2d9b8e31",
"formId": "contact",
"pagePath": "/contact",
"fields": {
"name": "Ada Lovelace",
"email": "ada@example.com",
"message": "Do you take custom orders?"
},
"replyTo": "ada@example.com",
"createdAt": 1790000000000
}
],
"formId": "contact"
}Changes
No recorded changes to this operation across all 1 revision of this API.