Exports
Start a CSV export
/v1/exportsStart exporting a form's responses as one CSV file of any size, prepared in the background, with the same filters and sort as GET /v1/submissions. Poll GET /v1/exports/{exportId} until status is ready, then call POST /v1/exports/{exportId}/download within a day. After a day the file is deleted. Asking again for the same export while it runs gives you that one back. You can start 20 an hour, and more answer 429. See Export columns.
Body
JSON, with Content-Type: application/json.
formIdstringrequiredThe form whose responses to export.
statusenumcompletefor responses where the person finished the form,partialfor the rest. Usestateto tell people still filling it in from people who left.One of
"partial","complete"stateenumstartedfor people still filling in the form,leftfor people who left without finishing,finishedfor people who finished. See Response states.One of
"started","left","finished"endingIdstringOnly finished responses that reached this ending. Use an ending id of the form, and pass
formIdtoo.1–64 chars
consentenumOnly responses with this
consent.agreedfor people who agreed to be called and texted,not_agreedfor people the form asked who haven't agreed,not_askedfor forms with no consent field. See Consent.One of
"agreed","not_agreed","not_asked"fromnumberOnly responses created at or after this time, in milliseconds since the epoch.
tonumberOnly responses created before this time, in milliseconds since the epoch.
searchstringWords to find in the contact details or in any answer. It looks at the name, email and phone, the answers, the labels of picked options and file names. Every word must match, and case and accents don't matter. Digits also match phone numbers written in any format. With a search, each page checks
limitresponses and returns the ones that match. A page can be short or even empty whilenextCursoris not null, so keep paging until it is null.max 200 chars
sortenumHow to order the responses.
createdAtis the default and sorts by when they were created.statusputs left responses first, then started, then finished, andascreverses that.endingsorts by the ending's name, with unfinished responses at one end.contactsorts by the person's name, or their email or phone when there's no name. Ties go by creation time. Every sort exceptcreatedAtneedsformId.One of
"createdAt","status","ending","contact"orderenumdescis the default. With the default sort,desclists the newest responses first.One of
"desc","asc"
Response
idstringrequiredThe export's id.
formIdstringrequiredThe form whose responses it exports.
statusenumrequiredrunningwhile the file is being prepared, withrowscounting the responses written so far.readyonce you can callPOST /v1/exports/{exportId}/download, and the file is kept for a day.expiredonce the file was deleted, so export again.failedwhen it went wrong, anderrorsays why.canceledwhen someone stopped it.One of
"running","ready","failed","canceled","expired"rowsnumberrequiredHow many responses were written so far. Once ready, it's all of them.
bytesnumberrequiredThe file's size so far, in bytes.
filenamestringrequiredThe CSV file's name.
filteredbooleanrequiredWhether any filter was on. A filtered file has "-filtered-" in its name.
filtersobjectrequiredThe filters and sort it was asked for, as in
GET /v1/submissions.Show 9 fieldsHide 9 fields
statusenumOne of
"partial","complete"stateenumOne of
"started","left","finished"endingIdstringconsentenumOne of
"agreed","not_agreed","not_asked"fromnumbertonumbersearchstringsortenumOne of
"createdAt","status","ending","contact"orderenumOne of
"desc","asc"
errorstring or nullrequiredWhy it failed. Null otherwise.
minebooleanrequiredWhether you started it. Over the API, that means with this key.
createdAtnumberrequiredWhen it started, in milliseconds since the epoch.
finishedAtnumber or nullrequiredWhen it stopped running, in milliseconds since the epoch. Null while it runs.
Errors answer with a status and the error shape.