> ## Documentation Index
> Fetch the complete documentation index at: https://help.doozy.live/llms.txt
> Use this file to discover all available pages before exploring further.

# List surveys

> List all surveys accessible to the authenticated user. Returns surveys where the user is an admin. Results are paginated and sorted by creation date (newest first). Only polls and surveys are returned (excludes activity feedback).



## OpenAPI

````yaml /openapi.json get /v1/surveys
openapi: 3.0.3
info:
  title: Doozy Public API
  version: 1.0.0
  description: >-
    The Doozy Public API allows you to programmatically access your
    organization's data.


    ## Authentication


    All API requests require an API key passed in the `x-api-key` header.


    ```

    x-api-key: dzy_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    ```


    API keys can be generated and managed through the Doozy dashboard. Each key
    is associated with a user account and inherits that user's permissions.


    ## Rate Limiting


    API requests are rate limited. Rate limiting is handled by Cloudflare. If
    you exceed the rate limit, you'll receive a 429 Too Many Requests response.


    ## Pagination


    List endpoints support cursor-based pagination using `limit` and
    `starting_after` query parameters.
  contact:
    name: Doozy Support
    email: support@doozy.live
    url: https://help.doozy.live/api
servers:
  - url: https://api.doozy.live
    description: Production
security:
  - apiKey: []
tags:
  - name: Quizzes
    description: Quiz analytics and reporting endpoints
  - name: Tracks
    description: Track management and analytics endpoints
  - name: Surveys
    description: Survey and poll analytics endpoints
  - name: Introductions
    description: Doozy Roulette and Matchmaking introduction endpoints
