IPRoyal OpenAPIIPRoyal OpenAPI
  • IPRoyal OpenAPI

IPRoyal OpenAPI

Base URLs: https://api.iproyal.cc/

Authentication

  • HTTP authentication, scheme: Bearer
  • API key authentication (apiKeyAuth)
    • Parameter name: app_key; location: query. GET and POST requests are supported.

Proxy Account Management

GET Proxy Account List

GET /open-api/whitelist-account/list

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "id": 0,
        "username": "string",
        "password": "string",
        "created_at": "string",
        "remark": "string",
        "product_type": 9,
        "usage_flow": 0,
        "limit_flow": 102400,
        "status": 0
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» coderesponseCodefalsenoneStatus code: 200 Success, 3 invalid app_key
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» idintegerfalsenoneAccount ID
»»» usernamestringfalsenoneProxy account username
»»» passwordstringfalsenoneProxy account password
»»» created_atstringfalsenoneAdded time
»»» remarkstringfalsenoneRemark
»»» product_typeproductTypesfalsenonePackage type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP
»»» usage_flowintegerfalsenoneUsed traffic, in KB
»»» limit_flowintegerfalsenoneCustom traffic limit: in GB, maximum 102400; 0 means unlimited
»»» statusintegerfalsenoneEnabled status: 1 enabled, 0 disabled

Enum Values

PropertyValue
product_type9
product_type11
product_type14
product_type25

POST Add Proxy Account

POST /open-api/whitelist-account/add

Body Request Parameters

{
  "app_key": "stringstringstringstringstringst",
  "accounts": "user01:pass,user02:pass,user03:pass",
  "remark": "",
  "product_type": 9
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountsbodystringNoAccount credentials. Use the format username:password. Usernames and passwords may contain letters and numbers only; special characters and spaces are not allowed. Separate the username and password with a colon. Batch creation is supported; separate proxy accounts with commas (,).
» remarkbodystringNoProxy account description
» product_typebodyproductTypesNoPackage type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP

Enum Values

PropertyValue
» product_type9
» product_type11
» product_type14
» product_type25

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Delete Proxy Account

POST /open-api/whitelist-account/delete

Please note that deletion cannot be undone. Used traffic and related data can no longer be queried after deletion. Deletion has an approximately 5-minute waiting period, during which charges may still be incurred.

Body Request Parameters

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

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountsbodystringNoProxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,).

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Disable Proxy Account

POST /open-api/whitelist-account/disable

Disabling an account has an approximately 5-minute waiting period, during which charges may still be incurred.

Body Request Parameters

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

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountsbodystringNoProxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,).

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Enable Proxy Account

POST /open-api/whitelist-account/enable

Body Request Parameters

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

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountsbodystringNoProxy accounts. Only letters and numbers are supported. Batch operations are supported; separate accounts with commas (,).

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Change Proxy Account Password

POST /open-api/whitelist-account/change-password

Please note that password changes have an approximately 5-minute waiting period, during which the old password may still work.

Body Request Parameters

