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

# Update IP Group

> Updates an existing IP Group. Only the description can be updated; the name cannot be changed (it is used as the identifier).

## Endpoint

```plaintext theme={null}
PUT /apiops/projects/{projectName}/ipGroups/{ipGroupName}/
```

## Authentication

Requires a Personal API Access Token.

### Header

```plaintext theme={null}
Authorization: Bearer YOUR_TOKEN
```

## Request

### Headers

| Header        | Value            | Required |
| ------------- | ---------------- | -------- |
| Authorization | Bearer {token}   | Yes      |
| Content-Type  | application/json | Yes      |

### Path Parameters

| Parameter   | Type   | Required | Description                       |
| ----------- | ------ | -------- | --------------------------------- |
| projectName | string | Yes      | Project name                      |
| ipGroupName | string | Yes      | IP Group name (cannot be changed) |

### Request Body

#### Full JSON Body Example

```json theme={null}
{
  "name": "AllowedIPs",
  "description": "Updated description for allowed IP addresses"
}
```

#### Request Body Fields

| Field       | Type   | Required | Default | Description                                                  |
| ----------- | ------ | -------- | ------- | ------------------------------------------------------------ |
| name        | string | Yes      | -       | IP Group name (must match path parameter, cannot be changed) |
| description | string | No       | -       | IP Group description (can be updated)                        |

### Notes

* `name` must match the IP Group name in path (cannot be changed)
* Only `description` can be updated
* IP addresses are not updated by this endpoint (use IP management endpoints)

## Response

### Success Response (200 OK)

```json theme={null}
{
  "success": true
}
```

### Error Response (400 Bad Request)

```json theme={null}
{
  "error": "bad_request",
  "error_description": "name value can not be empty!"
}
```

or

```json theme={null}
{
  "error": "bad_request",
  "error_description": "IP Group (AllowedIPs) is not found!"
}
```

## cURL Example

```bash theme={null}
curl -X PUT \
  "https://demo.apinizer.com/apiops/projects/MyProject/ipGroups/AllowedIPs/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AllowedIPs",
    "description": "Updated description"
  }'
```

## Permissions

* User must have **`GLOBAL_SETTINGS` + `MANAGE`** permission in the project

## Notes and Warnings

* **Name Cannot Change**:
  * Name is used as identifier and cannot be changed
  * Use the existing name in the request

* **Description Only**:
  * Only description can be updated
  * IP addresses are not affected by this endpoint

## Related Documentation

* [Create IP Group](/api-reference/ip-groups/crud/create-ip-group) - Create a new IP Group
* [Delete IP Group](/api-reference/ip-groups/crud/delete-ip-group) - Delete an IP Group
