Surveys API
Endpoints
GET
/workspaces/:wid/surveysList surveys in workspacePOST
/workspaces/:wid/surveysCreate a new surveyGET
/surveys/:idGet a survey by IDPATCH
/surveys/:idUpdate survey settingsDELETE
/surveys/:idDelete a surveyPOST
/surveys/:id/publishPublish the current draftGET
/surveys/:id/versionsList all versionsGET
/surveys/:id/export.csvExport responses as CSVGET
/surveys/:id/export.xlsxExport responses as XLSXGET
/surveys/:id/export.pdfExport a branded PDF reportGET
/surveys/:id/export.zipExport responses with all uploaded files as a ZIPGET
/surveys/:id/follow-up-contacts.csvExport follow-up contactsSurvey Object
{
"id": "survey_xxxx",
"workspaceId": "ws_xxxx",
"title": "Post-event feedback",
"slug": "post-event-feedback",
"description": null,
"status": "online",
"activeVersionId": "ver_xxxx",
"defaultLanguage": "en",
"languages": ["en", "de"],
"anonymityMode": "anonymous",
"sourceTrackingMode": "basic",
"startDate": null,
"endDate": null,
"createdAt": "2024-11-14T10:00:00Z",
"updatedAt": "2024-11-14T12:30:00Z"
}Create a Survey
POST /workspaces/:wid/surveys
{
"title": "Customer NPS",
"description": "How likely are you to recommend us?",
"defaultLanguage": "en",
"anonymityMode": "anonymous"
}
// 201 Created
{
"id": "survey_yyyy",
"status": "draft",
...
}Update a Survey
PATCH /surveys/:id
{
"title": "Updated title",
"status": "paused",
"endDate": "2024-12-31T23:59:59Z"
}Publish
POST /surveys/:id/publish
// 200 OK — returns updated survey with new version ID
{
"id": "survey_xxxx",
"status": "online",
"activeVersionId": "ver_new"
}Export Responses as CSV
GET /surveys/:id/export.csv?status=completed // Returns CSV file download
Export Responses as XLSX
GET /surveys/:id/export.xlsx
// Returns an Excel workbook download with summary and responses sheetsExport Branded PDF
GET /surveys/:id/export.pdf
// Returns a branded PDF report downloadExport Responses with Files as ZIP
GET /surveys/:id/export.zip
// Returns a ZIP with responses.xlsx and one folder per response,
// named <datetime>_<last name>_<first name>, holding its uploaded filesExports never include hidden responses. Add ?status=completed to any export (CSV, XLSX, PDF or ZIP) to leave out responses that were started but not submitted. Exports always cover every response to the survey; there are no version or date-range filters.