Survicate Respondents API

Operations related to survey respondents

OpenAPI Specification

survicate-respondents-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Survicate Data Export Personal Data Respondents 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: Respondents
  description: Operations related to survey respondents
paths:
  /v2/respondents/{respondentId}/attributes:
    get:
      operationId: listRespondentAttributes
      summary: List respondent attributes
      description: Returns all attributes (traits) associated with a specific respondent.
      tags:
      - Respondents
      parameters:
      - $ref: '#/components/parameters/respondentId'
      responses:
        '200':
          description: Respondent attributes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespondentAttributes'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /v2/respondents/{respondentId}/responses:
    get:
      operationId: listRespondentResponses
      summary: List respondent responses
      description: Returns all survey responses submitted by a specific respondent.
      tags:
      - Respondents
      parameters:
      - $ref: '#/components/parameters/respondentId'
      - 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 responses per page
        required: false
        schema:
          type: integer
          default: 20
          maximum: 100
      responses:
        '200':
          description: A list of respondent responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    Response:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the response
        survey_id:
          type: string
          description: Identifier of the survey this response belongs to
        respondent_id:
          type: string
          description: Identifier of the respondent who submitted this response
        completed_at:
          type: string
          format: date-time
          description: Date and time when the response was completed
        answers:
          type: array
          description: Answers submitted for each question
          items:
            $ref: '#/components/schemas/Answer'
    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
    RespondentAttributes:
      type: object
      properties:
        respondent_id:
          type: string
          description: Unique identifier for the respondent
        attributes:
          type: object
          additionalProperties: true
          description: Key-value pairs of respondent traits/attributes
          example:
            email: user@example.com
            name: Jane Doe
            plan: pro
            user_id: '12345'
    ResponseList:
      type: object
      allOf:
      - $ref: '#/components/schemas/Pagination'
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Response'
    Answer:
      type: object
      properties:
        question_id:
          type: string
          description: Identifier of the question being answered
        value:
          oneOf:
          - type: string
          - type: number
          - type: array
            items:
              type: string
          description: The answer value (string for text, number for ratings/NPS, array for multi-select)
        answer_ids:
          type: array
          description: IDs of selected answer options (for closed-ended questions)
          items:
            type: string
    Error:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message
        code:
          type: string
          description: An error code identifier
  parameters:
    respondentId:
      name: respondentId
      in: path
      required: true
      description: The unique identifier of the respondent
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication failed or API key is missing
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    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}}`

        '