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

# Get survey analytics

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

Survey step analytics from ClickHouse (`survey_events`), Typeform-style. Query `from`, `to` (YYYY-MM-DD, UTC, inclusive; default the last 30 days, at most 400), `version`, `channel`, `device` (phone|tablet|desktop), `interval` (day|week), `tz` (IANA zone for the weekday × hour heatmap). Returns `{ available, range, header: { views, uniqueViews, starts, submissions, completionRate, startRate, avgTimeToCompleteMs, welcomeViews, welcomeStartRate } (each` { value, previous, byDevice }`), funnel, worstStepBlockId, dismissed, timing, backNavigation, closePoints, series, breakdowns, heatmap, versions, score, reminders, email, sources, quality }`. `available: false` when no events were recorded in the range. Cached 60 seconds.

## 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}/analytics' \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>'
```

## Responses

### 200 (`application/json`)

Ok