paths:
  /v1/surveys:
    get:
      tags:
        - Surveys
      summary: List surveys
      description: >-
        List all surveys accessible to the authenticated user. Returns surveys
        where the user is an admin. Results are paginated and sorted by creation
        date (newest first). Only polls and surveys are returned (excludes
        activity feedback).
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Maximum number of results to return (1-100, default 25)
            example: 25
          required: false
          description: Maximum number of results to return (1-100, default 25)
          name: limit
          in: query
        - schema:
            type: string
            description: >-
              Cursor for pagination - the ID of the last item from the previous
              page
            example: survey_abc123
          required: false
          description: >-
            Cursor for pagination - the ID of the last item from the previous
            page
          name: starting_after
          in: query
        - schema:
            type: string
            description: Filter surveys by track ID
            example: wf_abc123
          required: false
          description: Filter surveys by track ID
          name: track_id
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/SurveyMode'
              - description: Filter by survey mode (poll or survey)
                example: survey
          required: false
          description: Filter by survey mode (poll or survey)
          name: mode
          in: query
        - schema:
            allOf:
              - $ref: '#/components/schemas/SurveyStatus'
              - description: >-
                  Filter by survey status. Default is 'scheduled' (active
                  surveys only). Use 'archived' to return archived surveys.
                example: scheduled
          required: false
          description: >-
            Filter by survey status. Default is 'scheduled' (active surveys
            only). Use 'archived' to return archived surveys.
          name: status
          in: query
      responses:
        '200':
          description: List of surveys
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SurveyListResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required - missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    SurveyMode:
      type: string
      enum:
        - poll
        - survey
    SurveyStatus:
      type: string
      enum:
        - draft
        - scheduled
        - archived
    SurveyListResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
          description: String representing the object type
          example: list
        data:
          type: array
          items:
            $ref: '#/components/schemas/SurveySummary'
          description: Array of survey objects
        has_more:
          type: boolean
          description: Whether there are more results available beyond this page
          example: true
        url:
          type: string
          description: The URL for accessing this list endpoint
          example: /v1/surveys
        next_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the next page of results. Pass as starting_after in
            subsequent requests.
          example: survey_xyz789
        previous_cursor:
          type: string
          nullable: true
          description: >-
            Cursor to fetch the previous page of results. Pass as ending_before
            in subsequent requests.
          example: survey_abc123
      required:
        - object
        - data
        - has_more
        - url
        - next_cursor
        - previous_cursor
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - authentication_error
                - invalid_request_error
                - rate_limit_error
              description: The type of error returned
              example: invalid_request_error
            code:
              type: string
              nullable: true
              description: Machine-readable error code for specific error conditions
              example: resource_not_found
            message:
              type: string
              description: Human-readable error message
              example: 'No such quiz: quiz_abc123'
            param:
              type: string
              nullable: true
              description: The parameter related to the error, if applicable
              example: id
            doc_url:
              type: string
              format: uri
              description: URL to documentation about this error
              example: https://docs.doozy.live/api/errors#resource_not_found
          required:
            - type
            - code
            - message
      required:
        - error
    SurveySummary:
      type: object
      properties:
        object:
          type: string
          enum:
            - survey
          description: Object type identifier
          example: survey
        id:
          type: string
          description: Unique survey identifier
          example: survey_abc123
        title:
          type: string
          description: Survey title
          example: Employee Satisfaction Survey
        description:
          type: string
          nullable: true
          description: Survey description
          example: Monthly check-in on team satisfaction
        mode:
          allOf:
            - $ref: '#/components/schemas/SurveyMode'
            - description: Survey mode (poll or survey)
              example: survey
        response_type:
          allOf:
            - $ref: '#/components/schemas/ResponseType'
            - description: How responses are collected
              example: anonymous
        results_visibility:
          allOf:
            - $ref: '#/components/schemas/ResultsVisibility'
            - description: Who can view results
              example: owner
        status:
          allOf:
            - $ref: '#/components/schemas/SurveyStatus'
            - description: Current survey status
              example: scheduled
        question_count:
          type: integer
          description: Number of questions in the survey
          example: 5
        track:
          allOf:
            - $ref: '#/components/schemas/TrackReference'
            - nullable: true
              description: Track reference if survey belongs to a track
        instances:
          type: array
          items:
            $ref: '#/components/schemas/SurveyInstance'
          description: Delivery instances of this survey
        created_at:
          type: string
          nullable: true
          description: When the survey was created (ISO 8601 format)
          example: '2026-01-15T10:30:00.000Z'
        updated_at:
          type: string
          nullable: true
          description: When the survey was last updated (ISO 8601 format)
          example: '2026-01-20T14:00:00.000Z'
      required:
        - object
        - id
        - title
        - description
        - mode
        - response_type
        - results_visibility
        - status
        - question_count
        - track
        - instances
        - created_at
        - updated_at
    ResponseType:
      type: string
      enum:
        - anonymous
        - user
    ResultsVisibility:
      type: string
      enum:
        - owner
        - everyone
    TrackReference:
      type: object
      properties:
        id:
          type: string
          description: Track ID
          example: wf_abc123
        name:
          type: string
          description: Track name
          example: Onboarding Program
      required:
        - id
        - name
    SurveyInstance:
      type: object
      properties:
        object:
          type: string
          enum:
            - survey_instance
          description: Object type identifier
          example: survey_instance
        id:
          type: string
          description: Unique instance identifier
          example: inst_xyz789
        scheduled_at:
          type: string
          nullable: true
          description: When the survey was sent (ISO 8601 format)
          example: '2026-01-15T10:30:00.000Z'
        end_at:
          type: string
          nullable: true
          description: When the survey closes for responses (ISO 8601 format)
          example: '2026-01-22T10:30:00.000Z'
        total_recipients:
          type: integer
          description: Number of users who received this instance
          example: 50
        total_responses:
          type: integer
          description: Number of responses received
          example: 35
        response_rate:
          type: number
          description: Percentage of recipients who responded (0-100)
          example: 70
        track_instance_id:
          type: string
          nullable: true
          description: Track instance ID if part of a track delivery
          example: wf_inst_abc123
      required:
        - object
        - id
        - scheduled_at
        - end_at
        - total_recipients
        - total_responses
        - response_rate
        - track_instance_id
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication. Generate keys in the Doozy dashboard.

````