OpenAPIOpenAPI
  • 简体中文
  • English
  • 简体中文
  • English
  • DuckIP

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:

  • https://api.duckip.cn

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.

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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» coderesponseCodefalsenoneStatus codes: 200 Success, 3 Invalid app_key
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» idintegerfalsenoneAccount Number
»»» usernamestringfalsenoneAgent account name
»»» passwordstringfalsenoneProxy account password
»»» created_atstringfalsenoneAdd time
»»» remarkstringfalsenoneRemark
»»» product_typeproductTypesfalsenonePackage types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package
»»» usage_flowintegerfalsenoneData usage, in KB
»»» limit_flowintegerfalsenoneCustom traffic limit: Maximum 102400 GB, 0 for no limit
»»» statusintegerfalsenoneEnabled status: 1 Enabled, 0 Disabled

Enumeration value

propertyvalue
product_type9
product_type11
product_type14
product_type25

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountsbodystringnoPlease 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 (,).
» remarkbodystringnoAgent account description
» product_typebodyproductTypesnoPackage types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package

Enumeration value

propertyvalue
» product_type9
» product_type11
» product_type14
» product_type25

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": null
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountsbodystringnoAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountsbodystringnoAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

POST Enable Proxy Account

POST /developers/whitelist-account/enable

Body Request Parameters

{
  "app_key": "stringstringstringstringstringst",
  "accounts": "user01,user02"
}

Request parameters

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountsbodystringnoAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountbodystringnoAgent accounts only support numbers and letters.
» passwordbodystringnoThe 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

POST to modify agent account remarks

POST /developers/whitelist-account/change-remark

Body Request Parameters

{
  "app_key": "stringstringstringstringstringst",
  "account": "user",
  "remark": ""
}

Request parameters

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountbodystringnoAgent accounts only support numbers and letters.
» remarkbodystringnoNew 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountbodystringnoAgent accounts only support numbers and letters.
» limitbodyintegernoTraffic limit, unit: GB, 0 means no limit.

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": null
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
» datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» accountbodystringnoAgent account name
» passwordbodystringnoNew password: 6-16 characters (numbers or letters); if not shared, it will not be changed.
» remarkbodystringnoNew Note
limitbodyintegernoData usage limit, in GB, 0 indicates no limit.
daily_limitbodyintegernoDaily data usage limit, in GB; 0 indicates no limit.
» statusbodyintegernoEnabled
» udpbodyintegernoUDP support is on/off, only applicable to package types 14, 16, 21, and 25.

Enumeration value

propertyvalue
» status0
» status1
» udp0
» udp1

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": null
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
datanullfalsenonenone

IP whitelist

GET IP whitelist list

GET /developers/proxy-ip/list

Request parameters

nameLocationtypeRequiredillustrate
product_typequeryintegernoPackage 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» ipstringfalsenoneWhitelist IPs
»»» remarkstringfalsenoneRemark
»»» product_typeintegerfalsenonePackage types
»»» created_atstringfalsenoneCreation 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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» ipsbodystringnoThe whitelisted IPs need to be added; separate multiple IPs with commas or newlines.
» remarkbodystringnoRemark
» product_typebodyintegernoPackage type number
» user_product_idbodyintegernoUser Package ID, required if Package Type is 11.

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": null
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
datanullfalsenonenone

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

nameLocationtypeRequiredillustrate
bodybodyobjectnonone
» app_keybodystringnoAuthorization Key
» ipsbodystringnoList the whitelisted IPs that need to be removed, separated by commas.
» verify_typebodystringnoVerification type: phone, email, wechat, totp
» verify_codebodystringnoVerification code

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": null
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
datanullfalsenonenone

Traffic log query

GET usage data summary by day

GET /developers/user-usage-flow/total

Request parameters

