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

# List questionnaires

> List questionnaires with filtering and pagination.



## OpenAPI

````yaml /reference/manage-vanta.json get /customer-trust/questionnaires
openapi: 3.0.0
info:
  title: Manage Vanta
  version: 1.0.0
  description: >-
    The REST API lets customers query and mutate Vanta's data. Use this API to
    automate bulk actions, query data for custom workflows and dashboards, and
    bolster your security operations


    **Note for Vanta Gov (FedRAMP) customers:** Select `Vanta Gov (FedRAMP)`
    from the server dropdown to issue requests against
    `https://api.vanta-gov.com`. The OAuth token URL shown below defaults to the
    commercial host — replace it with `https://api.vanta-gov.com/oauth/token`.
  termsOfService: https://www.vanta.com/terms
  license:
    name: UNLICENSED
  contact:
    name: API Support
    url: https://help.vanta.com/
    email: support@vanta.com
servers:
  - url: https://api.vanta.com/v1
    description: Vanta (Commercial)
  - url: https://api.vanta-gov.com/v1
    description: Vanta Gov (FedRAMP)
security: []
paths:
  /customer-trust/questionnaires:
    get:
      tags:
        - Customer Trust
      summary: List questionnaires
      description: List questionnaires with filtering and pagination.
      operationId: ListQuestionnaires
      parameters:
        - in: query
          name: pageSize
          required: false
          schema:
            $ref: '#/components/schemas/PageSize'
        - in: query
          name: pageCursor
          required: false
          schema:
            $ref: '#/components/schemas/PageCursor'
        - description: >-
            Filter questionnaires by display name (case-insensitive, partial
            match).
          in: query
          name: q
          required: false
          schema:
            type: string
        - description: Filter questionnaires matching any of the provided statuses.
          in: query
          name: statusMatchesAny
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/QuestionnaireStatus'
        - description: Filter questionnaires matching any of the provided types.
          in: query
          name: typeMatchesAny
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CustomerTrustQuestionnaireType'
        - description: Filter to questionnaires created after this date (ISO 8601 string).
          in: query
          name: createdAfter
          required: false
          schema:
            type: string
        - description: Filter to questionnaires created before this date (ISO 8601 string).
          in: query
          name: createdBefore
          required: false
          schema:
            type: string
        - description: Filter to questionnaires owned by any of the provided user IDs.
          in: query
          name: ownerIdMatchesAny
          required: false
          schema:
            items:
              type: string
            type: array
        - description: >-
            Filter to questionnaires with an approver matching any of the
            provided user IDs.
          in: query
          name: approverIdMatchesAny
          required: false
          schema:
            items:
              type: string
            type: array
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PaginatedResponse_CustomerTrustQuestionnaire_
              examples:
                Example 1:
                  value:
                    results:
                      data:
                        - id: 507f1f77bcf86cd799439011
                          displayName: SOC 2 Security Questionnaire
                          type: SPREADSHEET
                          status: IN_PROGRESS
                          statusLog: []
                          dueDate: '2024-12-31T00:00:00.000Z'
                          metadata:
                            - key: priority
                              value: high
                          tagAndCategoryIds: []
                          createdDate: '2024-12-01T00:00:00.000Z'
                          updatedDate: '2024-12-14T00:00:00.000Z'
                      pageInfo:
                        hasNextPage: false
                        hasPreviousPage: false
                        startCursor: 507f1f77bcf86cd799439011
                        endCursor: 507f1f77bcf86cd799439011
      security:
        - bearerAuth: []
