Comp AI Questionnaire API

Parse security questionnaires, generate answers from approved evidence, save reviewer edits, stream progress, and export completed files.

Operations 15

GET /v1/questionnaire List security questionnaires #
GET /v1/questionnaire/{id} Get security questionnaire details #
DELETE /v1/questionnaire/{id} Delete a security questionnaire #
POST /v1/questionnaire/{id}/auto-answer Generate answers for a questionnaire #
POST /v1/questionnaire/parse Parse questionnaire content #
POST /v1/questionnaire/answer-single Answer one questionnaire question #
POST /v1/questionnaire/save-answer Save questionnaire answer #
POST /v1/questionnaire/delete-answer Delete questionnaire answer #
POST /v1/questionnaire/export Export a security questionnaire #
POST /v1/questionnaire/upload-and-parse Start questionnaire parsing #
POST /v1/questionnaire/upload-and-parse/upload Upload and parse questionnaire file #
POST /v1/questionnaire/parse/upload Auto-answer uploaded questionnaire #
POST /v1/questionnaire/answers/export Export generated questionnaire answers #
POST /v1/questionnaire/answers/export/upload Upload and export generated answers #
POST /v1/questionnaire/auto-answer Stream generated questionnaire answers #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/comp-ai:comp-ai-questionnaire-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

comp-ai-questionnaire-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Comp AI Questionnaire API
  description: Compliance automation API for SOC 2, ISO 27001, HIPAA, GDPR, evidence collection, policy workflows, Trust Access, security questionnaires, integrations, cloud checks, and device compliance.
  version: '1.0'
  contact: {}
servers:
- url: https://api.trycomp.ai
  description: Production API Server
tags:
- name: Questionnaire
  description: Parse security questionnaires, generate answers from approved evidence, save reviewer edits, stream progress, and export completed files.
