> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/cn/proxies/dedicated-isp-proxies/enterprise/restful.md).

# IP 白名单（RESTful）

了解如何通过 RESTful API 管理独享ISP代理 IP 白名单，包括查看、添加和删除 IP 的端点。

通过直接向我们的端点发送查询来将 IP 加入白名单。

{% hint style="info" %}
请注意，确认对白名单 IP 列表的更改需要 5 分钟冷却时间。
{% endhint %}

## 获取白名单 IP 列表

`GET https://api.oxylabs.io/v1/whitelisted_ips`

| 响应    | 描述                             |
| ----- | ------------------------------ |
| `200` | 成功。响应体包含当前所有已加入白名单的 IP 及其 ids。 |

#### 代码示例

{% tabs %}
{% tab title="cURL" %}

```shell
curl -u username:password "https://api.oxylabs.io/v1/whitelisted_ips"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.oxylabs.io/v1/whitelisted_ips");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'username:password');

$result = curl_exec($curl);
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
requests.get('https://api.oxylabs.io/v1/whitelisted_ips', auth=('username', 'password'))
```

{% endtab %}
{% endtabs %}

#### 示例输出

```json
{
    "data": [
        {
            "id": 9765,
            "address": "127.0.0.1"
        },
        {
            "id": 9766,
            "address": "127.0.0.2"
        }
    ]
}
```

## 添加白名单 IP

`POST https://api.oxylabs.io/v1/whitelisted_ips`

| 响应    | 描述                                     |
| ----- | -------------------------------------- |
| `201` | 成功。IP 地址已添加到列表中。响应体包含新添加的 `地址` 和 `ID`. |
| `422` | 错误。请求体包含无效的 IP 地址。响应体包含错误消息            |

#### 代码示例

{% tabs %}
{% tab title="cURL" %}

```shell
curl -X POST -u username:password "https://api.oxylabs.io/v1/whitelisted_ips"
--header "Content-Type: application/json" --data '{"address": "127.0.0.1"}'
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.oxylabs.io/v1/whitelisted_ips");
$payload = json_encode( array( "address"=> "127.0.0.1" ) );
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
curl_setopt( $curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'username:password');

$result = curl_exec($curl);
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
requests.post('https://api.oxylabs.io/v1/whitelisted_ips',
              json={"address": "127.0.0.1"},
              auth=('username', 'password'))
```

{% endtab %}
{% endtabs %}

```json
{
    "error": {
        "message": "This is not a valid IP address.",
        "code": 422
    }
}
```

#### 示例输出

```json
{
    "id": 9767,
    "address": "127.0.0.1"
}
```

## 移除白名单 IP

`DELETE https://api.oxylabs.io/v1/whitelisted_ips/{id}`

| 参数   | 描述                                     |
| ---- | -------------------------------------- |
| `ID` | 该 `ID` 要删除的 IP 地址的（可从 GET 白名单 IP 接口获取） |

| 响应    | 描述                                         |
| ----- | ------------------------------------------ |
| `204` | 成功。该 IP 地址已从列表中移除。响应体为空。                   |
| `403` | 错误。请求包含无效的 `ID`。响应体包含错误消息 "Access Denied"。 |

#### 代码示例

{% tabs %}
{% tab title="cURL" %}

```shell
curl -X DELETE -u username:password "https://api.oxylabs.io/v1/whitelisted_ips/{id}"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.oxylabs.io/v1/whitelisted_ips/{id}');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'username:password');
$result = curl_exec($curl);
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
requests.delete('https://api.oxylabs.io/v1/whitelisted_ips/{id}', auth=('username', 'password'))
```

{% endtab %}
{% endtabs %}

## 保存更改（5 分钟冷却）

`POST https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers`

| 响应    | 描述                                                                                                                       |
| ----- | ------------------------------------------------------------------------------------------------------------------------ |
| `202` | <p>成功。对您的白名单 IP 列表的更改已确认。响应体为空。<br></p>                                                                                  |
| `429` | <p>错误。更改未被确认，该接口处于 5 分钟冷却期。响应体包含错误消息 "You have exceeded the rate limit for the endpoint. Please try again later"<br></p> |

#### 代码示例

{% tabs %}
{% tab title="cURL" %}

```shell
curl -X POST -u username:password "https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers"
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'username:password');

$result = curl_exec($curl);
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
requests.post("https://api.oxylabs.io/v1/whitelisted_ips/upload_to_servers", auth=('username', 'password'))
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/products/cn/proxies/dedicated-isp-proxies/enterprise/restful.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
