---
title: "Get questionnaire questions and answers"
method: GET
path: "/vendor/questionnaire/answers"
tags: ["vendors"]
---

# Get questionnaire questions and answers

`GET /vendor/questionnaire/answers`

## Request

- Base URL: `https://cyber-risk.upguard.com/api/public`
- URL: `https://cyber-risk.upguard.com/api/public/vendor/questionnaire/answers`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/upguard/apis/upguard-cyberrisk-api/docs/vendor/questionnaire/answers/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a list of all visible questions in the questionnaire with their answers.
Note: This endpoint only supports private questionnaires, not public questionnaires.

Required API key permissions: `VendorRisk` (select when creating API key in Account Settings)

## Query parameters

- `id` integer, required

## Response `200`

Questionnaire answers response

- GetQuestionnaireAnswersResponsePayload
  - `questions` Question[]: The list of questions with their answers
    - `answered` boolean: Whether the question has been answered (omitted in template mode)
    - `file_upload_answer` FileUploadAnswer: FileUploadAnswer represents a file upload answer
      - `filename` string: The filename of the uploaded file
    - `multiple_choice_answer` MultipleChoiceAnswer: MultipleChoiceAnswer represents a multiple choice answer
      - `selected_options` string[]: The texts of the checked options
    - `options` ChoiceOption[]: Available options for choice questions (empty for non-choice questions)
      - `checked` boolean: Whether this option is checked (for multiple choice questions)
      - `id` string: Unique identifier for the option
      - `selected` boolean: Whether this option is selected (for single choice questions)
      - `text` string: The text label for the option
    - `question_id` string: Unique identifier for the question
    - `question_number` string: The question number (e.g., "1.2.3")
    - `question_text` string: The text of the question
    - `question_type` 'text' | 'single_choice' | 'multiple_choice' | 'file_upload' | 'risk': The type of question
    - `required` boolean: Whether the question is required
    - `risk_answer` RiskAnswer: RiskAnswer represents a risk answer
      - `compensating_control` string: Compensating controls that have been implemented to address this risk
      - `severity` 'info' | 'low' | 'medium' | 'high' | 'critical': The severity level of the risk
    - `single_choice_answer` SingleChoiceAnswer: SingleChoiceAnswer represents a single choice answer
      - `comment` string: The vendor's comment on their answer, for questions that allow a comment. Omitted when there is no comment.
      - `selected_option_id` string: The ID of the selected option
      - `selected_option_text` string: The text of the selected option
    - `text_answer` TextAnswer: TextAnswer represents a text answer
      - `value` string: The text value of the answer

## Other responses

- `403`: Account does not have access to requested entities
- `404`: The vendor was not found.
- `422`: An invalid parameter was supplied or a mandatory parameter was missing
- `429`: Too many requests have been made to this endpoint.
- `500`: An internal system error occurred

---

[API](https://skmtc.dev/upguard/apis/upguard-cyberrisk-api.md) - [All operations](https://skmtc.dev/upguard/apis/upguard-cyberrisk-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upguard/apis/upguard-cyberrisk-api/revisions/d044bf6dc61e?raw)
