Skip to content

API interface documentation

1. Basic information interface

1. Get current user information

Request method: GET Request path: /api/users/me/info

Request Parameters none

return result

json
{ 
  "code": 0,                                   //Status code, 0: success, other numbers: failure, int type
  "data": {
    "username": "socks5",                      //username
    "email": "user@example.com",               //Mail
    "api_key": "string",                       // api key
    "set_password_status": 0                   //Whether to set a password, 0: not set, 1: set, default 1
  },
  "message": "success"                         //Return result, str type
}

2. Get wallet information

Request method: GET Request path: /api/users/wallet/info

Request Parameters none

return result

json
{
  "code": 0,                    //Status code, 0: success, other numbers: failure, int type
  "data": { 
    "dc_price": 200,            //Computer room traffic unit price (cents)
    "res_price": 533,           //Residential traffic unit price (cents)
    "mobile_price": 1104,       //Mobile traffic unit price (cents)
    "total_recharge": 136300,   //Total recharge (cents)
    "total_consume": 131300,    //Total consumption (cents)
    "balance": 5000             //Balance (cents)
  },
  "message": "success"          //Return result, str type
}

2. Sub-account management interface

1. Create sub-account

Request method: POST Request path: /api/users/subuser/create

Request Parameters

json
{
  "username": "string",    //Sub-account name
  "password": "string",    //Sub-account password
  "remark": "",            //Remark
  "status": "active",      //Sub-account status active: activated inactive: not activated
  "res_traffic_limit": 0,  //Use residential traffic limit (GB), 0 means no limit
  "dc_traffic_limit": 0,   //Use computer room traffic limit (GB), 0 means no limit
  "mobile_traffic_limit": 0 //Use mobile data limit (GB), 0 means no limit
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

2. Get the sub-account list

Request method: GET Request path: /api/users/subuser/list

Request Parameters

json
{
    "page": 1,                                      //Paging index, int type, optional, default 1
    "page_size": 10,                                //Number of pagination items, int type, optional, default 10
    "user_name": "",                                //username
    "status":"active"                               //Sub-account status active: activated inactive: not activated
}

return result

json
{
  "code": 0,                                          //Status code, 0: success, other numbers: failure, int type
  "data": {                               
    "records": [
      {
        "id": 0,                                      //Sub-account ID
        "username": "string",                         //Sub-account name
        "password": "string",                         //Sub-account password
        "remark": "",                                 //Remark
        "status": "active",                           //Sub-account status active: activated inactive: not activated
        "res_traffic_limit": 0,                       //Use residential traffic limit (GB), 0 means no limit
        "dc_traffic_limit": 0,                        //Use computer room traffic limit (GB), 0 means no limit
        "mobile_traffic_limit": 0,                    //Use mobile data limit (GB), 0 means no limit
        "used_res_traffic": 0,                        //Residential traffic used (Byte)
        "used_dc_traffic": 0,                         //Used computer room traffic (Byte)
        "used_mobile_traffic": 0,                     //Mobile data used (Byte)
        "create_time": "2025-09-14 06:22:26",         //creation time
        "update_time": "2025-09-14 06:22:26"          //modification time
      }
    ],
    "total": 0                                        //Total number of items
  },
  "message": "success"                                //Return result, str type
}

3. Update sub-account

Request method: POST Request path: /api/users/subuser/update

Request Parameters

json
{
  "id": 0,                        //Sub-account ID, required
  "remark": "string",             //Remarks, optional
  "password": "string",           //Sub-account password, optional
  "status": "active",             //Sub-account status active: activated inactive: not activated, optional
  "res_traffic_limit": 0,         //Use residential traffic limit (GB), 0 means no limit, optional
  "dc_traffic_limit": 0,          //Use computer room traffic limit (GB), 0 means no limit, optional
  "mobile_traffic_limit": 0       //Use mobile data limit (GB), 0 means no limit, optional
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

4. Get sub-account information

Request method: GET Request path: /api/users/subuser/{subuser_id}

Request Parameters

json
{
  "subuser_id": 0     //Sub-account ID, required
}

return result

json
{
  "code": 0,                                        //Status code, 0: success, other numbers: failure, int type
  "data": {                               
      "id": 0,                                      //Sub-account ID
      "username": "string",                         //Sub-account name
      "password": "string",                         //Sub-account password
      "remark": "",                                 //Remark
      "status": "active",                           //Sub-account status active: activated inactive: not activated
      "res_traffic_limit": 0,                       //Use residential traffic limit (GB), 0 means no limit
      "dc_traffic_limit": 0,                        //Use computer room traffic limit (GB), 0 means no limit
      "mobile_traffic_limit": 0,                    //Use mobile data limit (GB), 0 means no limit
      "used_res_traffic": 0,                        //Residential traffic used (Byte)
      "used_dc_traffic": 0,                         //Used computer room traffic (Byte)
      "used_mobile_traffic": 0,                     //Mobile data used (Byte)
      "create_time": "2025-09-14 06:22:26",         //creation time
      "update_time": "2025-09-14 06:22:26"          //modification time
  },
  "message": "success"                              //Return result, str type
}

3. Whitelist management interface

1. Get the whitelist

Request method: GET Request path: /api/users/proxy/whitelist

Request Parameters

json
{
    "page": 1,                                      //Paging index, int type, optional, default 1
    "page_size": 10,                                //Number of pagination items, int type, optional, default 10
    "ip": "127.0.0.1"                               //IP address
}

return result

json
{
  "code": 0,                                        //Status code, 0: success, other numbers: failure, int type
  "data": {
    "records": [
      {
        "id": 0,                                    //whitelist id
        "ip": "127.0.0.1",                          //IP address
        "remark": "string",                         //Remark
        "create_time": "2025-09-14 06:49:12"        //creation time
      }
    ],
    "total": 0                                      //Total number of items
  },
  "message": "success"                              //Return result, str type
}

2. Add whitelist

Request method: POST Request path: /api/users/proxy/add-whitelist

Request Parameters

json
{
  "ip": "127.0.0.1",                                //ip address, required
  "remark": "string"                                //Remark
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

3. Update whitelist

Request method: GET Request path: /api/users/proxy/update-whitelist

Request Parameters

json
{
  "id": 1,                //Whitelist id, required
  "remark": ""            //Remarks, required
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

4. Delete whitelist

Request method: GET Request path: /api/users/proxy/delete-whitelist

Request Parameters

json
{
  "id":1,                                   //Whitelist id, required
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

4. Traffic management interface

1. Get the system traffic packet list

Request method: GET Request path: /api/users/traffic/packages

Request Parameters

json
{
  "proxy_type":"residential",         //Traffic type, residential: residential, datacenter: computer room, mobile: mobile
}

return result

json
{
  "code": 0,                         //Status code, 0: success, other numbers: failure, int type
  "data": {
    "additionalProp1": [                 
      {
        "id": 0,                     //Traffic package ID
        "traffic_gb": 0,             //Traffic (GB)
        "price": 0,                  //Unit price (cents)
        "duration": 0,               //Purchase time (days)
        "plan_type": "personal",     //Traffic package type, personal: individual, enterprise: enterprise, custom: customized
        "is_hot": false,             //Is it popular, false: no, true: yes
        "extra_add_traffic": 0,      //Additional free traffic (GB)
        "plan_desc": "string",       //Traffic package description
        "create_time": "2025-09-14 07:00:23",   //creation time
        "update_time": "2025-09-14 07:00:23"    //Update time
      }
    ],

  },
  "message": "success"        //Return result, str type
}

2. Purchase system traffic package

Note: Only wallet deductions are supported, please ensure you have sufficient balance!

Request method: GET Request path: /api/users/traffic/packages/purchase

Request Parameters

json
{
  "traffic_package_id":100,         //Traffic package ID, required
  "payment_type":"wallet_only"      //Payment method, wallet_only: wallet payment required
}

return result

json
{
  "code": 0,                 //Status code, 0: success, other numbers: failure, int type
  "message": "success"       //Return result, str type
}

3. Obtain the purchased traffic package

Request method: GET Request path: /api/users/traffic/packages/current

Request Parameters none

return result

json
{
  "code": 0,                                 //Status code, 0: success, other numbers: failure, int type
  "data": {
    "additionalProp1": {
      "total_traffic": 0,                    //Total traffic of traffic packet (Byte)
      "cost_traffic": 0,                     //Traffic package consumption (Byte)
      "status": "active",                    //Traffic packet status, active: enabled, inactive: disabled
      "expire_time": "2025-09-14:32:33",     //Traffic package expiration time
      "remark": "string",                    //Remark
      "strategy": {          
        "auto_remind": "inactive",           //Whether to turn on reminder, inactive: turn off, active: turn on
        "remind_gb": 1,                      //Reminder of remaining balance (GB)
        "remind_days": 1,                    //Reminder of remaining days
        "auto_rebuy": "inactive",            //Whether to turn on automatic renewal, inactive: off, active: on
        "rebuy_gb": 1,                       //Remaining for renewal (GB)
        "rebuy_days": 1,                     //Days remaining for renewal
        "rebuy_package_id": 0,               //Renew traffic package ID
        "rebuy_traffic_gb": 0,               //Renewal traffic package traffic (GB)
        "rebuy_plan_type": "personal",       //Renewal traffic package type, personal: individual, enterprise: enterprise, custom: customized
        "rebuy_status": "normal"             //Renewal status, normal: normal, insufficient: insufficient balance, failed: renewal failed
      }
    }
  },
  "message": "success"        //Return result, str type
}

4. Obtain the traffic trend of the main account in the past 30 days

Note: Only the last 30 days of data are taken

Request method: GET Request path: /api/users/traffic/trend

Request Parameters

json
{
  "start_date":"2025-09-14",         //Start time, required
  "end_date":"2025-09-14",           //End time, required
  "proxy_type":"residential"         //Traffic type, resident: residential, datacenter: computer room, mobile: mobile, optional, if not filled in, get all
}

return result

json
{
  "code": 0,                             //Status code, 0: success, other numbers: failure, int type
  "data": {
     "residential": [                
      {
        "proxy_type": "residential",     //Traffic type, residential: residential, datacenter: computer room, mobile: mobile
        "package_traffic": 0,            //Traffic package consumption (Byte)
        "wallet_traffic": 0,             //Wallet consumption traffic (Byte)
        "total_traffic": 0,              //Total traffic consumed (Byte)
        "day": "2025-09-07",             //date
        "remark": ""                     //Remark
      }
     ]
  },
  "message": "success"                   //Return result, str type
}

5. Obtain the traffic trend of sub-users in the past 30 days

Note: Only the last 30 days of data are taken

Request method: GET Request path: /api/users/traffic/{subuser_id}/trend

Request Parameters

json
{ 
  "subuser_id": 100,                 //Subuser ID, required
  "start_date":"2025-09-14",         //Start time, required
  "end_date":"2025-09-14",           //End time, required
  "proxy_type":"residential"         //Traffic type, resident: residential, datacenter: computer room, mobile: mobile, optional, if not filled in, get all
}

return result

json
{
  "code": 0,                             //Status code, 0: success, other numbers: failure, int type
  "data": {
     "residential": [                
      {
        "proxy_type": "residential",     //Traffic type, residential: residential, datacenter: computer room, mobile: mobile
        "package_traffic": 0,            //Traffic package consumption (Byte)
        "wallet_traffic": 0,             //Wallet consumption traffic (Byte)
        "total_traffic": 0,              //Total traffic consumed (Byte)
        "day": "2025-09-07",             //date
        "remark": ""                     //Remark
      }
     ]
  },
  "message": "success"                   //Return result, str type
}

5. Static proxy interface

1. Get a static residential country list

Request method: GET Request path: /api/users/static/res/country

Request Parameters none

return result

json
{
  "code": 0,                            //Status code, 0: success, other numbers: failure, int type
  "data": [
    {
      "country_code": "hk",             //country code
      "country_name": "Hong Kong"       // country or region
    }
  ],
  "message": "success"                  //Return result, str type
}

2. Get static computer room & IPv6 country list

Request method: GET Request path: /api/users/static/dc/country

Request Parameters

json
{ 
  "ip_type": "ipv4"                 //IP type: ipv4/ipv6, default ipv4, required
}

return result

json
{
  "code": 0,                            //Status code, 0: success, other numbers: failure, int type
  "data": [
    {
      "country_code": "hk",             //country code
      "country_name": "Hong Kong"       // country or region
    }
  ],
  "message": "success"                  //Return result, str type
}

3. Get price list

Request method: GET Request path: /api/users/static/price/package

Request Parameters

json
{ 
  "proxy_type": "res"                 //Proxy type: res: static residential IP, dc: static computer room IP, ipv6
}

return result

json
{
  "code": 0,                         //Status code, 0: success, other numbers: failure, int type
  "data": [
    {
      "id": 0,                       //Agent ID
      "proxy_type": "res",           //Agent type
      "count": 0,                    //quantity
      "discount": 0,                 //Discount (0-100) long
      "period": 0,                   //Validity period (unit: days)
      "price": 0,                    //Price (unit: cents)
      "amount": 0                    //Amount (unit: cents)
    } 
  ],
   "message": "success"              //Return result, str type
}

4. Create static order

Note: Only wallet deductions are supported, please ensure you have sufficient balance!

Request method: POST Request path: /api/users/static/order/create

Request Parameters

json
{
  "proxy_type": "res",              //Agent type, res: residential, dc: computer room, ipv6: IPV6, required
  "country": "us",                  //Country code, required
  "protocol": "http",               //Protocol, http, socks5, http/socks5, required
  "price_package_id": 0,            //Price package ID, required
  "payment_type": "wallet_only"     //Payment type, wallet_only: wallet payment, required
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

5. Renew static order

Note: Only wallet deductions are supported, please ensure you have sufficient balance!

Request method: POST Request path: /api/users/static/order/rebuy

Request Parameters

json
{
  "proxy_type": "res",                //Agent type, res: residential, dc: computer room, ipv6: IPV6, required
  "proxy_ids": "10000,10001",         //Renewal agent ID, required
  "payment_type": "wallet_only"       //Payment type, wallet_only: wallet payment, required
}

return result

json
{
    "code": 0,                 //Status code, 0: success, other numbers: failure, int type
    "message": "success"       //Return result, str type
}

6. Get static residential IP list

Request method: POST Request path: /api/users/static/res/list

Request Parameters

json
{
    "page": 1,                                      //Paging index, int type, optional, default 1
    "page_size": 10,                                //Number of pagination items, int type, optional, default 10
    "protocol": "http",                             //Protocol,http,socks5,http/socks5
    "proxy_address": "127.0.0.1",                   //IP address
    "order_no": "16987AE6182",                      //Order number
    "expire_start": "2025-09-1412:50:06.43",        //Expiration start time
    "expire_end": "2025-09-14 12:50:06.43"          //Expiration end time
}

return result

json
{
  "code": 0,                                       //Status code, 0: success, other numbers: failure, int type
  "data": {
    "records": [
      {
        "order_no": "16987AE6182",                 //Order number
        "order_status": "16987AE6182",             //Order status, pending: configuring, completed: completed, refunding: refunding, changing: changing
        "proxy_address": "127.0.0.1",              //IP address
        "proxy_port": "8080",                      //port number
        "proxy_user": "socks5",                    //Agent username
        "proxy_password": "socks5",                //Agent password
        "protocol": "http",                        //Protocol,http,socks5,http/socks5
        "country": "us",                           //country code
        "remark": "string",                        //Remark
        "auto_rebuy": "inactive",                  //Automatic renewal, inactive: no, active: yes:
        "rebuy_status": "normal",                  //Renewal status, normal: normal, insufficient: insufficient balance, failed: renewal failed
        "expire_time": "2025-09-14 12:57:38.42",   //Expiration time
        "create_time": "2025-09-14 12:57:38.42"    //creation time
      }
    ],
    "total": 0                                     //Total number of items
  },
  "message": "success"                             //Return result, str type
}

7. Get static computer room & IPv6 proxy list

Request method: POST Request path: /api/users/static/dc/list

Request Parameters

json
{
    "page": 1,                                      //Paging index, int type, optional, default 1
    "page_size": 10,                                //Number of pagination items, int type, optional, default 10
    "protocol": "http",                             //Protocol,http,socks5,http/socks5
    "proxy_address": "127.0.0.1",                   //IP address
    "order_no": "16987AE6182",                      //Order number
    "expire_start": "2025-09-14 12:50:06",          //Expiration start time
    "expire_end": "2025-09-14 12:50:06"             //Expiration end time
}

return result

json
{
  "code": 0,                                       //Status code, 0: success, other numbers: failure, int type
  "data": {
    "records": [
      {
        "order_no": "16987AE6182",                 //Order number
        "order_status": "16987AE6182",             //Order status, pending: configuring, completed: completed, refunding: refunding, changing: changing
        "proxy_address": "127.0.0.1",              //IP address
        "proxy_port": "8080",                      //port number
        "proxy_user": "socks5",                    //Agent username
        "proxy_password": "socks5",                //Agent password
        "protocol": "http",                        //Protocol,http,socks5,http/socks5
        "country": "us",                           //country code
        "remark": "string",                        //Remark
        "auto_rebuy": "inactive",                  //Automatic renewal, inactive: no, active: yes:
        "rebuy_status": "normal",                  //Renewal status, normal: normal, insufficient: insufficient balance, failed: renewal failed
        "expire_time": "2025-09-14 12:57:38.42",   //Expiration time
        "create_time": "2025-09-14 12:57:38.42"    //creation time
      }
    ],
    "total": 0                                     //Total number of items
  },
  "message": "success"                             //Return result, str type
}

8. Modify the automatic renewal switch

Request method: POST Request path: /api/users/static/auto-rebuy

Request Parameters

json
{
  "id": 0,                       //Automatic renewal ID, required
  "proxy_type": "res",           //Agent type, res: residential, dc: computer room, ipv6: IPV6, required
  "auto_rebuy": "inactive"       //Automatic renewal switch, inactive: no, active: yes
}

return result

json
{
    "code": 0,                   //Status code, 0: success, other numbers: failure, int type
    "message": "success"         //Return result, str type
}

9. Modify IP remarks

Request method: POST Request path: /api/users/static/remark

Request Parameters

json
{
  "id": 0,                        //ID, required
  "proxy_type": "res",            //Agent type, res: residential, dc: computer room, ipv6: IPV6, required
  "remark": "string"              //Remarks, required
}

return result

json
{
    "code": 0,                   //Status code, 0: success, other numbers: failure, int type
    "message": "success"         //Return result, str type
}