Survicate Surveys API
Operations related to surveys and their questions
Operations related to surveys and their questions
openapi: 3.0.3
info:
title: Survicate Data Export Personal Data Surveys API
description: 'The Survicate Data Export API (v2) allows retrieval of survey data collected in your Survicate account. It exposes resources for surveys, responses, respondents, and personal data management to integrate feedback into databases, CRMs, and custom solutions.
'
version: '2'
contact:
name: Survicate Developer Documentation
url: https://developers.survicate.com/data-export/
termsOfService: https://survicate.com/terms/
license:
name: Proprietary
url: https://survicate.com/terms/
servers:
- url: https://data.survicate.com
description: Survicate Data Export API base URL
security:
- BasicAuth: []
tags:
- name: Surveys
description: Operations related to surveys and their questions
paths:
/v2/surveys:
get:
operationId: listSurveys
summary: List all surveys
description: Returns a paginated list of all surveys in the Survicate account.
tags:
- Surveys
parameters:
- name: page
in: query
description: Page number for pagination
required: false
schema:
type: integer
default: 1
minimum: 1
- name: per_page
in: query
description: Number of surveys per page
required: false
schema:
type: integer
default: 20
maximum: 100
responses:
'200':
description: A list of surveys
content:
application/json:
schema:
$ref: '#/components/schemas/SurveyList'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/v2/surveys/{surveyId}:
get:
operationId: getSurvey
summary: Retrieve survey information
description: Returns detailed information about a specific survey.
tags:
- Surveys
parameters:
- $ref: '#/components/parameters/surveyId'
responses:
'200':
description: Survey details
content:
application/json:
schema:
$ref: '#/components/schemas/Survey'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
/v2/surveys/{surveyId}/questions:
get:
operationId: listSurveyQuestions
summary: List questions for a survey
description: Returns all questions for a specific survey along with their answer options.
tags:
- Surveys
parameters:
- $ref: '#/components/parameters/surveyId'
responses:
'200':
description: A list of questions
content:
application/json:
schema:
$ref: '#/components/schemas/QuestionList'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
schemas:
Question:
type: object
properties:
id:
type: string
description: Unique identifier for the question
survey_id:
type: string
description: Identifier of the parent survey
type:
type: string
description: Type of question (e.g., nps, rating, text, multiple_choice)
enum:
- nps
- rating
- text
- multiple_choice
- checkbox
- dropdown
content:
type: string
description: The question text
position:
type: integer
description: Position/order of the question in the survey
answers:
type: array
description: Available answer options for closed-ended questions
items:
$ref: '#/components/schemas/AnswerOption'
Survey:
type: object
properties:
id:
type: string
description: Unique identifier for the survey
name:
type: string
description: Name of the survey
status:
type: string
description: Status of the survey (e.g., active, paused, closed)
enum:
- active
- paused
- closed
created_at:
type: string
format: date-time
description: Date and time when the survey was created
updated_at:
type: string
format: date-time
description: Date and time when the survey was last updated
responses_count:
type: integer
description: Total number of responses collected
questions_count:
type: integer
description: Total number of questions in the survey
SurveyList:
type: object
allOf:
- $ref: '#/components/schemas/Pagination'
properties:
data:
type: array
items:
$ref: '#/components/schemas/Survey'
AnswerOption:
type: object
properties:
id:
type: string
description: Unique identifier for the answer option
content:
type: string
description: Text of the answer option
position:
type: integer
description: Position/order of the answer option
Pagination:
type: object
properties:
page:
type: integer
description: Current page number
per_page:
type: integer
description: Number of items per page
total:
type: integer
description: Total number of items
total_pages:
type: integer
description: Total number of pages
Error:
type: object
properties:
message:
type: string
description: A human-readable error message
code:
type: string
description: An error code identifier
QuestionList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Question'
parameters:
surveyId:
name: surveyId
in: path
required: true
description: The unique identifier of the survey
schema:
type: string
responses:
TooManyRequests:
description: 'Rate limit exceeded. Survicate allows up to 5 concurrent requests and up to 1000 requests per minute per workspace.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication failed or API key is missing
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BasicAuth:
type: http
scheme: basic
description: 'Use your Survicate API key as the value for Basic authentication. The API key can be found in the Survicate panel under Surveys Settings > Access Keys. Format: `Basic {{apiKey}}`
'