---
title: "Update a collection"
url: https://docs.gleap.ai/en/reference/rest-api/update-helpcenter-collection
method: PUT
path: "/helpcenter/collections/{helpcenterCollectionId}"
api: "API Reference"
tag: "Help center collections"
operationId: "UpdateHelpcenterCollection"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Update a collection

`PUT https://api.gleap.io/v3/helpcenter/collections/{helpcenterCollectionId}`

Update a help center collection. Changing `targetAudience`, `baseAudienceFilter` or `extendedAudienceFilter` also re-applies the resulting audience filter to every article in this collection and, recursively, to all subcollections and their articles.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Path parameters

- `helpcenterCollectionId` (string, required)

## Request body (`application/json`, required)

- `title` (any)
- `description` (any)
- `iconUrl` (string)
- `project` (string)
- `lexorank` (string)
- `docId` (number<double>)
- `parent` (string | null)
- `externalId` (string)
- `targetAudience` (string): Who can read the collection. New collections default to `all`; an update that leaves it out keeps the current audience.
- `baseAudienceFilter` (any)
- `extendedAudienceFilter` (any)
- `site` (string): Create only: the help center site of a new top-level collection (a site id, or `default`). A sub-collection always gets its parent's site; updates ignore it (PUT /helpcenter/sites/{id}/collections moves).

## Example request

```bash
curl --request PUT \
  --url 'https://api.gleap.io/v3/helpcenter/collections/{helpcenterCollectionId}' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "iconUrl": "<iconUrl>",
  "project": "<project>",
  "lexorank": "<lexorank>",
  "docId": 0
}'
```

## Responses

### 200 (`application/json`)

Ok
