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

# Update Pack

> Update pack name and/or visibility

Updates mutable pack fields.

## Path Parameters

<ParamField path="packId" type="string" required>
  Pack UUID.
</ParamField>

## Body Parameters

<ParamField body="name" type="string">
  Optional new name (`1-120` chars after trimming).
</ParamField>

<ParamField body="is_public" type="boolean">
  Optional visibility update.
</ParamField>

<Warning>
  Provide at least one field (`name` or `is_public`). Empty payloads return
  `422 invalid_payload`.
</Warning>

<RequestExample>
  ```bash cURL theme={null}
  curl --request PATCH \
    --url https://www.genviral.io/api/partner/v1/packs/11111111-1111-1111-1111-111111111111 \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "name": "Motivation Pack v2",
    "is_public": true
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "ok": true,
    "code": 200,
    "message": "Pack updated",
    "data": {
      "id": "11111111-1111-1111-1111-111111111111",
      "name": "Motivation Pack v2",
      "image_count": 24,
      "is_public": true,
      "created_at": "2026-02-14T09:00:00.000Z",
      "images": []
    }
  }
  ```
</ResponseExample>

## Error Responses

* `400 missing_pack_id` - path param missing
* `400 invalid_json` - body is not valid JSON
* `422 invalid_payload` - schema validation failed
* `404 not_found` - pack is missing/outside mutable key scope
* `401` - authentication failed (missing/invalid/revoked token)
* `402 subscription_required` - active Creator/Professional/Business plan required
* `403 tier_not_allowed` - Scheduler tier cannot use Partner API
* `500 pack_update_failed` - unexpected update failure
