Skip to main content
GET
Get survey details

Authorizations

x-api-key
string
header
required

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

Path Parameters

surveyId
string
required

The unique identifier of the survey

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

"survey_abc123"

Response

Survey details with questions and instances

object
enum<string>
required

Object type identifier

Available options:
survey
Example:

"survey"

id
string
required

Unique survey identifier

Example:

"survey_abc123"

title
string
required

Survey title

Example:

"Employee Satisfaction Survey"

description
string | null
required

Survey description

Example:

"Monthly check-in on team satisfaction"

mode
enum<string>
required

Survey mode (poll or survey)

Available options:
poll,
survey
Example:

"survey"

response_type
enum<string>
required

How responses are collected

Available options:
anonymous,
user
Example:

"anonymous"

results_visibility
enum<string>
required

Who can view results

Available options:
owner,
everyone
Example:

"owner"

status
enum<string>
required

Current survey status

Available options:
draft,
scheduled,
archived
Example:

"scheduled"

published_version
integer
required

Monotonic version number, incremented on each publish. 0 before the first publish — a never-published eager draft, which clients open directly in the editor rather than the detail page.

Required range: x >= 0
Example:

3

question_count
integer
required

Number of questions in the survey

Example:

5

time_limit_minutes
integer | null
required

Time limit in minutes for completing the survey (null for no limit)

Required range: x >= 1
Example:

30

track
object
required

Track reference if survey belongs to a track

instances
object[]
required

Delivery instances of this survey

created_at
string | null
required

When the survey was created (ISO 8601 format)

Example:

"2026-01-15T10:30:00.000Z"

updated_at
string | null
required

When the survey was last updated (ISO 8601 format)

Example:

"2026-01-20T14:00:00.000Z"

meta
object
required

What the requesting user can do with this survey (edit, pause, resume, delete, activate, manage admins). Use these to drive UI affordances.

result_visibility
object | null
required

Who, beyond the survey's admins, can see an individual's responses in the People view. Null means owner only. Distinct from results_visibility.

questions
object[]
required

Questions in the survey

admin_users
string[]
required

Doozy user IDs of members who can edit this survey and view its results.

Example:
current_draft_id
string | null
required

Active collaborative draft id. Clients connect their Yjs provider to /surveys/{id}/drafts/{current_draft_id} to participate in realtime editing. Null only for legacy surveys created before the collaborative editor rollout — those will lazy-mint a draft on first edit.

Example:

"draft_abc123"

last_published_at
string | null
required

ISO 8601 timestamp of the most recent publish, or null if never published.

Example:

"2026-06-10T09:48:36.000Z"

last_published_by
object | null
required

Profile of the person who last published, or null.

draft_has_unpublished_changes
boolean
required

True when the current draft has edits that diverge from the published survey.

Example:

true

draft_last_edited_at
string | null
required

ISO 8601 timestamp of the last edit to the current draft, or null.

Example:

"2026-06-10T10:15:00.000Z"

draft_last_edited_by
object | null
required

Profile of the last person to edit the current draft, or null.