DuckIP
Please log in to view app_key authentication key on your personal center homepage.
Please keep your key safe. You have administrator privileges for this key.
Authentication method
App Key Authentication
POST parameters:
app_key: {your_app_key}
Or as a query parameter:
?app_key={your_app_key}
Response format
All APIs return a uniform JSON format:
{
"code": 200,
"message": "操作成功",
"data": {}
}
code: Status code, 200 indicates success, other values indicate failure.message: Response message (in Chinese)data: Response data
Base URLs:
Authentication
HTTP Authentication, scheme: bearer
API Key (apiKeyAuth)
- Parameter Name: app_key, in: query. Supported in GET and POST requests; the parameter name is
app_key.
- Parameter Name: app_key, in: query. Supported in GET and POST requests; the parameter name is
Agent account management
GET proxy account list
GET /developers/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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | responseCode | false | none | Status codes: 200 Success, 3 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 | Agent account name | |
| »»» password | string | false | none | Proxy account password | |
| »»» created_at | string | false | none | Add time | |
| »»» remark | string | false | none | Remark | |
| »»» product_type | productTypes | false | none | Package types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package | |
| »»» usage_flow | integer | false | none | Data usage, in KB | |
| »»» limit_flow | integer | false | none | Custom traffic limit: Maximum 102400 GB, 0 for no limit | |
| »»» status | integer | false | none | Enabled status: 1 Enabled, 0 Disabled |
Enumeration value
| property | value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
POST Add proxy account.
POST /developers/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 | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » accounts | body | string | no | Please enter your username and password in the format username:password. Only numbers and letters are allowed; special characters and spaces are prohibited. Separate username and password with a colon. Batch addition is supported; separate proxy accounts with commas (,). |
| » remark | body | string | no | Agent account description |
| » product_type | body | productTypes | no | Package types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package |
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST Delete Agent Account
POST /developers/whitelist-account/delete
Please note that deletion is irreversible, and used data cannot be retrieved. Deletion takes approximately 5 minutes, during which time charges may still apply.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » accounts | body | string | no | Agent accounts only support numbers and letters. Batch operations are supported; agent accounts are separated by commas (,). |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST Disable proxy account
POST /developers/whitelist-account/disable
There is a waiting time of approximately 5 minutes after disabling, during which fees may still be incurred.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » accounts | body | string | no | Agent accounts only support numbers and letters. Batch operations are supported; agent accounts are separated by commas (,). |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST Enable Proxy Account
POST /developers/whitelist-account/enable
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"accounts": "user01,user02"
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » accounts | body | string | no | Agent accounts only support numbers and letters. Batch operations are supported; agent accounts are separated by commas (,). |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST to change the password of the proxy account
POST /developers/whitelist-account/change-password
Please note that there is a 5-minute waiting period after you make a change. During this time, the old password may still work normally.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"password": "pass"
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » account | body | string | no | Agent accounts only support numbers and letters. |
| » password | body | string | no | The new password for the agent account only supports numbers and letters. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST to modify agent account remarks
POST /developers/whitelist-account/change-remark
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"remark": ""
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » account | body | string | no | Agent accounts only support numbers and letters. |
| » remark | body | string | no | New note for agent account, no more than 32 Chinese characters or 64 English characters. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST to modify proxy account traffic limit
POST /developers/whitelist-account/change-limit
Please note that traffic statistics may be delayed by up to 5 minutes, meaning that the actual traffic consumed may exceed this limit.
Body Request Parameters
{
"app_key": "stringstringstringstringstringst",
"account": "user",
"limit": 0
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » account | body | string | no | Agent accounts only support numbers and letters. |
| » limit | body | integer | no | Traffic limit, unit: GB, 0 means no limit. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| » data | null | false | none | none |
POST to modify agent account information
POST /developers/proxy-account/change
Change the proxy account password, notes, traffic limit, daily traffic limit, enabled status, or 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 | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » account | body | string | no | Agent account name |
| » password | body | string | no | New password: 6-16 characters (numbers or letters); if not shared, it will not be changed. |
| » remark | body | string | no | New Note |
| limit | body | integer | no | Data usage limit, in GB, 0 indicates no limit. |
| daily_limit | body | integer | no | Daily data usage limit, in GB; 0 indicates no limit. |
| » status | body | integer | no | Enabled |
| » udp | body | integer | no | UDP support is on/off, only applicable to package types 14, 16, 21, and 25. |
Enumeration value
| property | value |
|---|---|
| » status | 0 |
| » status | 1 |
| » udp | 0 |
| » udp | 1 |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » 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 /developers/proxy-ip/list
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code 200 Success | |
| » msg | string | false | none | Status messages | |
| data | object | false | none | none | |
| »» list | [object] | false | none | none | |
| »»» ip | string | false | none | Whitelist IPs | |
| »»» remark | string | false | none | Remark | |
| »»» product_type | integer | false | none | Package types | |
| »»» created_at | string | false | none | Creation time |
POST Add IP whitelist
POST /developers/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 | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » ips | body | string | no | The whitelisted IPs need to be added; separate multiple IPs with commas or newlines. |
| » remark | body | string | no | Remark |
| » product_type | body | integer | no | Package type number |
| » user_product_id | body | integer | no | User Package ID, required if Package Type is 11. |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code 200 Success | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
POST to remove IP from whitelist
POST /developers/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 | illustrate |
|---|---|---|---|---|
| body | body | object | no | none |
| » app_key | body | string | no | Authorization Key |
| » ips | body | string | no | List the whitelisted IPs that need to be removed, separated by commas. |
| » verify_type | body | string | no | Verification type: phone, email, wechat, totp |
| » verify_code | body | string | no | Verification code |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": null
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code 200 Success | |
| » msg | string | false | none | Status messages | |
| data | null | false | none | none |
Traffic log query
GET usage data summary by day
GET /developers/user-usage-flow/total
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| app_key | query | string(password) | yes | Authentication key |
| start_time | query | string(Y-m-d H:i:s) | no | Start time, accurate to the second. Please note that there is a delay of up to 5 minutes in logging. The default is within 7 days. |
| end_time | query | string(Y-m-d H:i:s) | no | Deadline, accurate to the second. Please note that there is a delay of up to 5 minutes in logging. Default is the current time. |
| username | query | string | no | Sub-account name: By default, this query retrieves all accounts, but you can specify a sub-account. Please note that if you add a sub-account with the same name, this query will return all usage records of the same proxy account. |
| product_type | query | number | no | Package types |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
{
"day": "2022-08-01",
"flow": 0
}
]
}
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account 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 | Data consumption, in KB |
Package Inquiry
GET Purchased Package List
GET /developers/user-product/list
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| 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 | Number of pages to display, default: 20 |
| product_type | query | number | no | Package types |
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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account 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 | Package effective time | |
| »»» expired_at | string | false | none | The data plan expires; after that, the data will be unusable. | |
| »»» product_type | productTypes | false | none | Package types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package | |
| »»» 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 time | |
| »»»» title | string | false | none | Order Description | |
| »» page | integer | false | none | Current page | |
| »» page_size | integer | false | none | Page size | |
| »» total_count | integer | false | none | Total number of records | |
| »» total_page | integer | false | none | Total number of pages |
Enumeration value
| property | value |
|---|---|
| product_type | 9 |
| product_type | 11 |
| product_type | 14 |
| product_type | 25 |
GET User Package Data Summary
GET /developers/user-product/summary
Obtain statistical summary information on user plans, including total amount, valid amount, near-expiration amount, and expired amount.
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| app_key | query | string(password) | yes | Authentication key |
| product_type | query | integer | no | Product types supported are only 9 (Dynamic Traffic Package) and 12 (Long-Term IDC Traffic Package). |
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account 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 quantity (unit: KB) | |
| »» effective_count | integer | false | none | Number of valid packages | |
| »» effective_total | integer | false | none | Effective total (unit: KB) | |
| »» effective_used | integer | false | none | Valid usage (unit: KB) | |
| »» temporary | integer | false | none | Total near-expiration quantity (expiring within 7 days, unit: KB) | |
| »» temporary_count | integer | false | none | Number of near-expiration packages (expiring within 7 days) | |
| »» expired | integer | false | none | Expired remaining quantity (unit: KB) | |
| »» expired_count | integer | false | none | Number of expired packages | |
| »» used | integer | false | none | Total usage (in KB) |
IP Extraction
GET Extract IP
GET /developers/ip/v3
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| app_key | query | string(password) | yes | Access Key |
| cc | query | string | no | Country or region |
| state | query | string | no | Province or state |
| city | query | string | no | City |
| format | query | string | no | Get Format |
| lb | query | string | no | Separator, only valid for text formatting |
| num | query | number | no | Extraction quantity |
| life | query | number | no | Keeping cycle - minutes |
| ep | query | string | no | Proxy Network |
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | object | false | none | none | |
| »» list | [any] | false | none | none |
GET Dynamic Regional City List V4
GET /developers/ip/dcl4
Retrieving the city list by username requires login authentication, and the account must belong to the current user.
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| username | query | string | yes | Agent 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » 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 cache? | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | area | |
| »»» State | string | false | none | State/Province |
GET Dynamic List of States/Provinces V4
GET /developers/ip/dsl4
Retrieving a list of states/provinces by username requires login authentication, and the account must belong to the current user.
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| username | query | string | yes | Agent 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » 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 cache? | |
| »» list | [object] | false | none | none | |
| »»» City | string | false | none | City | |
| »»» Area | string | false | none | area | |
| »»» State | string | false | none | State/Province |
GET Dynamic Regional/Provincial City Integration List V4
GET /developers/ip/dal4
Retrieves 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 | Required | illustrate |
|---|---|---|---|---|
| username | query | string | yes | Agent 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » 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 cache? | |
| »» list | [object] | false | none | Regional List | |
| »»» Area | string | false | none | Area Code | |
| »»» states | [object] | false | none | List of states/provinces | |
| »»»» State | string | false | none | State/Province Name | |
| »»»» cities | [string] | false | none | City List |
GET City List
GET /developers/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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account 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 | Continental codes | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | Province or state | |
| »»»» city | string | false | none | City Name | |
| »»»» state | string | false | none | Province or state name code | |
| »»»» continent_code | string | false | none | Continental codes | |
| »»»» country_code | string | false | none | Country or region code |
GET City Search
GET /developers/ip/dynamic-citys/search
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| country_code | query | string | yes | Country or region code |
| state | query | string | yes | State or province code |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET State List
GET /developers/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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account 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 | Continental codes | |
| »»» country_code | string | false | none | Country or region code | |
| »»» items | [object] | false | none | Province or state | |
| »»»» state | string | false | none | Province or state name code | |
| »»»» continent_code | string | false | none | Continental codes | |
| »»»» country_code | string | false | none | Country or region code |
GET State/Province Search
GET /developers/ip/dynamic-states/search
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| country_code | query | string | yes | Country or region code |
Return to example
200 Response
{
"code": 200,
"msg": "string",
"data": {
"list": [
"string"
]
}
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status codes: 200 Success, 3 Invalid app_key, 156 Account not verified. | |
| » msg | string | false | none | Status messages | |
| data | object | false | none | none | |
| »» list | [string] | false | none | List |
GET Retrieve List of Purchased Static IPs
GET /developers/ip/get-static-ip
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| country_code | query | string | no | Country or region code |
| product_type | query | number | no | Product type: 25: Static residential IP, 14: Data center IP |
| trade_no | query | string | no | Filter IPs by order number |
| page | query | number | no | page number |
| size | query | number | no | Number per page |
| status | query | number | no | Status: 1: Valid, 2: Invalid, 3: About to expire, 4: Under maintenance |
Enumeration value
| property | value |
|---|---|
| product_type | 14 |
| product_type | 25 |
| status | 1 - 2 - 3 - 4 |
Return to example
200 Response
{}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | none | Inline |
Return data structure
GET Retrieve the number of static IPs available in the regions for sale
GET /developers/ip/static-ip-region
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| isp | query | integer | no | ISP filtering: No filtering if no data is transmitted (except for sites 1/4/5, which default to 1). |
| asn | query | integer | no | Should ASN group data be returned? |
| exclusive | query | integer | no | Should inventory be counted as exclusive? |
Detailed description
isp : ISP filtering; if not uploaded, no filtering (except for sites 1/4/5, which default to 1).
| value | describe |
|---|---|
| 0 | Static IP address for data center (IDC) |
| 1 | Static IP address for residential use (ISP) |
asn : Whether to return ASN group data
| value | describe |
|---|---|
| 0 | Do not return ASN grouped data (default) |
| 1 | Return ASN grouped data |
exclusive : Whether to calculate inventory as exclusive.
| value | describe |
|---|---|
| 0 | Statistics are based on the current user/shared group (default). |
| 1 | Exclude all assigned IPs and only count available inventory. |
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code 200 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 request retrieves the host_pool. Supported countries/regions.
GET /developers/host-pool/regions
Query the list of countries/regions supported by the current site of the host_pool service.
This interface is designed for scenarios where data center IPs are randomly extracted based on traffic points. It only counts the country/region of available data center IPs for the current site. It does not support filtering by ASN, ISP, or dedicated IPs, nor does it exclude IPs based on user 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Request successful | Inline |
Return data structure
Status code 200
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| » code | integer | false | none | Status code 200 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 | |
| »»» number | integer | false | none | Number of available data center IPs at the current site | |
| »»» name_zh_cn | string | false | none | Country or region Chinese name | |
| »»» name_en | string | false | none | English name of country or region | |
| »»» square_flag | string | false | none | Square national flag image URL |
Order Management
GET Order List
GET /developers/order/list
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| 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), e.g., 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 Unrestricted; 1 Invoice issued; -1 Invoice not issued (can be reissued) |
| pay_fee_status | query | integer | no | Filtering by amount: 1. Overpayment 2. Underpayment |
Detailed description
status : Order status
| state | describe |
|---|---|
| 0 | Pending payment |
| 1 | Paid |
| 2 | Unpaid after timeout has been cancelled |
| 3 | Refund received |
product_type: Product type
| Product Type | describe |
|---|---|
| 3 | Balance Top-up |
| 9 | Dynamic data plans |
| 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 data plans |
| 16 | Static data plan |
| 17 | Dynamic IP Quantity Package |
| 18 | web-scraper |
| 19 | Static IP renewal |
| 20 | Static IP quota change |
| 21 | Static data plan v2 |
| 24 | Static traffic add-on package |
| 25 | Residential Static IP Package |
| 26 | Order Replacement - Some payment methods require users to manually enter the amount, such as virtual currency. If a shortfall occurs, you need to contact customer service to make a replacement payment through this product. |
| 27 | Serp |
| 28 | Video |
Enumeration value
| property | value |
|---|---|
| status | 0 |
| status | 1 |
| status | 2 |
| status | 3 |
| product_type | 3 |
| product_type | 9 |
| product_type | 11 |
| product_type | 12 |
| product_type | 14 |
| product_type | 16 |
| product_type | 17 |
| product_type | 18 |
| product_type | 19 |
| product_type | 21 |
| product_type | 24 |
| product_type | 25 |
| product_type | 26 |
| product_type | 27 |
| product_type | 28 |
| invoice | -1 |
| invoice | 0 |
| invoice | 1 |
| pay_fee_status | 1 |
| pay_fee_status | 2 |
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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | success | Inline |
Return data structure
POST Create order
POST /developers/order/create
Due to the variety of packages available, and the different configurations for each package, please fill in the parameters according to your actual situation. Incorrectly filled parameters may result in order creation failure.
examples:
Renewing static IP
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"upids": "1,2,3,4,5,6", // 从 /developers/ip/get-static-ip 接口获取对应的 id 字段
"pm_id": 1 // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
}
Purchase of static residential IP
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID, // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
"region_list": "JP,15,333|DE,10,444|US,5,555" // 格式:地区,数量,ASN|地区,数量,ASN(ASN编号可选)
}
Static data center IP purchase
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID, // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
"region_list": "JP,15,333|DE,10,444|US,5,555" // 格式:地区,数量,ASN|地区,数量,ASN(ASN编号可选)
}
Dynamic residential traffic purchase
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
}
Static rotating traffic purchase
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
}
Dynamic unlimited traffic purchase
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID, // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
"product_sku_bandwidth_id": 带宽规格ID,
"product_sku_concurrency_id": 并发规格ID
}
Balance Top-up
{
"pid": 套餐ID, // 从 /developers/product 接口获取
"pm_id": 支付方式ID, // 从 /developers/payment/list 或 /developers/payment/groups 接口获取
"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 | illustrate |
|---|---|---|---|---|
| body | body | object | yes | none |
| » pid | body | integer | yes | Package ID, from the `id` field returned by the `/developers/product` API. |
| » upids | body | string | no | A list of renewal package IDs (comma-separated), from the `id` field returned by the `/developers/user-product/list` or `/developers/ip/get-static-ip` API. |
| amount | body | number | no | Number of new packages |
| pm_id | body | integer | yes | Payment method ID, from the `id` field returned by the `/developers/payment/list` or `/developers/payment/groups` API. |
| » region_list | body | string | no | When purchasing static IPs, specify the region, quantity, and ASN number. The format is: Region, Quantity, ASN. |
| » coupon_sn | body | string | no | Coupon Number |
| » use_invitation_registration_discount | body | boolean | no | Use invitation registration discount |
| » 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 | The duration multiplier is obtained from the package extension_of_time_days; 2 represents the number of days multiplied by 2, resulting in a price increase. |
| » 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Creation successful | Inline |
Return data structure
POST Cancel Order
POST /developers/order/close
Body Request Parameters
{
"trade_no": "string"
}
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| body | body | object | yes | none |
| » trade_no | body | string | yes | none |
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Operation successful | None |
POST order pre-inspection
POST /developers/order/check
Called before order creation, this function previews prices, discounts, IP renewal details, etc., but does not actually create the order. Parameters are identical to those in /developers/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 | illustrate |
|---|---|---|---|---|
| body | body | object | yes | none |
| » pid | body | integer | yes | Package ID |
| » upids | body | string | no | IP Renewal: List of User Package IDs, 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: Concurrency Specification ID |
| » product_sku_duration_id | body | integer | no | Package type=11 Required: Duration Specification ID |
| » etd | body | integer | no | The duration multiplier is obtained from the package extension_of_time_days. |
| » recharge_amount | body | number | no | Package type=3 (Required): Recharge Amount |
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Pre-inspection successful | Inline |
Return data structure
Payment Management
GET to retrieve a list of payment methods
GET /developers/payment/list
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| trade_no | query | string | no | Order number - This can be entered when a specific payment method is required for some orders. |
| 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Successfully obtained | Inline |
Return data structure
GET to retrieve a list of payment methods
GET /developers/payment/groups
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| trade_no | query | string | no | Order number - This can be entered when a specific payment method is required for some orders. |
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"data": {
"list": [
{
"name": "string",
"logos": [
null
],
"items": [
null
]
}
]
}
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | Successfully obtained | Inline |
Return data structure
marketing
Get recharge bonus ratio
GET /developers/activity/balance-recharge-gift-ratio
Recharge Bonus Ratio
Return to example
200 Response
{
"code": 0,
"message": "操作成功",
"data": {
"list": [
null
]
}
}
Return results
| status codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Return data structure
product
GET Product List
GET /developers/product
Get a list of available packages on the current site, and filter by type, validity period, and other criteria.
Request parameters
| name | Location | type | Required | illustrate |
|---|---|---|---|---|
| type | query | integer | no | For package types, see the Product.type enumeration description. If not specified, all types will be returned. |
| parent_product_type | query | integer | no | Parent package type, only valid for type=19 (IP renewal), used to filter product lines: 14=Data Center 25=Residential |
| time_days | query | there | no | Filter by validity period in days, supporting single values or arrays, such as 30 / [30,90,365] |
| show_type | query | there | no | Display type filtering, supports single value or array |
Detailed description
type : Package type, see Product.type enumeration description. If not specified, all types will be returned.
Enumeration value
| property | 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 codes | Status code meaning | illustrate | Data Model |
|---|---|---|---|
| 200 | OK | OK | Inline |
Return data structure
Data Model
productTypes
9
Package types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Package types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package |
Enumeration value
| property | value |
|---|---|
| anonymous | 9 |
| anonymous | 11 |
| anonymous | 14 |
| anonymous | 25 |
apiKey
null
Authentication key
property
None
responseCode
200
Status codes: 200 Success, 3 Invalid app_key
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| anonymous | integer | false | none | Status codes: 200 Success, 3 Invalid app_key |
responseMsg
"success"
response message
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| anonymous | string | false | none | response message |
SuccessResponse
{
"code": 0,
"message": "操作成功",
"data": {}
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| data | object | false | none | none |
ErrorResponse
{
"code": 400,
"message": "参数错误",
"errors": {}
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| code | integer | false | none | none | |
| message | string | false | none | none | |
| errors | object | false | none | none |
User
{
"id": 0,
"email": "user@example.com",
"phone": "string",
"balance": 0.1,
"status": 0,
"is_real_name": true,
"created_at": "2019-08-24T14:15:22Z"
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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": "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"
}
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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 types are listed in the product type enumeration. | |
| 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, including 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 handling fees) | |
| discount_fee | number(float) | false | none | Discount amount | |
| handling_fee | number(float) | false | none | handling fee | |
| refund_fee | number(float) | false | none | Refund amount | |
| pm_id | integer | false | none | Payment method ID (from /developers/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 | |
| detail | string | false | none | Package Description | |
| region_desc | string | false | none | Regional Specifications | |
| pay_at | string(date-time) | false | none | Payment time | |
| pay_timestamp | integer | false | none | Payment timestamp | |
| created_at | string(date-time) | false | none | Creation time | |
| pay_fee_status | integer | false | none | Long/Short Item Status: 0 Normal, 1 Long Item (Overpayment), 2 Short Item | |
| invoice | object | false | none | Invoice information (value only for online payment orders) | |
| » name | string | false | none | Full name | |
| » org_name | string | false | none | Company Name | |
| » first_name | string | false | none | none | |
| » last_name | string | false | none | none | |
| » phone | string | false | none | none | |
| string(email) | false | none | none | ||
| » role_type | integer | false | none | 1 person, 2 companies | |
| » vat_id | string | false | none | Tax ID | |
| » address_country | string | false | none | none | |
| » address_city | string | false | none | none | |
| » address_line1 | string | false | none | none | |
| » address_line2 | string | false | none | none | |
| » address_postal_code | string | false | none | none |
OrderCheckResult
{
"product_id": 0,
"amount": 0,
"discount_fee": 0.1,
"total_fee": 0.1,
"pay_fee": 0.1,
"product_type": 0,
"title": "string",
"detail": "string",
"ip_result": [
{
"ip": "string",
"price": 0.1,
"country_code": "string",
"current_time": "2019-08-24T14:15:22Z",
"renewal_time": "2019-08-24T14:15:22Z",
"country": {
"name_zh_cn": "string",
"flag": "string",
"square_flag": "string"
}
}
]
}
Order pre-inspection results
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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 amount paid | |
| product_type | integer | false | none | Package types | |
| title | string | false | none | Package Title | |
| detail | string | false | none | Package Description | |
| ip_result | [object] | false | none | IP bulk renewal results (only returned when renewing IPs) | |
| » 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
}
]
}
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| id | integer | false | none | Package ID | |
| title | string | false | none | Package main title | |
| type | integer | false | none | Package types | |
| show_type | integer | false | none | Display types: 1. Standard; 2. High-value recommendation; 3. Not available for purchase (customization required); 4. Trial. | |
| status | integer | false | none | Status: 1 listed, 0 delisted | |
| price | number(float) | false | none | RMB price | |
| usd_price | number(float) | false | none | US Dollar Price | |
| 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 currency, such as USD/CNY/HKD | |
| support_currencies | string | false | none | Supported currencies, comma-separated, e.g., USD, CNY | |
| flow_value | number(float) | false | none | Default data allowance (GB) for this data plan | |
| flow_give | number(float) | false | none | Free data allowance (GB) | |
| balance_give | number(float) | false | none | Bonus amount for recharging balance | |
| balance_value | number(float) | false | none | Recharge amount | |
| time_validity | number(float) | false | none | Default validity period for package deals | |
| time_price | number(float) | false | none | Price per IP for package deals | |
| time_days | integer | false | none | Validity period in days, such as 30/90/180/365 | |
| tip1 | string | false | none | Tag Description 1 | |
| tip2 | string | false | none | Tag Description 2 | |
| enter | [string] | false | none | Text description list | |
| region_list_id | integer | false | none | Region ID | |
| renew_product_list | string | false | none | List of renewable package IDs (comma-separated) | |
| parent_product_type | integer | false | none | Parent package type (valid when type=19): 14 or 25 | |
| total_count | integer | false | none | Total inventory, 0 indicates no limit | |
| remain_count | integer | false | none | Remaining inventory | |
| extension_of_time_days | [integer] | false | none | The duration multiplier list is empty or contains only 1, indicating that it is not supported. | |
| time_days_price_rate | number(float) | false | none | Duration-based price factor, price × (1 + (multiple - 1) × rate) | |
| I am going. | 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 | |
| » type1 | string | false | none | none | |
| » tip2 | string | false | none | none | |
| » introduce | [string] | false | none | none | |
| sku | object | false | none | Specification parameters (returned when type=11) | |
| » bandwidth_list | [object] | false | none | Bandwidth Specifications List | |
| »» id | integer | false | none | none | |
| »» value | integer | false | none | Bandwidth value (Mbps) | |
| »» price | number(float) | false | none | none | |
| »» price_usd | number(float) | false | none | none | |
| »» price_hkd | number(float) | false | none | none | |
| » duration_list | [object] | false | none | Duration Specifications List | |
| »» id | integer | false | none | none | |
| »» value | integer | false | none | Duration (days) | |
| »» price | number(float) | false | none | none | |
| »» price_usd | number(float) | false | none | none | |
| »» price_hkd | number(float) | false | none | none | |
| » concurrency_list | [object] | false | none | Concurrency 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"
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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"
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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"
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| 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
}
property
| name | type | Required | constraint | Chinese name | illustrate |
|---|---|---|---|---|---|
| total | integer | false | none | none | |
| page_no | integer | false | none | none | |
| page_size | integer | false | none | none | |
| total_pages | integer | false | none | none |