---
title: "Update Packet Recipients"
method: PUT
path: "/evidence-packet-drafts/{evidence_packet_id}/recipients"
tags: ["evidence-packet-drafts"]
---

# Update Packet Recipients

`PUT /evidence-packet-drafts/{evidence_packet_id}/recipients`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/evidence-packet-drafts/{evidence_packet_id}/recipients`
- Auth: none declared

Reconcile the recipients on an evidence packet to the provided set.

Editable while DRAFT, PENDING, or IN_PROGRESS. Adding a recipient to an
already-sent packet emails just that new person.

## Path parameters

- `evidence_packet_id` string, uuid, required

## Request body

- UpdateRecipientsBody: Full desired recipient list for a packet; replaces the existing set.
  - `recipients` EvidencePacketRecipientInput[], required
    - `user_id` string, uuid, nullable
    - `email` string, nullable
    - `first_name` string, nullable
    - `last_name` string, nullable

## Response `200`

Successful Response

- EvidencePacketDetailResponse: Detailed response model for evidence packet, used in the collection flow. This includes all the information needed to render the evidence collection UI. Document requests are sorted by index and each row encodes whether the document is required or suggested, and whether it has been declined (reason is non-null).
  - `request_id` string, uuid, required
  - `requesting_company_id` string, uuid, required
  - `requesting_company_name` string, nullable
  - `requestee_company_id` string, uuid, required
  - `requestee_vendor_name` string, nullable
  - `initiated_by_user_id` string, uuid, nullable
  - `initiated_by_user_name` string, nullable
  - `requestee_user_email` string, nullable
  - `requestee_user_name` string, nullable
  - `recipients` EvidencePacketRecipientResponse[]
    - `user_id` string, uuid, required
    - `email` string, required
    - `name` string, required
  - `document_requests` BackendModelsPydanticApiResponsesEvidencePacketsDocumentRequestResponse[]
    - `id` string, uuid, required
    - `slug` string, required
    - `label` string, required
    - `required` boolean, required
    - `decline_reason` string, nullable, required
    - `index` integer, required
  - `instructions` string, nullable
  - `upload_step_instructions` string, nullable
  - `questions_step_instructions` string, nullable
  - `submit_step_instructions` string, nullable
  - `require_decline_note` boolean
  - `due_date` string, date-time, nullable
  - `overdue_last_notified_at` string, date-time, nullable
  - `status` 'draft' | 'pending' | 'in_progress' | 'completed' | 'cancelled', required: Status of an evidence packet request.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `uploaded_files` EvidencePacketFileResponse[]
    - `id` string, uuid, required
    - `upload_id` string, uuid, required
    - `file_id` string, uuid, required
    - `filename` string, nullable, required
    - `document_request_id` string, uuid, nullable, required
    - `requirement_id` string, uuid, nullable
    - `file_type_slug` string, nullable
    - `status` string, required
    - `created_at` string, date-time, nullable
  - `requirements` EvidenceRequirementResponse[]
    - `id` string, uuid, required
    - `evidence_packet_contents_id` string, uuid, nullable, required
    - `template_id` string, uuid, nullable, required
    - `template_name` string, nullable, required
    - `question_id` string, uuid, required
    - `question_index` integer, required
    - `question` union, required
      - FreeResponseQuestion
        - `question` string, required
        - `additional_context` string, nullable
        - `score_compliance` boolean
        - `question_id` string, required
        - `type` 'free'
      - MultipleChoiceQuestion
        - `question` string, required
        - `options` string[], required
        - `additional_context` string, nullable
        - `score_compliance` boolean
        - `question_id` string, required
        - `type` 'multiple'
      - ChooseOneQuestion
        - `question` string, required
        - `options` string[], required
        - `additional_context` string, nullable
        - `score_compliance` boolean
        - `question_id` string, required
        - `type` 'one'
    - `answer` union, required
      - QuestionnaireAnswerChoiceAnswer
        - `question` string, required
        - `options` string[], nullable
        - `type` 'free' | 'one' | 'multiple', required
        - `answer` ChoiceAnswerOutput[], required
          - `choice` string, required
          - `explanation` string
          - `citations` BackendModelsPydanticDraftingCitation[], required
            - `type` string, required
            - `cited_text` string, required
            - `document_index` integer, required
            - `document_title` string, required
            - `end_page_number` integer, required
            - `start_page_number` integer, required
          - `conflicting` boolean
        - `compliant` 'compliant' | 'non_compliant' | 'partially_compliant' | 'not_applicable'
        - `vendor_answer` QuestionnaireVendorAnswer
          - `answer` string
          - `choices` string[], nullable
          - `notes` string, nullable
        - `label` string, nullable
      - QuestionnaireAnswerFreeAnswer
        - `question` string, required
        - `options` string[], nullable
        - `type` 'free' | 'one' | 'multiple', required
        - `answer` FreeAnswerOutput[], required
          - `answer` string, required
          - `citations` BackendModelsPydanticDraftingCitation[], required
            - `type` string, required
            - `cited_text` string, required
            - `document_index` integer, required
            - `document_title` string, required
            - `end_page_number` integer, required
            - `start_page_number` integer, required
        - `compliant` 'compliant' | 'non_compliant' | 'partially_compliant' | 'not_applicable'
        - `vendor_answer` QuestionnaireVendorAnswer
          - `answer` string
          - `choices` string[], nullable
          - `notes` string, nullable
        - `label` string, nullable
    - `compliance` 'compliant' | 'non_compliant' | 'partially_compliant' | 'no_evidence' | 'not_applicable', required: Compliance status for an evidence requirement.
    - `check_label` string, nullable
    - `ai_check_label` string, nullable
    - `classified_at` string, date-time, nullable
    - `note` QuestionnaireVendorAnswer, required
      - `answer` string
      - `choices` string[], nullable
      - `notes` string, nullable
    - `reviewer_note` string, nullable
    - `approval_status` 'pending' | 'approved' | 'issue_created': Approval status for an evidence requirement check.
    - `issue_id` string, uuid, nullable
    - `collaborative_task_id` string, uuid, nullable
    - `vendor_response_required` boolean
    - `closed_at` string, date-time, nullable
    - `closed_by` RequirementCloser: The user who closed out a requirement (approved it or created an issue).
      - `user_id` string, uuid, required
      - `name` string, required
      - `email` string, required
  - `sections` EvidencePacketSectionResponse[]
    - `id` string, uuid, required
    - `risk_area_name` string, required
    - `documents_requested` string[]
    - `rubric_file_id` string, uuid, nullable
    - `source_block_id` string, uuid, nullable
    - `vendor_response_required` boolean
    - `template_requirements` TemplateRequirementGroup[]
      - `template_id` string, uuid, required
      - `template_name` string, required
      - `questions` TemplateSectionQuestion[]
        - `question_id` string, required
        - `question` union, required
          - FreeResponseQuestion
            - `question` string, required
            - `additional_context` string, nullable
            - `score_compliance` boolean
            - `question_id` string, required
            - `type` 'free'
          - MultipleChoiceQuestion
            - `question` string, required
            - `options` string[], required
            - `additional_context` string, nullable
            - `score_compliance` boolean
            - `question_id` string, required
            - `type` 'multiple'
          - ChooseOneQuestion
            - `question` string, required
            - `options` string[], required
            - `additional_context` string, nullable
            - `score_compliance` boolean
            - `question_id` string, required
            - `type` 'one'
  - `control_strength_labels` ControlStrengthLabel[]
    - `label` string, required
    - `description` string, required
    - `hex_color` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/fastapi/revisions/8587332d5e43?raw)
