> Documentation index for AI agents: https://docs.pagerduty.com/llms.txt

# Update an IP allow list

`PUT https://api.pagerduty.com/ip_allow_lists/{id}`

Update the IP allow list with the given `id`. The request body fully replaces the writable fields.

Only Account Owners, Global Admins, and Account API Keys can call this endpoint.

Scoped OAuth requires: `ip_allow_lists.write`

## Authorization

- **api_key** (apiKey) — `Authorization` header. The API Key with format `Token token=<API_KEY>`

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `id` | string | yes | The ID of the resource. |

## Header parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `Accept` | string | yes | The `Accept` header is used as a versioning header. Default: `application/vnd.pagerduty+json;version=2`. |

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

| Field | Type | Required | Description |
|---|---|---|---|
| `ip_allow_list` | object | yes | An IP allow list restricts access to a PagerDuty account's subdomain to a set of IPv4 CIDR ranges. Enforcement currently applies to web and mobile application traffic. |
| `ip_allow_list.id` | string |  | Unique identifier for the allow list (e.g. `AGIS47HYOV6BDODBTMQKMPQPHU`). Read-only. |
| `ip_allow_list.type` | string |  | A string that determines the schema of the object. Read-only. One of: `ip_allow_list`. Default: `ip_allow_list`. |
| `ip_allow_list.state` | string | yes | Whether the allow list is enforced for the account. When `enabled`, only requests from IPs matching one of the `cidr_entries` are permitted to access the subdomain. When `disabled`, the allow list is stored but not enforced. One of: `enabled`, `disabled`. |
| `ip_allow_list.cidr_entries` | array of object | yes | The CIDR ranges that are allowed when the allow list is `enabled`. Must be non-empty when `state` is `enabled`. Max items: 100. |
| `ip_allow_list.cidr_entries[].cidr` | string | yes | An IPv4 CIDR range. Each octet must be `0`-`255` and the mask must be between `1` and `32`. Pattern: `^((25[0-5]\|2[0-4]\d\|1\d\d\|[1-9]?\d)\.){3}(25[0-5]\|2[0-4]\d\|1\d\d\|[1-9]?\d)/([1-9]\|[12]\d\|3[0-2])$`. |
| `ip_allow_list.cidr_entries[].description` | string \| null |  | An optional human-readable description for the entry. Limited to 64 characters. Max length: 64. |

Example: Replace the allow list entries

```json
{
  "ip_allow_list": {
    "type": "ip_allow_list",
    "state": "enabled",
    "cidr_entries": [
      {
        "cidr": "192.168.1.0/24",
        "description": "Office VPN"
      },
      {
        "cidr": "10.0.0.0/24",
        "description": "Data Center"
      }
    ]
  }
}
```

## Response 200

IP allow list updated successfully.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `ip_allow_list` | object | yes | An IP allow list restricts access to a PagerDuty account's subdomain to a set of IPv4 CIDR ranges. Enforcement currently applies to web and mobile application traffic. Same fields as `ip_allow_list` above. |

Example: Example response

```json
{
  "ip_allow_list": {
    "id": "AGIS47HYOV6BDODBTMQKMPQPHU",
    "type": "ip_allow_list",
    "state": "enabled",
    "cidr_entries": [
      {
        "cidr": "192.168.1.0/24",
        "description": "Office VPN"
      },
      {
        "cidr": "10.0.0.0/24",
        "description": "Data Center"
      }
    ]
  }
}
```

## Response 400

Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 401

Caller did not supply credentials or did not provide the correct credentials.
If you are using an API key, it may be invalid or your Authorization header may be malformed.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 403

Caller is not authorized to view the requested resource.
While your authentication is valid, the authenticated user or token does not have permission to perform this action.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 404

The requested resource was not found.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 429

Too many requests have been made, the rate limit has been reached.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 500

Internal Server Error the PagerDuty server experienced an error.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Developer Agreement

Your access to and use of the PagerDuty Developer Services is governed by the [PagerDuty Developer Agreement](https://docs.pagerduty.com/developer/pagerduty-developer-agreement).
