---
title: "Get all survey responses"
url: https://docs.gleap.ai/en/reference/rest-api/get-survey-responses
method: GET
path: "/engagement/surveys/{surveyId}/responses"
api: "API Reference"
tag: "Engagement Survey"
operationId: "GetSurveyResponses"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Get all survey responses

`GET https://api.gleap.io/v3/engagement/surveys/{surveyId}/responses`

Get the responses of a survey, unread first, then newest first. Supports `skip`, `limit` (defaults to 1000 when omitted; supplied values above 100 are clamped to 100) and field filters via query parameters.

Surveys 2.0: with `v=2` or any of `cursor`, `status` (comma list), `from`, `to` (YYYY-MM-DD), `version`, `filter[<key>]=<value|min..max|a-b>`, `theme`, `channel`, `contactUserId`, `q`, `legacyTicket` the response is `{ items, nextCursor?, total? }` (newest first, `limit` ≤ 50). Without them a v2 survey answers the legacy array (`_id`, `formData` = answers by key, `session`, `createdAt`, `updatedAt`).

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `surveyId` (string, required)

## Headers

- `project` (string, required)

## Example request

```bash
curl --request GET \
  --url 'https://api.gleap.io/v3/engagement/surveys/{surveyId}/responses' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>'
```

## Responses

### 200 (`application/json`)

Ok
