List submissions
const url = 'https://api.submeto.com/v1/forms/example/submissions';const options = { method: 'GET', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"read_status":"read","received_after":"example","received_before":"example","source":"api","limit":1,"cursor":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.submeto.com/v1/forms/example/submissions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "read_status": "read", "received_after": "example", "received_before": "example", "source": "api", "limit": 1, "cursor": "example" }'Returns submissions for a form, newest first, with cursor pagination. The cursor is opaque and bound to the form, API key, and filters — do not parse or assemble cursors yourself; cursors expire after 24 hours.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The form ID.
Query Parameters
Section titled “Query Parameters”Filter by read state: read, unread, or all (default all).
Filter by read state: read, unread, or all (default all).
ISO-8601 timestamp with timezone; only submissions received at or after this time.
ISO-8601 timestamp with timezone; only submissions received at or after this time.
ISO-8601 timestamp with timezone; only submissions received before this time.
ISO-8601 timestamp with timezone; only submissions received before this time.
Filter by source: api, form_submit or hosted_form.
Filter by source: api, form_submit or hosted_form.
Number of submissions per page (1-50, default 20).
Number of submissions per page (1-50, default 20).
Opaque pagination cursor from the previous page's meta.next_cursor.
Opaque pagination cursor from the previous page's meta.next_cursor.
Request Body
Section titled “Request Body”object
Must be at least 1. Must not be greater than 50.
Responses
Section titled “Responses”Submissions page
object
object
object
object
object
Example
{ "data": [ { "id": "REQUEST_ID", "form_id": "REQUEST_ID", "source": "form_submit", "fields": { "name": "Jane Doe", "message": "Hello!" }, "read_at": null, "received_at": "2026-08-30T14:22:00.000Z", "has_files": false, "file_count": 0, "deliveries": [ { "channel_type": "database", "status": "delivered", "delivered_at": "2026-08-30T14:22:05.000Z", "error_code": null } ], "created_at": "2026-08-30T14:22:00.000Z" } ], "meta": { "next_cursor": "eyJpZCI6..." }, "request_id": "REQUEST_ID"}Invalid cursor
object
object
object
Example
{ "error": { "code": "invalid_cursor", "message": "The cursor is invalid.", "details": {} }, "request_id": "REQUEST_ID"}Not found or not granted
object
object
object
Example
{ "error": { "code": "resource_not_found", "message": "Resource not found.", "details": {} }, "request_id": "REQUEST_ID"}