nameLocationtypeRequiredillustrate
app_keyquerystring(password)yesAuthentication key
start_timequerystring(Y-m-d H:i:s)noStart 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_timequerystring(Y-m-d H:i:s)noDeadline, accurate to the second. Please note that there is a delay of up to 5 minutes in logging. Default is the current time.
usernamequerystringnoSub-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_typequerynumbernoPackage types

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "day": "2022-08-01",
        "flow": 0
      }
    ]
  }
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» daystringfalsenonedate
»»» flowintegerfalsenoneData consumption, in KB

Package Inquiry

GET Purchased Package List

GET /developers/user-product/list

Request parameters

nameLocationtypeRequiredillustrate
app_keyquerystring(password)yesAuthentication key
trade_noquerystringnoOrder number. Please enter the complete order number. Fuzzy search is not supported.
pagequerynumbernoPagination, default: 1
sizequerynumbernoNumber of pages to display, default: 20
product_typequerynumbernoPackage 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» idintegerfalsenonePackage Number
»»» created_atstringfalsenonePackage effective time
»»» expired_atstringfalsenoneThe data plan expires; after that, the data will be unusable.
»»» product_typeproductTypesfalsenonePackage types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package
»»» trade_nostringfalsenoneOrder Transaction Number
»»» orderobjectfalsenonenone
»»»» created_atstringfalsenoneOrder creation time
»»»» pay_atstringfalsenoneOrder payment time
»»»» titlestringfalsenoneOrder Description
»» pageintegerfalsenoneCurrent page
»» page_sizeintegerfalsenonePage size
»» total_countintegerfalsenoneTotal number of records
»» total_pageintegerfalsenoneTotal number of pages

Enumeration value

propertyvalue
product_type9
product_type11
product_type14
product_type25

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

nameLocationtypeRequiredillustrate
app_keyquerystring(password)yesAuthentication key
product_typequeryintegernoProduct types supported are only 9 (Dynamic Traffic Package) and 12 (Long-Term IDC Traffic Package).

Enumeration value

propertyvalue
product_type9
product_type12

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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» totalintegerfalsenoneTotal traffic/IP volume (unit: KB)
»» total_countintegerfalsenoneTotal number of packages
»» effectiveintegerfalsenoneEffective remaining quantity (unit: KB)
»» effective_countintegerfalsenoneNumber of valid packages
»» effective_totalintegerfalsenoneEffective total (unit: KB)
»» effective_usedintegerfalsenoneValid usage (unit: KB)
»» temporaryintegerfalsenoneTotal near-expiration quantity (expiring within 7 days, unit: KB)
»» temporary_countintegerfalsenoneNumber of near-expiration packages (expiring within 7 days)
»» expiredintegerfalsenoneExpired remaining quantity (unit: KB)
»» expired_countintegerfalsenoneNumber of expired packages
»» usedintegerfalsenoneTotal usage (in KB)

IP Extraction

GET Extract IP

GET /developers/ip/v3

Request parameters

nameLocationtypeRequiredillustrate
app_keyquerystring(password)yesAccess Key
ccquerystringnoCountry or region
statequerystringnoProvince or state
cityquerystringnoCity
formatquerystringnoGet Format
lbquerystringnoSeparator, only valid for text formatting
numquerynumbernoExtraction quantity
lifequerynumbernoKeeping cycle - minutes
epquerystringnoProxy Network

Enumeration value

propertyvalue
epus
ephk
epof

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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[any]falsenonenone

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

nameLocationtypeRequiredillustrate
usernamequerystringyesAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» cachebooleanfalsenoneIs it from cache?
»» list[object]falsenonenone
»»» CitystringfalsenoneCity
»»» Areastringfalsenonearea
»»» StatestringfalsenoneState/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

nameLocationtypeRequiredillustrate
usernamequerystringyesAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» cachebooleanfalsenoneIs it from cache?
»» list[object]falsenonenone
»»» CitystringfalsenoneCity
»»» Areastringfalsenonearea
»»» StatestringfalsenoneState/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

