> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
