# Knowledge bases: Rename or describe a knowledge base (https://docs.envocal.ai/api-reference/knowledge-bases/rename-or-describe-a-knowledge-base/) > Requires knowledge:write ## PUT `/v1/tenants/{tenantId}/knowledge-bases/{id}` **Required permission:** `knowledge:write` ### Parameters | Name | In | | Type | Description | | --- | --- | --- | --- | --- | | `tenantId` | path | required | string | Tenant id, or `current` for the key's own tenant. Must be the key's tenant or one of its sub-tenants. | | `id` | path | required | string | Knowledge base id. | ### Request body `application/json`: KnowledgeBaseUpdateDto | Field | Type | | Description | | --- | --- | --- | --- | | `id` | string | required | Knowledge base id; must match the route. | | `name` | string | required | Name, unique per tenant. | | `description` | string | nullable | Description; null clears it. | ### Responses **204**: Updated. **400**: `id` in the body differs from the route. **401**: Missing, invalid, revoked or expired API key. **403**: The key lacks the required permission, or the tenant/resource is outside its reach. **404**: Not found in this tenant. **409**: The name is already used in the tenant. **429**: Rate limit exceeded. Retry after the number of seconds in the Retry-After header. ### Example ```bash curl -X PUT "https://api.envocal.ai/v1/tenants/current/knowledge-bases/{id}" \ -H "Authorization: Bearer evk_eu_..." \ -H "Content-Type: application/json" \ -d '{"id":"string","name":"string"}' ```