BestProxy
app_key Please check the authentication key after logging in at the homepage of your personal center.
Please save the key securely. This key grants you administrative privileges regarding your account.
Authentication method
App Key Authentication
POST Parameter:
app_key: {your_app_key}
Or as a query parameter:
?app_key={your_app_key}
Response format
All interfaces return data in a uniform JSON format.
{
"code": 200,
"message": "Operation successful",
"data": {}
}
code: Status code. 200 indicates success, other values indicate failure.message: Response message (Chinese)data: Response data
Base URLs:
Authentication
HTTP Authentication, scheme: bearer
API Key (apiKeyAuth)
- Parameter Name: app_key, in: query. Supports GET/POST and the
nameparameter.
- Parameter Name: app_key, in: query. Supports GET/POST and the
Proxy account management
GET Proxy Account List
GET /gateway/whitelist-account/list
Return 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
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | responseCode | false | none | Status code: 200 indicates success: 3 indicates invalid app_key. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» id | integer | false | none | Account number | |
| »»» username | string | false | none | Proxy account name | |
| »»» password | string | false | none | Proxy account password | |
| »»» created_at | string | false | none | Add time | |
| »»» remark | string | false | none | Notes | |
| »»» product_type | productTypes | false | none | Plan Types: 9 – Dynamic Home Traffic Plan; 11 – Dynamic Home IP; 14 – Static Data Center IP; 25 – Static Home IP | |
| »»» usage_flow | integer | false | none | Used traffic, in KB units | |
| »»» limit_flow | integer | false | none | Customized traffic limit: Maximum value in GB is 102400. Setting it to 0 means there is no limit. | |
| »»» status | integer | false | none | Enabled status: 1 - Enabled; 0 - Disabled |
Enumeration values
| Attributes | value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
POST to add a proxy account.
POST /gateway/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 | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | For the account password, please enter it in the format of username:password. The account and password should only contain digits and letters. Any special symbols or spaces are not allowed. The account and password should be separated by colons. Multiple accounts can be added together, and proxy accounts should be separated by commas (,). |
| » remark | body | string | No | Description of proxy account |
| » product_type | body | productTypes | No | Plan Types: 9 – Dynamic Home Traffic Plan; 11 – Dynamic Home IP; 14 – Static Data Center IP; 25 – Static Home IP |
Enumeration values
| Attributes | value |
|---|---|
| » product_type | 9 |
| » product_type | 11 |
| » product_type | 14 |
| » product_type | 25 |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST to delete the proxy account.
POST /gateway/whitelist-account/delete
Please note that once the deletion is completed, it cannot be restored. Any used data or other related information cannot be retrieved. There is a wait time of approximately 5 minutes after deletion, and charges may still be incurred during this period.
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts should only contain digits and letters. Batch operations are supported, and proxy accounts can be separated by commas (,) |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST proxy account is disabled.
POST /gateway/whitelist-account/disable
The disconnection process takes about 5 minutes. During this time, charges may still be incurred.
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts should only contain digits and letters. Batch operations are supported, and proxy accounts can be separated by commas (,) |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
Enable proxy account for POST.
POST /gateway/whitelist-account/enable
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts should only contain digits and letters. Batch operations are supported, and proxy accounts can be separated by commas (,) |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
Modify proxy account password via POST operation.
POST /gateway/whitelist-account/change-password
Please note that there will be a 5-minute wait time after the modification. During this period, the old password will still be valid and usable.
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"password": "pass"
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | The proxy account should only contain digits and letters. |
| » password | body | string | No | New password for the proxy account. Only digits and letters are allowed. |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST to modify the remarks associated with the proxy account.
POST /gateway/whitelist-account/change-remark
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"remark": ""
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | The proxy account should only contain digits and letters. |
| » remark | body | string | No | New remarks for the proxy account. The text should contain no more than 32 characters in Chinese or 64 characters in English. |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST to modify the proxy account’s traffic limit.
POST /gateway/whitelist-account/change-limit
Please note that there may be a delay of up to 5 minutes in the reporting of traffic statistics. This means that the actual amount of traffic consumed may exceed this limit.
Body request parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"limit": 0
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | The proxy account should only contain digits and letters. |
| » limit | body | integer | No | Traffic limit, in GB: 0 indicates no limit. |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
Modify proxy account information via POST interface.
POST /gateway/proxy-account/change
You can modify the proxy account password, remarks, traffic limits, daily traffic limit, activation status, or the UDP switch.
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 | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy account name |
| » password | body | string | No | New password: 6-16 digits or characters. If not provided, no change will be made. |
| » remark | body | string | No | New notes |
| » limit | body | integer | No | Traffic limit, in GB units. 0 indicates no limit. |
| » daily_limit | body | integer | No | Daily data limit, in GB. 0 indicates no limit. |
| » status | body | integer | No | Enabled status |
| » udp | body | integer | No | UDP supports a switch; this feature is applicable only to package types 14, 16, 21, and 25. |
Enumeration values
| Attributes | value |
|---|---|
| » status | 0 |
| » status | 1 |
| » udp | 0 |
| » udp | 1 |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
IP Allowlist
GET IP Allowlist
GET /gateway/proxy-ip/list
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| product_type | query | integer | No | Package Type ID |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"ip": "1.1.1.1",
"remark": "string",
"product_type": 0,
"created_at": "string"
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» ip | string | false | none | White List of IP Addresses | |
| »»» remark | string | false | none | Notes | |
| »»» product_type | integer | false | none | Package Types | |
| »»» created_at | string | false | none | Creation date |
Add IP Address to the Allowlist via POST Function
POST /gateway/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 | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | IP addresses that need to be added to the allowlist. Multiple IP addresses should be separated by commas or line breaks. |
| » remark | body | string | No | Notes |
| » product_type | body | integer | No | Package Type ID |
| » user_product_id | body | integer | No | User package ID. Required when the package type is 11. |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
After POST, delete the IP address list.
POST /gateway/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 | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | IP addresses that need to be removed from the allowlist. Multiple addresses should be separated by commas. |
| » verify_type | body | string | No | Verification type: phone, email, wechat, or totp |
| » verify_code | body | string | No | Captcha |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
Traffic log query
Summary of GET usage by day
GET /gateway/user-usage-flow/total
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | It is | Authentication key |
| start_time | query | string(Y-m-d H:i:s) | No | Start time, with precision up to the second. Please note that there is a delay of 5 minutes in logging records. By default, the records are kept for up to 7 days. |
| end_time | query | string(Y-m-d H:i:s) | No | The deadline is accurate to the second. Please note that there is a 5-minute delay in logging records. The current time is used by default. |
| username | query | string | No | Sub-account name: By default, all accounts will be queried. However, you can specify a specific sub-account. Please note that if you add a sub-account with the same name, the query will return all usage records of that sub-account. |
| product_type | query | number | No | Package Types |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"day": "2022-08-01",
"flow": 0
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» day | string | false | none | Date | |
| »»» flow | integer | false | none | Traffic consumed, in units of KB |
Package Inquiry
View list of purchased packages.
GET /gateway/user-product/list
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | It is | Authentication key |
| trade_no | query | string | No | Please enter the full order number. Fuzzy searching is not supported. |
| page | query | number | No | Pagination, default: 1 |
| size | query | number | No | Number of items per page. Default value: 20 |
| product_type | query | number | No | Package Types |
Return 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": "Entry level"
}
}
],
"page": 1,
"page_size": 20,
"total_count": 0,
"total_page": 0
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» id | integer | false | none | Package Number | |
| »»» created_at | string | false | none | Effective period of the package | |
| »»» expired_at | string | false | none | The package will expire after a certain time, and after that, data usage will become unavailable. | |
| »»» product_type | productTypes | false | none | Plan Types: 9 – Dynamic Home Traffic Plan; 11 – Dynamic Home IP; 14 – Static Data Center IP; 25 – Static Home IP | |
| »»» trade_no | string | false | none | Order transaction number | |
| »»» order | object | false | none | none | |
| »»»» created_at | string | false | none | Order creation time | |
| »»»» pay_at | string | false | none | Order payment deadline | |
| »»»» title | string | false | none | Order Description | |
| »» page | integer | false | none | Current page range | |
| »» page_size | integer | false | none | Page size | |
| »» total_count | integer | false | none | Total number of records | |
| »» total_page | integer | false | none | Number of total pages |
Enumeration values
| Attributes | value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
Retrieve summary data of user packages
GET /gateway/user-product/summary
Obtain statistical summary information regarding the user's subscription, including total quantities, valid quantities, quantities approaching expiration, and expired quantities.
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | It is | Authentication key |
| product_type | query | integer | No | Product type: Only supports 9 (dynamic data package) and 12 (long-term IDC data package). |
Enumeration values
| Attributes | value |
|---|---|
| product_type | 9 |
| product_type | 12 |
Return 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
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» total | integer | false | none | Total traffic/IP volume (unit: KB) | |
| »» total_count | integer | false | none | Total number of packages | |
| »» effective | integer | false | none | Effective remaining amount (Unit: KB) | |
| »» effective_count | integer | false | none | Number of valid packages | |
| »» effective_total | integer | false | none | Effective total amount (Unit: KB) | |
| »» effective_used | integer | false | none | Effective usage (Unit: KB) | |
| »» temporary | integer | false | none | Total amount within the deadline (expires within 7 days, unit: KB) | |
| »» temporary_count | integer | false | none | Number of subscription packages that will expire within 7 days | |
| »» expired | integer | false | none | Expired remaining amount (Unit: KB) | |
| »» expired_count | integer | false | none | Number of expired plans | |
| »» used | integer | false | none | Total used memory (Unit: KB) |
IP extraction
GET: Extract IP address.
GET /gateway/ip/v3
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | It is | Access keys |
| cc | query | string | No | Country or Region |
| state | query | string | No | State or Province |
| city | query | string | No | city |
| format | query | string | No | Get the format |
| lb | query | string | No | Separator character, only valid for text formats. |
| num | query | number | No | Extract quantity |
| life | query | number | No | Maintenance cycle - minutes |
| ep | query | string | No | Proxy network |
Enumeration values
| Attributes | value |
|---|---|
| ep | us |
| ep | hk |
| ep | de |
Return 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"
]
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [any] | false | none | none |
GET Dynamic List of Cities in the Region V4
GET /gateway/ip/dcl4
To obtain the list of cities based on the username, you need to log in and verify your identity. Additionally, the account must belong to the current user.
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| username | query | string | It is | Proxy account username |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | city | |
| »»» Area | string | false | none | region | |
| »»» State | string | false | none | State/Province |
GET Dynamic List of Regions, States/Provinces, V4
GET /gateway/ip/dsl4
To obtain a list of states/provinces based on the username, you need to log in and ensure that the account belongs to the current user.
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| username | query | string | It is | Proxy account username |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | city | |
| »»» Area | string | false | none | region | |
| »»» State | string | false | none | State/Province |
GET Dynamic List of Regions, States/Provinces, and Cities V4
GET /gateway/ip/dal4
Retrieve a combined list of states/provinces and cities based on user names, grouped by region. Login is required, and the account must be owned by the current user.
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| username | query | string | It is | Proxy account username |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"Area": "US",
"states": [
{
"State": null,
"cities": null
}
]
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» list | [object] | false | none | Region list | |
| »»» Area | string | false | none | Regional code | |
| »»» states | [object] | false | none | State/Province List | |
| »»»» State | string | false | none | State/Province Name | |
| »»»» cities | [string] | false | none | List of Cities |
GET City List
GET /gateway/ip/dynamic-citys
Return 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
}
]
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » 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 Codes | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | State or Province | |
| »»»» city | string | false | none | City Name | |
| »»»» state | string | false | none | State or province name code | |
| »»»» continent_code | string | false | none | Continent Codes | |
| »»»» country_code | string | false | none | Country or region code |
GET City Search
GET /gateway/ip/dynamic-citys/search
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| country_code | query | string | It is | Country or region code |
| state | query | string | It is | State or province code |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been accepted. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET State List
GET /gateway/ip/dynamic-states
Return 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
}
]
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » 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 Codes | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | State or Province | |
| »»»» state | string | false | none | State or province name code | |
| »»»» continent_code | string | false | none | Continent Codes | |
| »»»» country_code | string | false | none | Country or region code |
GET State/Province Search
GET /gateway/ip/dynamic-states/search
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| country_code | query | string | It is | Country or region code |
Return example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The request has been completed. | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 indicates success; 3 indicates invalid app_key; 156 indicates that the account is not verified. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET: List of purchased static IP addresses.
GET /gateway/ip/get-static-ip
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| country_code | query | string | No | Country or region code |
| product_type | query | number | No | Product Type: 25 – Static residential IP addresses; 14 – Data center IP addresses |
| trade_no | query | string | No | Filter IP addresses by order number. |
| page | query | number | No | Page number |
| size | query | number | No | Number of items per page |
| status | query | number | No | Status: 1 – Valid; 2 – Invalid; 3 – About to expire; 4 – Under maintenance |
Enumeration values
| Attributes | value |
|---|---|
| product_type | 14 |
| product_type | 25 |
| status | 1 - 2 - 3 - 4 |
Return example
200 Response
{}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | none | Inline |
Return data structure
GET: Number of static IP addresses available in the available regions.
GET /gateway/ip/static-ip-region
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| isp | query | integer | No | ISP filtering: No filtering if not specified (default value: 1 for sites 1/4/5) |
| as n | query | integer | No | Should the ASN group data be returned? |
| exclusive | query | integer | No | Should the statistics be based on exclusive inventory? |
Please provide a detailed description.
ISP: ISP filtering option. If not specified, no filtering will occur (default value: 1 for sites 1/4/5)
| value | Description |
|---|---|
| 0 | Data center static IP address (IDC) |
| 1 | Home residential static IP addresses (ISP) |
asn: Should the ASN packet data be returned?
| value | Description |
|---|---|
| 0 | Do not return ASN group data (default) |
| 1 | Returning ASN group data |
Exclusive: Whether to count results based on exclusive inventory.
| value | Description |
|---|---|
| 0 | Statistics are based on the current user/shared group configuration (default). |
| 1 | Exclude all assigned IP addresses. Only count those available inventory addresses. |
Enumeration values
| Attributes | value |
|---|---|
| isp | 0 |
| isp | 1 |
| as n | 0 |
| asn | 1 |
| exclusive | 0 |
| exclusive | 1 |
Return example
200 Response
{
"code": 200,
"msg": "Request succeeded",
"data": {
"list": [
{
"code": "US",
"number": 55
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code | |
| »»» number | integer | false | none | quantity |
GET: Used to retrieve information related to host_pool. Supports countries/regions.
GET /gateway/host-pool/regions
Query the list of countries/regions supported by the host_pool service for the current site.
This interface is designed for scenarios where data centers provide IP addresses based on traffic points. It only considers the available IP addresses in the current site, and only counts countries/regions based on those IP addresses. It does not support filtering by ASN, ISP, or dedicated inventory. Additionally, it does not exclude IP addresses based on user purchase history.
Return example
200 Response
{
"code": 200,
"msg": "Request succeeded",
"data": {
"list": [
{
"code": "US",
"number": 55,
"name_zh_cn": "United States",
"name_en": "United States",
"square_flag": "https://example.com/static/flags/us.png"
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Request succeeded | Inline |
Return data structure
Status code: 200
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200, indicating success. | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code, ISO 3166-1 alpha-2 format | |
| »»» number | integer | false | none | Number of Available Data Center IP Addresses in the Current Site | |
| »»» name_zh_cn | string | false | none | Chinese name of the country or region | |
| »»» name_en | string | false | none | English name of the country or region | |
| »»» square_flag | string | false | none | Square national flag image URL |
Order Management
GET order list
GET /gateway/order/list
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| 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), such as 2024-01-01 00:00:00 |
| end_time | query | string(date-time) | No | End time (excluding) |
| status | query | integer | No | Order status |
| product_type | query | integer | No | Product Type |
| invoice | query | integer | No | Invoice status: 0 – No restrictions; 1 – Invoices issued; -1 – Invoices not issued yet (can be issued later) |
| pay_fee_status | query | integer | No | Length-based filtering: 1. Overpayment; 2. Shortfall payment |
Please provide a detailed description.
Status: Order status
| status | Description |
|---|---|
| 0 | To be paid |
| 1 | Paid |
| 2 | Timeout and payment not made, operation cancelled. |
| 3 | Refunded |
product_type: Product type
| Product Type | Description |
|---|---|
| 3 | Recharge remaining balance |
| 9 | Dynamic traffic packages |
| 11 | Dynamic Global Package V2 |
| 12 | Long-term IDC traffic packages |
| 13 | Residential static IP traffic packages |
| 14 | Data center static IP package |
| 15 | Long-term ISP traffic package |
| 16 | Static traffic packages |
| 17 | Dynamic IP address quota packages |
| 18 | web-scraper |
| 19 | Static IP renewal |
| 20 | Static IP Reallocation Quota |
| 21 | Static Traffic Package v2 |
| 24 | Static traffic additional package |
| 25 | Residential static IP packages |
| 26 | Supplementary payment – Some payment channels require users to manually enter the amount to be paid. For example, in the case of virtual currencies, if there is any shortfall in the payment amount, users need to contact customer service to arrange a supplementary payment through this product. |
| 27 | Serp |
| 28 | Video |
Enumeration values
| Attributes | 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 |
Return 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
}
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Success | Inline |
Return data structure
Create an order via POST interface.
POST /gateway/order/create
There are many different package types, and each package has different configuration requirements. Please fill in the parameters according to the actual situation. Incorrectly filling in the parameters may lead to the order failing to be created.
examples:
Renewing static IP addresses
{
"pid": "package_id", // Obtained from the /gateway/product API
"upids": "1,2,3,4,5,6", // Obtained from the corresponding id field in the /gateway/ip/get-static-ip API
"pm_id": 1 // Obtained from the /gateway/payment/list or /gateway/payment/groups API
}
Purchase static residential IP addresses
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id", // Obtained from the /gateway/payment/list or /gateway/payment/groups API
"region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN number is optional)
}
Static data center IP address purchases
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id", // Obtained from the /gateway/payment/list or /gateway/payment/groups API
"region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN number is optional)
}
Dynamic residential property purchases
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id" // Obtained from the /gateway/payment/list or /gateway/payment/groups API
}
Static rotation traffic purchase
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id" // Obtained from the /gateway/payment/list or /gateway/payment/groups API
}
Dynamic unlimited data plan purchases
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id", // Obtained from the /gateway/payment/list or /gateway/payment/groups API
"product_sku_bandwidth_id": "bandwidth_specification_id",
"product_sku_concurrency_id": "concurrency_specification_id"
}
Top up your balance
{
"pid": "package_id", // Obtained from the /gateway/product API
"pm_id": "payment_method_id", // Obtained from the /gateway/payment/list or /gateway/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 | Explanation |
|---|---|---|---|---|
| body | body | object | It is | none |
| » pid | body | integer | It is | Package ID, which is the id field returned from the /gateway/product interface |
| » upids | body | string | No | Renewal plan ID list (separated by commas), obtained from the id field returned by the /gateway/user-product/list or /gateway/ip/get-static-ip interface. |
| » amount | body | number | No | Number of newly purchased packages |
| » pm_id | body | integer | It is | Payment method ID, obtained from the id field returned by the /gateway/payment/list or /gateway/payment/groups API. |
| » region_list | body | string | No | When purchasing static IP addresses, specify the region, quantity, and ASN number. The format should be: region, quantity, ASN. |
| » coupon_sn | body | string | No | Coupon Code |
| » use_invitation_registration_discount | body | boolean | No | Should we offer a discount for registered through invitation? |
| » renew_duration | body | integer | No | Renewal duration - Static IP available for selection |
| » product_sku_bandwidth_id | body | integer | No | Package 11: Bandwidth Package ID |
| » product_sku_concurrency_id | body | integer | No | Package 11: Concurrent Usage Package ID |
| » product_sku_duration_id | body | integer | No | Package type=11 Required: ID of the duration specification |
| » etd | body | integer | No | Duration multiplier. Obtained from the "extension_of_time_days" parameter. A value of 2 indicates doubling the number of days; it also represents an increase in price. |
| » recharge_amount | body | integer | No | Package 3: Recharge amount |
Return 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"
}
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Creation successful. | Inline |
Return data structure
Cancel the order.
POST /gateway/order/close
Body request parameters
{
"trade_no": "string"
}
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| body | body | object | It is | none |
| » trade_no | body | string | It is | none |
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | The operation was successful. | None |
POST: Pre-check for order availability
POST /gateway/order/check
Called before creating an order. It is used for previewing prices, discounts, and details related to IP renewal. No actual order will be created. The parameters are exactly the same as those in /gateway/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 | Explanation |
|---|---|---|---|---|
| body | body | object | It is | none |
| » pid | body | integer | It is | Package ID |
| » upids | body | string | No | IP Renewal: List of user package IDs, separated by commas |
| » amount | body | integer | No | Number of units purchased |
| » pm_id | body | integer | It is | Payment Method ID |
| » region_list | body | string | No | Region and quantity of static IP addresses to be purchased. Format: Region ID, Quantity |
| » coupon_sn | body | string | No | Coupon Code |
| » renew_duration | body | string | No | IP renewal duration: 1 month for 1 IP; 2 months for 2 IPs. em refers to the end of the next month. |
| » product_sku_bandwidth_id | body | integer | No | Package Type=11 Required: ID of the bandwidth specification |
| » product_sku_concurrency_id | body | integer | No | Package type=11 Required: ID of the concurrent configuration |
| » product_sku_duration_id | body | integer | No | Package type=11 Required: ID of the duration specification |
| » etd | body | integer | No | Duration multiplier, obtained from the "package extension_of_time_days" parameter. |
| » recharge_amount | body | number | No | Package type=3 Required: Amount to recharge |
Enumeration values
| Attributes | value |
|---|---|
| » renew_duration | 1m |
| » renew_duration | 2m |
| » renew_duration | em |
Return 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": {}
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Pre-check succeeded. | Inline |
Return data structure
Payment management
GET: Retrieves a list of payment methods.
GET /gateway/payment/list
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| trade_no | query | string | No | Order number - Some orders require a specific payment method, which can be provided here. |
| currency | query | string | No | Currency unit |
Return 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
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Success in obtaining the result. | Inline |
Return data structure
GET: Retrieves a list of payment methods.
GET /gateway/payment/groups
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| trade_no | query | string | No | Order number - Some orders require a specific payment method, which can be provided here. |
Return example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [
{
"name": "string",
"logos": [
null
],
"items": [
null
]
}
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | Success in obtaining the result. | Inline |
Return data structure
Marketing
GET: The ratio of bonus money to be awarded during recharge
GET /gateway/activity/balance-recharge-gift-ratio
Recharge bonus ratio
Return example
200 Response
{
"code": 0,
"message": "Operation successful",
"data": {
"list": [
null
]
}
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Return data structure
Products
GET Product List
GET /gateway/product
retrieves a list of packages available for purchase on the current site. Filters can be applied based on category, validity period, etc.
Request parameters
| Name | Location | Type | Required | Explanation |
|---|---|---|---|---|
| type | query | integer | No | Package type. See the description of the Product.type enumeration for details. If this parameter is not provided, all types will be returned. |
| parent_product_type | query | integer | No | Parent package type. Valid only when type=19 (IP renewal). Used for filtering product lines: 14 = Data Center; 25 = Residential |
| time_days | query | any | No | Validity period filtering, supporting single value or array format, such as 30 / [30, 90, 365]. |
| show_type | query | any | No | Display type filtering, supporting single value or array format. |
Please provide a detailed description.
Type: Type of the package. See the enumeration description in Product.type for details. If this parameter is not provided, all types will be returned.
Enumeration values
| Attributes | value |
|---|---|
| parent_product_type | 14 |
| parent_product_type | 25 |
Return 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
]
}
}
]
}
Return the result
| Status code | Meaning of status codes | Explanation | Data model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Return data structure
Data model
productTypes
9
Package types: 9 – Dynamic residential data packages; 11 – Dynamic residential IP addresses; 14 – Static data center IP addresses; 25 – Static residential IP addresses.
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Plan Types: 9 – Dynamic Residential Data Plans; 11 – Dynamic Residential IP Addresses; 14 – Static Data Center IP Addresses; 25 – Static Residential IP Addresses |
Enumeration values
| Attributes | value |
|---|---|
| anonymous | 9 |
| anonymous | 11 |
| anonymous | 14 |
| anonymous | 25 |
apiKey
null
Authentication key
Attributes
None
responseCode
200
Status code: 200 indicates success: 3 indicates invalid app_key.
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Status code: 200 indicates success: 3 indicates invalid app_key. |
responseMsg
"success"
response message
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| anonymous | string | false | none | response message |
SuccessResponse
{
"code": 0,
"message": "Operation successful",
"data": {}
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none |
ErrorResponse
{
"code": 400,
"message": "Parameter error",
"errors": {}
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| errors | object | false | none | none |
User
{
"id": 0,
"email": "[email protected]",
"phone": "string",
"balance": 0.1,
"status": 0,
"is_real_name": true,
"created_at": "2019-08-24T14:15:22Z"
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | none | |
| string(email) | false | none | none | ||
| phone | string | false | none | none | |
| balance | number(float) | false | none | none | |
| status | integer | false | none | none | |
| is_real_name | boolean | false | none | none | |
| created_at | string(date-time) | 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"
}
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| 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 the list of product types for details. | |
| amount | integer | false | none | Number of units purchased | |
| unit_price | number(float) | false | none | Unit price | |
| total_fee | number(float) | false | none | Total order price (excluding discounts, including fees) | |
| goods_fee | number(float) | false | none | Product price (including discounts, excluding handling fees) | |
| pay_fee | number(float) | false | none | Actual payment amount (including discounts and fees) | |
| discount_fee | number(float) | false | none | Discount amount | |
| handling_fee | number(float) | false | none | Fees and charges | |
| refund_fee | number(float) | false | none | Refund amount | |
| pm_id | integer | false | none | Payment method ID from /gateway/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 | |
| title | string | false | none | Package Title | |
| details | string | false | none | Package Description | |
| region_desc | string | false | none | Regional specifications description | |
| pay_at | string(date-time) | false | none | Payment deadline | |
| pay_timestamp | integer | false | none | Payment timestamp | |
| created_at | string(date-time) | false | none | Creation date | |
| pay_fee_status | integer | false | none | Payment status: 0 – Normal; 1 – Long-term payment (overpayment); 2 – Short-term payment | |
| invoice | object | false | none | Invoice information (only applicable to 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 | |
| string(email) | false | none | none | ||
| » role_type | integer | false | none | 1 person, 2 companies | |
| » vat_id | string | false | none | Tax identification number | |
| » 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 pre-check results
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| 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 | Total order amount | |
| pay_fee | number(float) | false | none | Actual payment amount | |
| product_type | integer | false | none | Package Types | |
| title | string | false | none | Package Title | |
| details | string | false | none | Package Description | |
| ip_result | [object] | false | none | IP batch renewal results (only returned when performing IP renewal operations) | |
| » 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-shaped flag URL | |
| »» square_flag | string | false | none | Square-shaped banner 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
}
]
}
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | Package ID | |
| title | string | false | none | Main Package Title | |
| type | integer | false | none | Package Types | |
| show_type | integer | false | none | Display Type: 1. Ordinary; 2. Highly recommended; 3. Not available for purchase (requires customization); 4. Trial version only | |
| status | integer | false | none | Status: 1 - Released; 0 - Rejected | |
| price | number(float) | false | none | Renminbi prices | |
| usd_price | number(float) | false | none | US dollar 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 (dependent on preferred_currency) | |
| local_original_price | number(float) | false | none | Localized original price (dependent on preferred_currency) | |
| preferred_currency | string | false | none | It is recommended to display currencies such as USD, CNY, and HKD. | |
| support_currencies | string | false | none | List of supported currencies, separated by commas. Example: usd,cny | |
| flow_value | number(float) | false | none | Default data quota (in GB) | |
| flow_give | number(float) | false | none | Gifted data quota (in GB) | |
| balance_give | number(float) | false | none | Remaining balance for additional purchases | |
| balance_value | number(float) | false | none | Recharge amount | |
| time_validity | number(float) | false | none | The default validity period of the package is as follows: | |
| time_price | number(float) | false | none | The price per IP for the package | |
| time_days | integer | false | none | Number of days until expiration: 30, 90, 180, 365 days | |
| 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 | List of renewable package IDs (separated by commas) | |
| parent_product_type | integer | false | none | Parent package type (valid when type=19): 14 or 25 | |
| total_count | integer | false | none | Total inventory. 0 indicates no restrictions. | |
| remain_count | integer | false | none | Remaining inventory | |
| extension_of_time_days | [integer] | false | none | Duration list. An empty list or a list containing only one item indicates that this feature is not supported. | |
| time_days_price_rate | number(float) | false | none | Duration price coefficient: price × (1 + (multiple - 1) × rate) | |
| description | 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 | Specifications (returned when type=11) | |
| » bandwidth_list | [object] | false | none | Bandwidth specification list | |
| »» id | integer | false | none | none | |
| »» value | integer | false | none | Bandwidth (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 (in 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 | Concurrent specifications list | |
| »» id | integer | false | none | none | |
| »» value | integer | false | none | Concurrency | |
| »» price | number(float) | false | none | none | |
| »» price_usd | number(float) | false | none | none | |
| »» price_hkd | number(float) | false | none | none |
WhiteIp
{
"id": 0,
"ip": "string",
"remark": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | none | |
| ip | string | false | none | none | |
| remark | string | false | none | none | |
| created_at | string(date-time) | false | none | none |
WhitelistAccount
{
"id": 0,
"username": "string",
"limit": 0,
"used": 0,
"status": 0
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | none | |
| username | string | false | none | none | |
| limit | integer | false | none | none | |
| used | integer | false | none | none | |
| status | integer | false | none | none |
Coupon
{
"id": 0,
"name": "string",
"code": "string",
"discount": 0.1,
"expire_time": "2019-08-24T14:15:22Z"
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | none | |
| name | string | false | none | none | |
| code | string | false | none | none | |
| discount | number(float) | false | none | none | |
| expire_time | string(date-time) | false | none | none |
Article
{
"id": 0,
"title": "string",
"content": "string",
"created_at": "2019-08-24T14:15:22Z"
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | none | |
| title | string | false | none | none | |
| content | string | false | none | none | |
| created_at | string(date-time) | false | none | none |
Pagination
{
"total": 0,
"page_no": 0,
"page_size": 0,
"total_pages": 0
}
Attributes
| Name | Type | Required | restrictions | Chinese Name | Explanation |
|---|---|---|---|---|---|
| total | integer | false | none | none | |
| page_no | integer | false | none | none | |
| page_size | integer | false | none | none | |
| total_pages | integer | false | none | none |
