# Update IP allowlist

Replace the IP allowlist for a dashboard.

Source: https://statusdashboard.com/docs/api/status-dashboards/dashboards/ipallowlist/update

`PUT /app/dashboards/{id}/ipallowlist`

Replaces the entire IP allowlist for a dashboard. Requires the **IP Allowlist** feature entitlement.

***

## Path parameters
| Parameter | Description                |
| --------- | -------------------------- |
| `id`      | The UUID of the dashboard. |

***

## Request
See [API Basics](/docs/api) for required headers.

### Request body
| Field       | Type       | Description                                                |
| ----------- | ---------- | ---------------------------------------------------------- |
| `allowlist` | `string[]` | Array of IP addresses or CIDR ranges. Maximum 100 entries. |

Each entry must be one of:

* **IPv4 address** — e.g. `"203.0.113.42"`
* **IPv4 CIDR** — e.g. `"10.0.0.0/8"`
* **IPv6 address** — e.g. `"2001:db8::1"` (IPv6 CIDR ranges are not supported)

Entries are trimmed of whitespace. IPv6 addresses are normalised to lowercase before storage.

***

## Sample request
```bash
curl -X PUT https://api.statusdashboard.com/app/dashboards/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ipallowlist \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "allowlist": ["203.0.113.0/24", "198.51.100.42", "2001:db8::1"]
  }'
```

## Sample response
**Status: `200 OK`**

```json
{
  "allowlist": ["203.0.113.0/24", "198.51.100.42", "2001:db8::1"]
}
```

***

## Error responses
| Status | When                                                                  |
| ------ | --------------------------------------------------------------------- |
| `400`  | Validation failure — invalid IP or CIDR entry (see example below).    |
| `403`  | Insufficient permissions, or the IP Allowlist feature is not enabled. |
| `404`  | Dashboard not found or does not belong to the caller's organization.  |

Example `400` validation body:

```json
{
  "error": "Validation error",
  "details": [
    {
      "path": ["allowlist", 2],
      "message": "Each entry must be a valid IPv4 address, IPv4 CIDR (e.g. 10.0.0.0/8), or IPv6 address. IPv6 CIDR ranges are not supported."
    }
  ]
}
```
