---
title: "Get questionnaire metadata"
method: GET
path: "/vendor/questionnaire"
tags: ["vendors"]
---

# Get questionnaire metadata

`GET /vendor/questionnaire`

## Request

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

Returns metadata about a specific questionnaire including recipients, completion status, and score.
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 metadata response

- GetQuestionnaireResponsePayload
  - `answered_at` string, date-time: When the questionnaire was answered/returned
  - `answered_by` QuestionnaireSender: QuestionnaireSender represents the sender of a questionnaire
    - `email` string: Email address of the sender
    - `name` string: Full name of the sender
  - `due_date` string, date-time: The datetime that the questionnaire is due to be completed.
  - `id` integer: The ID of the questionnaire
  - `in_remediation` boolean: Flag indicating whether there are risks under remediation in this questionnaire
  - `percent_completed` number, double: Percentage of questions answered (0-100)
  - `questionnaire_name` string: The name of the questionnaire
  - `questionnaire_type_id` integer: The ID of the questionnaire type/template
  - `recipients` QuestionnaireRecipient[]: List of questionnaire recipients
    - `email` string: Email address of the recipient
    - `is_pending_invite` boolean: If the recpient is a pending invite
    - `job_title` string: Job title of the recipient
    - `name` string: Full name of the recipient
  - `score` integer: Risk score for the questionnaire out of 950 (if enabled and available)
  - `sent_at` string, date-time: Datetime when the questionnaire was sent
  - `sent_by` QuestionnaireSender: QuestionnaireSender represents the sender of a questionnaire
    - `email` string: Email address of the sender
    - `name` string: Full name of the sender
  - `status` 'sent' | 'opened' | 'returned' | 'inreview' | 'complete' | 'cancelled' | 'published': The current status of the questionnaire
  - `type_name` string: The name of the questionnaire type

## 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)
