Skip to main content
GET
Get survey report

Authorizations

x-api-key
string
header
required

API key for authentication. Generate keys in the Doozy dashboard.

Path Parameters

survey_id
string
required

The unique identifier of the survey

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
Example:

"2XOADZ5X978jbJUbveb9"

Query Parameters

start_date
string<date-time>

Filter participants by received_at >= this date (ISO 8601 format)

Example:

"2026-01-01T00:00:00.000Z"

end_date
string<date-time>

Filter participants by received_at <= this date (ISO 8601 format)

Example:

"2026-01-31T23:59:59.999Z"

group_id
string

Filter identified-survey participants and aggregates by exact account group ID

Minimum string length: 1
Example:

"BgZupnpMujy4v1Zzd6sx"

group_ids
string[]

Account group IDs. Matches participants in any selected group and takes precedence over group_id. A comma-separated query value is also accepted.

Required array length: 1 - 50 elements
Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
Example:
work_location_ids
string[]

Work-location IDs. Matches participants at any selected location. A comma-separated query value is also accepted.

Required array length: 1 - 50 elements
Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
Example:
manager_ids
string[]

Manager-of-record user IDs. Matches direct reports of any selected manager. A comma-separated query value is also accepted.

Required array length: 1 - 50 elements
Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
Example:
audience_groups
string

JSON-encoded audience groups. Groups match with OR; populated fields inside a group match with AND; values inside each field match with OR. Takes precedence over the flat demographic parameters.

Maximum string length: 20000
Example:

"[{\"group_ids\":[\"BgZupnpMujy4v1Zzd6sx\"],\"country_codes\":[\"GB\"]},{\"group_ids\":[\"group_sales\"],\"cities\":[\"Berlin\"]}]"

instance_id
string

Filter to a specific delivery instance by ID. When set, start_date and end_date are ignored.

Example:

"K2CC1FIYz0JGcnCsNbIa"

track_id
string

Filter results to participants from a specific track (workflow). When specified, only participants who received the survey via this track will be included.

Example:

"i3XJiIJjOp7PJJBTvu4i"

step_id
string

With track_id: only participants who received the survey from this step of the track

Minimum string length: 1
Example:

"NKqbhqFnRyGChRhvM6bB"

variant_id
string

With track_id and step_id: only participants who got this variant of the step. Use default for the step's own content. Not available for anonymous surveys.

Minimum string length: 1
Example:

"default"

schedule_id
string

Filter results to participants from a specific schedule. When specified, only instances created by this schedule will be included.

Example:

"jiQDJJDaC3OH1aUnvnJH"

include_comments
boolean

Include comments on questions in the report (default true)

Example:

"true"

Response

Survey report

object
enum<string>
required

Object type identifier

Available options:
survey_report
Example:

"survey_report"

id
string
required

Survey ID

Example:

"2XOADZ5X978jbJUbveb9"

title
string
required

Survey title

Example:

"Employee Satisfaction Survey"

mode
enum<string>
required

Survey mode

Available options:
poll,
survey
Example:

"survey"

response_type
enum<string>
required

How responses are collected

Available options:
anonymous,
user
Example:

"anonymous"

summary
object
required

Summary statistics for the report

questions
object[]
required

Per-question analytics (average scores, answer breakdowns, eNPS)

answers_withheld
boolean
required

True when an anonymous view includes sends that reached one person and covers fewer recipients than anonymity_threshold. Questions then keep their response counts but return no averages, breakdowns or comments.

Example:

false

anonymity_threshold
integer | null
required

Recipients an anonymous view must cover before answers from one-person sends are shown. Null for named surveys.

Example:

5