nameLocationtypeRequiredillustrate
usernamequerystringyesAgent 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» cachebooleanfalsenoneIs it from cache?
»» list[object]falsenoneRegional List
»»» AreastringfalsenoneArea Code
»»» states[object]falsenoneList of states/provinces
»»»» StatestringfalsenoneState/Province Name
»»»» cities[string]falsenoneCity 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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenoneList
»»» name_zh_cnstringfalsenoneCountry or region name
»»» name_enstringfalsenoneCountry or region name
»»» continent_codestringfalsenoneContinental codes
»»» country_codestringfalsenoneCountry or region code
»»» items[object]falsenoneProvince or state
»»»» citystringfalsenoneCity Name
»»»» statestringfalsenoneProvince or state name code
»»»» continent_codestringfalsenoneContinental codes
»»»» country_codestringfalsenoneCountry or region code

GET City Search

GET /developers/ip/dynamic-citys/search

Request parameters

nameLocationtypeRequiredillustrate
country_codequerystringyesCountry or region code
statequerystringyesState or province code

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      "string"
    ]
  }
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[string]falsenoneList

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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenoneList
»»» name_zh_cnstringfalsenoneCountry or region name
»»» name_enstringfalsenoneCountry or region name
»»» continent_codestringfalsenoneContinental codes
»»» country_codestringfalsenoneCountry or region code
»»» items[object]falsenoneProvince or state
»»»» statestringfalsenoneProvince or state name code
»»»» continent_codestringfalsenoneContinental codes
»»»» country_codestringfalsenoneCountry or region code

GET State/Province Search

GET /developers/ip/dynamic-states/search

Request parameters

nameLocationtypeRequiredillustrate
country_codequerystringyesCountry or region code

Return to example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      "string"
    ]
  }
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key, 156 Account not verified.
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[string]falsenoneList

GET Retrieve List of Purchased Static IPs

GET /developers/ip/get-static-ip

Request parameters

nameLocationtypeRequiredillustrate
country_codequerystringnoCountry or region code
product_typequerynumbernoProduct type: 25: Static residential IP, 14: Data center IP
trade_noquerystringnoFilter IPs by order number
pagequerynumbernopage number
sizequerynumbernoNumber per page
statusquerynumbernoStatus: 1: Valid, 2: Invalid, 3: About to expire, 4: Under maintenance

Enumeration value

propertyvalue
product_type14
product_type25
status1 - 2 - 3 - 4

Return to example

200 Response

{}

Return results

status codesStatus code meaningillustrateData Model
200OKnoneInline

Return data structure

GET Retrieve the number of static IPs available in the regions for sale

GET /developers/ip/static-ip-region

Request parameters

nameLocationtypeRequiredillustrate
ispqueryintegernoISP filtering: No filtering if no data is transmitted (except for sites 1/4/5, which default to 1).
asnqueryintegernoShould ASN group data be returned?
exclusivequeryintegernoShould 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).

valuedescribe
0Static IP address for data center (IDC)
1Static IP address for residential use (ISP)

asn : Whether to return ASN group data

valuedescribe
0Do not return ASN grouped data (default)
1Return ASN grouped data

exclusive : Whether to calculate inventory as exclusive.

valuedescribe
0Statistics are based on the current user/shared group (default).
1Exclude all assigned IPs and only count available inventory.

Enumeration value

propertyvalue
isp0
isp1
asn0
asn1
exclusive0
exclusive1

Return to example

200 Response

{
  "code": 200,
  "msg": "请求成功",
  "data": {
    "list": [
      {
        "code": "US",
        "number": 55
      }
    ]
  }
}

Return results

status codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» codestringfalsenoneCountry or region code
»»» numberintegerfalsenonequantity

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 codesStatus code meaningillustrateData Model
200OKRequest successfulInline

Return data structure

Status code 200

