Skip to main content

Surveys API

Manage survey templates for structured data collection during change requests.

Space-scoped template CRUD requires Space Admin permissions. Template lookup and read operations require authentication.

Endpoints Overview

MethodEndpointDescription
GET/spaces/{slug}/survey-templatesList templates
POST/spaces/{slug}/survey-templatesCreate template
GET/survey-templates/{template_id}Get template
PATCH/survey-templates/{template_id}Update template
DELETE/survey-templates/{template_id}Deactivate template
GET/products/{product_id}/survey-templateGet product's template

List Templates

GET /spaces/{slug}/survey-templates?include_inactive=false

Requires: Space member

ParameterTypeDefaultDescription
include_inactiveboolfalseInclude deactivated templates

Returns: SurveyTemplateResponse[]


Create Template

POST /spaces/{slug}/survey-templates

Requires: Space Admin

Request Body

{
"name": "Change Impact Assessment",
"description": "Collects impact details for change requests",
"fields": [
{
"name": "impact_area",
"label": "Impact Area",
"type": "select",
"options": ["Performance", "Security", "Data Quality"],
"required": true
},
{
"name": "justification",
"label": "Justification",
"type": "textarea",
"required": true
},
{
"name": "rollback_plan",
"label": "Rollback Plan",
"type": "text",
"required": false
}
]
}
FieldTypeRequiredDescription
namestringTemplate name
descriptionstringTemplate description
fieldsFieldDefinition[]Form field definitions

Returns 201 Created with the SurveyTemplateResponse.


Get Template

GET /survey-templates/{template_id}

Returns 404 if not found.


Update Template

PATCH /survey-templates/{template_id}

All fields are optional — only provided fields are updated.

{
"name": "Updated Survey",
"fields": [],
"is_active": false
}

Deactivate Template

DELETE /survey-templates/{template_id}

Soft-deletes the template (sets is_active = false). Returns 204 No Content.


Get Product Survey Template

GET /products/{product_id}/survey-template

Returns the active survey template configured for a product's change requests. Returns 204 No Content if no template is configured.


Response Model

SurveyTemplateResponse

FieldTypeDescription
idUUIDTemplate identifier
namestringTemplate name
descriptionstring | nullDescription
fieldsobject[]Field definitions
is_activeboolWhether the template is active
space_idUUIDSpace scope
created_atdatetimeCreation timestamp
updated_atdatetimeLast update