---
title: "Update questionnaire status"
method: POST
path: "/vendor/questionnaire/status/update"
tags: ["vendors"]
---

# Update questionnaire status

`POST /vendor/questionnaire/status/update`

## Request

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

Updates the status of a questionnaire. Valid status transitions are:
To "returned" (Awaiting Review): questionnaire must be "inreview" (In Review)
To "inreview" (In Review): questionnaire must be "returned" (Awaiting Review)
To "complete" (Complete): questionnaire must be "returned" (Awaiting Review) or "inreview" (In Review)

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

## Query parameters

- `questionnaire_id` integer, required
- `new_status` string, required
- `author_email_address` string, required
- `keep_remediation_requests_open` boolean

## Response `204`

Successful response is empty

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

## Changes

- **2026-11-07** `d044bf6dc61e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/upguard/apis/upguard-cyberrisk-api/changes/vendor/questionnaire/status/update/post.md)

---

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