Skip to content

Management API

The management API is what the editor UI uses: questionnaire CRUD, draft editing, publishing, version history, response browsing, CSV export, and file downloads. It has no authentication — you must network-protect it (reverse proxy with auth, VPN, or network policy). Anyone who can reach these endpoints can read and edit everything. See the security posture.

This page is generated from the backend’s OpenAPI document (download the raw spec).

List questionnaires, paged.

Parameter In Type Required
page query integer, default 0 no
size query integer, default 50 no

Response: 200 OK — PageResultQuestionnaireSummary

Create a questionnaire.

Request body (application/json): CreateQuestionnaireRequest

Response: 201 Created — QuestionnaireDetail

Fetch one questionnaire, including its current draft definition.

Parameter In Type Required
id path string yes

Response: 200 OK — QuestionnaireDetail

Update questionnaire settings: name, allowed origins, submission policy.

Parameter In Type Required
id path string yes

Request body (application/json): PatchQuestionnaireRequest

Response: 200 OK — QuestionnaireDetail

Delete a questionnaire.

Parameter In Type Required
id path string yes

Response: 204 No Content

Replace the draft definition. Drafts are invisible to respondents until published.

Parameter In Type Required
id path string yes

Request body (application/json): Definition

Response: 200 OK — QuestionnaireDetail

POST /api/v1/questionnaires/{id}/duplicate

Section titled “POST /api/v1/questionnaires/{id}/duplicate”

Copy a questionnaire (a new draft under a new publicId).

Parameter In Type Required
id path string yes

Response: 201 Created — QuestionnaireDetail

Export a questionnaire definition as portable JSON.

Parameter In Type Required
id path string yes

Response: 200 OK — QuestionnaireExport

GET /api/v1/questionnaires/{id}/files/stats

Section titled “GET /api/v1/questionnaires/{id}/files/stats”

Storage totals (file count and bytes) for a questionnaire.

Parameter In Type Required
id path string yes

Response: 200 OK — FileStats

Publish the draft as a new immutable version, with an optional note.

Parameter In Type Required
id path string yes

Request body (application/json, optional): PublishRequest

Response: 200 OK — QuestionnaireDetail

Browse responses, filterable by status, version, and external reference.

Parameter In Type Required
id path string yes
status query string no
versionNumber query integer no
externalRef query string no
page query integer, default 0 no
size query integer, default 50 no

Response: 200 OK — PageResultResponseExport

DELETE /api/v1/questionnaires/{id}/responses/{responseId}

Section titled “DELETE /api/v1/questionnaires/{id}/responses/{responseId}”

Hard-delete a response (data-subject erasure).

Parameter In Type Required
id path string yes
responseId path string yes

Response: 204 No Content

GET /api/v1/questionnaires/{id}/responses/{responseId}/files/{fileId}

Section titled “GET /api/v1/questionnaires/{id}/responses/{responseId}/files/{fileId}”

Download an uploaded file. Always served as an attachment, never inline.

Parameter In Type Required
id path string yes
responseId path string yes
fileId path string yes

Response: 200 OK — binary

GET /api/v1/questionnaires/{id}/responses/export.csv

Section titled “GET /api/v1/questionnaires/{id}/responses/export.csv”

Export responses as CSV, using the same filters as the browse endpoint.

Parameter In Type Required
id path string yes
status query string no
versionNumber query integer no
externalRef query string no

Response: 200 OK

List published versions.

Parameter In Type Required
id path string yes

Response: 200 OK — array of VersionSummary

GET /api/v1/questionnaires/{id}/versions/{n}

Section titled “GET /api/v1/questionnaires/{id}/versions/{n}”

Fetch one published version, including its frozen definition.

Parameter In Type Required
id path string yes
n path integer yes

Response: 200 OK — VersionDetail

POST /api/v1/questionnaires/{id}/versions/{n}/restore

Section titled “POST /api/v1/questionnaires/{id}/versions/{n}/restore”

Copy an old version back into the draft (nothing is published until you publish).

Parameter In Type Required
id path string yes
n path integer yes

Response: 200 OK — QuestionnaireDetail

Import a previously exported questionnaire as a new draft.

Request body (application/json, optional): QuestionnaireImportRequest

Response: 201 Created — QuestionnaireDetail

The server-side upload caps, so the editor can display them.

Response: 200 OK — UploadsConfig

Field Type
source string
questionCode string
subField string
operator string
value any
Field Type
name string
Field Type
schemaVersion integer
steps array of Step
tabs array of Tab
questions array of Question
Field Type
fileCount integer (int64)
totalBytes integer (int64)
Field Type
origin string
userAgent string
Field Type
items array of QuestionnaireSummary
page integer
size integer
total integer (int64)
Field Type
items array of ResponseExport
page integer
size integer
total integer (int64)
Field Type
name string
allowedOrigins array of string
submissionPolicy string
Field Type
stepId string
tabId string
Field Type
note string
Field Type
id string
code string
sectionTitle string
prompt string
type string
width string
typeConfig object (free-form)
visibility RuleConfig
requirement RuleConfig
Field Type
id string
publicId string
name string
allowedOrigins array of string
submissionPolicy string
currentVersion integer
hasUnpublishedChanges boolean
draft Definition
updatedAt string (date-time)
Field Type
formsEngineExport integer
exportedAt string (date-time)
name string
definition Definition
Field Type
formsEngineExport integer
exportedAt string (date-time)
name string
definition Definition
Field Type
id string
publicId string
name string
currentVersion integer
hasUnpublishedChanges boolean
updatedAt string (date-time)
responseCount integer (int64)
Field Type
responseId string
externalRef string
publicId string
versionNumber integer
status string
answers object (free-form)
lastPosition Position
meta Meta
createdAt string (date-time)
updatedAt string (date-time)
completedAt string (date-time)
Field Type
combinator string
conditions array of Condition
Field Type
mode string
rule Rule
Field Type
id string
title string
visibility RuleConfig
requirement RuleConfig
tabs array of Tab
questions array of Question
Field Type
id string
title string
visibility RuleConfig
requirement RuleConfig
questions array of Question
Field Type
maxFileSizeMb integer
maxFilesPerResponse integer
maxBytesPerResponse integer (int64)
Field Type
versionNumber integer
note string
publishedAt string (date-time)
definition Definition
Field Type
versionNumber integer
note string
publishedAt string (date-time)