nametypeRequiredconstraintChinese nameillustrate
» codeintegerfalsenoneStatus code 200 Success
» msgstringfalsenoneStatus messages
dataobjectfalsenonenone
»» list[object]falsenonenone
»»» codestringfalsenoneCountry or region code, ISO 3166-1 alpha-2
»»» numberintegerfalsenoneNumber of available data center IPs at the current site
»»» name_zh_cnstringfalsenoneCountry or region Chinese name
»»» name_enstringfalsenoneEnglish name of country or region
»»» square_flagstringfalsenoneSquare national flag image URL

Order Management

GET Order List

GET /developers/order/list

Request parameters

nameLocationtypeRequiredillustrate
page_noqueryintegernonone
page_sizequeryintegernonone
trade_noquerystringnoOrder Number
start_timequerystring(date-time)noStart time (inclusive), e.g., 2024-01-01 00:00:00
end_timequerystring(date-time)noEnd time (excluding)
statusqueryintegernoOrder status
product_typequeryintegernoProduct Type
invoicequeryintegernoInvoice status: 0 Unrestricted; 1 Invoice issued; -1 Invoice not issued (can be reissued)
pay_fee_statusqueryintegernoFiltering by amount: 1. Overpayment 2. Underpayment

Detailed description

status : Order status

statedescribe
0Pending payment
1Paid
2Unpaid after timeout has been cancelled
3Refund received

product_type: Product type

Product Typedescribe
3Balance Top-up
9Dynamic data plans
11Dynamic Global Package V2
12Long-term IDC traffic packages
13Residential static IP traffic packages
14Data Center Static IP Package
15Long-term ISP data plans
16Static data plan
17Dynamic IP Quantity Package
18web-scraper
19Static IP renewal
20Static IP quota change
21Static data plan v2
24Static traffic add-on package
25Residential Static IP Package
26Order 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.
27Serp
28Video

Enumeration value

propertyvalue
status0
status1
status2
status3
product_type3
product_type9
product_type11
product_type12
product_type14
product_type16
product_type17
product_type18
product_type19
product_type21
product_type24
product_type25
product_type26
product_type27
product_type28
invoice-1
invoice0
invoice1
pay_fee_status1
pay_fee_status2

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 codesStatus code meaningillustrateData Model
200OKsuccessInline

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

nameLocationtypeRequiredillustrate
bodybodyobjectyesnone
» pidbodyintegeryesPackage ID, from the `id` field returned by the `/developers/product` API.
» upidsbodystringnoA 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.
amountbodynumbernoNumber of new packages
pm_idbodyintegeryesPayment method ID, from the `id` field returned by the `/developers/payment/list` or `/developers/payment/groups` API.
» region_listbodystringnoWhen purchasing static IPs, specify the region, quantity, and ASN number. The format is: Region, Quantity, ASN.
» coupon_snbodystringnoCoupon Number
» use_invitation_registration_discountbodybooleannoUse invitation registration discount
» renew_durationbodyintegernoRenewal duration - Static IP optional
» product_sku_bandwidth_idbodyintegernoPackage 11: Bandwidth Package ID
» product_sku_concurrency_idbodyintegernoPackage 11: Concurrent Package ID
» product_sku_duration_idbodyintegernoPackage type=11 Required: Duration Specification ID
» etdbodyintegernoThe 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_amountbodyintegernoPackage 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 codesStatus code meaningillustrateData Model
200OKCreation successfulInline

Return data structure

POST Cancel Order

POST /developers/order/close

Body Request Parameters

{
  "trade_no": "string"
}

Request parameters

nameLocationtypeRequiredillustrate
bodybodyobjectyesnone
» trade_nobodystringyesnone

Return results

status codesStatus code meaningillustrateData Model
200OKOperation successfulNone

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

