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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"subuser_id": 0 //Sub-account ID, required
}return result
{
"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
{
"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
{
"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
{
"ip": "127.0.0.1", //ip address, required
"remark": "string" //Remark
}return result
{
"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
{
"id": 1, //Whitelist id, required
"remark": "" //Remarks, required
}return result
{
"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
{
"id":1, //Whitelist id, required
}return result
{
"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
{
"proxy_type":"residential", //Traffic type, residential: residential, datacenter: computer room, mobile: mobile
}return result
{
"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
{
"traffic_package_id":100, //Traffic package ID, required
"payment_type":"wallet_only" //Payment method, wallet_only: wallet payment required
}return result
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"ip_type": "ipv4" //IP type: ipv4/ipv6, default ipv4, required
}return result
{
"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
{
"proxy_type": "res" //Proxy type: res: static residential IP, dc: static computer room IP, ipv6
}return result
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"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
{
"id": 0, //ID, required
"proxy_type": "res", //Agent type, res: residential, dc: computer room, ipv6: IPV6, required
"remark": "string" //Remarks, required
}return result
{
"code": 0, //Status code, 0: success, other numbers: failure, int type
"message": "success" //Return result, str type
}