Skip to main content

List Survey Responses

Retrieve a paginated list of responses for a survey.

Endpointโ€‹

GET /v1/surveys/{id}/responses

Path Parametersโ€‹

ParameterTypeDescription
idintegerSurvey ID

Authenticationโ€‹

Requires an API key with the surveys:read scope.

Query Parametersโ€‹

ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger15Items per page (max 100)
booking_idinteger-Filter by booking
customer_idinteger-Filter by customer
nps_categorystring-Filter by NPS category: promoter, passive, detractor
date_fromstring-Filter from date (YYYY-MM-DD)
date_tostring-Filter to date (YYYY-MM-DD)
sortstringcreated_atSort field: id, submission_date, created_at, nps_score
orderstringdescSort direction: asc or desc

Responseโ€‹

Success (200 OK)โ€‹

{
"data": [
{
"id": 42,
"waiver_form_id": 1,
"booking_id": 123,
"customer_id": 456,
"staff_id": null,
"submission_date": "2026-02-01T10:00:00+00:00",
"customer": {
"id": 456,
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com"
},
"booking": {
"id": 123,
"status": "confirmed"
},
"responses": [
{
"field_id": 10,
"field_label": "How likely are you to recommend us?",
"field_type": "npsRating",
"value": "9"
},
{
"field_id": 11,
"field_label": "Rate our equipment quality",
"field_type": "starRating",
"value": "5"
}
],
"nps_score": 9,
"nps_category": "promoter",
"created_at": "2026-02-01T10:00:00+00:00"
},
{
"id": 41,
"waiver_form_id": 1,
"booking_id": 120,
"customer_id": 789,
"staff_id": null,
"submission_date": "2026-01-30T14:30:00+00:00",
"customer": {
"id": 789,
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@example.com"
},
"booking": {
"id": 120,
"status": "completed"
},
"responses": [
{
"field_id": 10,
"field_label": "How likely are you to recommend us?",
"field_type": "npsRating",
"value": "7"
},
{
"field_id": 11,
"field_label": "Rate our equipment quality",
"field_type": "starRating",
"value": "4"
}
],
"nps_score": 7,
"nps_category": "passive",
"created_at": "2026-01-30T14:30:00+00:00"
}
],
"meta": {
"current_page": 1,
"per_page": 15,
"total": 156,
"total_pages": 11,
"request_id": "req_abc123",
"timestamp": "2026-01-15T12:00:00+00:00"
}
}

Response Fieldsโ€‹

Response Objectโ€‹

FieldTypeDescription
idintegerResponse ID
waiver_form_idintegerSurvey ID
booking_idintegerLinked booking ID (if any)
customer_idintegerLinked customer ID (if any)
staff_idintegerStaff who collected response (if any)
submission_datestringISO 8601 datetime of submission
customerobjectCustomer summary (if linked)
bookingobjectBooking summary (if linked)
responsesarrayField responses
nps_scoreintegerNPS rating value (if survey has NPS field)
nps_categorystringNPS category (if survey has NPS field)
created_atstringISO 8601 datetime

Filtering by NPS Categoryโ€‹

Get only promoters (scores 9-10):

curl "https://app.equipdash.com/api/v1/surveys/1/responses?nps_category=promoter" \
-H "Authorization: Bearer YOUR_API_KEY"

Get only detractors (scores 0-6) for follow-up:

curl "https://app.equipdash.com/api/v1/surveys/1/responses?nps_category=detractor" \
-H "Authorization: Bearer YOUR_API_KEY"

Filtering by Date Rangeโ€‹

Get responses for January 2026:

curl "https://app.equipdash.com/api/v1/surveys/1/responses?date_from=2026-01-01&date_to=2026-01-31" \
-H "Authorization: Bearer YOUR_API_KEY"

Errorsโ€‹

StatusCodeDescription
401authentication_requiredNo API key provided
401invalid_api_keyInvalid API key
403insufficient_scopeAPI key lacks surveys:read scope
403forbiddenSurvey belongs to another supplier
404not_foundSurvey not found

Example Requestโ€‹

curl -X GET "https://app.equipdash.com/api/v1/surveys/1/responses?per_page=20&sort=nps_score&order=desc" \
-H "Authorization: Bearer eqd_live_abc123xyz789..."