nameLocationtypeRequiredillustrate
bodybodyobjectyesnone
» pidbodyintegeryesPackage ID
» upidsbodystringnoIP Renewal: List of User Package IDs, separated by commas
amountbodyintegernoPurchase Quantity
pm_idbodyintegeryesPayment Method ID
» region_listbodystringnoStatic IP purchase region + quantity, format: region ID, quantity
» coupon_snbodystringnoCoupon Number
» renew_durationbodystringnoIP renewal duration: 1m = 1 month, 2m = 2 months, em = end of next month
» product_sku_bandwidth_idbodyintegernoPackage type=11 Required: Bandwidth Specification ID
» product_sku_concurrency_idbodyintegernoPackage type=11 Required: Concurrency Specification ID
» product_sku_duration_idbodyintegernoPackage type=11 Required: Duration Specification ID
» etdbodyintegernoThe duration multiplier is obtained from the package extension_of_time_days.
» recharge_amountbodynumbernoPackage type=3 (Required): Recharge Amount

Enumeration value

propertyvalue
» renew_duration1m
» renew_duration2m
» renew_durationem

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 codesStatus code meaningillustrateData Model
200OKPre-inspection successfulInline

Return data structure

Payment Management

GET to retrieve a list of payment methods

GET /developers/payment/list

Request parameters

nameLocationtypeRequiredillustrate
trade_noquerystringnoOrder number - This can be entered when a specific payment method is required for some orders.
currencyquerystringnoCurrency 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 codesStatus code meaningillustrateData Model
200OKSuccessfully obtainedInline

Return data structure

GET to retrieve a list of payment methods

GET /developers/payment/groups

Request parameters

nameLocationtypeRequiredillustrate
trade_noquerystringnoOrder 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 codesStatus code meaningillustrateData Model
200OKSuccessfully obtainedInline

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 codesStatus code meaningillustrateData Model
200OKOKInline

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

nameLocationtypeRequiredillustrate
typequeryintegernoFor package types, see the Product.type enumeration description. If not specified, all types will be returned.
parent_product_typequeryintegernoParent package type, only valid for type=19 (IP renewal), used to filter product lines: 14=Data Center 25=Residential
time_daysquerytherenoFilter by validity period in days, supporting single values ​​or arrays, such as 30 / [30,90,365]
show_typequerytherenoDisplay 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

propertyvalue
parent_product_type14
parent_product_type25

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 codesStatus code meaningillustrateData Model
200OKOKInline

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

nametypeRequiredconstraintChinese nameillustrate
anonymousintegerfalsenonePackage types: 9 Dynamic Residential Traffic Package, 11 Dynamic Residential IP Package, 14 Static Data Center IP Package, 25 Static Residential IP Package

Enumeration value

propertyvalue
anonymous9
anonymous11
anonymous14
anonymous25

apiKey

null

Authentication key

property

None

responseCode

200

Status codes: 200 Success, 3 Invalid app_key

property

nametypeRequiredconstraintChinese nameillustrate
anonymousintegerfalsenoneStatus codes: 200 Success, 3 Invalid app_key

responseMsg

"success"

response message

property

nametypeRequiredconstraintChinese nameillustrate
anonymousstringfalsenoneresponse message

SuccessResponse

{
  "code": 0,
  "message": "操作成功",
  "data": {}
}

property

nametypeRequiredconstraintChinese nameillustrate
codeintegerfalsenonenone
messagestringfalsenonenone
dataobjectfalsenonenone

ErrorResponse

{
  "code": 400,
  "message": "参数错误",
  "errors": {}
}

property

