Questions

QuestionsResource

Methods

create() ->
post/v5/questions

Create a new question owned by the caller's account.

The question is one of six types selected by the required question_type discriminator (categorical, rating, number, free_text, form, or timestamp), and each type carries its own configuration block; name and prompt are required for every type. Questions are the reusable units that are grouped into question sets and referenced by rubrics, so create them before assembling a question set. The created question is scoped to the caller's account and records the creating identity. The question type and its configuration are set at creation time and cannot be changed afterward through the update endpoint.

list() -> SyncCursorPage[]
get/v5/questions

Return a paginated list of the caller's account's questions.

Archived questions are excluded by default; set include_archived to true to include them alongside active ones. Pass ids to restrict the result to a specific set of question IDs. Results are paginated through the standard pagination parameters. Use this to discover existing questions before adding them to a question set, or to audit which questions have been archived.

retrieve() ->
get/v5/questions/{question_id}

Retrieve a single question in the caller's account by its ID.

Both active and archived questions are returned; the archived state is conveyed by the archived_at field on the response. The lookup is scoped to the caller's account, and a question that does not exist within that account results in a not-found error.

update(, ) ->
patch/v5/questions/{question_id}

Update a question's display name.

Only the name is mutable through this endpoint; a question's type, prompt, and type-specific configuration are fixed at creation and cannot be changed here. Updating an archived question is rejected with a client error, so restore it first if it needs to be edited. The update is scoped to the caller's account.

Parameters
question_id: str
name: str
(maxLength: 255, minLength: 1)

Display name for the question

Request example
200Example
archive() ->
delete/v5/questions/{question_id}

Soft-delete a question by setting its archived_at timestamp.

This is not a permanent delete: the row is retained and can be brought back with the restore endpoint. Once archived, the question is excluded from list results by default (unless include_archived is set) and can no longer be updated until it is restored. The archived question is returned in the response with its archived_at populated.

restore() ->
post/v5/questions/{question_id}/restore

Restore a previously archived question, reversing an archive.

This clears the question's archived_at timestamp, returning it to the active state so it reappears in default listings and becomes editable again. It is the inverse of the archive (DELETE) operation and is intended for questions that were archived by mistake or are needed again.

Domain types

class CategoricalQuestion: ...
class CategoricalQuestionConfiguration: ...
class FormQuestion: ...
class FormQuestionConfiguration: ...
class FreeTextQuestion: ...
class FreeTextQuestionConfiguration: ...
class NumberQuestion: ...
class NumberQuestionConfiguration: ...
class RatingQuestion: ...
class RatingQuestionConfiguration: ...
class TimestampQuestion: ...
class TimestampQuestionConfiguration: ...