Skip to main content
A submission represents one completed response to a form. Each submission stores the respondent’s answers keyed by field ID, along with metadata such as IP address and referrer.

List submissions

GET /forms/{id}/submissions Returns a paginated list of submissions for a specific form, ordered from newest to oldest.

Path parameters

string
required
The form ID whose submissions you want to retrieve.

Query parameters

integer
default:"20"
Number of submissions to return per page. Maximum 100.
string
Pagination cursor from a previous response’s next_cursor. Omit to start from the most recent submission.
string
ISO 8601 datetime. Only return submissions created after this timestamp, e.g. 2025-01-01T00:00:00Z.
string
ISO 8601 datetime. Only return submissions created before this timestamp.

Response

object[]
Array of submission objects.
string
Cursor for the next page. null when you are on the last page.
boolean
true if there are more submissions beyond this page.
Example response:

Get a submission

GET /forms/{id}/submissions/{submission_id} Returns a single submission by ID.

Path parameters

string
required
The form ID.
string
required
The submission ID, e.g. sub_7vHnM4rKpQ.

Response

Returns the full submission object (same structure as in the list response above).

Submit a form programmatically

POST /forms/{id}/submissions Creates a new submission for a form without going through the public form URL. Use this to submit data on behalf of a user from your own backend.
This endpoint bypasses CAPTCHA and rate limiting that applies to the public form URL. Only call it from a trusted server-side environment — never from client-side code or a browser. Submissions created this way are tagged as api in the source field.

Path parameters

string
required
The form ID to submit to.

Body parameters

object
required
Key-value map of field IDs to values. Use the id of each field (visible in the form object) as the key. You must provide values for all required fields; optional fields can be omitted.

Response

Returns the created submission object with a 201 Created status.
Example response:

Delete a submission

DELETE /forms/{id}/submissions/{submission_id}
Deleting a submission is permanent and cannot be undone. The submission data is removed from FormFlows.ai storage immediately and cannot be recovered.

Path parameters

string
required
The form ID.
string
required
The submission ID to delete.

Response

Returns a 204 No Content response on success, with no body.