nametypeRequiredconstraintChinese nameillustrate
codeintegerfalsenonenone
messagestringfalsenonenone
errorsobjectfalsenonenone

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

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonenone
emailstring(email)falsenonenone
phonestringfalsenonenone
balancenumber(float)falsenonenone
statusintegerfalsenonenone
is_real_namebooleanfalsenonenone
created_atstring(date-time)falsenonenone

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

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenoneOrder ID
trade_nostringfalsenoneInternal order number
out_trade_nostringfalsenoneExternal order number
product_idintegerfalsenonePackage ID
product_typeintegerfalsenonePackage types are listed in the product type enumeration.
amountintegerfalsenonePurchase Quantity
unit_pricenumber(float)falsenoneunit price
total_feenumber(float)falsenoneTotal order price (excluding discounts, including handling fees)
goods_feenumber(float)falsenoneProduct price (including discounts, excluding handling fees)
pay_feenumber(float)falsenoneActual payment amount (including discounts and handling fees)
discount_feenumber(float)falsenoneDiscount amount
handling_feenumber(float)falsenonehandling fee
refund_feenumber(float)falsenoneRefund amount
pm_idintegerfalsenonePayment method ID (from /developers/payment/list)
pm_titlestringfalsenonePayment method name
pm_logostringfalsenonePayment method logo URL
statusintegerfalsenoneOrder status
titlestringfalsenonePackage Title
detailstringfalsenonePackage Description
region_descstringfalsenoneRegional Specifications
pay_atstring(date-time)falsenonePayment time
pay_timestampintegerfalsenonePayment timestamp
created_atstring(date-time)falsenoneCreation time
pay_fee_statusintegerfalsenoneLong/Short Item Status: 0 Normal, 1 Long Item (Overpayment), 2 Short Item
invoiceobjectfalsenoneInvoice information (value only for online payment orders)
» namestringfalsenoneFull name
» org_namestringfalsenoneCompany Name
» first_namestringfalsenonenone
» last_namestringfalsenonenone
» phonestringfalsenonenone
» emailstring(email)falsenonenone
» role_typeintegerfalsenone1 person, 2 companies
» vat_idstringfalsenoneTax ID
» address_countrystringfalsenonenone
» address_citystringfalsenonenone
» address_line1stringfalsenonenone
» address_line2stringfalsenonenone
» address_postal_codestringfalsenonenone

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

