List Survey Templates
Survey Templates are reusable, predefined sets of survey steps that can be applied to SURVEY-type campaigns. Each template stores a voice, a length factor, and an ordered list of steps with optional audio files.
Base path: /api/v1/survey-templates/
Permissions required:
User must be a company user (
IsCompanyUser)User must have survey access (
HasSurveyAccess)Write operations are blocked when user is impersonated by a business (
BlockWriteWhenImpersonatedByBusiness)
List
URL |
Required Values |
HTTP Methods |
|---|---|---|
GET |
Returns a paginated list of the authenticated user’s survey templates, ordered newest first.
Query Parameters:
Parameter |
Type |
Description |
|---|---|---|
search |
string |
Filter by name or content. |
page |
integer |
Page number. |
page_size |
integer |
Results per page. |
Sample Request:
GET /api/v1/survey-templates/
Authorization: Token <token>
Sample Response (200 OK):
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"id": 2,
"name": "Customer Feedback Survey",
"voice": {
"id": 5,
"voice_display_name": "Rijan",
"voice_internal_name": "np_rijan",
"is_premium": false,
"is_beta": false
},
"length_factor": "1.20",
"content": [
{
"order": 0,
"content_type": "say",
"response_type": "dtmf",
"input_name": "satisfaction",
"audio_file": null
}
],
"created_at": "2026-05-20T10:00:00Z"
},
{
"id": 1,
"name": "Product Review Survey",
"voice": {
"id": 3,
"voice_display_name": "Anita",
"voice_internal_name": "np_anita",
"is_premium": true,
"is_beta": false
},
"length_factor": "1.00",
"content": [
{
"order": 0,
"content_type": "play",
"response_type": "raw_record",
"input_name": "feedback",
"audio_file": "https://example.com/media/survey_templates/audio/step_0_a1b2c3d4.mp3"
}
],
"created_at": "2026-04-10T08:30:00Z"
}
]
}
With search query parameter:
GET /api/v1/survey-templates/?search=Customer
Returns only templates whose name or content contains “Customer”.
Retrieve
URL |
Required Values |
HTTP Methods |
|---|---|---|
Template ID |
GET |
Returns a single survey template by ID. Replace <id> with the template ID.
Sample Request:
GET /api/v1/survey-templates/3/
Authorization: Token <token>
Sample Response (200 OK):
{
"id": 3,
"name": "Simple DTMF Survey",
"voice": {
"id": 5,
"voice_display_name": "Rijan",
"voice_internal_name": "np_rijan",
"is_premium": false,
"is_beta": false
},
"length_factor": "1.00",
"content": [
{
"order": 0,
"content_type": "say",
"response_type": "dtmf",
"input_name": "rating",
"audio_file": null
}
],
"created_at": "2026-06-02T12:00:00Z"
}
Error Response (404 Not Found):
{ "detail": "No SurveyTemplate matches the given query." }