---
title: "Create an IP allow list"
method: POST
path: "/ip_allow_lists"
tags: ["IP Allow Lists"]
---

# Create an IP allow list

`POST /ip_allow_lists`

<!-- theme: warning -->

> ### Early Access
> This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access.

Create the account's IP allow list.

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

Scoped OAuth requires: `ip_allow_lists.write`

## Headers

- `X-EARLY-ACCESS` 'ip-allow-lists', required
- `Accept` string, required
- `Content-Type` 'application/json', required

## Request body

- object
  - `ip_allow_list` IpAllowList, required — 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.
    - `id` string — Unique identifier for the allow list (e.g. `AGIS47HYOV6BDODBTMQKMPQPHU`).
    - `type` 'ip_allow_list' — A string that determines the schema of the object.
    - `state` 'enabled' | 'disabled', required — 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.
    - `cidr_entries` CidrEntry[], required — The CIDR ranges that are allowed when the allow list is `enabled`. Must be non-empty when `state` is `enabled`.
      - `cidr` string, required — An IPv4 CIDR range. Each octet must be `0`-`255` and the mask must be between `1` and `32`.
      - `description` string, nullable — An optional human-readable description for the entry. Limited to 64 characters.

## Response `201`

IP allow list created.

- object
  - `ip_allow_list` IpAllowList, required — 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.
    - `id` string — Unique identifier for the allow list (e.g. `AGIS47HYOV6BDODBTMQKMPQPHU`).
    - `type` 'ip_allow_list' — A string that determines the schema of the object.
    - `state` 'enabled' | 'disabled', required — 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.
    - `cidr_entries` CidrEntry[], required — The CIDR ranges that are allowed when the allow list is `enabled`. Must be non-empty when `state` is `enabled`.
      - `cidr` string, required — An IPv4 CIDR range. Each octet must be `0`-`255` and the mask must be between `1` and `32`.
      - `description` string, nullable — An optional human-readable description for the entry. Limited to 64 characters.

## Other responses

- `400` — Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.
- `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.
- `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.
- `404` — The requested resource was not found.
- `429` — Too many requests have been made, the rate limit has been reached.
- `500` — Internal Server Error the PagerDuty server experienced an error.

---

[API](https://skmtc.net/pagerduty/apis/rest-api.md) · [All operations](https://skmtc.net/pagerduty/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pagerduty/rest-api/revisions/b679a8f3f02c/schema)
