title: NSocks language_tabs:
- shell: Shell
- http: HTTP
- javascript: JavaScript
- ruby: Ruby
- python: Python
- php: PHP
- java: Java
- go: Go toc_footers: [] includes: [] search: true code_clipboard: true highlight_theme: darkula headingLevel: 2 generator: "@tarslib/widdershins v4.0.30"
NSocks
app_key Please log in and view the authentication key on the homepage of your personal center.
Please keep your key safe; you have administrator privileges for your account.
Authentication methods
App Key 认证
POST parameters:
app_key: {your_app_key}
Or as a query parameter:
?app_key={your_app_key}
Response format
All interfaces return a unified JSON format:
{
"code": 200,
"message": "操作成功",
"data": {}
}
code: Status code. 200 means successful, other values indicate failuremessage: Response message (Chinese)data: Response data
Base URLs:
Authentication
HTTP Authentication, scheme: bearer
API Key (apiKeyAuth)
- Parameter Name: app_key, in: query. 支持GET/POST,name 支持
Agency account management
GET proxy account list
GET /ep/whitelist-account/list
Return to 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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | responseCode | false | none | Status code: 200 successful, 3 app_key invalid | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» id | integer | false | none | Account number | |
| »»» username | string | false | none | Agent account name | |
| »»» password | string | false | none | Proxy account password | |
| »»» created_at | string | false | none | Add time | |
| »»» remark | string | false | none | Note | |
| »»» product_type | productTypes | false | none | Package types: 9 dynamic residential data packages, 11 dynamic residential IPs, 14 static data center IPs, 25 static residential IPs | |
| »»» usage_flow | integer | false | none | Usage data, unit: KB | |
| »»» limit_flow | integer | false | none | Custom data limit: Unit GB, maximum 102,400, no limit | |
| »»» status | integer | false | none | Enabled status: 1 Enable, 0 Deactivated |
Enumeration value
| Attributes | Value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
POST Add proxy accounts.
POST /ep/whitelist-account/add
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01:pass,user02:pass,user03:pass",
"remark": "",
"product_type": 9
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | For account passwords, please enter them in the username:password format. The account and password only support numbers and letters; do not enter any special symbols or spaces. The colon separates the account and password. Supports batch adding, with English commas (,) separating proxy accounts. |
| » remark | body | string | No | Proxy account description |
| » product_type | body | productTypes | No | Package types: 9 dynamic residential data packages, 11 dynamic residential IPs, 14 static data center IPs, 25 static residential IPs |
Enumeration value
| Attributes | Value |
|---|---|
| » product_type | 9 |
| » product_type | 11 |
| » product_type | 14 |
| » product_type | 25 |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST Delete proxy account
POST /ep/whitelist-account/delete
Please note that deletion cannot be restored, and data usage cannot be checked. There is about a 5-minute waiting time for deletion, during which fees may still apply.
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts, only supporting numbers and letters. Supports batch operations, with English commas (,) separating proxy accounts |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST Disable proxy accounts
POST /ep/whitelist-account/disable
There is about a 5-minute waiting time to disable it, during which fees may still apply.
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts, only supporting numbers and letters. Supports batch operations, with English commas (,) separating proxy accounts |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST enables proxy accounts
POST /ep/whitelist-account/enable
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » accounts | body | string | No | Proxy accounts, only supporting numbers and letters. Supports batch operations, with English commas (,) separating proxy accounts |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST Change proxy account password
POST /ep/whitelist-account/change-password
Please note that there is a 5-minute waiting period after modification, during which the old password may still be used normally.
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"password": "pass"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy accounts, only supporting numbers and letters. |
| » password | body | string | No | The proxy account has a new password, supporting only numbers and letters. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST: Modify the agent account notes
POST /ep/whitelist-account/change-remark
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"remark": ""
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy accounts, only supporting numbers and letters. |
| » remark | body | string | No | New notes for agent accounts: up to 32 Chinese or 64 English words. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST modifies the proxy account traffic limit
POST /ep/whitelist-account/change-limit
Please note that data statistics may have delays of up to 5 minutes, meaning actual data consumption may exceed this limit.
Body requests parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"limit": 0
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Proxy accounts, only supporting numbers and letters. |
| » limit | body | integer | No | Traffic limits, unit: GB, 0 means no upper limit |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST: Modify agent account information
POST /ep/proxy-account/change
Change proxy account passwords, notes, traffic limits, daily traffic limits, enabled status, or the UDP switch.
Body requests parameters
{
"app_key": "string",
"account": "string",
"password": "string",
"remark": "string",
"limit": 0,
"daily_limit": 0,
"status": 0,
"udp": 0
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » account | body | string | No | Agent account name |
| » password | body | string | No | New passwords, 6-16 digits or letters; If it is not transmitted, then it will not be revised |
| » remark | body | string | No | New notes |
| » limit | body | integer | No | Traffic limit, measured in GB, 0 means no limit |
| » daily_limit | body | integer | No | Daily data limit, measured in GB, 0 means no limit |
| » status | body | integer | No | Enabled status |
| » udp | body | integer | No | UDP supports toggling and is only effective for package types 14, 16, 21, and 25 |
Enumeration value
| Attributes | Value |
|---|---|
| » status | 0 |
| » status | 1 |
| » udp | 0 |
| » udp | 1 |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
IP whitelist
GET IP whitelist list
GET /ep/proxy-ip/list
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| product_type | query | integer | No | Package type number |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"ip": "1.1.1.1",
"remark": "string",
"product_type": 0,
"created_at": "string"
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» ip | string | false | none | Whitelist IP | |
| »»» remark | string | false | none | Note | |
| »»» product_type | integer | false | none | Types of packages | |
| »»» created_at | string | false | none | Creation date |
POST Add IP whitelist
POST /ep/proxy-ip/add
Body requests 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 | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | Whitelist IPs to be added, multiple separated by English commas or line breaks |
| » remark | body | string | No | Note |
| » product_type | body | integer | No | Package type number |
| » user_product_id | body | integer | No | User package ID, required for the 11 Hour package type |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST removes IP whitelist
POST /ep/proxy-ip/delete
Body requests parameters
{
"app_key": "string",
"ips": "1.1.1.1,2.2.2.2",
"verify_type": "string",
"verify_code": "string"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | No | none |
| » app_key | body | string | No | Authorization key |
| » ips | body | string | No | Whitelist IPs that need to be deleted, separated by English commas |
| » verify_type | body | string | No | 验证类型:phone、email、wechat、totp |
| » verify_code | body | string | No | Captcha |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
Traffic log query
GET data usage is aggregated daily
GET /ep/user-usage-flow/total
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| start_time | query | string(Y-m-d H:i:s) | No | The starting time can be precise to the second. Please note that there is a delay of up to 5 minutes in log logs. The default is within 7 days. |
| end_time | query | string(Y-m-d H:i:s) | No | The cutoff time can be precise to the second. Please note that there is a delay of up to 5 minutes in log logs. Default current time. |
| username | query | string | No | Subaccount names: By default, query all accounts, and can specify sub-accounts. Please note that if you add sub-accounts with the same name, this query will return all usage records of the proxy account with the same name. |
| product_type | query | number | No | Types of packages |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"day": "2022-08-01",
"flow": 0
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» day | string | false | none | Date | |
| »»» flow | integer | false | none | Data consumption, unit KB |
Package inquiry
GET the list of purchased packages
GET /ep/user-product/list
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| trade_no | query | string | No | Order number, please enter the complete order number. Fuzzy search is not supported. |
| page | query | number | No | Pagination, default: 1 |
| size | query | number | No | Pagination display quantity, default: 20 |
| product_type | query | number | No | Types of packages |
Return to 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": "入门级"
}
}
],
"page": 1,
"page_size": 20,
"total_count": 0,
"total_page": 0
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» id | integer | false | none | Package number | |
| »»» created_at | string | false | none | Package effective date | |
| »»» expired_at | string | false | none | Package expiration period: After expiration, data cannot be used. | |
| »»» product_type | productTypes | false | none | Package types: 9 dynamic residential data packages, 11 dynamic residential IPs, 14 static data center IPs, 25 static residential IPs | |
| »»» trade_no | string | false | none | Order trading 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 tab | |
| »» page_size | integer | false | none | Page size | |
| »» total_count | integer | false | none | Total number of records | |
| »» total_page | integer | false | none | Total number of pages |
Enumeration value
| Attributes | Value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
GET user package data summary
GET /ep/user-product/summary
Obtain statistical summary information on user packages, including total volume, valid quantity, near-expiry quantity, expiration quantity, etc
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Authentication key |
| product_type | query | integer | No | Product types: only 9 (dynamic data plans), 12 (long-term IDC data plans) |
Enumeration value
| Attributes | Value |
|---|---|
| product_type | 9 |
| product_type | 12 |
Return to example
200 Response
{
"code": 200,
"msg": "成功",
"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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» total | integer | false | none | Total traffic/IP (unit: KB) | |
| »» total_count | integer | false | none | Total number of packages | |
| »» effective | integer | false | none | Effective Surplus (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 Near Expiry (Expires within 7 days, Unit: KB) | |
| »» temporary_count | integer | false | none | Number of near-expiry packages (expires within 7 days) | |
| »» expired | integer | false | none | Expired Surplus (Unit: KB) | |
| »» expired_count | integer | false | none | Number of expired packages | |
| »» used | integer | false | none | Total usage (unit: KB) |
IP extraction
GET the extraction IP
GET /ep/ip/v3
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| app_key | query | string(password) | Yes | Access key |
| cc | query | string | No | Country or region |
| state | query | string | No | Provinces or prefectures |
| city | query | string | No | City |
| format | query | string | No | Get format |
| lb | query | string | No | Spacers, only text format is valid |
| num | query | number | No | Extraction quantity |
| life | query | number | No | Hold the cycle for minutes |
| ep | query | string | No | Agent networks |
Enumeration value
| Attributes | Value |
|---|---|
| ep | us |
| ep | hk |
| ep | of |
Return to 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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [any] | false | none | none |
GET dynamic regional city list V4
GET /ep/ip/dcl4
Obtain a list of cities by username, requires login authentication, and the account must belong to the current user
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» Art | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | Region | |
| »»» State | string | false | none | State/Province |
GET dynamic regional state/province list V4
GET /ep/ip/dsl4
Obtain a list of states/provinces by username, requires login authentication, and the account must belong to the current user
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"City": "Los Angeles",
"Area": "US",
"State": "California"
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» Art | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | Region | |
| »»» State | string | false | none | State/Province |
GET dynamic regional/provincial city fusion list V4
GET /ep/ip/dal4
Get a merged list of states/provinces and cities by username, grouped by region. Login authentication is required, and the account must belong to the current user
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| username | query | string | Yes | Proxy account username |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"cache": true,
"list": [
{
"Area": "US",
"states": [
{
"State": null,
"cities": null
}
]
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» cache | boolean | false | none | Is it from the cache? | |
| »» Art | [object] | false | none | List of regions | |
| »»» Area | string | false | none | Regional code | |
| »»» states | [object] | false | none | List of states/provinces | |
| »»»» State | string | false | none | State/province name | |
| »»»» cities | [string] | false | none | List of cities |
GET the list of cities
GET /ep/ip/dynamic-citys
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"name_zh_cn": "美国",
"name_en": "United States",
"continent_code": "NA",
"country_code": "US",
"items": [
{
"city": null,
"state": null,
"continent_code": null,
"country_code": null
}
]
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | List | |
| »»» name_zh_cn | string | false | none | Name of country or region | |
| »»»» name_en | string | false | none | Name of country or region | |
| »»» continent_code | string | false | none | Continent code | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | Provinces or prefectures | |
| »»»» city | string | false | none | City name | |
| »»»» state | string | false | none | Provincial or state name code | |
| »»»» continent_code | string | false | none | Continent code | |
| »»»» country_code | string | false | none | Country or region code |
GET city search
GET /ep/ip/dynamic-citys/search
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| country_code | query | string | Yes | Country or region code |
| state | query | string | Yes | State or provincial code |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [string] | false | none | List |
GET State List
GET /ep/ip/dynamic-states
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"name_zh_cn": "美国",
"name_en": "United States",
"continent_code": "NA",
"country_code": "US",
"items": [
{
"state": null,
"continent_code": null,
"country_code": null
}
]
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | List | |
| »»» name_zh_cn | string | false | none | Name of country or region | |
| »»»» name_en | string | false | none | Name of country or region | |
| »»» continent_code | string | false | none | Continent code | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | Provinces or prefectures | |
| »»»» state | string | false | none | Provincial or state name code | |
| »»»» continent_code | string | false | none | Continent code | |
| »»»» country_code | string | false | none | Country or region code |
GET state/province search
GET /ep/ip/dynamic-states/search
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| country_code | query | string | Yes | Country or region code |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | and requested permission | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code: 200 successful, 3 app_key invalid, 156 accounts without real-name authentication | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [string] | false | none | List |
GET extracts the list of purchased static IPs
GET /ep/ip/get-static-ip
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| country_code | query | string | No | Country or region code |
| product_type | query | number | No | Product types: 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 | Number per page |
| status | query | number | No | Status: 1: Active, 2: Invalid, 3: Nearing expiration, 4: Under maintenance |
Enumeration value
| Attributes | Value |
|---|---|
| product_type | 14 |
| product_type | 25 |
| status | 1 - 2 - 3 - 4 |
Return to example
200 Response
{}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | none | Inline |
Returns data structures
GET the number of static IPs in the sales region
GET /ep/ip/static-ip-region
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| isp | query | integer | No | ISP filtering; if not transmitted, then no filtering (except for sites 1/4/5, default is 1) |
| asn | query | integer | No | Whether to return ASN packet data |
| exclusive | query | integer | No | Whether counted as exclusive inventory |
Detailed explanation
ISP: ISP filtering; if not transmitted, no filtering is done (except for sites 1/4/5, default is 1)
| Value | Description |
|---|---|
| 0 | Data Center Static IP (IDC) |
| 1 | Home Static IP (ISP) |
asn: Whether to return ASN packet data
| Value | Description |
|---|---|
| 0 | Does not return ASN packet data (default) |
| 1 | Returns ASN packet data |
exclusive: Whether counting is based on exclusive inventory
| Value | Description |
|---|---|
| 0 | Statistics by current user/shared group (default) |
| 1 | All allocated IPs are excluded, and only available inventory is counted |
Enumeration value
| Attributes | Value |
|---|---|
| isp | 0 |
| isp | 1 |
| asn | 0 |
| asn | 1 |
| exclusive | 0 |
| exclusive | 1 |
Return to example
200 Response
{
"code": 200,
"msg": "请求成功",
"data": {
"list": [
{
"code": "US",
"number": 55
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code | |
| »»» number | integer | false | none | Quantity |
GET Get host_pool supported countries/regions
GET /ep/host-pool/regions
Query the list of countries/regions supported by the current site of the host_pool service.
This interface is designed for random extraction scenarios based on data center IP traffic scores, and only counts by country/region based on the current site's available data center IP inventory. It does not support ASN, ISP, or exclusive inventory filtering, nor does it exclude IPs based on users' purchase records.
Return to example
200 Response
{
"code": 200,
"msg": "请求成功",
"data": {
"list": [
{
"code": "US",
"number": 55,
"name_zh_cn": "美国",
"name_en": "United States",
"square_flag": "https://example.com/static/flags/us.png"
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Request success | Inline |
Returns data structures
Status code 200
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code, 200, success | |
| » msg | string | false | none | Status messages | |
| » data | object | false | none | none | |
| »» Art | [object] | false | none | none | |
| »»» code | string | false | none | Country or region code: ISO 3166-1 alpha-2 | |
| »»» number | integer | false | none | The number of data center IPs available at the current site | |
| »»» name_zh_cn | string | false | none | The Chinese name of the country or region | |
| »»»» name_en | string | false | none | The English name of a country or region | |
| »»» square_flag | string | false | none | URL of the square flag image |
Order management
GET the order list
GET /ep/order/list
Request parameters
| Name | Location | Type | must be selected | 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 (Not Included) |
| status | query | integer | No | Order status |
| product_type | query | integer | No | Product types |
| invoice | query | integer | No | Invoice status: 0 No restriction 1 Invoice issued -1 Invoice not issued (can be reissued) |
| pay_fee_status | query | integer | No | Selection of long and short payments: 1. Overpayment, 2. Short-term payment |
Detailed explanation
status: Order status
| Status | Description |
|---|---|
| 0 | Pending payment |
| 1 | Already paid |
| 2 | Late payment has been canceled |
| 3 | Refunded |
product_type: 产品类型
| Product types | Description |
|---|---|
| 3 | Balance top-up |
| 9 | Dynamic data plans |
| 11 | Dynamic Global Package V2 |
| 12 | Long-lasting IDC data packages |
| 13 | Residential static IP data packages |
| 14 | Data center static IP packages |
| 15 | Long-term ISP data plans |
| 16 | Static data plans |
| 17 | Dynamic IP Quantity Package |
| 18 | web-scraper |
| 19 | Static IP renewal |
| 20 | Static IP quotas are replaced |
| 21 | Static data plan v2 |
| 24 | Static data add-on package |
| 25 | Residential static IP packages |
| 26 | Supplementary Order - Some payment channels require users to manually fill in the amount, such as virtual currency. If there is a shortfall, customers need to contact customer service to make the supplementary payment through this product |
| 27 | Serp |
| 28 | Video |
Enumeration value
| 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 to example
200 Response
{
"code": 0,
"message": "操作成功",
"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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Success | Inline |
Returns data structures
POST Create an order
POST /ep/order/create
Since there are many types of packages and each has different configurations, please fill in the parameters according to your actual situation. Improper entry of parameters may cause order creation to fail.
examples:
Renew static IPs
{
"pid": Package ID, // Obtained from the /ep/product interface
"upids": "1,2,3,4,5,6", // Retrieve the corresponding id field from the /ep/ip/get-static-ip interface
"pm_id": 1 // Retrieved from the /ep/payment/list or /ep/payment/groups interface
}
Static residential IP purchase
{
"pid": Package ID, // Obtained from the /ep/product interface
"pm_id": Payment method ID, // Obtained from the /ep/payment/list or /ep/payment/groups interfaces
"region_list": "JP,15,333|DE,10,444| US, 5,555" // Format: region, quantity, ASN | region, quantity, ASN (ASN number optional)
}
Static data center IP purchase
{
"pid": Package ID, // Obtained from the /ep/product interface
"pm_id": Payment method ID, // Obtained from the /ep/payment/list or /ep/payment/groups interfaces
"region_list": "JP,15,333|DE,10,444| US, 5,555" // Format: region, quantity, ASN | region, quantity, ASN (ASN number optional)
}
Dynamic residential traffic purchases
{
"pid": Package ID, // Obtained from the /ep/product interface
"pm_id": Payment method ID // Obtained from the /ep/payment/list or /ep/payment/groups interface
}
Static rotation traffic purchase
{
"pid": Package ID, // Obtained from the /ep/product interface
"pm_id": Payment method ID // Obtained from the /ep/payment/list or /ep/payment/groups interface
}
Dynamic unlimited traffic purchase
{
"pid": 套餐ID, // 从 /ep/product 接口获取
"pm_id": 支付方式ID, // 从 /ep/payment/list 或 /ep/payment/groups 接口获取
"product_sku_bandwidth_id": 带宽规格ID,
"product_sku_concurrency_id": 并发规格ID
}
Balance top-up
{
"pid": Package ID, // Obtained from the /ep/product interface
"pm_id": Payment method ID, // Obtained from the /ep/payment/list or /ep/payment/groups interfaces
"recharge_amount": Deposit amount
}
Body requests 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 | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | Yes | none |
| » pid | body | integer | Yes | Package ID, the id field returned by the /ep/product interface |
| » upids | body | string | No | The renewal plan ID list (separated by commas), from the id fields returned by the /ep/user-product/list or /ep/ip/get-static-ip interfaces |
| » amount | body | number | No | Number of new package purchases |
| » pm_id | body | integer | Yes | Payment method ID, from the id field returned by the /ep/payment/list or /ep/payment/groups interface |
| » region_list | body | string | No | When purchasing a static IP, specify region + quantity + ASN number, format: region, quantity, ASN |
| » coupon_sn | body | string | No | Coupon number |
| » use_invitation_registration_discount | body | boolean | No | Whether to use the invitation registration offer |
| » renew_duration | body | integer | No | Renewal duration - Static IP optional |
| » product_sku_bandwidth_id | body | integer | No | Package 11: Bandwidth package ID |
| » product_sku_concurrency_id | body | integer | No | Package 11: Concurrent package ID |
| » product_sku_duration_id | body | integer | No | Package type=11 Required: duration, specification, ID |
| » etd | body | integer | No | Duration multiplier is obtained from package extension_of_time_days, where 2 represents the number of days ×2, and the price increases |
| » recharge_amount | body | integer | No | Package 3: Recharge amount |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"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": "user@example.com",
"role_type": 0,
"vat_id": "string",
"address_country": "string",
"address_city": "string",
"address_line1": "string",
"address_line2": "string",
"address_postal_code": "string"
}
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Creation successful | Inline |
Returns data structures
POST Cancel the order
POST /ep/order/close
Body requests parameters
{
"trade_no": "string"
}
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | Yes | none |
| » trade_no | body | string | Yes | none |
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Operation successful | None |
POST order pre-check
POST /ep/order/check
Call before creating an order, used to preview prices, discounts, IP renewal details, etc., and does not actually create the order. The parameters are exactly the same as /ep/order/create.
Body requests 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 | must be selected | Explanation |
|---|---|---|---|---|
| body | body | object | Yes | none |
| » pid | body | integer | Yes | Package ID |
| » upids | body | string | No | IP Renewal: User package ID list, separated by commas |
| » 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 |
| » coupon_sn | body | string | No | Coupon number |
| » 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 | Package type=11 Required: Bandwidth specification ID |
| » product_sku_concurrency_id | body | integer | No | Package type=11 Required: Concurrent specification ID |
| » product_sku_duration_id | body | integer | No | Package type=11 Required: duration, specification, ID |
| » etd | body | integer | No | Duration multiplier obtained from package extension_of_time_days |
| » recharge_amount | body | number | No | Package type=3 Required: Recharge amount |
Enumeration value
| Attributes | Value |
|---|---|
| » renew_duration | 1m |
| » renew_duration | 2m |
| » renew_duration | em |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Pre-inspection successful | Inline |
Returns data structures
Payment management
GET the list of payment methods
GET /ep/payment/list
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| trade_no | query | string | No | Order Number - Can be entered when certain orders require specific payment methods |
| currency | query | string | No | Currency unit |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"data": {
"list": [
{
"id": 0,
"title": "string",
"logo": "string",
"group": "string",
"handling_rate": 0,
"handling_fee": 0,
"disabled": false,
"min": 0,
"max": 0
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Achieve success | Inline |
Returns data structures
GET the list of payment methods
GET /ep/payment/groups
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| trade_no | query | string | No | Order Number - Can be entered when certain orders require specific payment methods |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"data": {
"list": [
{
"name": "string",
"logos": [
null
],
"items": [
null
]
}
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | Achieve success | Inline |
Returns data structures
Marketing
GET top-up bonus ratio
GET /ep/activity/balance-recharge-gift-ratio
Top-up bonus ratio
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"data": {
"list": [
null
]
}
}
Return results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | OK | Inline |
Returns data structures
Products
GET the product list
GET /ep/product
Get a list of packages available for purchase on the current site, with filtering by type, validity period, and other criteria.
Request parameters
| Name | Location | Type | must be selected | Explanation |
|---|---|---|---|---|
| type | query | integer | No | For package types, see the Product.type enumeration instructions. If not passed, 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 | Stuart | No | Validity days filtering, supporting single values or arrays, such as 30 /[30,90,365] |
| show_type | query | Stuart | No | Display type filtering, supports single-value or array display |
Detailed explanation
type: Package type, see Product.type enumeration instructions. If not passed, all types are returned.
Enumeration value
| Attributes | Value |
|---|---|
| parent_product_type | 14 |
| parent_product_type | 25 |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"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 results
| Status code | Status code meaning | Explanation | Data models |
|---|---|---|---|
| 200 | OK | OK | Inline |
Returns data structures
Data models
productTypes
9
Package types: 9 dynamic residential data packages, 11 dynamic residential IPs, 14 static data center IPs, 25 static residential IPs
Attributes
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Package types: 9 dynamic residential data packages, 11 dynamic residential IPs, 14 static data center IPs, 25 static residential IPs |
Enumeration value
| Attributes | Value |
|---|---|
| anonymous | 9 |
| anonymous | 11 |
| anonymous | 14 |
| anonymous | 25 |
responseCode
200
Status code: 200 successful, 3 app_key invalid
Attributes
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Status code: 200 successful, 3 app_key invalid |
SuccessResponse
{
"code": 0,
"message": "操作成功",
"data": {}
}
Attributes
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| 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": "user@example.com",
"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 | must be selected | Restraint | 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 | For package types, see product types list | |
| amount | integer | false | none | Purchase quantity | |
| unit_price | number(float) | false | none | Unit price | |
| total_fee | number(float) | false | none | Total order price (excluding discounts and handling 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 | |
| refund_fee | number(float) | false | none | Refund amount | |
| pm_id | integer | false | none | 支付方式ID(来自 /ep/payment/list) | |
| pm_title | string | false | none | Name of payment method | |
| pm_logo | string | false | none | Payment method Logo URL | |
| status | integer | false | none | Order status | |
| title | string | false | none | Package title | |
| detail | string | false | none | Package description | |
| region_desc | string | false | none | Regional 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 | Creation date | |
| pay_fee_status | integer | false | none | Long and short payment status: 0 Normal 1 Long payment (overpayment) 2 Short payment | |
| invoice | object | false | none | Invoice information (only orders paid online have value) | |
| » 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 individual, 2 enterprises | |
| » vat_id | string | false | none | Tax 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-inspection results
Attributes
| Name | Type | must be selected | Restraint | 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 | Types of packages | |
| title | string | false | none | Package title | |
| detail | string | false | none | Package description | |
| ip_result | [object] | false | none | IP Batch Renewal Results (Returned only when 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 | |
| »» Flags | string | false | none | Circular 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
}
]
}
}
Attributes
| Name | Type | must be selected | Restraint | Chinese name | Explanation |
|---|---|---|---|---|---|
| id | integer | false | none | Package ID | |
| title | string | false | none | Main package title | |
| type | integer | false | none | Types of packages | |
| show_type | integer | false | none | Display types: 1. Regular 2. Large recommendations 3. Not available for purchase (requires customization) 4. Trial use | |
| status | integer | false | none | Status: 1 listed, 0 taken down | |
| price | number(float) | false | none | RMB price | |
| usd_price | number(float) | false | none | Dollar prices | |
| price_hkd | number(float) | false | none | Hong Kong dollar 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 pricing (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 currencies such as USD / CNY / HKD | |
| support_currencies | string | false | none | Supported currency list, separated by commas, such as USD and CNY | |
| flow_value | number(float) | false | none | Default data data (GB) for data packages | |
| flow_give | number(float) | false | none | Bonus data (GB) | |
| balance_give | number(float) | false | none | Balance top-up bonus amount | |
| balance_value | number(float) | false | none | Recharge amount | |
| time_validity | number(float) | false | none | The default validity period for the package package is limited | |
| time_price | number(float) | false | none | Package package price per IP | |
| time_days | integer | false | none | Validity period, such as 30/90/180/365 | |
| tip1 | string | false | none | Label Explanation 1 | |
| tip2 | string | false | none | Label Explanation 2 | |
| Introduction | [string] | false | none | List of text introductions | |
| region_list_id | integer | false | none | Regional ID | |
| renew_product_list | string | false | none | List of Renewable Plan 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 means no limit | |
| remain_count | integer | false | none | Remaining inventory | |
| extension_of_time_days | [integer] | false | none | Duration multiples list; empty or containing only 1 means not supported | |
| time_days_price_rate | number(float) | false | none | Duration price coefficient, price × (1 + (multiples - 1) × 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 | List of bandwidth specifications | |
| »» 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 | Concurrent specification list | |
| »» id | integer | false | none | none | |
| »» value | integer | false | none | and issued several times simultaneously | |
| »» 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
}
Attributes
| Name | Type | must be selected | Restraint | 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 |