Skip to Content
DocsAPISurvey Responses

Survey Responses

Stream all survey responses for a specific questionnaire in JSON form—perfect for dashboards or ETL jobs that previously relied on emailed CSV exports.

Endpoint

  • GET: /api/v2/organizations/:organization_id/surveys/:id/export

Optional Query Parameters

NameTypeDefaultDescription
reporting_daysStringallSame presets as the Meeting Attendance endpoint (today, current_month, last_week, last_month, custom, etc.).
start_timeStringRequired when reporting_days=custom. Format: MM/DD/YYYY HH:MM AM/PM.
end_timeStringRequired when reporting_days=custom. Same format as start_time.
pageInteger1Page number for paginating survey responses (1-indexed).
per_pageInteger25Responses per page (clamped to Pagy max, default 25).

Response Example

{ "success": true, "survey": { "id": 42, "name": "Monthly Satisfaction", "questions": [ { "id": 503, "position": 1, "content": "I feel welcome at the group", "question_type": "likert_scale" }, { "id": 504, "position": 2, "content": "Please share a little more information", "question_type": "short_answer" } ] }, "metadata": { "total_responses": 57, "page": 1, "per_page": 25, "total_pages": 3, "filters": { "reporting_days": "custom", "start_time": "03/01/2025 12:00 AM", "end_time": "03/31/2025 11:59 PM" } }, "responses": [ { "survey_id": 42, "survey_name": "Monthly Satisfaction", "meeting_id": 9001, "meeting_user_id": 372, "idp_id": "sso-user-42", // added when SSO is enabled for an organization "meeting_name": "Anxiety Support Group", "meeting_start_time": "2025-03-05T14:00:00-05:00", "survey_type": "post", "response_id": 123456, "response_date": "2025-03-06T09:45:00-05:00", "answers": [ { "question": "How was the meeting?", "answer": "Great!" }, { "question": "Would you recommend us?", "answer": "Yes" } ] } ] }

Error Responses

  • 404 Not Found – survey does not belong to the authenticated organization.
  • 500 Internal Server Error – unexpected runtime issue (response: { "error": "Unable to generate survey export" }).

Notes

  • Timestamps use the organization’s preferred timezone and are returned in ISO 8601.
  • Empty answers are omitted so consumers only see meaningful data.
  • The JSON payload is produced by Reports::SurveyResponses, ensuring parity with CSV exports.
Last updated on