IPRoyal OpenAPI
Base URLs: https://api.iproyal.cc/
Authentication
- HTTP authentication, scheme: Bearer
- API key authentication (apiKeyAuth)
- Parameter name: app_key; location: query. GET and POST requests are supported.
Proxy Account Management
GET Proxy Account List
GET /open-api/whitelist-account/list
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"id": 0,
"username": "string",
"password": "string",
"created_at": "string",
"remark": "string",
"product_type": 9,
"usage_flow": 0,
"limit_flow": 102400,
"status": 0
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | responseCode | false | none | Status code: 200 Success, 3 invalid app_key | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» id | integer | false | none | Account ID | |
| »»» username | string | false | none | Proxy account username | |
| »»» password | string | false | none | Proxy account password | |
| »»» created_at | string | false | none | Added time | |
| »»» remark | string | false | none | Remark | |
| »»» product_type | productTypes | false | none | Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP | |
| »»» usage_flow | integer | false | none | Used traffic, in KB | |
| »»» limit_flow | integer | false | none | Custom traffic limit: in GB, maximum 102400; 0 means unlimited | |
| »»» status | integer | false | none | Enabled status: 1 enabled, 0 disabled |
Enum Values
| Property | Value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
POST Add Proxy Account
POST /open-api/whitelist-account/add
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01:pass,user02:pass,user03:pass",
"remark": "",
"product_type": 9
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Account credentials. Use the format username:password. Usernames and passwords may contain letters and numbers only; special characters and spaces are not allowed. Separate the username and password with a colon. Batch creation is supported; separate proxy accounts with commas (,). |
| » remark | body | string | No | Proxy account description |
| » product_type | body | productTypes | No | Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP |
Enum Values
| Property | Value |
|---|---|
| » product_type | 9 |
| » product_type | 11 |
| » product_type | 14 |
| » product_type | 25 |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Delete Proxy Account
POST /open-api/whitelist-account/delete
Please note that deletion cannot be undone. Used traffic and related data can no longer be queried after deletion. Deletion has an approximately 5-minute waiting period, during which charges may still be incurred.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,). |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Disable Proxy Account
POST /open-api/whitelist-account/disable
Disabling an account has an approximately 5-minute waiting period, during which charges may still be incurred.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,). |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Enable Proxy Account
POST /open-api/whitelist-account/enable
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,). |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Change Proxy Account Password
POST /open-api/whitelist-account/change-password
Please note that password changes have an approximately 5-minute waiting period, during which the old password may still work.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"password": "pass"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy account. Only letters and numbers are supported. |
| » password | body | string | No | New proxy account password. Only letters and numbers are supported. |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Change Proxy Account Remark
POST /open-api/whitelist-account/change-remark
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"remark": ""
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy account. Only letters and numbers are supported. |
| » remark | body | string | No | New proxy account remark, up to 32 Chinese characters or 64 English characters. |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Change Proxy Account Traffic Limit
POST /open-api/whitelist-account/change-limit
Traffic statistics may be delayed by up to 5 minutes, so actual usage may exceed this limit.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"limit": 0
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy account. Only letters and numbers are supported. |
| » limit | body | integer | No | Traffic limit, in GB; 0 means unlimited |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Update Proxy Account
POST /open-api/proxy-account/change
Update the proxy account password, remark, traffic limit, daily traffic limit, enabled status, or UDP setting.
Body Request Parameters
{
"app_key": "string",
"account": "string",
"password": "string",
"remark": "string",
"limit": 0,
"daily_limit": 0,
"status": 0,
"udp": 0
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy account username |
| » password | body | string | No | New password, 6-16 letters or numbers. Omit this field to leave the password unchanged. |
| » remark | body | string | No | New remark |
| » limit | body | integer | No | Traffic limit, in GB; 0 means unlimited |
| » daily_limit | body | integer | No | Daily traffic limit, in GB; 0 means unlimited |
| » status | body | integer | No | Enabled status |
| » udp | body | integer | No | UDP support setting. Effective only for package types 14, 16, 21, and 25. |
Enum Values
| Property | Value |
|---|---|
| » status | 0 |
| » status | 1 |
| » udp | 0 |
| » udp | 1 |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
IP Allowlist
GET IP Allowlist
GET /open-api/proxy-ip/list
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| product_type | query | integer | No | Package type ID |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"ip": "1.1.1.1",
"remark": "string",
"product_type": 0,
"created_at": "string"
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» ip | string | false | none | Allowlisted IP | |
| »»» remark | string | false | none | Remark | |
| »»» product_type | integer | false | none | Package type | |
| »»» created_at | string | false | none | Created time |
POST Add IP to Allowlist
POST /open-api/proxy-ip/add
Body Request Parameters
{
"app_key": "string",
"ips": "1.1.1.1,2.2.2.2",
"remark": "string",
"product_type": 0,
"user_product_id": 0
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | Allowlist IPs to add. Separate multiple IPs with commas or new lines. |
| » remark | body | string | No | Remark |
| » product_type | body | integer | No | Package type ID |
| » user_product_id | body | integer | No | User package ID. Required when package type is 11. |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
POST Remove IP from Allowlist
POST /open-api/proxy-ip/delete
Body Request Parameters
{
"app_key": "string",
"ips": "1.1.1.1,2.2.2.2",
"verify_type": "string",
"verify_code": "string"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | Allowlist IPs to remove. Separate multiple IPs with commas. |
| » verify_type | body | string | No | Verification type: phone, email, wechat, totp |
| » verify_code | body | string | No | Verification code |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | null | false | none | none |
Traffic Log Query
GET Daily Traffic Usage Summary
GET /open-api/user-usage-flow/total
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| start_time | query | string(Y-m-d H:i:s) | No | Start time, accurate to the second. Logs may be delayed by up to 5 minutes. Defaults to the last 7 days. |
| end_time | query | string(Y-m-d H:i:s) | No | End time, accurate to the second. Logs may be delayed by up to 5 minutes. Defaults to the current time. |
| username | query | string | No | Sub-account name. By default, all accounts are queried; you may specify a sub-account. If multiple sub-accounts share the same name, this query returns usage records for all matching proxy accounts. |
| product_type | query | number | No | Package type |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"day": "2022-08-01",
"flow": 0
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» day | string | false | none | Date | |
| »»» flow | integer | false | none | Traffic consumed, in KB |
Package Query
GET Purchased Package List
GET /open-api/user-product/list
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| trade_no | query | string | No | Order number. Enter the complete order number; fuzzy search is not supported. |
| page | query | number | No | Page, default: 1 |
| size | query | number | No | Items per page, default: 20 |
| product_type | query | number | No | Package type |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"id": 0,
"created_at": "2022-05-13 12:14:15",
"expired_at": "2022-05-13 12:14:15",
"product_type": 9,
"trade_no": "2022051312134339861461465434",
"order": {
"created_at": "2022-05-13 12:13:43",
"pay_at": "2022-05-13 12:13:43",
"title": "Starter"
}
}
],
"page": 1,
"page_size": 20,
"total_count": 0,
"total_page": 0
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» id | integer | false | none | Package ID | |
| »»» created_at | string | false | none | Package effective time | |
| »»» expired_at | string | false | none | Package expiration time. Traffic cannot be used after expiration. | |
| »»» product_type | productTypes | false | none | Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP | |
| »»» trade_no | string | false | none | Order trade number | |
| »»» order | object | false | none | none | |
| »»»» created_at | string | false | none | Order creation time | |
| »»»» pay_at | string | false | none | Order payment time | |
| »»»» title | string | false | none | Order description | |
| »» page | integer | false | none | Current page | |
| »» page_size | integer | false | none | Page size | |
| »» total_count | integer | false | none | Total records | |
| »» total_page | integer | false | none | Total pages |
Enum Values
| Property | Value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
GET User Package Summary
GET /open-api/user-product/summary
Get a statistical summary of the user's packages, including total, active, expiring-soon, and expired quantities.
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| product_type | query | integer | No | Product type. Only 9 (dynamic traffic package) and 12 (long-term IDC traffic package) are supported. |
Enum Values
| Property | Value |
|---|---|
| product_type | 9 |
| product_type | 12 |
Response Example
200 Response
{
"code": 200,
"msg": "Success",
"data": {
"total": 1048576,
"total_count": 5,
"effective": 524288,
"effective_count": 3,
"effective_total": 786432,
"effective_used": 262144,
"temporary": 102400,
"temporary_count": 1,
"expired": 51200,
"expired_count": 1,
"used": 473088
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» total | integer | false | none | Total traffic/IP quantity, in KB | |
| »» total_count | integer | false | none | Total package count | |
| »» effective | integer | false | none | Active remaining amount, in KB | |
| »» effective_count | integer | false | none | Active package count | |
| »» effective_total | integer | false | none | Active total amount, in KB | |
| »» effective_used | integer | false | none | Active used amount, in KB | |
| »» temporary | integer | false | none | Expiring-soon total (expires within 7 days), in KB | |
| »» temporary_count | integer | false | none | Expiring-soon package count (expires within 7 days) | |
| »» expired | integer | false | none | Expired remaining amount, in KB | |
| »» expired_count | integer | false | none | Expired package count | |
| »» used | integer | false | none | Total used amount, in KB |
IP Extraction
GET Extract IPs
GET /open-api/ip/v3
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Access key |
| cc | query | string | No | Country or region |
| state | query | string | No | State/province |
| city | query | string | No | City |
| format | query | string | No | Output format |
| lb | query | string | No | Separator, valid only for text format |
| num | query | number | No | Extraction quantity |
| life | query | number | No | Keep-alive period, in minutes |
| ep | query | string | No | Proxy network |
Enum Values
| Property | Value |
|---|---|
| ep | us |
| ep | hk |
| ep | de |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
[
"150.109.114.72:1140",
"150.109.114.72:1141",
"150.109.114.72:1142",
"150.109.114.72:1143",
"150.109.114.72:1144",
"150.109.114.72:1145",
"150.109.114.72:1146",
"150.109.114.72:1147",
"150.109.114.72:1148",
"150.109.114.72:1149"
]
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [any] | false | none | none |
GET Dynamic Region City List V4
GET /open-api/ip/dcl4
Get the city list by username. Login authentication is required, and the account must belong to the current user.
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Whether the data is from cache | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | Region | |
| »»» State | string | false | none | State/province |
GET Dynamic Region State/Province List V4
GET /open-api/ip/dsl4
Get the state/province list by username. Login authentication is required, and the account must belong to the current user.
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Whether the data is from cache | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | Region | |
| »»» State | string | false | none | State/province |
GET Dynamic Region State/Province and City Combined List V4
GET /open-api/ip/dal4
Get a combined state/province and city list by username, grouped by region. Login authentication is required, and the account must belong to the current user.
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"Area": "US",
"states": [
{
"State": null,
"cities": null
}
]
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Whether the data is from cache | |
| »» list | [object] | false | none | Region list | |
| »»» Area | string | false | none | Region code | |
| »»» states | [object] | false | none | State/province list | |
| »»»» State | string | false | none | State/province name | |
| »»»» cities | [string] | false | none | CityList |
GET City List
GET /open-api/ip/dynamic-citys
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"name_zh_cn": "United States",
"name_en": "United States",
"continent_code": "NA",
"country_code": "US",
"items": [
{
"city": null,
"state": null,
"continent_code": null,
"country_code": null
}
]
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | List | |
| »»» name_zh_cn | string | false | none | Country or region name | |
| »»» name_en | string | false | none | Country or region name | |
| »»» continent_code | string | false | none | Continent code | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | State/province | |
| »»»» city | string | false | none | City name | |
| »»»» state | string | false | none | State/province name/code | |
| »»»» continent_code | string | false | none | Continent code | |
| »»»» country_code | string | false | none | Country or region code |
GET City Search
GET /open-api/ip/dynamic-citys/search
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| country_code | query | string | Yes | Country or region code |
| state | query | string | Yes | State or province code |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": ["string"]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET State List
GET /open-api/ip/dynamic-states
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"name_zh_cn": "United States",
"name_en": "United States",
"continent_code": "NA",
"country_code": "US",
"items": [
{
"state": null,
"continent_code": null,
"country_code": null
}
]
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | List | |
| »»» name_zh_cn | string | false | none | Country or region name | |
| »»» name_en | string | false | none | Country or region name | |
| »»» continent_code | string | false | none | Continent code | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | State/province | |
| »»»» state | string | false | none | State/province name/code | |
| »»»» continent_code | string | false | none | Continent code | |
| »»»» country_code | string | false | none | Country or region code |
GET State/Province Search
GET /open-api/ip/dynamic-states/search
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| country_code | query | string | Yes | Country or region code |
Response Example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": ["string"]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success, 3 invalid app_key, 156 account is not real-name verified | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET Purchased Static IP List
GET /open-api/ip/get-static-ip
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| country_code | query | string | No | Country or region code |
| product_type | query | number | No | Product type, 25: static residential IP, 14: data center IP |
| trade_no | query | string | No | Filter IPs by order number |
| page | query | number | No | Page number |
| size | query | number | No | Items per page |
| status | query | number | No | Status, 1: active, 2: inactive, 3: expiring soon, 4: under maintenance |
Enum Values
| Property | Value |
|---|---|
| product_type | 14 |
| product_type | 25 |
| status | 1 - 2 - 3 - 4 |
Response Example
200 Response
{}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | none | Inline |
Response Schema
GET Available Static IP Count by Region
GET /open-api/ip/static-ip-region
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| isp | query | integer | No | ISP filter. If omitted, no filtering is applied (except sites 1/4/5 default to 1). |
| asn | query | integer | No | Whether to return ASN grouped data |
| exclusive | query | integer | No | Whether to count exclusive inventory |
Details
isp: ISP filter. If omitted, no filtering is applied (except sites 1/4/5 default to 1).
| Value | Description |
|---|---|
| 0 | Data center static IP (IDC) |
| 1 | Residential static IP (ISP) |
asn: Whether to return ASN grouped data
| Value | Description |
|---|---|
| 0 | Do not return ASN grouped data (default) |
| 1 | Return ASN grouped data |
exclusive: Whether to count exclusive inventory
| Value | Description |
|---|---|
| 0 | Count by current user/shared group scope (default) |
| 1 | Exclude all assigned IPs and count only available inventory |
Enum Values
| Property | Value |
|---|---|
| isp | 0 |
| isp | 1 |
| asn | 0 |
| asn | 1 |
| exclusive | 0 |
| exclusive | 1 |
Response Example
200 Response
{
"code": 200,
"msg": "Request successful",
"data": {
"list": [
{
"code": "US",
"number": 55
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code | |
| »»» number | integer | false | none | Quantity |
GET Countries/Regions Supported by host_pool
GET /open-api/host-pool/regions
Query the countries/regions supported by the host_pool service for the current site.
This endpoint is intended for random data center IP extraction based on traffic credits. It only counts countries/regions from the data center IP inventory available on the current site. ASN, ISP, and exclusive-inventory filters are not supported, and IPs are not excluded based on the user's purchase history.
Response Example
200 Response
{
"code": 200,
"msg": "Request successful",
"data": {
"list": [
{
"code": "US",
"number": 55,
"name_zh_cn": "United States",
"name_en": "United States",
"square_flag": "https://example.com/static/flags/us.png"
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Response Schema
Status code 200
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 Success | |
| » msg | string | false | none | Status message | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code, ISO 3166-1 alpha-2 | |
| »»» number | integer | false | none | Number of data center IPs available on the current site | |
| »»» name_zh_cn | string | false | none | Country or region Chinese name | |
| »»» name_en | string | false | none | Country or region English name | |
| »»» square_flag | string | false | none | Square flag image URL |
Order Management
GET Order List
GET /open-api/order/list
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| page_no | query | integer | No | none |
| page_size | query | integer | No | none |
| trade_no | query | string | No | Order number |
| start_time | query | string(date-time) | No | Start time (inclusive), for example 2024-01-01 00:00:00 |
| end_time | query | string(date-time) | No | End time (exclusive) |
| status | query | integer | No | Order status |
| product_type | query | integer | No | Product type |
| invoice | query | integer | No | Invoice status: 0 no limit, 1 invoiced, -1 not invoiced (can be issued later) |
| pay_fee_status | query | integer | No | Over/underpayment filter: 1 overpayment, 2 underpayment |
Details
status: Order status
| Status | Description |
|---|---|
| 0 | Pending payment |
| 1 | Paid |
| 2 | Canceled due to payment timeout |
| 3 | Refunded |
product_type: Product type
| Product Type | Description |
|---|---|
| 3 | Balance recharge |
| 9 | Dynamic traffic package |
| 11 | Dynamic global time package V2 |
| 12 | Long-term IDC traffic package |
| 13 | Residential static IP traffic package |
| 14 | Data center static IP package |
| 15 | Long-term ISP traffic package |
| 16 | Static traffic package |
| 17 | Dynamic IP quantity package |
| 18 | web-scraper |
| 19 | Static IP renewal |
| 20 | Static IP replacement quota |
| 21 | Static traffic package v2 |
| 24 | Static traffic add-on package |
| 25 | Residential static IP package |
| 26 | Supplementary order - some payment channels require the user to manually enter the amount, such as virtual currency. If an underpayment occurs, contact customer service to complete the payment with this product. |
| 27 | Serp |
| 28 | Video |
Enum Values
| Property | Value |
|---|---|
| status | 0 |
| status | 1 |
| status | 2 |
| status | 3 |
| product_type | 3 |
| product_type | 9 |
| product_type | 11 |
| product_type | 12 |
| product_type | 14 |
| product_type | 16 |
| product_type | 17 |
| product_type | 18 |
| product_type | 19 |
| product_type | 21 |
| product_type | 24 |
| product_type | 25 |
| product_type | 26 |
| product_type | 27 |
| product_type | 28 |
| invoice | -1 |
| invoice | 0 |
| invoice | 1 |
| pay_fee_status | 1 |
| pay_fee_status | 2 |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [
{
"id": 0,
"trade_no": "string",
"out_trade_no": "string",
"product_id": 0,
"product_type": 0,
"amount": 0,
"unit_price": 0.1,
"total_fee": 0.1,
"goods_fee": 0.1,
"pay_fee": 0.1,
"discount_fee": 0.1,
"handling_fee": 0.1,
"refund_fee": 0.1,
"pm_id": 0,
"pm_title": "string",
"pm_logo": "string",
"status": 0,
"title": "string",
"detail": "string",
"region_desc": "string",
"pay_at": "2019-08-24T14:15:22Z",
"pay_timestamp": 0,
"created_at": "2019-08-24T14:15:22Z",
"pay_fee_status": 0,
"invoice": {}
}
],
"pagination": {
"total": 0,
"page_no": 0,
"page_size": 0,
"total_pages": 0
}
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Success | Inline |
Response Schema
POST Create Order
POST /open-api/order/create
Because package types and configurations vary, provide parameters according to the actual package being purchased. Incorrect parameters may cause order creation to fail.
examples:
Renew Static IP
{
"pid": Package ID, // Get it from the /open-api/product API
"upids": "1,2,3,4,5,6", // Get the corresponding id field from /open-api/ip/get-static-ip
"pm_id": 1 // Get it from the /open-api/payment/list or /open-api/payment/groups API
}
Static Residential IP Purchase
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
"region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN is optional)
}
Static Data Center IP Purchase
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
"region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN is optional)
}
Dynamic Residential Traffic Purchase
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID // Get it from the /open-api/payment/list or /open-api/payment/groups API
}
Static Rotating Traffic Purchase
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID // Get it from the /open-api/payment/list or /open-api/payment/groups API
}
Dynamic Unlimited Traffic Purchase
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
"product_sku_bandwidth_id": bandwidth_spec_id,
"product_sku_concurrency_id": concurrency_spec_id
}
Balance Recharge
{
"pid": Package ID, // Get it from the /open-api/product API
"pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
"recharge_amount": Recharge amount
}
Body Request Parameters
{
"pid": 0,
"upids": "string",
"amount": 0,
"pm_id": 0,
"region_list": "string",
"coupon_sn": "string",
"use_invitation_registration_discount": true,
"renew_duration": 0,
"product_sku_bandwidth_id": 0,
"product_sku_concurrency_id": 0,
"product_sku_duration_id": 0,
"etd": 1,
"recharge_amount": 0
}
Request Parameters
| Name | Location | Type | Required | Description | | -------------------------------------- | -------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | --------- | -------------------------- | | body | body | object | Yes | none | | » pid | body | integer | Yes | Package ID, from the id field returned by /open-api/product | | » upids | body | string | No | Renewal package ID list (comma-separated), from the id field returned by /open-api/user-product/list or /open-api/ip/get-static-ip | | » amount | body | number | No | New package purchase quantity | | » pm_id | body | integer | Yes | Payment method ID, from the id field returned by /open-api/payment/list or /open-api/payment/groups | | » region_list | body | string | No | Specify region + quantity + ASN when purchasing static IPs. Format: region,quantity,ASN | Region,Quantity,ASN, for example: JP,15,333 | DE,10,444 | US,5,555 (ASN is optional) | | » coupon_sn | body | string | No | Coupon code | | » use_invitation_registration_discount | body | boolean | No | Whether to use the invitation registration discount | | » renew_duration | body | integer | No | Renewal duration, optional for static IPs | | » product_sku_bandwidth_id | body | integer | No | Package 11: bandwidth package ID | | » product_sku_concurrency_id | body | integer | No | Package 11: concurrency package ID | | » product_sku_duration_id | body | integer | No | Required for package type 11: duration specification ID | | » etd | body | integer | No | Duration multiplier, obtained from package extension_of_time_days. 2 means days x 2 with a price increase. | | » recharge_amount | body | integer | No | Package 3: recharge amount |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"id": 0,
"trade_no": "string",
"out_trade_no": "string",
"product_id": 0,
"product_type": 0,
"amount": 0,
"unit_price": 0.1,
"total_fee": 0.1,
"goods_fee": 0.1,
"pay_fee": 0.1,
"discount_fee": 0.1,
"handling_fee": 0.1,
"refund_fee": 0.1,
"pm_id": 0,
"pm_title": "string",
"pm_logo": "string",
"status": 0,
"title": "string",
"detail": "string",
"region_desc": "string",
"pay_at": "2019-08-24T14:15:22Z",
"pay_timestamp": 0,
"created_at": "2019-08-24T14:15:22Z",
"pay_fee_status": 0,
"invoice": {
"name": "string",
"org_name": "string",
"first_name": "string",
"last_name": "string",
"phone": "string",
"email": "[email protected]",
"role_type": 0,
"vat_id": "string",
"address_country": "string",
"address_city": "string",
"address_line1": "string",
"address_line2": "string",
"address_postal_code": "string"
}
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Created successfully | Inline |
Response Schema
POST Cancel Order
POST /open-api/order/close
Body Request Parameters
{
"trade_no": "string"
}
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| body | body | object | Yes | none |
| » trade_no | body | string | Yes | none |
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Operation successful | None |
POST Order Precheck
POST /open-api/order/check
Call this before creating an order to preview pricing, discounts, IP renewal details, and related information. This endpoint does not create an order. The parameters are exactly the same as /open-api/order/create.
Body Request Parameters
{
"pid": 0,
"upids": "string",
"amount": 1,
"pm_id": 0,
"region_list": "string",
"coupon_sn": "string",
"renew_duration": "1m",
"product_sku_bandwidth_id": 0,
"product_sku_concurrency_id": 0,
"product_sku_duration_id": 0,
"etd": 1,
"recharge_amount": 0
}
Request Parameters
| Name | Location | Type | Required | Description | | ---------------------------- | -------- | ------- | -------- | ------------------------------------------------------------------------ | ------------------ | | body | body | object | Yes | none | | » pid | body | integer | Yes | Package ID | | » upids | body | string | No | IP renewal: comma-separated user package ID list | | » amount | body | integer | No | Purchase quantity | | » pm_id | body | integer | Yes | Payment method ID | | » region_list | body | string | No | Static IP purchase region + quantity, format: region ID,quantity | region ID,quantity | | » coupon_sn | body | string | No | Coupon code | | » renew_duration | body | string | No | IP renewal duration: 1m = 1 month, 2m = 2 months, em = end of next month | | » product_sku_bandwidth_id | body | integer | No | Required for package type 11: bandwidth specification ID | | » product_sku_concurrency_id | body | integer | No | Required for package type 11: concurrency specification ID | | » product_sku_duration_id | body | integer | No | Required for package type 11: duration specification ID | | » etd | body | integer | No | Duration multiplier, obtained from package extension_of_time_days | | » recharge_amount | body | number | No | Required for package type 3: recharge amount |
Enum Values
| Property | Value |
|---|---|
| » renew_duration | 1m |
| » renew_duration | 2m |
| » renew_duration | em |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"product_id": 0,
"amount": 0,
"discount_fee": 0.1,
"total_fee": 0.1,
"pay_fee": 0.1,
"product_type": 0,
"title": "string",
"detail": "string",
"ip_result": [
{
"ip": "string",
"price": 0.1,
"country_code": "string",
"current_time": "2019-08-24T14:15:22Z",
"renewal_time": "2019-08-24T14:15:22Z",
"country": {}
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Precheck successful | Inline |
Response Schema
Payment Management
GET Payment Method List
GET /open-api/payment/list
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| trade_no | query | string | No | Order number. Pass this when a specific payment method list is needed for an order. |
| currency | query | string | No | Currency |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [
{
"id": 0,
"title": "string",
"logo": "string",
"group": "string",
"handling_rate": 0,
"handling_fee": 0,
"disabled": false,
"min": 0,
"max": 0
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Fetched successfully | Inline |
Response Schema
GET Payment Method List
GET /open-api/payment/groups
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| trade_no | query | string | No | Order number. Pass this when a specific payment method list is needed for an order. |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [
{
"name": "string",
"logos": [null],
"items": [null]
}
]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | Fetched successfully | Inline |
Response Schema
Marketing
GET Recharge Bonus Ratio
GET /open-api/activity/balance-recharge-gift-ratio
Recharge bonus ratio
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [null]
}
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Response Schema
Products
GET Product List
GET /open-api/product
Get the packages currently available for purchase on this site. Filtering by type, validity period, and other conditions is supported.
Request Parameters
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| type | query | integer | No | Package type. See the Product.type enum. If omitted, all types are returned. |
| parent_product_type | query | integer | No | Parent package type. Valid only when type=19 (IP renewal), used to filter product lines: 14=data center, 25=residential. |
| time_days | query | any | No | Validity-days filter. Supports a single value or array, such as 30 / [30,90,365]. |
| show_type | query | any | No | Display-type filter. Supports a single value or array. |
Details
type: Package type. See the Product.type enum. If omitted, all types are returned.
Enum Values
| Property | Value |
|---|---|
| parent_product_type | 14 |
| parent_product_type | 25 |
Response Example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": [
{
"id": 0,
"title": "string",
"type": 0,
"show_type": 0,
"status": 0,
"price": 0.1,
"usd_price": 0.1,
"price_hkd": 0.1,
"original_price": 0.1,
"original_usd_price": 0.1,
"original_price_hkd": 0.1,
"local_price": 0.1,
"local_original_price": 0.1,
"preferred_currency": "string",
"support_currencies": "string",
"flow_value": 0.1,
"flow_give": 0.1,
"balance_give": 0.1,
"balance_value": 0.1,
"time_validity": 0.1,
"time_price": 0.1,
"time_days": 0,
"tip1": "string",
"tip2": "string",
"introduce": ["string"],
"region_list_id": 0,
"renew_product_list": "string",
"parent_product_type": 0,
"total_count": 0,
"remain_count": 0,
"extension_of_time_days": [0],
"time_days_price_rate": 0.1,
"desc": {
"subtitle": "string",
"flow_value": 0.1,
"flow_give": 0.1,
"balance_give": 0.1,
"time_validity": 0.1,
"time_price": 0.1,
"tip1": "string",
"tip2": "string",
"introduce": [null]
},
"sku": {
"bandwidth_list": [null],
"duration_list": [null],
"concurrency_list": [null]
}
}
]
}
Responses
| Status Code | Meaning | Description | Data Model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Response Schema
Data Models
productTypes
9
Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP
Properties
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP |
Enum Values
| Property | Value |
|---|---|
| anonymous | 9 |
| anonymous | 11 |
| anonymous | 14 |
| anonymous | 25 |
responseCode
200
Status code: 200 Success, 3 invalid app_key
Properties
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Status code: 200 Success, 3 invalid app_key |
SuccessResponse
{
"code": 0,
"message": "Operation successful",
"data": {}
}
Properties
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none |
Order
{
"id": 0,
"trade_no": "string",
"out_trade_no": "string",
"product_id": 0,
"product_type": 0,
"amount": 0,
"unit_price": 0.1,
"total_fee": 0.1,
"goods_fee": 0.1,
"pay_fee": 0.1,
"discount_fee": 0.1,
"handling_fee": 0.1,
"refund_fee": 0.1,
"pm_id": 0,
"pm_title": "string",
"pm_logo": "string",
"status": 0,
"title": "string",
"detail": "string",
"region_desc": "string",
"pay_at": "2019-08-24T14:15:22Z",
"pay_timestamp": 0,
"created_at": "2019-08-24T14:15:22Z",
"pay_fee_status": 0,
"invoice": {
"name": "string",
"org_name": "string",
"first_name": "string",
"last_name": "string",
"phone": "string",
"email": "[email protected]",
"role_type": 0,
"vat_id": "string",
"address_country": "string",
"address_city": "string",
"address_line1": "string",
"address_line2": "string",
"address_postal_code": "string"
}
}
Properties
| Name | Type | Required | Constraints | Display name | Description | | --------------------- | ----------------- | -------- | ----------- | ------------ | ----------------------------------------------------------------- | ----- | ----------- | ------ | --- | --- | ------ | --- | --------------- | ------ | --- | ---- | ------ | --- | ----------------------- | ------ | --- | -------- | --- | | id | integer | false | none | | Order ID | | trade_no | string | false | none | | Internal order number | | out_trade_no | string | false | none | | External order number | | product_id | integer | false | none | | Package ID | | product_type | integer | false | none | | Package type; see product type enum | | amount | integer | false | none | | Purchase quantity | | unit_price | number(float) | false | none | | Unit price | | total_fee | number(float) | false | none | | Order total (excluding discounts, including handling fees) | | goods_fee | number(float) | false | none | | Goods price (including discounts, excluding handling fees) | | pay_fee | number(float) | false | none | | Actual paid amount (including discounts and handling fees) | | discount_fee | number(float) | false | none | | Discount amount | | handling_fee | number(float) | false | none | | Handling fee | | refund_fee | number(float) | false | none | | Refund amount | | pm_id | integer | false | none | | Payment method ID (from /open-api/payment/list) | | pm_title | string | false | none | | Payment method name | | pm_logo | string | false | none | | Payment method logo URL | | status | integer | false | none | | Order status
| Value | Description |
| --- | --- |
| 0 | Pending payment |
| 1 | Paid |
| 2 | Canceled due to timeout |
| 3 | Refunded | | | title | string | false | none | | Package title | | detail | string | false | none | | Package description | | region_desc | string | false | none | | Region specification description | | pay_at | string(date-time) | false | none | | Payment time | | pay_timestamp | integer | false | none | | Payment timestamp | | created_at | string(date-time) | false | none | | Created time | | pay_fee_status | integer | false | none | | Over/underpayment status: 0 normal, 1 overpayment, 2 underpayment | | invoice | object | false | none | | Invoice information (available only for online payment orders) | | » name | string | false | none | | Full name | | » org_name | string | false | none | | Company name | | » first_name | string | false | none | | none | | » last_name | string | false | none | | none | | » phone | string | false | none | | none | | » email | string(email) | false | none | | none | | » role_type | integer | false | none | | 1 individual, 2 company | | » vat_id | string | false | none | | Tax ID | | » address_country | string | false | none | | none | | » address_city | string | false | none | | none | | » address_line1 | string | false | none | | none | | » address_line2 | string | false | none | | none | | » address_postal_code | string | false | none | | none |
OrderCheckResult
{
"product_id": 0,
"amount": 0,
"discount_fee": 0.1,
"total_fee": 0.1,
"pay_fee": 0.1,
"product_type": 0,
"title": "string",
"detail": "string",
"ip_result": [
{
"ip": "string",
"price": 0.1,
"country_code": "string",
"current_time": "2019-08-24T14:15:22Z",
"renewal_time": "2019-08-24T14:15:22Z",
"country": {
"name_zh_cn": "string",
"flag": "string",
"square_flag": "string"
}
}
]
}
Order precheck result
Properties
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| product_id | integer | false | none | Package ID | |
| amount | integer | false | none | Quantity | |
| discount_fee | number(float) | false | none | Discount amount | |
| total_fee | number(float) | false | none | Order total | |
| pay_fee | number(float) | false | none | Actual paid amount | |
| product_type | integer | false | none | Package type | |
| title | string | false | none | Package title | |
| detail | string | false | none | Package description | |
| ip_result | [object] | false | none | IP batch renewal result (returned only for IP renewal) | |
| » ip | string | false | none | none | |
| » price | number(float) | false | none | none | |
| » country_code | string | false | none | none | |
| » current_time | string(date-time) | false | none | none | |
| » renewal_time | string(date-time) | false | none | none | |
| » country | object | false | none | none | |
| »» name_zh_cn | string | false | none | none | |
| »» flag | string | false | none | Round flag URL | |
| »» square_flag | string | false | none | Square flag URL |
Product
{
"id": 0,
"title": "string",
"type": 0,
"show_type": 0,
"status": 0,
"price": 0.1,
"usd_price": 0.1,
"price_hkd": 0.1,
"original_price": 0.1,
"original_usd_price": 0.1,
"original_price_hkd": 0.1,
"local_price": 0.1,
"local_original_price": 0.1,
"preferred_currency": "string",
"support_currencies": "string",
"flow_value": 0.1,
"flow_give": 0.1,
"balance_give": 0.1,
"balance_value": 0.1,
"time_validity": 0.1,
"time_price": 0.1,
"time_days": 0,
"tip1": "string",
"tip2": "string",
"introduce": ["string"],
"region_list_id": 0,
"renew_product_list": "string",
"parent_product_type": 0,
"total_count": 0,
"remain_count": 0,
"extension_of_time_days": [0],
"time_days_price_rate": 0.1,
"desc": {
"subtitle": "string",
"flow_value": 0.1,
"flow_give": 0.1,
"balance_give": 0.1,
"time_validity": 0.1,
"time_price": 0.1,
"tip1": "string",
"tip2": "string",
"introduce": ["string"]
},
"sku": {
"bandwidth_list": [
{
"id": 0,
"value": 0,
"price": 0.1,
"price_usd": 0.1,
"price_hkd": 0.1
}
],
"duration_list": [
{
"id": 0,
"value": 0,
"price": 0.1,
"price_usd": 0.1,
"price_hkd": 0.1
}
],
"concurrency_list": [
{
"id": 0,
"value": 0,
"price": 0.1,
"price_usd": 0.1,
"price_hkd": 0.1
}
]
}
}
Properties
| Name | Type | Required | Constraints | Display name | Description | | ---------------------- | ------------- | -------- | ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------- | ----- | ----------- | ------ | --- | --- | ------ | --- | ---------------- | ------ | --- | ----------------------------------- | ------ | --- | --------------------------- | ------ | --- | ------------------------------------------------ | ------ | --- | ----------------------------- | ------ | --- | ------------------------------------- | ------ | --- | ----------------------------- | ------ | --- | ----------------------------- | ------ | --- | ---------------------- | ------ | --- | ------------------------------ | ------ | --- | ------------------------- | ------ | --- | --------------------------------- | ------ | --- | ----------------------------- | ------ | --- | ----------------------------- | ------ | --- | ---------------------- | --- | | id | integer | false | none | | Package ID | | title | string | false | none | | Package main title | | type | integer | false | none | | Package type
| Value | Description |
| --- | --- |
| 3 | Balance recharge |
| 9 | Dynamic residential traffic package |
| 10 | Dynamic global time package |
| 11 | Custom dynamic global time package V2 (with SKU) |
| 12 | Long-term IDC traffic package |
| 13 | Residential static IP traffic package |
| 14 | Data center static IP package |
| 15 | Long-term ISP traffic package |
| 16 | Static traffic package |
| 17 | Dynamic residential IP package |
| 19 | Static IP renewal package |
| 20 | Static IP replacement eligibility |
| 21 | Static residential IP package |
| 24 | Static traffic add-on package |
| 25 | Static IP rate package | | | show_type | integer | false | none | | Display type: 1 normal, 2 high-volume recommendation, 3 unavailable for purchase (custom order required), 4 trial | | status | integer | false | none | | Status: 1 listed, 0 unlisted | | price | number(float) | false | none | | CNY price | | usd_price | number(float) | false | none | | USD price | | price_hkd | number(float) | false | none | | HKD price | | original_price | number(float) | false | none | | Original price (CNY) | | original_usd_price | number(float) | false | none | | Original price (USD) | | original_price_hkd | number(float) | false | none | | Original price (HKD) | | local_price | number(float) | false | none | | Localized price (depends on preferred_currency) | | local_original_price | number(float) | false | none | | Localized original price (depends on preferred_currency) | | preferred_currency | string | false | none | | Recommended display currency, such as usd / cny / hkd | | support_currencies | string | false | none | | Supported currency list, comma-separated, such as usd,cny | | flow_value | number(float) | false | none | | Default traffic for traffic packages (GB) | | flow_give | number(float) | false | none | | Bonus traffic (GB) | | balance_give | number(float) | false | none | | Balance recharge bonus amount | | balance_value | number(float) | false | none | | Recharge amount | | time_validity | number(float) | false | none | | Default validity period for quota packages | | time_price | number(float) | false | none | | Price per IP for quota packages | | time_days | integer | false | none | | Validity days, such as 30/90/180/365 | | tip1 | string | false | none | | Tag description 1 | | tip2 | string | false | none | | Tag description 2 | | introduce | [string] | false | none | | Text introduction list | | region_list_id | integer | false | none | | Region ID | | renew_product_list | string | false | none | | Renewable package ID list (comma-separated) | | parent_product_type | integer | false | none | | Parent package type (valid when type=19): 14 or 25 | | total_count | integer | false | none | | Total inventory; 0 means unlimited | | remain_count | integer | false | none | | Remaining inventory | | extension_of_time_days | [integer] | false | none | | Duration multiplier list. Empty or only 1 means unsupported. | | time_days_price_rate | number(float) | false | none | | Duration price coefficient: price x (1 + (multiplier - 1) x rate) | | desc | object | false | none | | Package description information | | » subtitle | string | false | none | | Subtitle | | » flow_value | number(float) | false | none | | none | | » flow_give | number(float) | false | none | | none | | » balance_give | number(float) | false | none | | none | | » time_validity | number(float) | false | none | | none | | » time_price | number(float) | false | none | | none | | » tip1 | string | false | none | | none | | » tip2 | string | false | none | | none | | » introduce | [string] | false | none | | none | | sku | object | false | none | | Specification parameters (returned when type=11) | | » bandwidth_list | [object] | false | none | | Bandwidth specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Bandwidth value (Mbps) | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none | | » duration_list | [object] | false | none | | Duration specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Duration (days) | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none | | » concurrency_list | [object] | false | none | | Concurrency specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Concurrency count | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none |
Pagination
{
"total": 0,
"page_no": 0,
"page_size": 0,
"total_pages": 0
}
Properties
| Name | Type | Required | Constraints | Display name | Description |
|---|---|---|---|---|---|
| total | integer | false | none | none | |
| page_no | integer | false | none | none | |
| page_size | integer | false | none | none | |
| total_pages | integer | false | none | none |