{
  "app_key": "stringstringstringstringstringst",
  "account": "user",
  "password": "pass"
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountbodystringNoProxy account. Only letters and numbers are supported.
» passwordbodystringNoNew proxy account password. Only letters and numbers are supported.

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Change Proxy Account Remark

POST /open-api/whitelist-account/change-remark

Body Request Parameters

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

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountbodystringNoProxy account. Only letters and numbers are supported.
» remarkbodystringNoNew proxy account remark, up to 32 Chinese characters or 64 English characters.

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Change Proxy Account Traffic Limit

POST /open-api/whitelist-account/change-limit

Traffic statistics may be delayed by up to 5 minutes, so actual usage may exceed this limit.

Body Request Parameters

{
  "app_key": "stringstringstringstringstringst",
  "account": "user",
  "limit": 0
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountbodystringNoProxy account. Only letters and numbers are supported.
» limitbodyintegerNoTraffic limit, in GB; 0 means unlimited

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Update Proxy Account

POST /open-api/proxy-account/change

Update the proxy account password, remark, traffic limit, daily traffic limit, enabled status, or UDP setting.

Body Request Parameters

{
  "app_key": "string",
  "account": "string",
  "password": "string",
  "remark": "string",
  "limit": 0,
  "daily_limit": 0,
  "status": 0,
  "udp": 0
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» accountbodystringNoProxy account username
» passwordbodystringNoNew password, 6-16 letters or numbers. Omit this field to leave the password unchanged.
» remarkbodystringNoNew remark
» limitbodyintegerNoTraffic limit, in GB; 0 means unlimited
» daily_limitbodyintegerNoDaily traffic limit, in GB; 0 means unlimited
» statusbodyintegerNoEnabled status
» udpbodyintegerNoUDP support setting. Effective only for package types 14, 16, 21, and 25.

Enum Values

PropertyValue
» status0
» status1
» udp0
» udp1

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» datanullfalsenonenone

IP Allowlist

GET IP Allowlist

GET /open-api/proxy-ip/list

Request Parameters

NameLocationTypeRequiredDescription
product_typequeryintegerNoPackage type ID

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "ip": "1.1.1.1",
        "remark": "string",
        "product_type": 0,
        "created_at": "string"
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» ipstringfalsenoneAllowlisted IP
»»» remarkstringfalsenoneRemark
»»» product_typeintegerfalsenonePackage type
»»» created_atstringfalsenoneCreated time

POST Add IP to Allowlist

POST /open-api/proxy-ip/add

Body Request Parameters

{
  "app_key": "string",
  "ips": "1.1.1.1,2.2.2.2",
  "remark": "string",
  "product_type": 0,
  "user_product_id": 0
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» ipsbodystringNoAllowlist IPs to add. Separate multiple IPs with commas or new lines.
» remarkbodystringNoRemark
» product_typebodyintegerNoPackage type ID
» user_product_idbodyintegerNoUser package ID. Required when package type is 11.

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» datanullfalsenonenone

POST Remove IP from Allowlist

POST /open-api/proxy-ip/delete

Body Request Parameters

{
  "app_key": "string",
  "ips": "1.1.1.1,2.2.2.2",
  "verify_type": "string",
  "verify_code": "string"
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectNonone
» app_keybodystringNoAuthorization key
» ipsbodystringNoAllowlist IPs to remove. Separate multiple IPs with commas.
» verify_typebodystringNoVerification type: phone, email, wechat, totp
» verify_codebodystringNoVerification code

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» datanullfalsenonenone

Traffic Log Query

GET Daily Traffic Usage Summary

GET /open-api/user-usage-flow/total

Request Parameters

NameLocationTypeRequiredDescription
app_keyquerystring(password)YesAuthentication key
start_timequerystring(Y-m-d H:i:s)NoStart time, accurate to the second. Logs may be delayed by up to 5 minutes. Defaults to the last 7 days.
end_timequerystring(Y-m-d H:i:s)NoEnd time, accurate to the second. Logs may be delayed by up to 5 minutes. Defaults to the current time.
usernamequerystringNoSub-account name. By default, all accounts are queried; you may specify a sub-account. If multiple sub-accounts share the same name, this query returns usage records for all matching proxy accounts.
product_typequerynumberNoPackage type

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» daystringfalsenoneDate
»»» flowintegerfalsenoneTraffic consumed, in KB

Package Query

GET Purchased Package List

GET /open-api/user-product/list

Request Parameters

NameLocationTypeRequiredDescription
app_keyquerystring(password)YesAuthentication key
trade_noquerystringNoOrder number. Enter the complete order number; fuzzy search is not supported.
pagequerynumberNoPage, default: 1
sizequerynumberNoItems per page, default: 20
product_typequerynumberNoPackage type

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "id": 0,
        "created_at": "2022-05-13 12:14:15",
        "expired_at": "2022-05-13 12:14:15",
        "product_type": 9,
        "trade_no": "2022051312134339861461465434",
        "order": {
          "created_at": "2022-05-13 12:13:43",
          "pay_at": "2022-05-13 12:13:43",
          "title": "Starter"
        }
      }
    ],
    "page": 1,
    "page_size": 20,
    "total_count": 0,
    "total_page": 0
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» idintegerfalsenonePackage ID
»»» created_atstringfalsenonePackage effective time
»»» expired_atstringfalsenonePackage expiration time. Traffic cannot be used after expiration.
»»» product_typeproductTypesfalsenonePackage type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP
»»» trade_nostringfalsenoneOrder trade number
»»» orderobjectfalsenonenone
»»»» created_atstringfalsenoneOrder creation time
»»»» pay_atstringfalsenoneOrder payment time
»»»» titlestringfalsenoneOrder description
»» pageintegerfalsenoneCurrent page
»» page_sizeintegerfalsenonePage size
»» total_countintegerfalsenoneTotal records
»» total_pageintegerfalsenoneTotal pages

Enum Values

PropertyValue
product_type9
product_type11
product_type14
product_type25

GET User Package Summary

GET /open-api/user-product/summary

Get a statistical summary of the user's packages, including total, active, expiring-soon, and expired quantities.

Request Parameters

NameLocationTypeRequiredDescription
app_keyquerystring(password)YesAuthentication key
product_typequeryintegerNoProduct type. Only 9 (dynamic traffic package) and 12 (long-term IDC traffic package) are supported.

Enum Values

PropertyValue
product_type9
product_type12

Response Example

200 Response

{
  "code": 200,
  "msg": "Success",
  "data": {
    "total": 1048576,
    "total_count": 5,
    "effective": 524288,
    "effective_count": 3,
    "effective_total": 786432,
    "effective_used": 262144,
    "temporary": 102400,
    "temporary_count": 1,
    "expired": 51200,
    "expired_count": 1,
    "used": 473088
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» totalintegerfalsenoneTotal traffic/IP quantity, in KB
»» total_countintegerfalsenoneTotal package count
»» effectiveintegerfalsenoneActive remaining amount, in KB
»» effective_countintegerfalsenoneActive package count
»» effective_totalintegerfalsenoneActive total amount, in KB
»» effective_usedintegerfalsenoneActive used amount, in KB
»» temporaryintegerfalsenoneExpiring-soon total (expires within 7 days), in KB
»» temporary_countintegerfalsenoneExpiring-soon package count (expires within 7 days)
»» expiredintegerfalsenoneExpired remaining amount, in KB
»» expired_countintegerfalsenoneExpired package count
»» usedintegerfalsenoneTotal used amount, in KB

IP Extraction

GET Extract IPs

GET /open-api/ip/v3

Request Parameters

NameLocationTypeRequiredDescription
app_keyquerystring(password)YesAccess key
ccquerystringNoCountry or region
statequerystringNoState/province
cityquerystringNoCity
formatquerystringNoOutput format
lbquerystringNoSeparator, valid only for text format
numquerynumberNoExtraction quantity
lifequerynumberNoKeep-alive period, in minutes
epquerystringNoProxy network

Enum Values

PropertyValue
epus
ephk
epde

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      [
        "150.109.114.72:1140",
        "150.109.114.72:1141",
        "150.109.114.72:1142",
        "150.109.114.72:1143",
        "150.109.114.72:1144",
        "150.109.114.72:1145",
        "150.109.114.72:1146",
        "150.109.114.72:1147",
        "150.109.114.72:1148",
        "150.109.114.72:1149"
      ]
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[any]falsenonenone

GET Dynamic Region City List V4

GET /open-api/ip/dcl4

Get the city list by username. Login authentication is required, and the account must belong to the current user.

Request Parameters

NameLocationTypeRequiredDescription
usernamequerystringYesProxy account username

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "cache": true,
    "list": [
      {
        "City": "Los Angeles",
        "Area": "US",
        "State": "California"
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» cachebooleanfalsenoneWhether the data is from cache
»» list[object]falsenonenone
»»» CitystringfalsenoneCity
»»» AreastringfalsenoneRegion
»»» StatestringfalsenoneState/province

GET Dynamic Region State/Province List V4

GET /open-api/ip/dsl4

Get the state/province list by username. Login authentication is required, and the account must belong to the current user.

Request Parameters

NameLocationTypeRequiredDescription
usernamequerystringYesProxy account username

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "cache": true,
    "list": [
      {
        "City": "Los Angeles",
        "Area": "US",
        "State": "California"
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» cachebooleanfalsenoneWhether the data is from cache
»» list[object]falsenonenone
»»» CitystringfalsenoneCity
»»» AreastringfalsenoneRegion
»»» StatestringfalsenoneState/province

GET Dynamic Region State/Province and City Combined List V4

GET /open-api/ip/dal4

Get a combined state/province and city list by username, grouped by region. Login authentication is required, and the account must belong to the current user.

Request Parameters

NameLocationTypeRequiredDescription
usernamequerystringYesProxy account username

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "cache": true,
    "list": [
      {
        "Area": "US",
        "states": [
          {
            "State": null,
            "cities": null
          }
        ]
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» cachebooleanfalsenoneWhether the data is from cache
»» list[object]falsenoneRegion list
»»» AreastringfalsenoneRegion code
»»» states[object]falsenoneState/province list
»»»» StatestringfalsenoneState/province name
»»»» cities[string]falsenoneCityList

GET City List

GET /open-api/ip/dynamic-citys

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "name_zh_cn": "United States",
        "name_en": "United States",
        "continent_code": "NA",
        "country_code": "US",
        "items": [
          {
            "city": null,
            "state": null,
            "continent_code": null,
            "country_code": null
          }
        ]
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenoneList
»»» name_zh_cnstringfalsenoneCountry or region name
»»» name_enstringfalsenoneCountry or region name
»»» continent_codestringfalsenoneContinent code
»»» country_codestringfalsenoneCountry or region code
»»» items[object]falsenoneState/province
»»»» citystringfalsenoneCity name
»»»» statestringfalsenoneState/province name/code
»»»» continent_codestringfalsenoneContinent code
»»»» country_codestringfalsenoneCountry or region code

GET City Search

GET /open-api/ip/dynamic-citys/search

Request Parameters

NameLocationTypeRequiredDescription
country_codequerystringYesCountry or region code
statequerystringYesState or province code

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[string]falsenoneList

GET State List

GET /open-api/ip/dynamic-states

Response Example

200 Response

{
  "code": 200,
  "msg": "string",
  "data": {
    "list": [
      {
        "name_zh_cn": "United States",
        "name_en": "United States",
        "continent_code": "NA",
        "country_code": "US",
        "items": [
          {
            "state": null,
            "continent_code": null,
            "country_code": null
          }
        ]
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenoneList
»»» name_zh_cnstringfalsenoneCountry or region name
»»» name_enstringfalsenoneCountry or region name
»»» continent_codestringfalsenoneContinent code
»»» country_codestringfalsenoneCountry or region code
»»» items[object]falsenoneState/province
»»»» statestringfalsenoneState/province name/code
»»»» continent_codestringfalsenoneContinent code
»»»» country_codestringfalsenoneCountry or region code

GET State/Province Search

GET /open-api/ip/dynamic-states/search

Request Parameters

NameLocationTypeRequiredDescription
country_codequerystringYesCountry or region code

Response Example

200 Response

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

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success, 3 invalid app_key, 156 account is not real-name verified
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[string]falsenoneList

GET Purchased Static IP List

GET /open-api/ip/get-static-ip

Request Parameters

NameLocationTypeRequiredDescription
country_codequerystringNoCountry or region code
product_typequerynumberNoProduct type, 25: static residential IP, 14: data center IP
trade_noquerystringNoFilter IPs by order number
pagequerynumberNoPage number
sizequerynumberNoItems per page
statusquerynumberNoStatus, 1: active, 2: inactive, 3: expiring soon, 4: under maintenance

Enum Values

PropertyValue
product_type14
product_type25
status1 - 2 - 3 - 4

Response Example

200 Response

{}

Responses

Status CodeMeaningDescriptionData Model
200OKnoneInline

Response Schema

GET Available Static IP Count by Region

GET /open-api/ip/static-ip-region

Request Parameters

NameLocationTypeRequiredDescription
ispqueryintegerNoISP filter. If omitted, no filtering is applied (except sites 1/4/5 default to 1).
asnqueryintegerNoWhether to return ASN grouped data
exclusivequeryintegerNoWhether to count exclusive inventory

Details

isp: ISP filter. If omitted, no filtering is applied (except sites 1/4/5 default to 1).

ValueDescription
0Data center static IP (IDC)
1Residential static IP (ISP)

asn: Whether to return ASN grouped data

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

exclusive: Whether to count exclusive inventory

ValueDescription
0Count by current user/shared group scope (default)
1Exclude all assigned IPs and count only available inventory

Enum Values

PropertyValue
isp0
isp1
asn0
asn1
exclusive0
exclusive1

Response Example

200 Response

{
  "code": 200,
  "msg": "Request successful",
  "data": {
    "list": [
      {
        "code": "US",
        "number": 55
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» codestringfalsenoneCountry or region code
»»» numberintegerfalsenoneQuantity

GET Countries/Regions Supported by host_pool

GET /open-api/host-pool/regions

Query the countries/regions supported by the host_pool service for the current site.

This endpoint is intended for random data center IP extraction based on traffic credits. It only counts countries/regions from the data center IP inventory available on the current site. ASN, ISP, and exclusive-inventory filters are not supported, and IPs are not excluded based on the user's purchase history.

Response Example

200 Response

{
  "code": 200,
  "msg": "Request successful",
  "data": {
    "list": [
      {
        "code": "US",
        "number": 55,
        "name_zh_cn": "United States",
        "name_en": "United States",
        "square_flag": "https://example.com/static/flags/us.png"
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKRequest successfulInline

Response Schema

Status code 200

NameTypeRequiredConstraintsDisplay nameDescription
» codeintegerfalsenoneStatus code: 200 Success
» msgstringfalsenoneStatus message
» dataobjectfalsenonenone
»» list[object]falsenonenone
»»» codestringfalsenoneCountry or region code, ISO 3166-1 alpha-2
»»» numberintegerfalsenoneNumber of data center IPs available on the current site
»»» name_zh_cnstringfalsenoneCountry or region Chinese name
»»» name_enstringfalsenoneCountry or region English name
»»» square_flagstringfalsenoneSquare flag image URL

Order Management

GET Order List

GET /open-api/order/list

Request Parameters

NameLocationTypeRequiredDescription
page_noqueryintegerNonone
page_sizequeryintegerNonone
trade_noquerystringNoOrder number
start_timequerystring(date-time)NoStart time (inclusive), for example 2024-01-01 00:00:00
end_timequerystring(date-time)NoEnd time (exclusive)
statusqueryintegerNoOrder status
product_typequeryintegerNoProduct type
invoicequeryintegerNoInvoice status: 0 no limit, 1 invoiced, -1 not invoiced (can be issued later)
pay_fee_statusqueryintegerNoOver/underpayment filter: 1 overpayment, 2 underpayment

Details

status: Order status

StatusDescription
0Pending payment
1Paid
2Canceled due to payment timeout
3Refunded

product_type: Product type

Product TypeDescription
3Balance recharge
9Dynamic traffic package
11Dynamic global time package V2
12Long-term IDC traffic package
13Residential static IP traffic package
14Data center static IP package
15Long-term ISP traffic package
16Static traffic package
17Dynamic IP quantity package
18web-scraper
19Static IP renewal
20Static IP replacement quota
21Static traffic package v2
24Static traffic add-on package
25Residential static IP package
26Supplementary order - some payment channels require the user to manually enter the amount, such as virtual currency. If an underpayment occurs, contact customer service to complete the payment with this product.
27Serp
28Video

Enum Values

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

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "list": [
      {
        "id": 0,
        "trade_no": "string",
        "out_trade_no": "string",
        "product_id": 0,
        "product_type": 0,
        "amount": 0,
        "unit_price": 0.1,
        "total_fee": 0.1,
        "goods_fee": 0.1,
        "pay_fee": 0.1,
        "discount_fee": 0.1,
        "handling_fee": 0.1,
        "refund_fee": 0.1,
        "pm_id": 0,
        "pm_title": "string",
        "pm_logo": "string",
        "status": 0,
        "title": "string",
        "detail": "string",
        "region_desc": "string",
        "pay_at": "2019-08-24T14:15:22Z",
        "pay_timestamp": 0,
        "created_at": "2019-08-24T14:15:22Z",
        "pay_fee_status": 0,
        "invoice": {}
      }
    ],
    "pagination": {
      "total": 0,
      "page_no": 0,
      "page_size": 0,
      "total_pages": 0
    }
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKSuccessInline

Response Schema

POST Create Order

POST /open-api/order/create

Because package types and configurations vary, provide parameters according to the actual package being purchased. Incorrect parameters may cause order creation to fail.

examples:

Renew Static IP

{
    "pid": Package ID, // Get it from the /open-api/product API
    "upids": "1,2,3,4,5,6", // Get the corresponding id field from /open-api/ip/get-static-ip
    "pm_id": 1 // Get it from the /open-api/payment/list or /open-api/payment/groups API
  }

Static Residential IP Purchase

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
  "region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN is optional)
}

Static Data Center IP Purchase

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
  "region_list": "JP,15,333|DE,10,444|US,5,555" // Format: region,quantity,ASN|region,quantity,ASN (ASN is optional)
}

Dynamic Residential Traffic Purchase

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID // Get it from the /open-api/payment/list or /open-api/payment/groups API
}

Static Rotating Traffic Purchase

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID // Get it from the /open-api/payment/list or /open-api/payment/groups API
}

Dynamic Unlimited Traffic Purchase

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
  "product_sku_bandwidth_id": bandwidth_spec_id,
  "product_sku_concurrency_id": concurrency_spec_id
}

Balance Recharge

{
  "pid": Package ID, // Get it from the /open-api/product API
  "pm_id": Payment method ID, // Get it from the /open-api/payment/list or /open-api/payment/groups API
  "recharge_amount": Recharge amount
}

Body Request Parameters

{
  "pid": 0,
  "upids": "string",
  "amount": 0,
  "pm_id": 0,
  "region_list": "string",
  "coupon_sn": "string",
  "use_invitation_registration_discount": true,
  "renew_duration": 0,
  "product_sku_bandwidth_id": 0,
  "product_sku_concurrency_id": 0,
  "product_sku_duration_id": 0,
  "etd": 1,
  "recharge_amount": 0
}

Request Parameters

| Name | Location | Type | Required | Description | | -------------------------------------- | -------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | --------- | -------------------------- | | body | body | object | Yes | none | | » pid | body | integer | Yes | Package ID, from the id field returned by /open-api/product | | » upids | body | string | No | Renewal package ID list (comma-separated), from the id field returned by /open-api/user-product/list or /open-api/ip/get-static-ip | | » amount | body | number | No | New package purchase quantity | | » pm_id | body | integer | Yes | Payment method ID, from the id field returned by /open-api/payment/list or /open-api/payment/groups | | » region_list | body | string | No | Specify region + quantity + ASN when purchasing static IPs. Format: region,quantity,ASN | Region,Quantity,ASN, for example: JP,15,333 | DE,10,444 | US,5,555 (ASN is optional) | | » coupon_sn | body | string | No | Coupon code | | » use_invitation_registration_discount | body | boolean | No | Whether to use the invitation registration discount | | » renew_duration | body | integer | No | Renewal duration, optional for static IPs | | » product_sku_bandwidth_id | body | integer | No | Package 11: bandwidth package ID | | » product_sku_concurrency_id | body | integer | No | Package 11: concurrency package ID | | » product_sku_duration_id | body | integer | No | Required for package type 11: duration specification ID | | » etd | body | integer | No | Duration multiplier, obtained from package extension_of_time_days. 2 means days x 2 with a price increase. | | » recharge_amount | body | integer | No | Package 3: recharge amount |

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "id": 0,
    "trade_no": "string",
    "out_trade_no": "string",
    "product_id": 0,
    "product_type": 0,
    "amount": 0,
    "unit_price": 0.1,
    "total_fee": 0.1,
    "goods_fee": 0.1,
    "pay_fee": 0.1,
    "discount_fee": 0.1,
    "handling_fee": 0.1,
    "refund_fee": 0.1,
    "pm_id": 0,
    "pm_title": "string",
    "pm_logo": "string",
    "status": 0,
    "title": "string",
    "detail": "string",
    "region_desc": "string",
    "pay_at": "2019-08-24T14:15:22Z",
    "pay_timestamp": 0,
    "created_at": "2019-08-24T14:15:22Z",
    "pay_fee_status": 0,
    "invoice": {
      "name": "string",
      "org_name": "string",
      "first_name": "string",
      "last_name": "string",
      "phone": "string",
      "email": "[email protected]",
      "role_type": 0,
      "vat_id": "string",
      "address_country": "string",
      "address_city": "string",
      "address_line1": "string",
      "address_line2": "string",
      "address_postal_code": "string"
    }
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKCreated successfullyInline

Response Schema

POST Cancel Order

POST /open-api/order/close

Body Request Parameters

{
  "trade_no": "string"
}

Request Parameters

NameLocationTypeRequiredDescription
bodybodyobjectYesnone
» trade_nobodystringYesnone

Responses

Status CodeMeaningDescriptionData Model
200OKOperation successfulNone

POST Order Precheck

POST /open-api/order/check

Call this before creating an order to preview pricing, discounts, IP renewal details, and related information. This endpoint does not create an order. The parameters are exactly the same as /open-api/order/create.

Body Request Parameters

{
  "pid": 0,
  "upids": "string",
  "amount": 1,
  "pm_id": 0,
  "region_list": "string",
  "coupon_sn": "string",
  "renew_duration": "1m",
  "product_sku_bandwidth_id": 0,
  "product_sku_concurrency_id": 0,
  "product_sku_duration_id": 0,
  "etd": 1,
  "recharge_amount": 0
}

Request Parameters

| Name | Location | Type | Required | Description | | ---------------------------- | -------- | ------- | -------- | ------------------------------------------------------------------------ | ------------------ | | body | body | object | Yes | none | | » pid | body | integer | Yes | Package ID | | » upids | body | string | No | IP renewal: comma-separated user package ID list | | » amount | body | integer | No | Purchase quantity | | » pm_id | body | integer | Yes | Payment method ID | | » region_list | body | string | No | Static IP purchase region + quantity, format: region ID,quantity | region ID,quantity | | » coupon_sn | body | string | No | Coupon code | | » renew_duration | body | string | No | IP renewal duration: 1m = 1 month, 2m = 2 months, em = end of next month | | » product_sku_bandwidth_id | body | integer | No | Required for package type 11: bandwidth specification ID | | » product_sku_concurrency_id | body | integer | No | Required for package type 11: concurrency specification ID | | » product_sku_duration_id | body | integer | No | Required for package type 11: duration specification ID | | » etd | body | integer | No | Duration multiplier, obtained from package extension_of_time_days | | » recharge_amount | body | number | No | Required for package type 3: recharge amount |

Enum Values

PropertyValue
» renew_duration1m
» renew_duration2m
» renew_durationem

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "product_id": 0,
    "amount": 0,
    "discount_fee": 0.1,
    "total_fee": 0.1,
    "pay_fee": 0.1,
    "product_type": 0,
    "title": "string",
    "detail": "string",
    "ip_result": [
      {
        "ip": "string",
        "price": 0.1,
        "country_code": "string",
        "current_time": "2019-08-24T14:15:22Z",
        "renewal_time": "2019-08-24T14:15:22Z",
        "country": {}
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKPrecheck successfulInline

Response Schema

Payment Management

GET Payment Method List

GET /open-api/payment/list

Request Parameters

NameLocationTypeRequiredDescription
trade_noquerystringNoOrder number. Pass this when a specific payment method list is needed for an order.
currencyquerystringNoCurrency

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "list": [
      {
        "id": 0,
        "title": "string",
        "logo": "string",
        "group": "string",
        "handling_rate": 0,
        "handling_fee": 0,
        "disabled": false,
        "min": 0,
        "max": 0
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKFetched successfullyInline

Response Schema

GET Payment Method List

GET /open-api/payment/groups

Request Parameters

NameLocationTypeRequiredDescription
trade_noquerystringNoOrder number. Pass this when a specific payment method list is needed for an order.

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "list": [
      {
        "name": "string",
        "logos": [null],
        "items": [null]
      }
    ]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKFetched successfullyInline

Response Schema

Marketing

GET Recharge Bonus Ratio

GET /open-api/activity/balance-recharge-gift-ratio

Recharge bonus ratio

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": {
    "list": [null]
  }
}

Responses

Status CodeMeaningDescriptionData Model
200OKOKInline

Response Schema

Products

GET Product List

GET /open-api/product

Get the packages currently available for purchase on this site. Filtering by type, validity period, and other conditions is supported.

Request Parameters

NameLocationTypeRequiredDescription
typequeryintegerNoPackage type. See the Product.type enum. If omitted, all types are returned.
parent_product_typequeryintegerNoParent package type. Valid only when type=19 (IP renewal), used to filter product lines: 14=data center, 25=residential.
time_daysqueryanyNoValidity-days filter. Supports a single value or array, such as 30 / [30,90,365].
show_typequeryanyNoDisplay-type filter. Supports a single value or array.

Details

type: Package type. See the Product.type enum. If omitted, all types are returned.

Enum Values

PropertyValue
parent_product_type14
parent_product_type25

Response Example

200 Response

{
  "code": 0,
  "message": "Operation successful",
  "data": [
    {
      "id": 0,
      "title": "string",
      "type": 0,
      "show_type": 0,
      "status": 0,
      "price": 0.1,
      "usd_price": 0.1,
      "price_hkd": 0.1,
      "original_price": 0.1,
      "original_usd_price": 0.1,
      "original_price_hkd": 0.1,
      "local_price": 0.1,
      "local_original_price": 0.1,
      "preferred_currency": "string",
      "support_currencies": "string",
      "flow_value": 0.1,
      "flow_give": 0.1,
      "balance_give": 0.1,
      "balance_value": 0.1,
      "time_validity": 0.1,
      "time_price": 0.1,
      "time_days": 0,
      "tip1": "string",
      "tip2": "string",
      "introduce": ["string"],
      "region_list_id": 0,
      "renew_product_list": "string",
      "parent_product_type": 0,
      "total_count": 0,
      "remain_count": 0,
      "extension_of_time_days": [0],
      "time_days_price_rate": 0.1,
      "desc": {
        "subtitle": "string",
        "flow_value": 0.1,
        "flow_give": 0.1,
        "balance_give": 0.1,
        "time_validity": 0.1,
        "time_price": 0.1,
        "tip1": "string",
        "tip2": "string",
        "introduce": [null]
      },
      "sku": {
        "bandwidth_list": [null],
        "duration_list": [null],
        "concurrency_list": [null]
      }
    }
  ]
}

Responses

Status CodeMeaningDescriptionData Model
200OKOKInline

Response Schema

Data Models

productTypes

9

Package type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP

Properties

NameTypeRequiredConstraintsDisplay nameDescription
anonymousintegerfalsenonePackage type: 9 dynamic residential traffic package, 11 dynamic residential IP, 14 static data center IP, 25 static residential IP

Enum Values

PropertyValue
anonymous9
anonymous11
anonymous14
anonymous25

responseCode

200

Status code: 200 Success, 3 invalid app_key

Properties

NameTypeRequiredConstraintsDisplay nameDescription
anonymousintegerfalsenoneStatus code: 200 Success, 3 invalid app_key

SuccessResponse

{
  "code": 0,
  "message": "Operation successful",
  "data": {}
}

Properties

NameTypeRequiredConstraintsDisplay nameDescription
codeintegerfalsenonenone
messagestringfalsenonenone
dataobjectfalsenonenone

Order

{
  "id": 0,
  "trade_no": "string",
  "out_trade_no": "string",
  "product_id": 0,
  "product_type": 0,
  "amount": 0,
  "unit_price": 0.1,
  "total_fee": 0.1,
  "goods_fee": 0.1,
  "pay_fee": 0.1,
  "discount_fee": 0.1,
  "handling_fee": 0.1,
  "refund_fee": 0.1,
  "pm_id": 0,
  "pm_title": "string",
  "pm_logo": "string",
  "status": 0,
  "title": "string",
  "detail": "string",
  "region_desc": "string",
  "pay_at": "2019-08-24T14:15:22Z",
  "pay_timestamp": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "pay_fee_status": 0,
  "invoice": {
    "name": "string",
    "org_name": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "email": "[email protected]",
    "role_type": 0,
    "vat_id": "string",
    "address_country": "string",
    "address_city": "string",
    "address_line1": "string",
    "address_line2": "string",
    "address_postal_code": "string"
  }
}

Properties

| Name | Type | Required | Constraints | Display name | Description | | --------------------- | ----------------- | -------- | ----------- | ------------ | ----------------------------------------------------------------- | ----- | ----------- | ------ | --- | --- | ------ | --- | --------------- | ------ | --- | ---- | ------ | --- | ----------------------- | ------ | --- | -------- | --- | | id | integer | false | none | | Order ID | | trade_no | string | false | none | | Internal order number | | out_trade_no | string | false | none | | External order number | | product_id | integer | false | none | | Package ID | | product_type | integer | false | none | | Package type; see product type enum | | amount | integer | false | none | | Purchase quantity | | unit_price | number(float) | false | none | | Unit price | | total_fee | number(float) | false | none | | Order total (excluding discounts, including handling fees) | | goods_fee | number(float) | false | none | | Goods price (including discounts, excluding handling fees) | | pay_fee | number(float) | false | none | | Actual paid amount (including discounts and handling fees) | | discount_fee | number(float) | false | none | | Discount amount | | handling_fee | number(float) | false | none | | Handling fee | | refund_fee | number(float) | false | none | | Refund amount | | pm_id | integer | false | none | | Payment method ID (from /open-api/payment/list) | | pm_title | string | false | none | | Payment method name | | pm_logo | string | false | none | | Payment method logo URL | | status | integer | false | none | | Order status
| Value | Description |
| --- | --- |
| 0 | Pending payment |
| 1 | Paid |
| 2 | Canceled due to timeout |
| 3 | Refunded | | | title | string | false | none | | Package title | | detail | string | false | none | | Package description | | region_desc | string | false | none | | Region specification description | | pay_at | string(date-time) | false | none | | Payment time | | pay_timestamp | integer | false | none | | Payment timestamp | | created_at | string(date-time) | false | none | | Created time | | pay_fee_status | integer | false | none | | Over/underpayment status: 0 normal, 1 overpayment, 2 underpayment | | invoice | object | false | none | | Invoice information (available only for online payment orders) | | » name | string | false | none | | Full name | | » org_name | string | false | none | | Company name | | » first_name | string | false | none | | none | | » last_name | string | false | none | | none | | » phone | string | false | none | | none | | » email | string(email) | false | none | | none | | » role_type | integer | false | none | | 1 individual, 2 company | | » vat_id | string | false | none | | Tax ID | | » address_country | string | false | none | | none | | » address_city | string | false | none | | none | | » address_line1 | string | false | none | | none | | » address_line2 | string | false | none | | none | | » address_postal_code | string | false | none | | none |

OrderCheckResult

{
  "product_id": 0,
  "amount": 0,
  "discount_fee": 0.1,
  "total_fee": 0.1,
  "pay_fee": 0.1,
  "product_type": 0,
  "title": "string",
  "detail": "string",
  "ip_result": [
    {
      "ip": "string",
      "price": 0.1,
      "country_code": "string",
      "current_time": "2019-08-24T14:15:22Z",
      "renewal_time": "2019-08-24T14:15:22Z",
      "country": {
        "name_zh_cn": "string",
        "flag": "string",
        "square_flag": "string"
      }
    }
  ]
}

Order precheck result

Properties

NameTypeRequiredConstraintsDisplay nameDescription
product_idintegerfalsenonePackage ID
amountintegerfalsenoneQuantity
discount_feenumber(float)falsenoneDiscount amount
total_feenumber(float)falsenoneOrder total
pay_feenumber(float)falsenoneActual paid amount
product_typeintegerfalsenonePackage type
titlestringfalsenonePackage title
detailstringfalsenonePackage description
ip_result[object]falsenoneIP batch renewal result (returned only for IP renewal)
» ipstringfalsenonenone
» pricenumber(float)falsenonenone
» country_codestringfalsenonenone
» current_timestring(date-time)falsenonenone
» renewal_timestring(date-time)falsenonenone
» countryobjectfalsenonenone
»» name_zh_cnstringfalsenonenone
»» flagstringfalsenoneRound 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
      }
    ]
  }
}

Properties

| Name | Type | Required | Constraints | Display name | Description | | ---------------------- | ------------- | -------- | ----------- | ------------ | ----------------------------------------------------------------------------------------------------------------- | ----- | ----------- | ------ | --- | --- | ------ | --- | ---------------- | ------ | --- | ----------------------------------- | ------ | --- | --------------------------- | ------ | --- | ------------------------------------------------ | ------ | --- | ----------------------------- | ------ | --- | ------------------------------------- | ------ | --- | ----------------------------- | ------ | --- | ----------------------------- | ------ | --- | ---------------------- | ------ | --- | ------------------------------ | ------ | --- | ------------------------- | ------ | --- | --------------------------------- | ------ | --- | ----------------------------- | ------ | --- | ----------------------------- | ------ | --- | ---------------------- | --- | | id | integer | false | none | | Package ID | | title | string | false | none | | Package main title | | type | integer | false | none | | Package type
| Value | Description |
| --- | --- |
| 3 | Balance recharge |
| 9 | Dynamic residential traffic package |
| 10 | Dynamic global time package |
| 11 | Custom dynamic global time package V2 (with SKU) |
| 12 | Long-term IDC traffic package |
| 13 | Residential static IP traffic package |
| 14 | Data center static IP package |
| 15 | Long-term ISP traffic package |
| 16 | Static traffic package |
| 17 | Dynamic residential IP package |
| 19 | Static IP renewal package |
| 20 | Static IP replacement eligibility |
| 21 | Static residential IP package |
| 24 | Static traffic add-on package |
| 25 | Static IP rate package | | | show_type | integer | false | none | | Display type: 1 normal, 2 high-volume recommendation, 3 unavailable for purchase (custom order required), 4 trial | | status | integer | false | none | | Status: 1 listed, 0 unlisted | | price | number(float) | false | none | | CNY price | | usd_price | number(float) | false | none | | USD price | | price_hkd | number(float) | false | none | | HKD price | | original_price | number(float) | false | none | | Original price (CNY) | | original_usd_price | number(float) | false | none | | Original price (USD) | | original_price_hkd | number(float) | false | none | | Original price (HKD) | | local_price | number(float) | false | none | | Localized price (depends on preferred_currency) | | local_original_price | number(float) | false | none | | Localized original price (depends on preferred_currency) | | preferred_currency | string | false | none | | Recommended display currency, such as usd / cny / hkd | | support_currencies | string | false | none | | Supported currency list, comma-separated, such as usd,cny | | flow_value | number(float) | false | none | | Default traffic for traffic packages (GB) | | flow_give | number(float) | false | none | | Bonus traffic (GB) | | balance_give | number(float) | false | none | | Balance recharge bonus amount | | balance_value | number(float) | false | none | | Recharge amount | | time_validity | number(float) | false | none | | Default validity period for quota packages | | time_price | number(float) | false | none | | Price per IP for quota packages | | time_days | integer | false | none | | Validity days, such as 30/90/180/365 | | tip1 | string | false | none | | Tag description 1 | | tip2 | string | false | none | | Tag description 2 | | introduce | [string] | false | none | | Text introduction list | | region_list_id | integer | false | none | | Region ID | | renew_product_list | string | false | none | | Renewable package ID list (comma-separated) | | parent_product_type | integer | false | none | | Parent package type (valid when type=19): 14 or 25 | | total_count | integer | false | none | | Total inventory; 0 means unlimited | | remain_count | integer | false | none | | Remaining inventory | | extension_of_time_days | [integer] | false | none | | Duration multiplier list. Empty or only 1 means unsupported. | | time_days_price_rate | number(float) | false | none | | Duration price coefficient: price x (1 + (multiplier - 1) x rate) | | desc | object | false | none | | Package description information | | » subtitle | string | false | none | | Subtitle | | » flow_value | number(float) | false | none | | none | | » flow_give | number(float) | false | none | | none | | » balance_give | number(float) | false | none | | none | | » time_validity | number(float) | false | none | | none | | » time_price | number(float) | false | none | | none | | » tip1 | string | false | none | | none | | » tip2 | string | false | none | | none | | » introduce | [string] | false | none | | none | | sku | object | false | none | | Specification parameters (returned when type=11) | | » bandwidth_list | [object] | false | none | | Bandwidth specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Bandwidth value (Mbps) | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none | | » duration_list | [object] | false | none | | Duration specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Duration (days) | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none | | » concurrency_list | [object] | false | none | | Concurrency specification list | | »» id | integer | false | none | | none | | »» value | integer | false | none | | Concurrency count | | »» price | number(float) | false | none | | none | | »» price_usd | number(float) | false | none | | none | | »» price_hkd | number(float) | false | none | | none |

Pagination

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

Properties

NameTypeRequiredConstraintsDisplay nameDescription
totalintegerfalsenonenone
page_nointegerfalsenonenone
page_sizeintegerfalsenonenone
total_pagesintegerfalsenonenone