Skip to content

Exports

Download a form's submissions as CSV, JSON or NDJSON, from the dashboard or the API, with filters.

Export a form’s submissions from the dashboard or with GET /api/v1/forms/{form}/export. Both take the same formats and filters. Exports are streamed, so large forms download without loading everything at once.

From the dashboard

On the form’s Submissions tab, click Export and pick CSV or JSON. The export uses the view you are looking at: Live (the default), All, Sandbox, Spam, Broke rules or Unconfirmed, plus any delivery, personal link and date range filters.

From the API

curl https://YOUR-QUICKFORMS-HOST/api/v1/forms/FORM_ID/export?sandbox=false \
  -H "Authorization: Bearer $QUICKFORMS_TOKEN" \
  -o submissions.csv
curl "https://YOUR-QUICKFORMS-HOST/api/v1/forms/FORM_ID/export?format=json&since=2026-11-01" \
  -H "Authorization: Bearer $QUICKFORMS_TOKEN" \
  -o submissions.json

The API key needs to belong to the form’s team. See API.

Parameters

All are optional query parameters.

Parameter Values Description
format csv, json, ndjson Defaults to csv.
sandbox true, false, 1, 0 Only sandbox submissions, or only live ones.
spam true, false, 1, 0 Only submissions marked as spam, or only ones that aren’t.
failed_rules true, false, 1, 0 Only submissions that broke one of the form’s spam filter smart rules, or only ones that didn’t.
confirmation pending, confirmed, expired Filter by double opt-in status.
delivery failed, retrying, issue Only submissions with a delivery in that state. issue is either.
link_id A link ID Only submissions through that personal link.
since A date Submitted at or after this date and time.
until A date Submitted at or before this date and time.

Leave a filter out to include everything. An invalid value returns a 422. Submissions come out oldest first.

The file

The file is named after the form and the day, for example contact-submissions-2026-11-06.csv.

Format Content type Shape
csv text/csv; charset=UTF-8 A header row, then one row per submission.
json application/json One JSON array of submissions.
ndjson application/x-ndjson One JSON submission per line.

Columns and fields follow the form’s live schema.

CSV

The columns are:

Column Value
id The submission ID.
submitted_at When it was submitted, as ISO 8601.
sandbox yes or no.
spam yes or no.
failed_rules yes or no.
confirmation pending, confirmed, expired, or empty.
link The label of the personal link it came through, or empty.
One per field Headed with the field’s label, or its name.
contact-submissions-2026-11-06.csvcsv
id,submitted_at,sandbox,spam,failed_rules,confirmation,link,Name,Email,Message
01jca9qf3tz5b8m2k7w4r6x0hn,2026-11-06T10:24:00+00:00,no,no,no,,,"Ada Lovelace",ada@example.com,"Interested in a demo"

The values are illustrative.

Answers are written as plain text:

  • Checkboxes are Yes or No, and several choices are joined with , .
  • Files are their download link.
  • Empty answers are empty cells.
  • A cell starting with =, +, -, @, a tab or a carriage return gets a ' in front, so spreadsheets don’t run it as a formula.

JSON and NDJSON

Each submission is an object:

One submissionjson
{
  "id": "01jca9qf3tz5b8m2k7w4r6x0hn",
  "submitted_at": "2026-11-06T10:24:00+00:00",
  "sandbox": false,
  "spam": false,
  "failed_rules": false,
  "confirmation_status": null,
  "link_id": null,
  "data": { "name": "Ada Lovelace", "email": "ada@example.com", "message": "Interested in a demo" },
  "tracking": null
}
Key Description
confirmation_status pending, confirmed, expired or null.
link_id The ID of the personal link it came through, or null.
data The answers as submitted. File values include a url download link.
tracking The attribution data stored with the submission, or null.

Files in an export get a signed download link that lasts QUICKFORMS_EXPORT_FILE_LINK_DAYS days (7 by default), longer than the usual links, so a saved export keeps working for a while.

Type to search…

↑↓ navigate↵ selectEsc close