> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anivahealth.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add Panels

> Add catalog panels to a home kit order

Add one or more catalog panels to an existing home kit order. This endpoint is idempotent — already-attached panels are kept. You can call it multiple times to build up the panel selection.

<Note>Requires `home_kit_orders_manage` scope.</Note>

<Warning>
  Panels can only be added while the kit is `pending`. Once the kit is `dispatched` its composition
  is locked and this call returns `409 Conflict` — the physical kit ships with a fixed number of
  tubes derived from the selected panels and biomarkers, so its contents can't change after it has
  been sent. `activated` and `cancelled` kits are likewise locked. If you need to change the tests
  on a locked kit, reach out to Aniva directly — it's usually still possible, and we'll make the
  change for you to keep the kit's contents consistent.
</Warning>

## Request

### Path parameters

<ParamField path="id" type="string" required>
  Unique identifier (UUID) of the home kit order to add panels to.
</ParamField>

### Body parameters

<ParamField body="panel_ids" type="string[]" required>
  Array of panel UUIDs to add to the home kit order. Must contain at least one item.
</ParamField>

## Response

On success, the API returns `200 OK` confirming the panels have been added.

<ResponseField name="success" type="boolean">
  `true` when the panels have been successfully added to the home kit order.
</ResponseField>

## Error responses

| Status | Description                                                                                                                              |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `400`  | Validation error — e.g., `panel_ids` is empty or contains an invalid UUID.                                                               |
| `403`  | Forbidden — your API key does not have access to this operation.                                                                         |
| `404`  | Home kit order or one or more panels not found.                                                                                          |
| `409`  | Conflict — the kit is `dispatched`, `activated`, or `cancelled`; its panel and biomarker composition is locked and can no longer change. |
| `500`  | Internal server error.                                                                                                                   |

<RequestExample>
  ```bash cURL theme={null}
  curl --request PATCH \
    --url https://anivahealth.com/api/v1/home-kit-orders/d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a/panels \
    --header 'x-api-key: YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
      "panel_ids": [
        "d4e5f6a7-b8c9-4d1e-a2f3-b4c5d6e7f8a9",
        "e5f6a7b8-c9d0-4e2f-b3a4-c5d6e7f8a9b0"
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true
  }
  ```

  ```json 404 theme={null}
  {
    "error": "Panel not found"
  }
  ```
</ResponseExample>
