XProxy Official
  1. Selling Platform
XProxy Official
  • API document for XProxy service
  • Proxy Management
    • Get the list of devices & proxies information
      GET
    • Get status of a specific proxy
      GET
    • Get status of a specific position
      GET
    • Reboot dongle with specific proxy
      GET
    • Reboot dongle with specific position
      GET
  • Device Management
    • Change IMEI for multiple dongles
      POST
    • Add or change device note
      POST
    • Change MAC address for dongles
      POST
    • Change APN for dongles
      POST
    • Change device label
      POST
    • Connect dongle to network
      POST
    • Enable/disable WiFi for multiple dongles
      POST
    • Disconnect dongle from network
      POST
    • Reboot a specific dongle
      POST
    • Reset bus dongle
      POST
    • Get dongle information including phone number
      POST
    • Set MTU value for a dongle
      POST
  • Rotation (Change IP)
    • Manual rotation :: Rotate IP for a specific proxy or SOCKS port
      GET
    • Manual rotation :: Rotate IP for a specific position of modem in list
      GET
    • Auto rotation :: Add a rotation schedule job
      POST
    • Auto rotation :: Retrieve scheduled rotation jobs
      POST
  • Selling Platform
    • Get list of selling proxies
      GET
    • Generate selling proxies
      POST
    • Editing for single selling proxy port
      POST
    • Delete selling proxy by ID
      POST
  • SMS & USSD Utitlies
    • SMS
      • Read SMS messages
      • Send SMS message
      • Delete SMS messages
    • USSD
      • Send USSD command
      • Read USSD response
  • System Management
    • Restart XProxy Panel
    • Reboot XProxy System
  1. Selling Platform

Editing for single selling proxy port

POST
{{BASE_URL}}/selling/bulk_edit

Single Selling Proxy Editing API#

Description#

This API allows developers to edit various properties of a selected proxy by ID. The request accepts a JSON payload, where the specific fields represent configurable properties of the proxy instance. Only the fields included in the request payload will be modified.

Usage#

The API will modify only the properties provided in the request payload. Any fields not included in the request will remain unchanged.

Notes#

Every selling proxy belongs to one of two profiles: Single Destination or Proxy Group.
Single Destination can be identified by gen_method=1 when creating or listing selling proxies.
Proxy Group can be identified by gen_method=2 when creating or listing selling proxies.

Modifying Proxy Properties:#

Single Destination:
When modifying the modem position (moving to a new position), you can define a single position number in the selected_positions array.
Example: Make proxy on sinle position selected_positions = [3].
Proxy Group:
When modifying modem positions (adding/removing positions in a group), you can define one or more position numbers in the selected_positions array.
Example: Make a proxy group on positions selected_positions = [1, 3, 5].

Example Requests#

1. Update Specific proxy Properties#

To update only the expiredDate and memo for a proxy with ID 203, include only those properties in the request payload:
{
  "ids": [203],
  "expiredDate": 1744344853000,
  "memo": "My memo"
}

2. Update position of Single Destination proxy by moving to new position#

{
  "ids": [203],
  "selected_positions": [5]
}

2. Update positions of a proxy group#

{
  "ids": [205],
  "selected_positions": [1,3,6,7]
}

Request