paths:
  /v1/questionnaire:
    get:
      operationId: QuestionnaireController_findAll_v1
      parameters: []
      responses:
        '200':
          description: List of questionnaires
      security:
      - apikey: []
      summary: List security questionnaires
      tags:
      - Questionnaire
      description: List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history.
      x-mint:
        href: /api-reference/questionnaire/list-questionnaires
        metadata:
          title: List security questionnaires | Comp AI API
          sidebarTitle: List security questionnaires
          description: List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history.
          og:title: List security questionnaires | Comp AI API
          og:description: List saved security questionnaires for an organization so teams can track customer reviews, answer status, and response history.
      x-speakeasy-mcp:
        name: questionnaire-find-all
  /v1/questionnaire/{id}:
    get:
      operationId: QuestionnaireController_findById_v1
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Questionnaire details
      security:
      - apikey: []
      summary: Get security questionnaire details
      tags:
      - Questionnaire
      description: Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client.
      x-mint:
        href: /api-reference/questionnaire/get-a-questionnaire-by-id
        metadata:
          title: Get security questionnaire details | Comp AI API
          sidebarTitle: Get security questionnaire details
          description: Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client.
          og:title: Get security questionnaire details | Comp AI API
          og:description: Retrieve one saved security questionnaire, including extracted questions, generated answers, and review context for the requesting client.
      x-speakeasy-mcp:
        name: find-by-id
    delete:
      operationId: QuestionnaireController_deleteById_v1
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Questionnaire deleted
      security:
      - apikey: []
      summary: Delete a security questionnaire
      tags:
      - Questionnaire
      description: Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained.
      x-mint:
        href: /api-reference/questionnaire/delete-a-questionnaire
        metadata:
          title: Delete a security questionnaire | Comp AI API
          sidebarTitle: Delete a security questionnaire
          description: Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained.
          og:title: Delete a security questionnaire | Comp AI API
          og:description: Delete a saved security questionnaire when a customer review or vendor assessment no longer needs to be retained.
      x-speakeasy-mcp:
        name: delete-by-id
  /v1/questionnaire/{id}/auto-answer:
    post:
      description: Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until answeredQuestions equals totalQuestions, then read the answers from its questions.
      operationId: QuestionnaireController_triggerAutoAnswer_v1
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerAutoAnswerResponseDto'
      security:
      - apikey: []
      summary: Generate answers for a questionnaire
      tags:
      - Questionnaire
      x-speakeasy-mcp:
        name: generate-questionnaire-answers
      x-mint:
        metadata:
          title: Generate answers for a questionnaire | Comp AI API
          sidebarTitle: Generate answers for a questionnaire
          description: Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until.
          og:title: Generate answers for a questionnaire | Comp AI API
          og:description: Starts background answer generation for an already-parsed questionnaire and returns a run handle immediately. Poll GET /v1/questionnaire/:id until.
  /v1/questionnaire/parse:
    post:
      operationId: QuestionnaireController_parseQuestionnaire_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParseQuestionnaireDto'
      responses:
        '200':
          description: Parsed questionnaire content
          content:
            application/json:
              schema:
                type: object
      security:
      - apikey: []
      summary: Parse questionnaire content
      tags:
      - Questionnaire
      description: Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers.
      x-mint:
        href: /api-reference/questionnaire/parse-an-uploaded-questionnaire-file
        metadata:
          title: Parse questionnaire content | Comp AI API
          sidebarTitle: Parse questionnaire content
          description: Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers.
          og:title: Parse questionnaire content | Comp AI API
          og:description: Parse questionnaire content from a submitted payload so teams can extract security questions before generating or reviewing answers.
      x-speakeasy-mcp:
        name: parse-questionnaire
  /v1/questionnaire/answer-single:
    post:
      description: Generate an answer for one security questionnaire item using the organization evidence library and return source references for review.
      operationId: QuestionnaireController_answerSingleQuestion_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnswerSingleQuestionDto'
      responses:
        '200':
          description: Generated single answer result
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      questionIndex:
                        type: number
                      question:
                        type: string
                      answer:
                        type:
                        - string
                        - 'null'
                      sources:
                        type: array
                        items:
                          type: object
                      error:
                        type:
                        - string
                        - 'null'
      security:
      - apikey: []
      summary: Answer one questionnaire question
      tags:
      - Questionnaire
      x-mint:
        href: /api-reference/questionnaire/answer-a-single-questionnaire-question
        metadata:
          title: Answer one questionnaire question | Comp AI API
          sidebarTitle: Answer one questionnaire question
          description: Generate an answer for one security questionnaire item using the organization evidence library and return source references for review.
          og:title: Answer one questionnaire question | Comp AI API
          og:description: Generate an answer for one security questionnaire item using the organization evidence library and return source references for review.
      x-speakeasy-mcp:
        name: answer-single-question
  /v1/questionnaire/save-answer:
    post:
      operationId: QuestionnaireController_saveAnswer_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SaveAnswerDto'
      responses:
        '200':
          description: Save manual or generated answer
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  error:
                    type:
                    - string
                    - 'null'
      security:
      - apikey: []
      summary: Save questionnaire answer
      tags:
      - Questionnaire
      description: Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking.
      x-mint:
        href: /api-reference/questionnaire/save-a-questionnaire-answer
        metadata:
          title: Save questionnaire answer | Comp AI API
          sidebarTitle: Save questionnaire answer
          description: Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking.
          og:title: Save questionnaire answer | Comp AI API
          og:description: Save a manual or AI-generated security questionnaire answer for later review, export, and audit tracking.
      x-speakeasy-mcp:
        name: save-answer
  /v1/questionnaire/delete-answer:
    post:
      operationId: QuestionnaireController_deleteAnswer_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteAnswerDto'
      responses:
        '200':
          description: Delete questionnaire answer
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  error:
                    type:
                    - string
                    - 'null'
      security:
      - apikey: []
      summary: Delete questionnaire answer
      tags:
      - Questionnaire
      description: Delete a stored questionnaire answer when it should be removed from the active response set.
      x-mint:
        href: /api-reference/questionnaire/delete-a-questionnaire-answer
        metadata:
          title: Delete questionnaire answer | Comp AI API
          sidebarTitle: Delete questionnaire answer
          description: Delete a stored questionnaire answer when it should be removed from the active response set.
          og:title: Delete questionnaire answer | Comp AI API
          og:description: Delete a stored questionnaire answer when it should be removed from the active response set.
      x-speakeasy-mcp:
        name: delete-answer
  /v1/questionnaire/export:
    post:
      operationId: QuestionnaireController_exportById_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportByIdDto'
      responses:
        '200':
          description: Export questionnaire by ID to specified format
      security:
      - apikey: []
      summary: Export a security questionnaire
      tags:
      - Questionnaire
      description: Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews.
      x-mint:
        href: /api-reference/questionnaire/export-a-questionnaire
        metadata:
          title: Export a security questionnaire | Comp AI API
          sidebarTitle: Export a security questionnaire
          description: Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews.
          og:title: Export a security questionnaire | Comp AI API
          og:description: Export a saved security questionnaire response package as PDF, CSV, or XLSX for customer and vendor security reviews.
      x-speakeasy-mcp:
        name: export-by-id
  /v1/questionnaire/upload-and-parse:
    post:
      operationId: QuestionnaireController_uploadAndParse_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadAndParseDto'
      responses:
        '200':
          description: Upload file and trigger async parsing. Returns runId for realtime tracking.
          content:
            application/json:
              schema:
                type: object
                properties:
                  runId:
                    type: string
                  publicAccessToken:
                    type: string
      security:
      - apikey: []
      summary: Start questionnaire parsing
      tags:
      - Questionnaire
      description: Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking.
      x-mint:
        href: /api-reference/questionnaire/upload-and-parse-a-questionnaire-file
        metadata:
          title: Start questionnaire parsing | Comp AI API
          sidebarTitle: Start questionnaire parsing
          description: Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking.
          og:title: Start questionnaire parsing | Comp AI API
          og:description: Upload a questionnaire payload and start asynchronous parsing, returning a run ID for real-time progress tracking.
      x-speakeasy-mcp:
        name: upload-and-parse
  /v1/questionnaire/upload-and-parse/upload:
    post:
      operationId: QuestionnaireController_uploadAndParseUpload_v1
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Questionnaire file (PDF, image, XLSX, CSV, TXT)
                organizationId:
                  type: string
                  description: Organization ID
                source:
                  type: string
                  enum:
                  - internal
                  - external
                  default: internal
                  description: Source of the upload
              required:
              - file
              - organizationId
      responses:
        '200':
          description: Upload file, parse questions (no answers), save to DB, return questionnaireId
          content:
            application/json:
              schema:
                type: object
                properties:
                  questionnaireId:
                    type: string
                  totalQuestions:
                    type: number
      security:
      - apikey: []
      summary: Upload and parse questionnaire file
      tags:
      - Questionnaire
      description: Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count.
      x-mint:
        href: /api-reference/questionnaire/upload-a-questionnaire-file-and-parse-its-questions
        metadata:
          title: Upload and parse questionnaire file | Comp AI API
          sidebarTitle: Upload and parse questionnaire file
          description: Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count.
          og:title: Upload and parse questionnaire file | Comp AI API
          og:description: Upload a security questionnaire file, extract questions, save the parsed questionnaire, and return its identifier and question count.
      x-speakeasy-mcp:
        name: upload-and-parse-upload
  /v1/questionnaire/parse/upload:
    post:
      operationId: QuestionnaireController_parseQuestionnaireUpload_v1
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Questionnaire file (PDF, image, XLSX, CSV, TXT)
                organizationId:
                  type: string
                  description: Organization to use for generating answers
                format:
                  type: string
                  enum:
                  - pdf
                  - csv
                  - xlsx
                  default: xlsx
                  description: Output format (defaults to XLSX)
                source:
                  type: string
                  enum:
                  - internal
                  - external
                  default: internal
                  description: Indicates if the request originated from our UI (internal) or trust portal (external).
              required:
              - file
              - organizationId
      responses:
        '201':
          description: ''
      security:
      - apikey: []
      summary: Auto-answer uploaded questionnaire
      tags:
      - Questionnaire
      description: Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format.
      x-mint:
        href: /api-reference/questionnaire/upload-a-questionnaire-file-and-auto-answer-with-export
        metadata:
          title: Auto-answer uploaded questionnaire | Comp AI API
          sidebarTitle: Auto-answer uploaded questionnaire
          description: Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format.
          og:title: Auto-answer uploaded questionnaire | Comp AI API
          og:description: Upload a questionnaire file and generate answer exports from approved organization evidence in PDF, CSV, or XLSX format.
      x-speakeasy-mcp:
        name: parse-questionnaire-upload
  /v1/questionnaire/answers/export:
    post:
      operationId: QuestionnaireController_autoAnswerAndExport_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportQuestionnaireDto'
      responses:
        '201':
          description: ''
      security:
      - apikey: []
      summary: Export generated questionnaire answers
      tags:
      - Questionnaire
      description: Generate and export questionnaire answers from a submitted payload using approved organization evidence.
      x-mint:
        href: /api-reference/questionnaire/export-questionnaire-answers
        metadata:
          title: Export generated questionnaire answers | Comp AI API
          sidebarTitle: Export generated questionnaire answers
          description: Generate and export questionnaire answers from a submitted payload using approved organization evidence.
          og:title: Export generated questionnaire answers | Comp AI API
          og:description: Generate and export questionnaire answers from a submitted payload using approved organization evidence.
      x-speakeasy-mcp:
        name: auto-answer-and-export
  /v1/questionnaire/answers/export/upload:
    post:
      operationId: QuestionnaireController_autoAnswerAndExportUpload_v1
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: Questionnaire file (PDF, image, XLSX, CSV, TXT)
                organizationId:
                  type: string
                  description: Organization to use for answer generation
                format:
                  type: string
                  enum:
                  - pdf
                  - csv
                  - xlsx
                  default: xlsx
                  description: Output format (defaults to XLSX)
              required:
              - file
              - organizationId
      responses:
        '201':
          description: ''
      security:
      - apikey: []
      summary: Upload and export generated answers
      tags:
      - Questionnaire
      description: Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format.
      x-mint:
        href: /api-reference/questionnaire/upload-a-questionnaire-file-and-export-auto-generated-answers
        metadata:
          title: Upload and export generated answers | Comp AI API
          sidebarTitle: Upload and export generated answers
          description: Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format.
          og:title: Upload and export generated answers | Comp AI API
          og:description: Upload a questionnaire file and return generated answer exports in PDF, CSV, or XLSX format.
      x-speakeasy-mcp:
        name: auto-answer-and-export-upload
  /v1/questionnaire/auto-answer:
    post:
      operationId: QuestionnaireController_autoAnswer_v1
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutoAnswerDto'
      responses:
        '201':
          description: ''
      security:
      - apikey: []
      summary: Stream generated questionnaire answers
      tags:
      - Questionnaire
      description: Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced.
      x-mint:
        href: /api-reference/questionnaire/auto-answer-a-questionnaire
        metadata:
          title: Stream generated questionnaire answers | Comp AI API
          sidebarTitle: Stream generated questionnaire answers
          description: Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced.
          og:title: Stream generated questionnaire answers | Comp AI API
          og:description: Stream generated questionnaire answers over server-sent events so clients can show progress while answers are produced.
      x-speakeasy-mcp:
        name: auto-answer