nametypeRequiredconstraintChinese nameillustrate
product_idintegerfalsenonePackage ID
amountintegerfalsenonequantity
discount_feenumber(float)falsenoneDiscount amount
total_feenumber(float)falsenoneTotal order amount
pay_feenumber(float)falsenoneActual amount paid
product_typeintegerfalsenonePackage types
titlestringfalsenonePackage Title
detailstringfalsenonePackage Description
ip_result[object]falsenoneIP bulk renewal results (only returned when renewing IPs)
» ipstringfalsenonenone
» pricenumber(float)falsenonenone
» country_codestringfalsenonenone
» current_timestring(date-time)falsenonenone
» renewal_timestring(date-time)falsenonenone
» countryobjectfalsenonenone
»» name_zh_cnstringfalsenonenone
»» flagsstringfalsenoneCircular Flag URL
»» square_flagstringfalsenoneSquare 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

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonePackage ID
titlestringfalsenonePackage main title
typeintegerfalsenonePackage types
show_typeintegerfalsenoneDisplay types: 1. Standard; 2. High-value recommendation; 3. Not available for purchase (customization required); 4. Trial.
statusintegerfalsenoneStatus: 1 listed, 0 delisted
pricenumber(float)falsenoneRMB price
usd_pricenumber(float)falsenoneUS Dollar Price
price_hkdnumber(float)falsenoneHong Kong dollar price
original_pricenumber(float)falsenoneOriginal Price (CNY)
original_usd_pricenumber(float)falsenoneOriginal Price (USD)
original_price_hkdnumber(float)falsenoneOriginal Price (HKD)
local_pricenumber(float)falsenoneLocalized pricing (depends on preferred_currency)
local_original_pricenumber(float)falsenoneLocalized original price (depends on preferred_currency)
preferred_currencystringfalsenoneRecommended display currency, such as USD/CNY/HKD
support_currenciesstringfalsenoneSupported currencies, comma-separated, e.g., USD, CNY
flow_valuenumber(float)falsenoneDefault data allowance (GB) for this data plan
flow_givenumber(float)falsenoneFree data allowance (GB)
balance_givenumber(float)falsenoneBonus amount for recharging balance
balance_valuenumber(float)falsenoneRecharge amount
time_validitynumber(float)falsenoneDefault validity period for package deals
time_pricenumber(float)falsenonePrice per IP for package deals
time_daysintegerfalsenoneValidity period in days, such as 30/90/180/365
tip1stringfalsenoneTag Description 1
tip2stringfalsenoneTag Description 2
enter[string]falsenoneText description list
region_list_idintegerfalsenoneRegion ID
renew_product_liststringfalsenoneList of renewable package IDs (comma-separated)
parent_product_typeintegerfalsenoneParent package type (valid when type=19): 14 or 25
total_countintegerfalsenoneTotal inventory, 0 indicates no limit
remain_countintegerfalsenoneRemaining inventory
extension_of_time_days[integer]falsenoneThe duration multiplier list is empty or contains only 1, indicating that it is not supported.
time_days_price_ratenumber(float)falsenoneDuration-based price factor, price × (1 + (multiple - 1) × rate)
I am going.objectfalsenonePackage description information
» subtitlestringfalsenonesubtitle
» flow_valuenumber(float)falsenonenone
» flow_givenumber(float)falsenonenone
» balance_givenumber(float)falsenonenone
» time_validitynumber(float)falsenonenone
» time_pricenumber(float)falsenonenone
» type1stringfalsenonenone
» tip2stringfalsenonenone
» introduce[string]falsenonenone
skuobjectfalsenoneSpecification parameters (returned when type=11)
» bandwidth_list[object]falsenoneBandwidth Specifications List
»» idintegerfalsenonenone
»» valueintegerfalsenoneBandwidth value (Mbps)
»» pricenumber(float)falsenonenone
»» price_usdnumber(float)falsenonenone
»» price_hkdnumber(float)falsenonenone
» duration_list[object]falsenoneDuration Specifications List
»» idintegerfalsenonenone
»» valueintegerfalsenoneDuration (days)
»» pricenumber(float)falsenonenone
»» price_usdnumber(float)falsenonenone
»» price_hkdnumber(float)falsenonenone
» concurrency_list[object]falsenoneConcurrency Specifications List
»» idintegerfalsenonenone
»» valueintegerfalsenoneConcurrency
»» pricenumber(float)falsenonenone
»» price_usdnumber(float)falsenonenone
»» price_hkdnumber(float)falsenonenone

WhiteIp

{
  "id": 0,
  "ip": "string",
  "remark": "string",
  "created_at": "2019-08-24T14:15:22Z"
}

property

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonenone
ipstringfalsenonenone
remarkstringfalsenonenone
created_atstring(date-time)falsenonenone

WhitelistAccount

{
  "id": 0,
  "username": "string",
  "limit": 0,
  "used": 0,
  "status": 0
}

property

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonenone
usernamestringfalsenonenone
limitintegerfalsenonenone
usedintegerfalsenonenone
statusintegerfalsenonenone

Coupon

{
  "id": 0,
  "name": "string",
  "code": "string",
  "discount": 0.1,
  "expire_time": "2019-08-24T14:15:22Z"
}

property

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonenone
namestringfalsenonenone
codestringfalsenonenone
discountnumber(float)falsenonenone
expire_timestring(date-time)falsenonenone

Article

{
  "id": 0,
  "title": "string",
  "content": "string",
  "created_at": "2019-08-24T14:15:22Z"
}

property

nametypeRequiredconstraintChinese nameillustrate
idintegerfalsenonenone
titlestringfalsenonenone
contentstringfalsenonenone
created_atstring(date-time)falsenonenone

Pagination

{
  "total": 0,
  "page_no": 0,
  "page_size": 0,
  "total_pages": 0
}

property

nametypeRequiredconstraintChinese nameillustrate
totalintegerfalsenonenone
page_nointegerfalsenonenone
page_sizeintegerfalsenonenone
total_pagesintegerfalsenonenone
Last Updated:: 8/20/26, 11:00 AM
Contributors: DESKTOP-EJV14VH\Administrator