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

Generate selling proxies

POST
{{BASE_URL}}/selling/generate

Request

Body Params application/json
genMethod
enum<integer> 
optional
Generation proxy method
Allowed values:
12
Default:
1
selected_positions
array[integer]
required
Selected modem positions to generate. Need at least 1 position in array to generate.
>= 1 items
sharedEnabled
boolean 
required
Whether the proxy is enabled
Default:
true
numberOfPorts
integer 
required
Number of selling ports to generate. For single destination, system will create numberOfPorts selling port per 1 position. For proxy group, system will create numberOfPorts selling port per group of selected_positions
Default:
1
genPortStart
integer 
required
Starting port number
Default:
20001
genPort
enum<integer> 
optional
Generation method for port numbers: 1 for random, 2 for sequential
Allowed values:
12
Default:
1
portType
enum<integer> 
optional
Service port type
Allowed values:
012
Default:
0
ipType
enum<integer> 
optional
IP resolve type
Allowed values:
1234
Default:
1
expiredDate
integer 
required
Expiration epoch timestamp in milliseconds (ref at: https://currentmillis.com)
isAutoGenAuthentication
boolean 
optional
Required when use userAuthenticationEntry. Enabled it then system will auto-generate new authentication credential
Default:
false
isAutoGenDifferenceEachPort
boolean 
optional
Whether to generate different credentials for each port in this batch. Using it when isAutoGenAuthentication=true
Default:
true
ipAuthenticationEntry
string 
optional
Authentication IP list separate by comma. Leave blank if ignore
Example:
125.13.200.14,125.13.200.15
userAuthenticationEntry
string 
optional
Authentication user/password list separate . Leave blank if ignore (it's used when isAutoGenAuthentication set to false
Example:
john:mysecret,jack:mypassword
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
Default:
false
allowApiChangeRotation
boolean 
optional
Allow changing IP scheduling rotation interval via API
Default:
false
minIntervalRotation
integer 
optional
Required when use allowApiChangeRotation. Minimum allowed for customer change scheduling rotation interval via API in seconds
Default:
0
intervalRotation
integer 
optional
Interval for automatic IP rotation in seconds
Default:
0
allowApiRotate
boolean 
optional
Set default IP scheduling rotation interval in seconds (0 for no rotation)
Default:
false
minSecondRotate
integer 
optional
Required when use allowApiRotate. Minimum seconds between API call to manual rotation executed by customers.
Default:
0
whitelistLimitAccessEntry
string 
optional
Comma-separated list of whitelisted websites
Example:
126.12.15.200,126.12.15.201
blacklistLimitAccessEntry
string 
optional
Comma-separated list of blacklisted websites
bwLimitEnabled
enum<integer> 
optional
Bandwidth limit: 0 for unlimited, 1 for limited
Allowed values:
10
Default:
0
bwLimitRate
integer 
optional
Bandwidth limit rate in Mbps
customDNS
string 
optional
Custom DNS server settings
Example:
8.8.8.8 1.1.1.1
maxConnection
integer 
optional
Maximum number of connections
Default:
100
maxConnectionPeriod
integer 
optional
Period in seconds for maximum connection count
Default:
60
counterUploadLimit
enum<integer> 
optional
Upload limit: 0 for unlimited, 1 for limited
Allowed values:
01
counterUploadLimitBy
enum<integer> 
optional
When upload counter resets: 1 daily, 2 weekly, 3 monthly, 4 end of quota
Allowed values:
1234
counterUploadQuotaInMB
integer 
optional
Upload quota in MB
counterDownloadLimit
enum<integer> 
optional
Download limit: 0 for unlimited, 1 for limited
Allowed values:
01
counterDownloadLimitBy
enum<integer> 
optional
When download counter resets: 1 daily, 2 weekly, 3 monthly, 4 end of quota
Allowed values:
1234
counterDownloadQuotaInMB
integer 
optional
Download quota in MB
counterAllLimit
enum<integer> 
optional
Total bandwidth limit: 0 for unlimited, 1 for limited
Allowed values:
01
counterAllLimitBy
enum<integer> 
optional
When total counter resets: 1 daily, 2 weekly, 3 monthly, 4 end of quota
Allowed values:
1234
counterAllQuotaInMB
integer 
optional
Total bandwidth quota in MB
tcpOS
string 
optional
TCP/IP OS fingerprint to emulate. (valid of profiles can check at API get list of TCP/IP OS fingerprint supported)
Default:
linux
memo
string 
my note
optional
Memo text for the proxy
Example:
my note
Examples
{
    "genMethod": 1,
    "selected_positions": [
        1
    ],
    "numberOfPorts": 1,
    "authMethod": 0,
    "sharedEnabled": true,
    "ipAuthenticationEntry": "",
    "userAuthenticationEntry": "NTD89KDC:NTD89KDC",
    "intervalRotation": 0,
    "minIntervalRotation": 30,
    "allowApiChangeRotation": true,
    "minSecondRotate": 30,
    "allowApiRotate": true,
    "portType": 0,
    "ipType": 1,
    "genPort": 1,
    "genPortStart": 20001,
    "expiredDate": 1744362700675,
    "whitelistLimitAccessEntry": "",
    "blacklistLimitAccessEntry": "",
    "counterUploadLimit": 0,
    "counterUploadLimitBy": 1,
    "counterUploadQuotaInMB": 100,
    "counterDownloadLimit": 0,
    "counterDownloadLimitBy": 1,
    "counterDownloadQuotaInMB": 100,
    "counterAllLimit": 0,
    "counterAllLimitBy": 1,
    "counterAllQuotaInMB": 100,
    "bwLimitEnabled": 0,
    "bwLimitRate": 0,
    "tcpOS": "win1",
    "customDNS": "",
    "maxConnection": 200,
    "maxConnectionPeriod": 60,
    "memo": "Tom - 1 month",
    "forceServerResolveDns": false,
    "isAutoGenAuthentication": true,
    "isAutoGenDifferenceEachPort": false
}

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
curl --location -g --request POST 'http://localhost/selling/generate' \
--header 'Content-Type: application/json' \
--data-raw '{
    "genMethod": 1,
    "selected_positions": [
        1
    ],
    "numberOfPorts": 1,
    "authMethod": 0,
    "sharedEnabled": true,
    "ipAuthenticationEntry": "",
    "userAuthenticationEntry": "NTD89KDC:NTD89KDC",
    "intervalRotation": 0,
    "minIntervalRotation": 30,
    "allowApiChangeRotation": true,
    "minSecondRotate": 30,
    "allowApiRotate": true,
    "portType": 0,
    "ipType": 1,
    "genPort": 1,
    "genPortStart": 20001,
    "expiredDate": 1744362700675,
    "whitelistLimitAccessEntry": "",
    "blacklistLimitAccessEntry": "",
    "counterUploadLimit": 0,
    "counterUploadLimitBy": 1,
    "counterUploadQuotaInMB": 100,
    "counterDownloadLimit": 0,
    "counterDownloadLimitBy": 1,
    "counterDownloadQuotaInMB": 100,
    "counterAllLimit": 0,
    "counterAllLimitBy": 1,
    "counterAllQuotaInMB": 100,
    "bwLimitEnabled": 0,
    "bwLimitRate": 0,
    "tcpOS": "win1",
    "customDNS": "",
    "maxConnection": 200,
    "maxConnectionPeriod": 60,
    "memo": "Tom - 1 month",
    "forceServerResolveDns": false,
    "isAutoGenAuthentication": true,
    "isAutoGenDifferenceEachPort": false
}'

Responses

🟢200OK
application/json
Successfully generated proxies
Body
status
boolean 
optional
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
        }
    ]
}
Modified at 2025-03-12 09:26:59
Previous
Get list of selling proxies
Next
Editing for single selling proxy port
Built with