components:
  schemas:
    PageSize:
      type: integer
      format: int32
      default: 10
      description: >-
        Controls the maximum number of items returned in one response from the
        API.
      minimum: 1
      maximum: 100
    PageCursor:
      type: string
      description: >-
        A marker or pointer, telling the API where to start fetching items for
        the subsequent page in a paginated dataset.

        Note that the requested page will not include the item that corresponds
        to this cursor but will start from the one immediately

        after this cursor.
    QuestionnaireStatus:
      type: string
      enum:
        - APPROVED
        - IN_PROGRESS
        - IN_REVIEW
        - READY_FOR_REVIEW
        - WAITING_ON_ANSWERS
        - ON_HOLD
        - NO_LONGER_NEEDED
        - COMPLETE
        - ERROR
        - EXTRACTING_QUESTIONS
        - QUEUED_FOR_EXTRACTION
        - PROCESSING
        - QUEUED_FOR_PROCESSING
        - WAITING_ON_COLUMN_SELECTION
        - WAITING_ON_COLUMN_APPROVAL
        - QUEUED_FOR_COLUMN_DETECTION
        - DETECTING_COLUMNS
    CustomerTrustQuestionnaireType:
      type: string
      enum:
        - SPREADSHEET
        - WEBSITE
        - DOCUMENT
    PaginatedResponse_CustomerTrustQuestionnaire_:
      properties:
        results:
          properties:
            data:
              items:
                $ref: '#/components/schemas/CustomerTrustQuestionnaire'
              type: array
            pageInfo:
              $ref: '#/components/schemas/PageInfo'
          required:
            - data
            - pageInfo
          type: object
      required:
        - results
      type: object
      additionalProperties: false
    CustomerTrustQuestionnaire:
      properties:
        id:
          type: string
        displayName:
          type: string
        url:
          type: string
        type:
          $ref: '#/components/schemas/CustomerTrustQuestionnaireType'
        status:
          $ref: '#/components/schemas/QuestionnaireStatus'
        statusLog:
          items:
            $ref: '#/components/schemas/QuestionnaireStatusChangeEntry'
          type: array
          description: |-
            The status change history log for the questionnaire.
            Entries are ordered by the most recent status change first.
        ownerAssignment:
          $ref: '#/components/schemas/ActorAssignment'
          description: The owner assignment in actor form (User or Team).
        approverAssignment:
          $ref: '#/components/schemas/ActorAssignment'
          description: The approver assignment in actor form (User or Team).
        customerTrustAccountId:
          type: string
        dueDate:
          type: string
          format: date-time
        metadata:
          items:
            properties:
              value:
                type: string
              key:
                type: string
            required:
              - value
              - key
            type: object
          type: array
        tagAndCategoryIds:
          items:
            $ref: '#/components/schemas/TagInput'
          type: array
          description: >-
            Tags assigned to this questionnaire. Each entry contains a
            categoryId and tagId.
        createdDate:
          type: string
          format: date-time
        updatedDate:
          type: string
          format: date-time
        completedDate:
          type: string
          format: date-time
      required:
        - id
        - displayName
        - type
        - status
        - statusLog
        - tagAndCategoryIds
        - createdDate
        - updatedDate
      type: object
      additionalProperties: false
    PageInfo:
      description: Provides information about the pagination of a dataset.
      properties:
        endCursor:
          type: string
          nullable: true
          description: >-
            The cursor that points to the end of the current page, or null if
            there is no such cursor.
        hasNextPage:
          type: boolean
          description: Indicates if there is another page after the current page.
        hasPreviousPage:
          type: boolean
          description: Indicates if there is a page before the current page.
        startCursor:
          type: string
          nullable: true
          description: >-
            The cursor that points to the start of the current page, or null if
            there is no such cursor.
      required:
        - endCursor
        - hasNextPage
        - hasPreviousPage
        - startCursor
      type: object
      additionalProperties: false
    QuestionnaireStatusChangeEntry:
      properties:
        updatedBy:
          $ref: '#/components/schemas/QuestionnaireUser'
          description: The user who made the status change
        updatedAt:
          type: string
          format: date-time
          description: The date and time when the status was changed
        status:
          $ref: '#/components/schemas/QuestionnaireStatus'
          description: The new status of the questionnaire
        message:
          type: string
          nullable: true
          description: An optional message associated with the status change
      required:
        - updatedBy
        - updatedAt
        - status
        - message
      type: object
      additionalProperties: false
    ActorAssignment:
      properties:
        type:
          type: string
          enum:
            - User
            - Team
        id:
          type: string
        displayName:
          type: string
          nullable: true
      required:
        - type
        - id
        - displayName
      type: object
      additionalProperties: false
    TagInput:
      properties:
        categoryId:
          type: string
        tagId:
          type: string
      required:
        - categoryId
        - tagId
      type: object
      additionalProperties: false
    QuestionnaireUser:
      properties:
        id:
          type: string
        displayName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
      required:
        - id
        - displayName
        - email
      type: object
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````