surveys

List survey responses for a specific survey, with question text resolved server-side so callers do not have to map opaque $survey_response_<id> keys. Each row carries distinct_id, session_id, submitted_at, and an extra block (device, browser, OS, geoip, current_url, iteration) so agents can cross-pivot to recordings, persons, or paths in a single follow-up call. For person properties at event time, follow up with persons-get using the returned distinct_id — keeps scopes scoped. Use question_id + score_lte to fetch NPS detractors and similar score-filtered cohorts.

get/api/projects/{project_id}/surveys/{id}/responses/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/surveys/{id}/responses/
  • Auth: HTTP bearer

Path parameters

idstring uuid required

A UUID string identifying this survey.

project_idstring required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Query parameters

exclude_archivedboolean

When true, exclude responses that have been archived via the archive_response endpoint.

limitinteger

Maximum number of rows to return (1-500). Defaults to 100.

offsetinteger

Number of rows to skip for pagination. Combine with limit and the has_more field to paginate.

question_idstring

If set, only return rows where this question has a non-empty answer, and only include that question's answer in each row. Required when using score_lte or score_gte.

score_gtenumber double

Filter to rows where the rating answer for question_id is >= this value. Common use: NPS promoters with score_gte=9. Requires question_id.

score_ltenumber double

Filter to rows where the rating answer for question_id is <= this value. Common use: NPS detractors with score_lte=6. Requires question_id.

sincestring date-time

Only return responses submitted on or after this ISO 8601 timestamp.

untilstring date-time

Only return responses submitted on or before this ISO 8601 timestamp.

Response

has_moreboolean required

True if more rows exist beyond the current page — fetch the next page with offset + limit.

limitinteger required

The limit applied to this query (echoed back for pagination).

offsetinteger required

The offset applied to this query (echoed back for pagination).

Changes

No recorded changes to this operation across all 1 revision of this API.