components:
  schemas:
    SaveAnswerDto:
      type: object
      properties: {}
    UploadAndParseDto:
      type: object
      properties:
        organizationId:
          type: string
          description: Organization ID (set automatically from auth context).
          example: org_abc123
        fileName:
          type: string
          description: Name of the questionnaire file.
          example: vendor-security-questionnaire.xlsx
        fileType:
          type: string
          description: MIME type of the file (PDF, image, XLSX, CSV, TXT).
          example: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
        fileData:
          type: string
          description: Base64-encoded file contents. For the web UI / direct callers. AI/MCP clients should instead upload via /v1/uploads/presign and pass `s3Key` — base64 through an LLM is impractically slow. Provide exactly one of fileData or s3Key.
        s3Key:
          type: string
          description: Key of a file already uploaded via /v1/uploads/presign (purpose=questionnaire). The server fetches the bytes from storage — no base64 needed. Provide exactly one of fileData or s3Key.
          example: org_abc/uploads/questionnaire/1735000000-questionnaire.xlsx
      required:
      - organizationId
      - fileName
      - fileType
    DeleteAnswerDto:
      type: object
      properties: {}
    TriggerAutoAnswerResponseDto:
      type: object
      properties:
        questionnaireId:
          type: string
          description: The questionnaire whose answers are being generated.
          example: qst_6a179d26c4ad2c1c816ee16d
        runId:
          type: string
          description: Background run identifier for the generation job (Trigger.dev run id).
          example: run_cmpotsz153eac0ultc1ya87f5
        publicAccessToken:
          type: string
          description: Token for tracking the run via Trigger.dev realtime. Optional — MCP/agent clients should poll GET /v1/questionnaire/:id instead.
          example: pat_...
        status:
          type: string
          description: Always 'generating' on a successful trigger. Poll GET /v1/questionnaire/:id; answers are ready once answeredQuestions equals totalQuestions.
          example: generating
        totalQuestions:
          type: number
          description: Total number of questions in the questionnaire.
          example: 23
        answeredQuestions:
          type: number
          description: Questions already answered at the moment generation was triggered (answers without a value are (re)generated).
          example: 0
        message:
          type: string
          description: Human-readable summary of what to do next.
          example: Generating answers for 23 questions. Poll GET /v1/questionnaire/qst_... until answeredQuestions reaches totalQuestions.
      required:
      - questionnaireId
      - runId
      - publicAccessToken
      - status
      - totalQuestions
      - answeredQuestions
      - message
    ExportQuestionnaireDto:
      type: object
      properties: {}
    AnswerSingleQuestionDto:
      type: object
      properties:
        question:
          type: string
          description: Security questionnaire question to answer.
          example: Do you encrypt customer data at rest?
        questionIndex:
          type: number
          description: Zero-based index of this question in the questionnaire or page batch.
          example: 0
          minimum: 0
        totalQuestions:
          type: number
          description: Total number of questions in the current questionnaire or page batch.
          example: 12
          minimum: 1
        organizationId:
          type: string
          description: Organization ID for validation. The API uses the authenticated active organization and overwrites this value server-side.
          example: org_abc123
        questionnaireId:
          type: string
          description: Optional questionnaire record to save the generated answer into. Omit for webpage-only answer generation.
          example: qst_abc123
      required:
      - question
      - questionIndex
      - totalQuestions
      - organizationId
    AutoAnswerDto:
      type: object
      properties: {}
    ParseQuestionnaireDto:
      type: object
      properties: {}
    ExportByIdDto:
      type: object
      properties: {}
  securitySchemes:
    apikey:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication
x-speakeasy-timeout: 120000