---
title: "Add recipients to a questionnaire"
method: POST
path: "/vendor/questionnaire/recipients/add"
tags: ["vendors"]
---

# Add recipients to a questionnaire

`POST /vendor/questionnaire/recipients/add`

## Request

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

Adds one or more recipients to a questionnaire or onboarding request.
Recipients are vendor-side users who will receive an invitation to answer the questionnaire.
If a recipient is already on the questionnaire, they are skipped (idempotent).

To add organization-side collaborators who review (but do not answer) the questionnaire,
use POST /vendor/questionnaire/collaborators/add instead.

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

## Request body

- AddQuestionnaireRecipientsRequest: AddQuestionnaireRecipientsRequest is the request body for adding recipients to a questionnaire
  - `message` string: A custom message to include in the invitation email sent to recipients. If not provided, the organization's default questionnaire invitation message will be used.
  - `questionnaire_id` integer, required: The ID of the questionnaire to add recipients to. This is the same ID returned when creating a questionnaire or onboarding request. Use GET /vendor/questionnaires/v2 to list questionnaires for a vendor, or GET /onboarding_request/list to list onboarding requests.
  - `recipients` AddQuestionnaireRecipientInput[], required: The list of recipients to add to the questionnaire (max 50). Each recipient will receive an invitation email to answer the questionnaire. If a recipient is already on the questionnaire, they are silently skipped.
    - `email_address` string, required: The email address of the recipient.
    - `first_name` string: The first name of the recipient. Used to personalize the invitation email.

## Response `200`

Recipients added successfully

- AddQuestionnaireRecipientsResponsePayload: AddQuestionnaireRecipientsResponsePayload is the response body for adding recipients to a questionnaire
  - `results` object: A map of recipient email addresses to their result status. Possible values: "success": the recipient was successfully added to the questionnaire. "already_exists": the recipient is already on the questionnaire (no action taken). "inactive": the email address has been marked as inactive due to previous delivery failures. "failed": the recipient could not be added due to an error sending the invitation.

## Other responses

- `403`: Account does not have access to requested entities
- `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/recipients/add/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)