Body Params application/json
ids
array[integer]
required
Array of selling ID (need single ID in this array)
Example:
[203]
selected_positions
array[integer]
optional
Array of modem position want to moving to (need single position number)
Example:
[1]
ipAuthenticationEntry
string 
optional
Authentication IP list separate by comma. Leave blank if ignore
Example:
125.12.30.67,125.12.30.68
isAutoGenAuthentication
boolean 
optional
Required when use userAuthenticationEntry. Enabled it then system will auto-generate new authentication credential
Example:
false
userAuthenticationEntry
string 
optional
Authentication user/password list separate . Leave blank if ignore (it's used when isAutoGenAuthentication set to false
Example:
FXB8BBR5:FXB8BBR5
sharedEnabled
boolean 
optional
Whether the proxy is enabled
Example:
true
ipType
integer 
optional
IP type (1=IPv4, 2=IPv6, 3=IPv64, 4=IPv46)
Example:
1
portType
integer 
optional
Port type (0=PROXY, 1=HTTP, 2=SocksV5)
Example:
0
expiredDate
integer 
optional
Expiration epoch timestamp in milliseconds (ref at: https://currentmillis.com)
Example:
1744344853000
whitelistLimitAccessEntry
string 
optional
Comma-separated whitelist domains
Example:
facebook.com,.facebook.com*
blacklistLimitAccessEntry
string 
optional
Comma-separated blacklist domains
Example:
google.com,.google.com
counterUploadLimit
integer 
optional
Upload limit mode (0=unlimited, 1=limited)
Example:
0
counterUploadLimitBy
integer 
optional
Required when use counterUploadLimit. Upload limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Example:
1
counterUploadQuotaInMB
integer 
optional
URequired when use counterUploadLimit. Upload quota in MB
Example:
100
counterDownloadLimit
integer 
optional
Download limit mode (0=unlimited, 1=limited)
Example:
0
counterDownloadLimitBy
integer 
optional
Required when use counterDownloadLimit. Download limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Example:
1
counterDownloadQuotaInMB
integer 
optional
Required when use counterDownloadLimit. Download quota in MB
Example:
100
counterAllLimit
integer 
optional
Combined traffic limit mode (0=unlimited, 1=limited)
Example:
1
counterAllLimitBy
integer 
optional
Required when use counterAllLimit. Combined traffic limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Example:
3
counterAllQuotaInMB
integer 
optional
Required when use counterAllLimit. Combined traffic quota in MB
Example:
6000
bwLimitEnabled
integer 
optional
Bandwidth limit enabled (0=disabled, 1=enabled)
Example:
1
bwLimitRate
integer 
optional
Required when use bwLimitEnabled. Bandwidth limit in Mbps
Example:
60
tcpOS
string 
optional
TCP/IP OS fingerprint to emulate. (valid of profiles can check at API get list of TCP/IP OS fingerprint supported)
Example:
win1
customDNS
string 
optional
Custom DNS servers
Example:
1.1.1.1 8.8.8.8
allowApiChangeRotation
boolean 
optional
Allow changing IP scheduling rotation interval via API
Example:
true
minIntervalRotation
integer 
optional
Required when use allowApiChangeRotation. Minimum allowed for customer change scheduling rotation interval via API in seconds
Example:
120
intervalRotation
integer 
optional
Set default IP scheduling rotation interval in seconds (0 for no rotation)
Example:
0
allowApiRotate
boolean 
optional
Allow customer manual rotation via API
Example:
true
minSecondRotate
integer 
optional
Required when use allowApiRotate. Minimum seconds between API call to manual rotation executed by customers.
Example:
60
maxConnection
integer 
optional
Maximum concurrence connections allowed per proxy
Example:
200
maxConnectionPeriod
integer 
optional
A time range to count total concurrence connections for calculating the maxConnectionPeriod
Example:
60
forceServerResolveDns
boolean 
optional
Force server-side DNS resolution applied for socks5 proxy (customer need use socks5h to work, this option useful to prevent them bypass whitelistLimitAccessEntry and blacklistLimitAccessEntry
Example:
false
memo
string 
optional
Notes or description for this proxy
Example:
Example
{
    "ids": [
        203
    ],
    "selected_positions": [
        1
    ],
    "ipAuthenticationEntry": "125.12.30.67,125.12.30.68",
    "isAutoGenAuthentication": false,
    "userAuthenticationEntry": "FXB8BBR5:FXB8BBR5",
    "sharedEnabled": true,
    "ipType": 1,
    "portType": 0,
    "expiredDate": 1744344853000,
    "whitelistLimitAccessEntry": "facebook.com,.facebook.com*",
    "blacklistLimitAccessEntry": "google.com,.google.com",
    "counterUploadLimit": 0,
    "counterUploadLimitBy": 1,
    "counterUploadQuotaInMB": 100,
    "counterDownloadLimit": 0,
    "counterDownloadLimitBy": 1,
    "counterDownloadQuotaInMB": 100,
    "counterAllLimit": 1,
    "counterAllLimitBy": 3,
    "counterAllQuotaInMB": 6000,
    "bwLimitEnabled": 1,
    "bwLimitRate": 60,
    "tcpOS": "win1",
    "customDNS": "1.1.1.1 8.8.8.8",
    "allowApiChangeRotation": true,
    "minIntervalRotation": 120,
    "intervalRotation": 0,
    "allowApiRotate": true,
    "minSecondRotate": 60,
    "maxConnection": 200,
    "maxConnectionPeriod": 60,
    "forceServerResolveDns": false,
    "memo": ""
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request POST 'http://localhost/selling/bulk_edit' \
--header 'Content-Type: application/json' \
--data-raw '{
    "ids": [
        203
    ],
    "selected_positions": [
        1
    ],
    "ipAuthenticationEntry": "125.12.30.67,125.12.30.68",
    "isAutoGenAuthentication": false,
    "userAuthenticationEntry": "FXB8BBR5:FXB8BBR5",
    "sharedEnabled": true,
    "ipType": 1,
    "portType": 0,
    "expiredDate": 1744344853000,
    "whitelistLimitAccessEntry": "facebook.com,.facebook.com*",
    "blacklistLimitAccessEntry": "google.com,.google.com",
    "counterUploadLimit": 0,
    "counterUploadLimitBy": 1,
    "counterUploadQuotaInMB": 100,
    "counterDownloadLimit": 0,
    "counterDownloadLimitBy": 1,
    "counterDownloadQuotaInMB": 100,
    "counterAllLimit": 1,
    "counterAllLimitBy": 3,
    "counterAllQuotaInMB": 6000,
    "bwLimitEnabled": 1,
    "bwLimitRate": 60,
    "tcpOS": "win1",
    "customDNS": "1.1.1.1 8.8.8.8",
    "allowApiChangeRotation": true,
    "minIntervalRotation": 120,
    "intervalRotation": 0,
    "allowApiRotate": true,
    "minSecondRotate": 60,
    "maxConnection": 200,
    "maxConnectionPeriod": 60,
    "forceServerResolveDns": false,
    "memo": ""
}'

Responses

🟢200OK
application/json
Successful operation
Body
status
boolean 
optional
Example:
true
data
array[object (SharedProxy) {36}] 
optional
id
integer 
optional
Unique identifier of the shared proxy
shared_port
integer 
optional
Port number of the shared proxy
gen_method
enum<number> 
optional
Identify selling proxy made by method: 1-Single Destination, 2-Proxy Group
Allowed values:
12
position
integer 
optional
For single destination proxy using, the current modem position number. This is 0 if gen_method=2
group_positions
array[integer]
optional
For proxy groups using, array of modem positions. This is empty if gen_method=1
ip_type
enum<string> 
optional
IP type of the proxy. (1=IPv4, 2=IPv6, 3=IPv64, 4=IPv46)
Allowed values:
1234
port_type
enum<string> 
optional
Port type of the proxy. (0=PROXY, 1=HTTP, 2=SocksV5)
Allowed values:
012
auth_ip_list
string 
optional
Comma-separated list of authorized IPs
auth_user_list
string 
optional
Comma-separated list of authorized users in format user:password
web_whitelist
string 
optional
Comma-separated whitelist domains
web_blacklist
string 
optional
Comma-separated blacklist domains
expired_at_unix
integer 
optional
Expiration epoch timestamp in milliseconds (ref at: https://currentmillis.com)
enabled
boolean 
optional
Whether the proxy is enabled
memo
string 
optional
Memo text for the proxy
custom_dns
string 
optional
Custom DNS server for the proxy
bw_limit_enabled
boolean 
optional
Whether bandwidth limiting is enabled
bw_limit_rate
integer 
optional
Bandwidth limit rate in Mbps
counter_dl_limit
enum<string> 
optional
Download limit mode (0=unlimited, 1=limited)
Allowed values:
unlimitedlimited
counter_dl_limit_by
enum<string> 
optional
Download limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Allowed values:
DAILYWEEKLYMONTHLYEND_QUOTA
counter_dl_quota
integer 
optional
Download quota in MB
counter_ul_limit
enum<string> 
optional
Upload limit mode (0=unlimited, 1=limited)
Allowed values:
unlimitedlimited
counter_ul_limit_by
enum<string> 
optional
Upload limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Allowed values:
DAILYWEEKLYMONTHLYEND_QUOTA
counter_ul_quota
integer 
optional
Upload quota in MB
counter_all_limit
enum<string> 
optional
Combined traffic limit mode (0=unlimited, 1=limited)
Allowed values:
unlimitedlimited
counter_all_limit_by
enum<string> 
optional
Combined traffic limit period (1=DAILY, 2=WEEKLY, 3=MONTHLY, 4=END_QUOTA)
Allowed values:
DAILYWEEKLYMONTHLYEND_QUOTA
counter_all_quota
integer 
optional
Total bandwidth quota in MB
max_connection
integer 
optional
Maximum number of connections allowed
max_connection_period
integer 
optional
Period in seconds for maximum connection count
Default:
60
tcp_os
string 
optional
TCP/IP OS fingerprint to emulate. (valid of profiles can check at API get list of TCP/IP OS fingerprint supported)
force_server_resolve_dns
boolean 
optional
Whether server should resolve DNS
interval_rotation
integer 
optional
Interval for automatic IP rotation in seconds
min_interval_rotation
integer 
optional
Minimum interval allowed for IP rotation via API
allow_api_rotate
boolean 
optional
Whether API rotation is allowed
min_second_rotate
integer 
optional
Minimum seconds between rotations
allow_api_change_rotation
boolean 
optional
Whether changing rotation interval via API is allowed
last_rotation
integer 
optional
Unix timestamp of last rotation
Example
{
    "status": true,
    "data": [
        {
            "id": 0,
            "shared_port": 0,
            "gen_method": 1,
            "position": 0,
            "group_positions": [
                0
            ],
            "ip_type": "1",
            "port_type": "0",
            "auth_ip_list": "string",
            "auth_user_list": "string",
            "web_whitelist": "string",
            "web_blacklist": "string",
            "expired_at_unix": 0,
            "enabled": true,
            "memo": "string",
            "custom_dns": "string",
            "bw_limit_enabled": true,
            "bw_limit_rate": 0,
            "counter_dl_limit": "unlimited",
            "counter_dl_limit_by": "DAILY",
            "counter_dl_quota": 0,
            "counter_ul_limit": "unlimited",
            "counter_ul_limit_by": "DAILY",
            "counter_ul_quota": 0,
            "counter_all_limit": "unlimited",
            "counter_all_limit_by": "DAILY",
            "counter_all_quota": 0,
            "max_connection": 0,
            "max_connection_period": 60,
            "tcp_os": "string",
            "force_server_resolve_dns": true,
            "interval_rotation": 0,
            "min_interval_rotation": 0,
            "allow_api_rotate": true,
            "min_second_rotate": 0,
            "allow_api_change_rotation": true,
            "last_rotation": 0
        }
    ]
}
🟠400Bad Request
🔴500Server Error
Modified at 2025-03-14 04:25:09
Previous
Generate selling proxies
Next
Delete selling proxy by ID
Built with