TgeBrowser API Documentation
中文文档: /api
Browser Automation API
TgeBrowser provides RESTful APIs to programmatically control browser environments across their lifecycle for automated deployment and management.
Features: Simple & Efficient • Stable & Reliable • Full Error Handling • Real-time Status Sync
Basic Configuration
Authentication
All API requests must include valid authentication:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
User-Agent: YourApp/1.0curl -X GET http://127.0.0.1:50326/api/status \
-H "Authorization: Bearer sk-1234567890abcdef" \
-H "Content-Type: application/json"const headers = {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
fetch('http://127.0.0.1:50326/api/status', { headers })
.then((response) => response.json())
.then((data) => console.log(data))How to get: Login to TgeBrowser client → API → Generate new key
Rate Limiting
To ensure service stability and fair usage, the API enforces the following rate limits:
| Limit Type | Limit Value | Description |
|---|---|---|
| Request Rate | 100 requests/minute | Maximum 100 requests per minute |
When rate limits are exceeded, the API returns a 429 Too Many Requests error:
{
"success": false,
"message": "请求太频繁,请稍后再试。"
}Best Practices: Implement retry logic with exponential backoff for 429 errors • Plan request frequency to avoid bursts • Consider using batch operations to reduce request count
Request Format
HTTP Method Standards
| Method | Purpose | Example |
|---|---|---|
GET | Get resource information | Query environment list |
POST | Create new resource | Create browser environment |
PUT | Update complete resource | Update environment configuration |
PATCH | Partial update | Modify environment status |
DELETE | Delete resource | Delete environment |
Response Format
Standard Response Structure
{
"success": true,
"message": "Operation successful",
"data": {
// Response data
}
}{
"success": false,
"message": "Detailed error description",
"code": "ERROR_CODE"
}Error Codes
| HTTP Status | Error Code | Description | Solution |
|---|---|---|---|
400 | INVALID_PARAMS | Invalid request parameters | Check parameter format and type |
401 | AUTH_FAILED | Authentication failed | Verify API Key is valid |
403 | PERMISSION_DENIED | Insufficient permissions | Contact administrator for permissions |
404 | RESOURCE_NOT_FOUND | Resource not found | Verify resource ID is correct |
409 | RESOURCE_CONFLICT | Resource conflict | Check resource status or name conflict |
429 | RATE_LIMITED | Rate limit exceeded | Reduce request frequency or upgrade plan |
500 | SERVER_ERROR | Internal server error | Retry later or contact support |
Error Handling: Always check success field • Classify errors based on code field
Browser Environment Management
1. Get Service Status
Check API service health. Recommended at app startup.
Examples
curl -X GET http://127.0.0.1:50326/api/status \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"const response = await fetch('/api/status', {
method: 'GET',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }
})
const data = await response.json()
console.log(data)import requests
headers = { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }
response = requests.get('http://127.0.0.1:50326/api/status', headers=headers)
print(response.json())Response
{ "success": true, "message": "Service is running" }2. Create Browser Environment
Create a new environment with fingerprint, proxy and start options. Each environment is isolated.
Note: Fully isolated environments (Cookie, LocalStorage, Session, etc.) • Use meaningful names and organize with groupId • Returns envId for subsequent operations • Mobile: Set os to Android/iOS, optionally specify mobileDeviceId
Examples
curl -X POST http://127.0.0.1:50326/api/browser/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"browserName": "Facebook Marketing",
"groupId": 1,
"proxy": {"protocol": "socks5", "host": "proxy.example.com", "port": 1080, "username": "user123", "password": "pass123"},
"fingerprint": {
"os": "Windows", "platformVersion": 11, "kernel": "135",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.9.2537 Safari/537.36",
"canvas": true, "audioContext": true, "speechVoices": true, "clientRects": true,
"resolution": "1920x1080", "windowWidth": 1000, "windowHeight": 1000, "ram": 8, "cpu": 4,
"language": "en-US", "languageBaseIp": true, "uiLanguage": "en-US", "uiLanguageBaseIp": true,
"timezone": "Europe/Amsterdam", "timezoneBaseIp": true,
"geolocationBaseIp": true, "lng": "116.397128", "lat": "39.916527",
"hardwareAcceleration": true, "disableSandbox": false, "startupParams": "",
"deviceMedia": false, "deviceName": "DESKTOP-ABCD",
"randomFingerprint": false, "blockLargeImages": false, "maxImageKB": 300, "syncCookies": false
},
"startInfo": {
"startPage": {"mode": "custom", "value": ["https://www.baidu.com"]},
"otherConfig": {"openConfigPage": false, "checkPage": true, "extensionTab": true}
}
}'const res = await fetch('/api/browser/create', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
/* same as cURL body */
})
})
const result = await res.json()import requests
headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}
data = { /* same as cURL body */ }
print(requests.post('http://127.0.0.1:50326/api/browser/create', headers=headers, json=data).json())Request Body Schema
{
"browserName": "string",
"groupId": "number",
"remark": "string",
"proxy": { ... },
"fingerprint": { ... },
"startInfo": { ... },
"Cookie": []
}Mobile Environment Creation Example
Create an Android or iOS mobile browser environment:
curl -X POST http://127.0.0.1:50326/api/browser/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"browserName": "Test Environment",
"fingerprint": {
"os": "Android",
"mobileDeviceId": 2
}
}'const response = await fetch('/api/browser/create', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
browserName: 'Test Environment',
fingerprint: {
os: 'Android',
mobileDeviceId: 2
}
})
})
const data = await response.json()import requests
response = requests.post(
'http://127.0.0.1:50326/api/browser/create',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'browserName': 'Test Environment',
'fingerprint': {
'os': 'Android',
'mobileDeviceId': 2
}
}
)
print(response.json())Mobile Environment Notes: mobileDeviceId corresponds to the device id returned by /api/browser/mobile-devices API • mobileDeviceId only takes effect when os is Android or iOS • If mobileDeviceId is not provided, the system will randomly select a mobile device based on os
Detailed Parameter Description
Basic Information
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
browserName | string | Yes | Environment name; use meaningful identifiers | "Facebook-Account1" |
groupId | number | No | Group ID for categorization | 1 |
remark | string | No | Notes, up to 256 characters | "Mainly for Facebook Ads" |
Proxy Configuration proxy
| Parameter | Type | Required | Description | Allowed Values |
|---|---|---|---|---|
protocol | string | Yes | Proxy protocol | http, socks5, direct |
host | string | Yes* | Server address | "proxy.example.com" |
port | number | Yes* | Port | 1080, 8080 |
username | string | No | Username | "user123" |
password | string | No | Password | "pass123" |
timezone | string | No | Timezone | "America/New_York" |
proxyId | number | No | Existing proxy ID | 1001 |
Proxy Configuration Tips: When using proxyId, other proxy parameters can be omitted • direct means no proxy • Timezone should match the proxy IP location for better anonymity • With http or socks5, host and port are required • If proxy requires authentication, fill in username and password
Fingerprint Configuration fingerprint
| Parameter | Type | Required | Description |
|---|---|---|---|
os | string | Yes | Operating system |
mobileDeviceId | number | No | Mobile device ID from /api/browser/mobile-devices, only effective when os is Android/iOS |
platformVersion | number | No | OS version (Windows: 11/10; macOS: 11/10; Android: 12/11/10; iOS: 16/15) |
kernel | string | No | Browser kernel version (e.g., "135") |
userAgent | string | No | User agent (auto-generated or custom) |
webrtc | string | No | WebRTC policy: disable, replace, real |
resolution | string | No | Screen resolution (e.g., "1920x1080") |
windowWidth | number | No | Window width (default: 1000) |
windowHeight | number | No | Window height (default: 1000) |
language | string | No | Browser language (e.g., "en-US", "zh-CN") |
languageBaseIp | boolean | No | Language based on IP |
uiLanguage | string | No | UI language |
uiLanguageBaseIp | boolean | No | UI language based on IP |
timezone | string | No | Timezone (e.g., "Asia/Shanghai") |
timezoneBaseIp | boolean | No | Timezone based on IP |
geolocationBaseIp | boolean | No | Geolocation based on IP |
lng | string | No | Longitude (used when geolocationBaseIp = false) |
lat | string | No | Latitude (used when geolocationBaseIp = false) |
canvas | boolean | No | Canvas fingerprint (true random, false real, default true) |
audioContext | boolean | No | AudioContext fingerprint (true random, false real, default true) |
speechVoices | boolean | No | SpeechVoices fingerprint (true random, false real, default true) |
clientRects | boolean | No | ClientRects fingerprint (true random, false real, default true) |
fonts | array | No | Fonts list (e.g., ["Arial", "Times New Roman"]) |
disableTLS | array | No | Disabled TLS versions |
ram | number | No | Memory (GB) |
cpu | number | No | CPU cores |
hardwareAcceleration | boolean | No | Hardware acceleration (default true) |
disableSandbox | boolean | No | Disable sandbox (default false) |
startupParams | string | No | Custom startup parameters |
deviceName | string | No | Device name |
deviceMedia | boolean | No | Device media (true randomize, false off, default true) |
portScanProtection | string | No | Port scan protection (format: port,port) |
randomFingerprint | boolean | No | Random fingerprint (default true) |
blockLargeImages | boolean | No | Block large images (default false) |
maxImageKB | number | No | Maximum image size in KB (default 300) |
syncCookies | boolean | No | Sync cookies (default false) |
clearCacheOnStart | boolean | No | Clear cache before start (default false) |
clearCachePreserveExtensionsOnStart | boolean | No | Clear cache before start (preserve extensions) (default false) |
clearCookiesOnStart | boolean | No | Clear cookies before start (default false) |
clearHistoryOnStart | boolean | No | Clear history before start (default false) |
disableMediaAutoplay | boolean | No | Disable media autoplay (default false) |
muteAllMedia | boolean | No | Mute all media (default false) |
disableGoogleTranslate | boolean | No | Disable Google Translate (default false) |
disableSavePasswordPrompt | boolean | No | Disable save-password prompt (default false) |
disableNotifications | boolean | No | Disable notifications (default false) |
blockClipboardRead | boolean | No | Block clipboard read by web pages (default false) |
stopOnNetworkIssue | boolean | No | Stop on network issue (default false) |
stopOnIPChange | boolean | No | Stop on IP change (default false) |
stopOnCountryChange | boolean | No | Stop on country/region change (default false) |
Notes on fingerprint configuration: Use common parameter combinations; avoid overly unique setups • Ensure OS, browser version, and user agent match • Canvas/AudioContext/SpeechVoices/ClientRects randomization improves anonymity but may affect site features • When geolocationBaseIp is false, set both lng and lat • When deviceMedia is true, device media information is randomized to improve anonymity • mobileDeviceId only works when os is Android or iOS; if not provided, system randomly selects a mobile device
Response Example
{
"success": true,
"message": "Environment created",
"data": {
"envId": 5880,
"userIndex":123
}
}3. Update Browser Environment
Update an existing environment's configuration. If running, restart to take effect.
Request Headers
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonRequest Body (example)
{
"envId": 1000,
"browserName": "TestBrowser",
"proxy": {
"protocol": "socks5",
"host": "108.165.69.97",
"port": 6059,
"username": "hygwueis",
"password": "lc6bb3zfm359",
"ipChecker": "https://ipinfo.io",
"proxyId": 1000
},
"fingerprint": {
"os": "Windows",
"platformVersion": 11,
"kernel": "135",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.9.2537 Safari/537.36",
"canvas": true,
"audioContext": true,
"speechVoices": true,
"clientRects": true,
"fonts": ["Arial", "Courier New"],
"disableTLS": [],
"resolution": "1920x1080",
"windowWidth": 1000,
"windowHeight": 1000,
"ram": 8,
"cpu": 4,
"language": "en-US",
"languageBaseIp": true,
"timezone": "Europe/Amsterdam",
"timezoneBaseIp": true,
"geolocationBaseIp": true,
"lng": "116.397128",
"lat": "39.916527",
"hardwareAcceleration": true,
"disableSandbox": false,
"startupParams": "",
"deviceName": "DESKTOP-ABCD",
"deviceMedia": false,
"portScanProtection": "80,443",
"randomFingerprint": false,
"blockLargeImages": false,
"maxImageKB": 300,
"syncCookies": false
},
"groupId": 29,
"remark": "remark",
"Cookie": [],
"startInfo": {
"startPage": { "mode": "custom", "value": ["https://www.google.com", "https://www.bing.com"] },
"otherConfig": { "openConfigPage": true, "checkPage": true, "extensionTab": true }
}
}Mobile Environment Update Example
Update the mobile device model for an environment:
curl -X POST http://127.0.0.1:50326/api/browser/update \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envId": 123,
"fingerprint": {
"mobileDeviceId": 2
}
}'const response = await fetch('/api/browser/update', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envId: 123,
fingerprint: {
mobileDeviceId: 2
}
})
})
const data = await response.json()import requests
response = requests.post(
'http://127.0.0.1:50326/api/browser/update',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'envId': 123,
'fingerprint': {
'mobileDeviceId': 2
}
}
)
print(response.json())Parameter Description
Basic Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | Yes | Environment ID |
browserName | string | Yes | Environment name |
Proxy Settings proxy
| Parameter | Type | Required | Description |
|---|---|---|---|
protocol | string | Required if no proxyId | Proxy protocol (http/socks5/direct) |
host | string | No | Host (required for http/socks5) |
port | number | No | Port (required for http/socks5) |
username | string | No | Username (if proxy requires auth) |
password | string | No | Password (if proxy requires auth) |
timezone | string | No | Timezone (e.g., Asia/Shanghai), or based on IP |
ipChecker | string | No | IP check service |
Existing Proxy proxyId
| Parameter | Type | Required | Description |
|---|---|---|---|
proxyId | number | Required if no proxy | Use an existing proxy |
Group groupId
| Parameter | Type | Required | Description |
|---|---|---|---|
groupId | number | No | Set group ID |
Remark remark
| Parameter | Type | Required | Description |
|---|---|---|---|
remark | string | No | Set remark |
Cookie Cookie
| Parameter | Type | Required | Description |
|---|---|---|---|
Cookie | json | No | Set cookies |
Start Page startInfo
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
startPage.mode | string | No | Start page mode | custom (custom), last (last session), none (none) |
startPage.value | array | No | Start page URLs | When mode = custom: ["https://www.google.com"]; when last or none: [] |
otherConfig.openConfigPage | boolean | No | Open configuration page | true/false |
otherConfig.checkPage | boolean | No | Open check page | true/false |
otherConfig.extensionTab | boolean | No | Open extension tab | true/false |
Fingerprint fingerprint
| Parameter | Type | Required | Description |
|---|---|---|---|
os | string | No | Operating system |
mobileDeviceId | number | No | Mobile device ID from /api/browser/mobile-devices, only for Android/iOS |
platformVersion | number | No | OS version |
kernel | string | No | Kernel (Chrome version) |
userAgent | string | No | User agent |
webrtc | string | No | WebRTC (disable/replace/real) |
timezone | string | No | Timezone |
timezoneBaseIp | boolean | No | Timezone based on IP |
language | string | No | Language |
languageBaseIp | boolean | No | Language based on IP |
uiLanguage | string | No | UI language |
uiLanguageBaseIp | boolean | No | UI language based on IP |
geolocationBaseIp | boolean | No | Geolocation based on IP |
lng | string | No | Longitude |
lat | string | No | Latitude |
disableSandbox | boolean | No | Disable sandbox (default false) |
startupParams | string | No | Startup parameters |
canvas | boolean | No | Canvas fingerprint (true random, false real, default true) |
audioContext | boolean | No | AudioContext fingerprint (true random, false real, default true) |
speechVoices | boolean | No | SpeechVoices fingerprint (true random, false real, default true) |
clientRects | boolean | No | ClientRects fingerprint (true random, false real, default true) |
fonts | array | No | Fonts list |
disableTLS | array | No | Disabled TLS versions |
resolution | string | No | Screen resolution |
windowWidth | number | No | Window width (default 1000) |
windowHeight | number | No | Window height (default 1000) |
ram | number | No | Memory |
cpu | number | No | CPU cores |
deviceName | string | No | Device name |
deviceMedia | boolean | No | Device media (true randomize, false off, default true) |
portScanProtection | string | No | Port scan protection (format: port,port) |
hardwareAcceleration | boolean | No | Hardware acceleration (default true) |
randomFingerprint | boolean | No | Random fingerprint (default true) |
blockLargeImages | boolean | No | Block large images (default false) |
maxImageKB | number | No | Maximum image size in KB (default 300) |
syncCookies | boolean | No | Sync cookies (default false) |
clearCacheOnStart | boolean | No | Clear cache before start (default false) |
clearCachePreserveExtensionsOnStart | boolean | No | Clear cache before start (preserve extensions) (default false) |
clearCookiesOnStart | boolean | No | Clear cookies before start (default false) |
clearHistoryOnStart | boolean | No | Clear history before start (default false) |
disableMediaAutoplay | boolean | No | Disable media autoplay (default false) |
muteAllMedia | boolean | No | Mute all media (default false) |
disableGoogleTranslate | boolean | No | Disable Google Translate (default false) |
disableSavePasswordPrompt | boolean | No | Disable save-password prompt (default false) |
disableNotifications | boolean | No | Disable notifications (default false) |
blockClipboardRead | boolean | No | Block clipboard read by web pages (default false) |
stopOnNetworkIssue | boolean | No | Stop on network issue (default false) |
stopOnIPChange | boolean | No | Stop on IP change (default false) |
stopOnCountryChange | boolean | No | Stop on country/region change (default false) |
4. Start Browser Environment
Starts the specified environment and returns CDP connection info.
Examples
curl -X POST http://127.0.0.1:50326/api/browser/start \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"envId": 901, "args": ["--headless"], "port": 1111}'curl -X POST http://127.0.0.1:50326/api/browser/start \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"userIndex": 1, "args": ["--headless"], "port": 1111}'const response = await fetch('/api/browser/start', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ envId: 901, args: ['--headless'], port: 1111 })
})
const data = await response.json()const response = await fetch('/api/browser/start', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ userIndex: 1, args: ['--headless'], port: 1111 })
})
const data = await response.json()import requests
print(requests.post('http://127.0.0.1:50326/api/browser/start', headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}, json={"envId": 901, "args": ["--headless"], "port": 1111}).json())import requests
print(requests.post('http://127.0.0.1:50326/api/browser/start', headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"}, json={"userIndex": 1, "args": ["--headless"], "port": 1111}).json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | Either this or userIndex | Environment ID (choose one with userIndex) |
userIndex | number | Either this or envId | Environment index (choose one with envId) |
args | string[] | No | Browser startup arguments |
port | number | No | Custom remote debug port |
Response
{
"success": true,
"data": {
"envId": 900,
"browserName": "11",
"ws": "ws://127.0.0.1:34721/devtools/browser/33cc3bf7-1852-409f-ad3e-364f6233d735",
"driver": "C://User/xxxxx/chromedriver.exe",
"http": "http://127.0.0.1:34721/json/version",
"pid": 32512,
"port": 34721,
"userIndex": 1
},
"message": "Success"
}5. Stop Browser Environment
Stops a running browser environment.
Request Example
curl -X POST http://127.0.0.1:50326/api/browser/stop \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envId": 900
}'curl -X POST http://127.0.0.1:50326/api/browser/stop \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userIndex": 1
}'const response = await fetch('/api/browser/stop', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envId: 900
})
})
const data = await response.json()
console.log(data)const response = await fetch('/api/browser/stop', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userIndex: 1
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/stop"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envId": 900
}
response = requests.post(url, headers=headers, json=data)
print(response.json())import requests
url = "http://127.0.0.1:50326/api/browser/stop"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"userIndex": 1
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | Either this or userIndex | Environment ID (choose one with userIndex) |
userIndex | number | Either this or envId | Environment index (choose one with envId) |
Response Example
{
"success": true,
"data": {
"envId": 900
},
"message": "Success"
}6. Stop All Browser Environments
Stops all running browser environments.
Request Example
curl -X POST http://127.0.0.1:50326/api/browser/stop-all \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"const response = await fetch('/api/browser/stop-all', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/stop-all"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers)
print(response.json())Parameter Description
No request parameters required
Response Example
Success response:
{
"success": true,
"data": {
"total": 10,
"closed": 8,
"failed": 2
},
"message": "Success"
}Error response:
{
"success": false,
"message": "Error message"
}7. Delete Browser Environment
Delete the specified browser environment and its related data.
Request Example
curl -X POST http://127.0.0.1:50326/api/browser/delete \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envId": 911
}'curl -X POST http://127.0.0.1:50326/api/browser/delete \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userIndex": 1
}'const response = await fetch('/api/browser/delete', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envId: 911
})
})
const data = await response.json()
console.log(data)const response = await fetch('/api/browser/delete', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userIndex: 1
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/delete"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envId": 911
}
response = requests.post(url, headers=headers, json=data)
print(response.json())import requests
url = "http://127.0.0.1:50326/api/browser/delete"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"userIndex": 1
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | Either this or userIndex | Environment ID (choose one with userIndex) |
userIndex | number | Either this or envId | Environment index (choose one with envId) |
Response Example
{
"success": true,
"data": 911,
"message": "Success"
}7. Delete Browser Environment Cache
Clear cache data for the specified environment, including Cookie, local storage, etc.
Request Example
curl -X POST http://127.0.0.1:50326/api/browser/cache/delete \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envId": 900
}'curl -X POST http://127.0.0.1:50326/api/browser/cache/delete \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userIndex": 1
}'const response = await fetch('/api/browser/cache/delete', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envId: 900
})
})
const data = await response.json()
console.log(data)const response = await fetch('/api/browser/cache/delete', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userIndex: 1
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/cache/delete"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envId": 900
}
response = requests.post(url, headers=headers, json=data)
print(response.json())import requests
url = "http://127.0.0.1:50326/api/browser/cache/delete"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"userIndex": 1
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | Either this or userIndex | Environment ID (choose one with userIndex) |
userIndex | number | Either this or envId | Environment index (choose one with envId) |
Response Example
{
"success": true,
"data": 900,
"message": "Success"
}8. Batch Delete Browser Environment Cache
Batch delete local browser cache data for specified environments, supporting clearing cache for multiple environments at once.
Request Example
curl -X POST http://127.0.0.1:50326/api/browser/batch/delete-cache \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envIds": [1, 2, 3, 4, 5]
}'curl -X POST http://127.0.0.1:50326/api/browser/batch/delete-cache \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userIndexes": [1, 2, 3, 4, 5]
}'const response = await fetch('/api/browser/batch/delete-cache', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envIds: [1, 2, 3, 4, 5]
})
})
const data = await response.json()
console.log(data)const response = await fetch('/api/browser/batch/delete-cache', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userIndexes: [1, 2, 3, 4, 5]
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/batch/delete-cache"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envIds": [1, 2, 3, 4, 5]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())import requests
url = "http://127.0.0.1:50326/api/browser/batch/delete-cache"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"userIndexes": [1, 2, 3, 4, 5]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envIds | number[] | Either this or userIndexes | Array of environment IDs (choose one with userIndexes) |
userIndexes | number[] | Either this or envIds | Array of environment indexes (choose one with envIds) |
Parameter Validation: envIds or userIndexes cannot be an empty array • Each element in the array must be a positive integer • If some environment IDs or indexes don't exist, they will be marked as failed in the response
Success Response Example
{
"success": true,
"data": {
"total": 5,
"success": 5,
"failed": 0,
"failedEnvIds": []
},
"message": "Batch cache deletion successful"
}Partial Success Response Example
{
"success": true,
"data": {
"total": 5,
"success": 4,
"failed": 1,
"failedEnvIds": ["3"]
},
"message": "Partial cache deletion successful, 1 environment failed"
}Response Field Description
| Field | Type | Description |
|---|---|---|
total | number | Total number |
success | number | Number of successful deletions |
failed | number | Number of failures |
failedEnvIds | string[] | List of failed environment IDs |
Error Response
| HTTP Status | Description |
|---|---|
400 | Parameter error (envIds missing, not an array, empty, or contains invalid IDs) |
404 | No valid environments found |
500 | Internal server error |
9. Get Environment List
Get a list of all browser environments for the current user, with pagination support.
Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
current | number | No | 1 | Current page |
pageSize | number | No | 20 | Items per page |
keyword | string | No | - | Search keyword |
groupId | number | No | - | Group ID |
Request Example
curl -X GET "http://127.0.0.1:50326/api/browser/list?current=1&pageSize=20&keyword=test" \
-H "Authorization: Bearer YOUR_API_KEY"const params = new URLSearchParams({
current: 1,
pageSize: 20,
keyword: 'test'
})
const response = await fetch(`/api/browser/list?${params}`, {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/list"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
params = {
"current": 1,
"pageSize": 20,
"keyword": "test"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())Response Example (see latest response for details)
{
"success": true,
"data": {
"total": 1001,
"current": 1,
"pageSize": 1,
"list": [
{
"userIndex": 2,
"profileId": "c767c4455071401e8c69fcd35b83fee0",
"browserName": "111",
"startInfo": {
"startPage": [],
"otherConfig": {
"checkPage": true,
"openConfigPage": true
}
},
"accountInfo": [
{
"twofa": "",
"account": "",
"password": "",
"security": true
}
],
"remark": null,
"cookie": "[{\"name\":\"NID\",\"value\":\"524=J62ojXztsmVdRN15JnjHZ1uKkZk03CqKGT6nv3MIzANjsX0yINK8LQjn9mwVFsrQLoIWZtcXH2N1WOrPA6vviGFZ2tz1DiloBntJnEPHNcElzIpUETTOBc00zsE9H9vZ9nBN1PbWbzplZMcvsKIf6TFYuoDZR8jW0yt1dRE_Vvu3cJ6mjQofbrTkX4adp3Evcg\",\"domain\":\".google.com\",\"path\":\"/\",\"expires\":1766503236,\"httpOnly\":true,\"secure\":true}]",
"status": 1,
"createTime": "2025-06-23T15:19:50.000Z",
"updateTime": "2025-06-23T16:00:51.000Z",
"lastOpenedTime": null,
"userId": 20,
"proxyId": 55524,
"isDeleted": false,
"deleteTime": null,
"teamId": 19,
"groupId": null,
"syncFile": null,
"tags": [],
"proxy": {
"id": 55524,
"userIndex": 1016,
"address": "socks5://107.174.25.53:5507",
"protocol": "socks5",
"host": "107.174.25.53",
"port": 5507,
"username": "xxxx",
"password": "xxxx",
"timezone": "America/Chicago",
"realIp": "107.174.25.53",
"lastIp": null,
"lastCheckedTime": "2025-06-23T16:00:46.000Z",
"ipChecker": "https://iprust.io/ip.json",
"ipChangeAction": null,
"status": 2,
"remark": null,
"createdTime": "2025-06-23T16:00:50.000Z",
"updatedTime": "2025-06-23T16:00:50.000Z",
"userId": 20,
"teamId": 19,
"isDeleted": false,
"groupId": null
},
"group": null,
"fingerprint": {
"os": "Windows",
"cpu": 2,
"ram": 2,
"seed": 4946,
"fonts": "Liberation Sans Narrow,Liberation Sans Narrow,Javanese Text Regular,AR PL UKai CN,Proxy 1,Avenir Next,Noto Sans Cypriot,Avenir Black,SimSun-ExtB Regular,Kohinoor Gujarati,Segoe MDL2 Assets,Sinhala Sangam MN,Gabriola Regular,EUROSTILE,DengXian Light,Century Schoolbook,Heiti TC,Hiragino Sans W4,Segoe MDL2 Assets,Hiragino Sans W9,cursive,Avenir Black,PT Serif,Segoe UI Black,Forte,Kristen ITC,Mallanna,Garamond,Hiragino Mincho ProN,Arial Hebrew,Javanese Text Regular,PT Serif",
"webgl": {
"glRender": "Intel(R) HD Graphics 3000 Direct3D11 vs_4_1 ps_4_1, D3D11-23.21.13.8857",
"glVendor": "Intel"
},
"canvas": true,
"kernel": "135",
"webgpu": {
"gpuArch": "gen-12lp",
"gpuVendor": "intel"
},
"webrtc": "disable",
"battery": true,
"browser": "chrome",
"language": "en-US",
"bluetooth": true,
"isEncrypt": false,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.60.2288 Safari/537.36",
"deviceName": "DESKTOP-0NCRDDBI",
"disableTLS": [],
"doNotTrack": false,
"resolution": "1000x1080",
"uiLanguage": "en-US",
"clientRects": true,
"audioContext": true,
"speechVoices": true,
"startupParams": "",
"disableSandbox": false,
"timezoneBaseIp": true,
"platformVersion": 11,
"portScanProtection": "",
"hardwareAcceleration": false,
"randomFingerprint": false,
"blockLargeImages": false,
"maxImageKB": 300,
"syncCookies": false
},
"envId": 29286
}
]
},
"message": "Success"
}10. Get Environment Detail
Get detailed information for a specific browser environment, including complete fingerprint configuration, proxy information, etc.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
envId | number | No | Environment ID (choose one with userIndex) |
userIndex | number | No | User index (choose one with envId) |
Note: Either
envIdoruserIndexmust be provided.
Request Example
curl -X POST "http://127.0.0.1:50326/api/browser/detail" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"envId": 346949}'const response = await fetch('/api/browser/detail', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envId: 346949
// or use userIndex: 139
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/detail"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"envId": 346949
# or use "userIndex": 139
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Response Example
{
"success": true,
"data": {
"userIndex": 139,
"browserName": "bbbb",
"profileId": "63683626902c49369d5aa43471493396",
"fingerprint": {
"disableImages": false,
"randomFingerprint": false,
"syncCookies": true,
"os": "Windows",
"platformVersion": "15.0.0",
"kernel": "143",
"browser": "chrome",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.72.1064 Safari/537.36",
"proxyType": "socks5",
"proxyHost": "148.113.187.209",
"proxyUsername": "com61163829-res-any-sid-905375838",
"proxyPassword": "Bf1GCSgF162QWor",
"proxyPort": 9595,
"webrtc": "disable",
"startupParams": "",
"seed": 8728,
"clearCacheOnStart": false,
"clearCachePreserveExtensionsOnStart": false,
"clearCookiesOnStart": false,
"clearHistoryOnStart": false,
"blockLargeImages": false,
"maxImageKB": 199,
"disableMediaAutoplay": false,
"muteAllMedia": false,
"disableGoogleTranslate": false,
"disableSavePasswordPrompt": false,
"disableNotifications": false,
"blockClipboardRead": false,
"stopOnNetworkIssue": false,
"stopOnIPChange": false,
"stopOnCountryChange": false,
"syncPasswords": false,
"timezone": "",
"timezoneBaseIp": true,
"lat": "",
"lng": "",
"geolocationBaseIp": true,
"language": "en-US",
"languageBaseIp": true,
"uiLanguage": "en-US",
"uiLanguageBaseIp": true,
"resolution": "1400x900",
"fonts": "STIXGeneral-Regular,DengXian,Ayuthaya,Meiryo...",
"glVendor": "AMD",
"glRender": "AMD Radeon Pro 5300 Direct3D11 vs_5_0 ps_5_0, D3D11",
"gpuArch": "rdna-2",
"gpuVendor": "amd",
"canvas": true,
"audioContext": true,
"speechVoices": true,
"clientRects": true,
"cpu": 4,
"ram": 4,
"deviceMedia": true,
"deviceName": "DESKTOP-USQYQPY3",
"macAddress": "0E:4D:3D:3B:A4:90",
"disableTLS": [],
"portScanProtection": "",
"cookie": ""
},
"startInfo": {
"startPage": {
"mode": "none",
"value": []
},
"otherConfig": {
"openConfigPage": true,
"checkPage": true,
"extensionTab": false
}
},
"accountInfo": [],
"remark": "",
"encryptedCookie": null,
"cookie": null,
"status": 1,
"openStatus": 0,
"lockStatus": 0,
"pid": 0,
"browserPort": 0,
"createTime": "2026-01-28T05:50:20.558Z",
"updateTime": "2026-01-28T05:50:20.558Z",
"lastOpenedTime": "2026-01-28T05:50:32.367Z",
"userId": 20,
"proxyId": 655899,
"proxyInfo": {
"timezone": "Africa/Johannesburg",
"realIp": "102.217.242.75",
"lastCountry": "ZA",
"lastLocation": "-25.7751,29.4648",
"status": 2
},
"isDeleted": false,
"deleteTime": null,
"teamId": 19,
"groupId": null,
"syncFile": null,
"syncFileKeyVersion": null,
"proxy": {
"id": 655899,
"userIndex": 285,
"address": "socks5://148.113.187.209:9595",
"protocol": "socks5",
"host": "148.113.187.209",
"port": 9595,
"username": "com61163829-res-any-sid-905375838",
"password": "Bf1GCSgF162QWor",
"timezone": "Africa/Johannesburg",
"realIp": "102.217.242.75",
"lastIp": null,
"lastCountry": "ZA",
"lastLocation": "-25.7751,29.4648",
"lastCheckedTime": "2026-01-28T05:50:28.781Z",
"ipChecker": "https://iprust.io/ip.json",
"ipChangeAction": null,
"provider": "common",
"fetchStrategy": "on_ip_invalid",
"fetchUrl": "https://api.iprocket.io/api?username=com61163829&password=Bf1GCSgF162QWor&cc=any&ips=1000&type=-res-&proxyType=Socks5&responseType=txt",
"avoidUsedIp": false,
"status": 2,
"remark": null,
"createdTime": "2026-01-28T05:50:20.555Z",
"updatedTime": "2026-01-28T05:50:20.555Z",
"userId": 20,
"teamId": 19,
"isStoreProxy": false,
"orderId": null,
"storeDurationMinutes": null,
"storeTrafficLimit": null,
"storeExpireTime": null,
"isDeleted": false,
"groupId": null,
"profileId": "25264fb8694245078d9185206b5e6f0e",
"proxyHash": "1eddfc11c7c95c8dc3b3b16e01f04a7b7b49f2b14e3f78f8e94bb815a4c8ccd8"
},
"envId": 346949
},
"message": "Success"
}11. Get Running Environment List
Get all currently running browser environments.
Request Example
curl -X GET http://127.0.0.1:50326/api/browser/open/list \
-H "Authorization: Bearer YOUR_API_KEY"const response = await fetch('/api/browser/open/list', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/browser/open/list"
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())Response Example
{
"success": true,
"data": [
{
"envId": 900,
"browserName": "11",
"ws": "ws://127.0.0.1:36203/devtools/browser/f1049062-aead-47ed-8719-15f0938b7dd5",
"http": "http://127.0.0.1:36203/json/version",
"openStatus": 1,
"pid": 27652,
"port": 36203,
"userIndex": 1,
"updatedAt": "2025-04-21T08:53:35.531Z"
}
],
"message": "Success"
}12. One-Click Adaptive Layout
Automatically adjust the position and size of multiple browser windows for adaptive screen layout.
Request Example
curl -X POST http://127.0.0.1:50326/api/windowbounds/sort \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"envIds": [1, 2]
}'const response = await fetch('/api/windowbounds/sort', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
envIds: [1, 2]
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/windowbounds/sort"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envIds": [1, 2]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envIds | number[] | No | Environment IDs |
Response Example
{ "success": true, "data": [], "message": "Successfully arranged 2 windows" }13. Custom Layout
Automatically adjust the position and size of multiple browser windows for adaptive screen layout.
Request Example
curl -X POST http://127.0.0.1:50326/api/windowbounds/sort/custom \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "box",
"startX": 0,
"startY": 0,
"width": 500,
"height": 400,
"col": 3,
"spaceX": 50,
"spaceY": 50,
"offsetX": 50,
"offsetY": 50,
"minWindowCount": 2,
"envIds": [1, 2]
}'const response = await fetch('/api/windowbounds/sort/custom', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'box',
startX: 0,
startY: 0,
width: 500,
height: 400,
col: 3,
spaceX: 50,
spaceY: 50,
offsetX: 50,
offsetY: 50,
minWindowCount: 2,
envIds: [1, 2]
})
})
const data = await response.json()
console.log(data)import requests
url = "http://127.0.0.1:50326/api/windowbounds/sort/custom"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"type": "box",
"startX": 0,
"startY": 0,
"width": 500,
"height": 400,
"col": 3,
"spaceX": 50,
"spaceY": 50,
"offsetX": 50,
"offsetY": 50,
"minWindowCount": 2,
"envIds": [1, 2]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())Parameter Description
| Parameter | Type | Required | Description |
|---|---|---|---|
envIds | number[] | No | Environment IDs |
type | string | Yes | Layout type (currently supports box (grid) and diagonal (diagonal layout)) |
width | number | Yes | Window width |
height | number | Yes | Window height |
col | number | Yes | Number of columns |
startX | number | Yes | Starting X coordinate |
startY | number | Yes | Starting Y coordinate |
spaceX | number | Yes | Horizontal spacing |
spaceY | number | Yes | Vertical spacing |
offsetX | number | Yes | X offset |
offsetY | number | Yes | Y offset |
minWindowCount | number | No | Minimum window count required to execute sorting |
Client Window
1. Hide Client Window
Request Parameters
Request Example
POST /api/window/hide
Authorization: Bearer YOUR_API_KEYResponse Example
{
"success": true,
"data": { "message": "Window and tray are hidden", "windowHidden": true, "trayHidden": false },
"message": "Success"
}2. Show Client Window
Request Parameters
Request Example
POST /api/window/show
Authorization: Bearer YOUR_API_KEYResponse Example
{
"success": true,
"data": { "message": "Window and tray are shown", "windowShown": true, "trayShown": true },
"message": "Success"
}14. Get Mobile Device List
Get a list of available mobile devices, with optional OS filtering. Used for selecting device models when creating mobile browser environments.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
os | string | No | Filter by OS, options: Android or iOS |
Request Example
# Get all mobile devices
curl -X GET "http://127.0.0.1:50326/api/browser/mobile-devices" \
-H "Authorization: Bearer YOUR_API_KEY"
# Get Android devices
curl -X GET "http://127.0.0.1:50326/api/browser/mobile-devices?os=Android" \
-H "Authorization: Bearer YOUR_API_KEY"
# Get iOS devices
curl -X GET "http://127.0.0.1:50326/api/browser/mobile-devices?os=iOS" \
-H "Authorization: Bearer YOUR_API_KEY"// Get all mobile devices
const response = await fetch('/api/browser/mobile-devices', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
const data = await response.json()
console.log(data)
// Filter by OS
const androidDevices = await fetch('/api/browser/mobile-devices?os=Android', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
}).then((res) => res.json())import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
# Get all mobile devices
response = requests.get(
"http://127.0.0.1:50326/api/browser/mobile-devices",
headers=headers
)
print(response.json())
# Filter by OS
response = requests.get(
"http://127.0.0.1:50326/api/browser/mobile-devices",
headers=headers,
params={"os": "Android"}
)
print(response.json())Response Example
{
"success": true,
"data": {
"total": 2,
"list": [
{
"id": 1,
"name": "iPhone 14 Pro",
"os": "iOS",
"resolution": "1179x2556",
"platform": "iPhone"
},
{
"id": 2,
"name": "Samsung Galaxy S23",
"os": "Android",
"resolution": "1080x2340",
"platform": "Linux armv8l"
}
]
},
"message": "Success"
}Response Fields
| Field | Type | Description |
|---|---|---|
id | number | Device ID |
name | string | Device name |
os | string | Operating system (Android or iOS) |
resolution | string | Screen resolution |
platform | string | Platform identifier |
Groups
1. Get Group List
Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
current | number | No | 1 | Current page |
pageSize | number | No | 20 | Items per page |
Request Example
GET /api/groups/list?current=1&pageSize=20
Authorization: Bearer YOUR_API_KEYResponse Example
{
"success": true,
"data": [
{
"id": 63,
"name": "kkkk",
"description": null,
"orderGroup": 0,
"userId": 4,
"teamId": 1,
"createTime": "2025-06-14T10:22:48.000Z",
"updateTime": "2025-06-14T10:22:48.000Z",
"envCount": 0
},
{
"id": 61,
"name": "vess",
"description": null,
"orderGroup": 2,
"userId": 4,
"teamId": 1,
"createTime": "2025-06-11T08:19:03.000Z",
"updateTime": "2025-06-11T08:19:03.000Z",
"envCount": 0
},
{
"id": 60,
"name": "kkkk",
"description": null,
"orderGroup": 0,
"userId": 4,
"teamId": 1,
"createTime": "2025-06-11T06:20:20.000Z",
"updateTime": "2025-06-11T06:20:20.000Z",
"envCount": 16
},
{
"id": 59,
"name": "aaa",
"description": null,
"orderGroup": 1,
"userId": 4,
"teamId": 1,
"createTime": "2025-06-10T14:07:50.000Z",
"updateTime": "2025-06-10T14:07:50.000Z",
"envCount": 10
}
],
"total": 4,
"current": 1,
"pageSize": 10,
"message": "Success"
}Proxies
1. Get Proxy List
Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
current | number | No | 1 | Current page |
pageSize | number | No | 20 | Items per page |
Request Example
GET /api/proxies/list?current=1&pageSize=20
Authorization: Bearer YOUR_API_KEYResponse Example
{
"success": true,
"data": [
{
"userIndex": 1,
"address": "socks5://185.171.254.53:6085",
"protocol": "socks5",
"host": "185.171.254.53",
"port": 6085,
"username": "username",
"password": "password",
"timezone": "Europe/Amsterdam",
"realIp": "185.171.254.53",
"lastIp": "185.171.254.53",
"lastCheckedTime": "2025-09-02T18:37:52.000Z",
"ipChecker": "https://ipinfo.io",
"ipChangeAction": null,
"status": 2,
"remark": null,
"createdTime": "2025-09-01T18:08:08.000Z",
"updatedTime": "2025-09-01T18:08:08.000Z",
"userId": 20,
"teamId": 1,
"isDeleted": false,
"groupId": null,
"profileId": "8e27864c1a3146c5929f49ac4036d886",
"proxyId": 1
}
],
"message": "Success"
}Configuration Parameters
Resolutions
Desktop
5120x2880
2880x1800
2560x1600
2560x1440
2304x1440
2048x1152
1920x1200
1920x1080
1600x1200
1600x900
1400x1050
1400x900
1360x768
1280x1024
1280x960
1280x800
1280x720
1024x768
800x600Mobile
320x569
360x640
360x720
360x740
360x748
360x760
360x780
411x731
414x896
480x853
480x854Languages
sq-AL - Albanian - shqip
ak - Akan - Akan
ar - Arabic - العربية
an - Aragonese - aragonés
am - Amharic - አማርኛ
as - Assamese - অসমীয়া
az-Cyrl-AZ - Azerbaijani - azərbaycan
ast - Asturian - asturianu
ee - Ewe - Eʋegbe
ay - Aymara - Aymar
ga - Irish - Gaeilge
et-EE - Estonian - eesti
oc - Occitan - occitan
or - Odia - ଓଡ଼ିଆ
om - Oromo - Oromoo
eu - Basque - euskara
be-BY - Belarusian - беларуская
bm - Bambara - bamanakan
bg-BG - Bulgarian - български
nso - Northern Sotho - Northern Sotho
is-IS - Icelandic - íslenska
pl-PL - Polish - polski
bs - Bosnian - bosanski
fa - Persian - فارسی
bho - Bhojpuri - भोजपुरी
br - Breton - brezhoneg
tn - Tswana - Tswana
ts - Tsonga - Xitsonga
tt - Tatar - татар
da-DK - Danish - dansk
de - German - Deutsch
de-AT - German (Austria) - Deutsch (Österreich)
de-DE - German (Germany) - Deutsch (Deutschland)
de-LI - German (Liechtenstein) - Deutsch (Liechtenstein)
de-CH - German (Switzerland) - Deutsch (Schweiz)
dv - Divehi - ދިވެހި
doi - Dogri - डोगरी
ru - Russian - русский
fo - Faroese - føroyskt
fr - French - français
fr-FR - French (France) - français (France)
fr-CA - French (Canada) - français (Canada)
fr-CH - French (Switzerland) - français (Suisse)
sa - Sanskrit - संस्कृत भाषा
fil-PH - Filipino - Filipino
fi-FI - Finnish - suomi
km - Khmer - ខ្មែរ
ka-GE - Georgian - ქართული
gu - Gujarati - ગુજરાતી
gn - Guarani - Guarani
ia - Interlingua - interlingua
kk - Kazakh - қазақ тілі
ht - Haitian Creole - créole haïtien
ko - Korean - 한국어
ha - Hausa - Hausa
nl-NL - Dutch - Nederlands
gl - Galician - galego
ca - Catalan - català
cs-CZ - Czech - čeština
kn - Kannada - ಕನ್ನಡ
ky - Kyrgyz - кыргызча
xh - Xhosa - IsiXhosa
co - Corsican - Corsican
hr-HR - Croatian - hrvatski
qu - Quechua - Runasimi
kok - Konkani - कोंकणी
ku - Kurdish - Kurdî
la - Latin - Latin
lv-LV - Latvian - latviešu
lo-LA - Lao - ລາວ
lt-LT - Lithuanian - lietuvių
ln - Lingala - lingála
lg - Luganda - Luganda
lb - Luxembourgish - Lëtzebuergesch
rw-RW - Kinyarwanda - Kinyarwanda
ro-RO - Romanian - română
mo - Romanian (Moldova) - română (Republica Moldova)
rm - Romansh - rumantsch
mt-MT - Maltese - Malti
mr - Marathi - मराठी
mg - Malagasy - Malagasy
ml - Malayalam - മലയാളം
ms - Malay - Melayu
mk-MK - Macedonian - македонски
mai - Maithili - मैथिली
mni-Mtei - Manipuri (Meitei) - mni (Mtei)
mi - Maori - Māori
mn - Mongolian - монгол
bn-BD - Bengali - বাংলা
lus - Mizo - Mizo tawng
my - Burmese - မြန်မာ
hmn - Hmong - Hmong
af - Afrikaans - Afrikaans
st - Southern Sotho - Southern Sotho
ne-NP - Nepali - नेपाली
nn - Norwegian Nynorsk - norsk nynorsk
no - Norwegian - norsk
pa - Punjabi - ਪੰਜਾਬੀ
pt-PT - Portuguese - português
pt-BR - Portuguese (Brazil) - português (Brasil)
pt-PT - Portuguese (Portugal) - português (Portugal)
ps - Pashto - پښتو
ny - Chichewa - Nyanja
tw - Twi - Twi
chr - Cherokee - ᏣᎳᎩ
ja-JP - Japanese - 日本語
sv-SE - Swedish - svenska
sm - Samoan - Samoan
sh - Serbo-Croatian - srpskohrvatski
sr-Latn-RS - Serbian - српски
si - Sinhala - සිංහල
sn - Shona - chiShona
eo - Esperanto - Esperanto
nb - Norwegian Bokmål - norsk bokmål
sk-SK - Slovak - slovenčina
sl-SI - Slovenian - slovenščina
sw - Swahili - Kiswahili
gd - Scottish Gaelic - Gàidhlig
ceb - Cebuano - Cebuano
so - Somali - Soomaali
tg - Tajik - тоҷикӣ
te - Telugu - తెలుగు
ta - Tamil - தமிழ்
th - Thai - ไทย
to - Tongan - lea fakatonga
ti - Tigrinya - ትግርኛ
tr-TR - Turkish - Türkçe
tk - Turkmen - türkmen dili
wa - Walloon - wa
cy - Welsh - Cymraeg
ug - Uyghur - ئۇيغۇرچە
wo - Wolof - Wolof
ur - Urdu - اردو
uk-UA - Ukrainian - українська
uz - Uzbek - o'zbek
es-ES - Spanish - español
es-AR - Spanish (Argentina) - español (Argentina)
es-CO - Spanish (Colombia) - español (Colombia)
es-CR - Spanish (Costa Rica) - español (Costa Rica)
es-HN - Spanish (Honduras) - español (Honduras)
es-419 - Spanish (Latin America) - español (Latinoamérica)
es-US - Spanish (United States) - español (Estados Unidos)
es-PE - Spanish (Peru) - español (Perú)
es-MX - Spanish (Mexico) - español (México)
es-VE - Spanish (Venezuela) - español (Venezuela)
es-UY - Spanish (Uruguay) - español (Uruguay)
es-ES - Spanish (Spain) - español (España)
es-CL - Spanish (Chile) - español (Chile)
fy - Western Frisian - Frysk
he - Hebrew - עברית
el-GR - Greek - Ελληνικά
haw - Hawaiian - ʻŌlelo Hawaiʻi
sd - Sindhi - سنڌي
hu-HU - Hungarian - magyar
su - Sundanese - Basa Sunda
hy-AM - Armenian - հայերեն
ig - Igbo - Igbo
ilo - Ilokano - Ilokano
it-IT - Italian - italiano
it-CH - Italian (Switzerland) - italiano (Svizzera)
it-IT - Italian (Italy) - italiano (Italia)
yi - Yiddish - ייִדיש
hi - Hindi - हिन्दी
id-ID - Indonesian - Indonesia
en - English - English
en-IE - English (Ireland) - English (Ireland)
en-AU - English (Australia) - English (Australia)
en-CA - English (Canada) - English (Canada)
en-US - English (United States) - English (United States)
en-ZA - English (South Africa) - English (South Africa)
en-NZ - English (New Zealand) - English (New Zealand)
en-IN - English (India) - English (India)
en-GB-oxendict - English (UK, Oxford Dictionary) - English (United Kingdom)
en-GB - English (United Kingdom) - English (United Kingdom)
yo - Yoruba - Èdè Yorùbá
vi-VN - Vietnamese - Tiếng Việt
jv - Javanese - Jawa
ckb - Central Kurdish - کوردیی ناوەندی
zh - Chinese - 中文
zh-TW - Chinese (Traditional) - 中文(繁體)
zh-CN - Chinese (Simplified) - 中文(简体)
zh-HK - Chinese (Hong Kong) - 中文(香港)
zu - Zulu - isiZuluTimezones
GMT-01:00 America/Scoresbysund
GMT-01:00 Atlantic/Azores
GMT-01:00 Atlantic/Cape_Verde
GMT-01:00 Etc/GMT+1
GMT-02:00 America/Noronha
GMT-02:00 Atlantic/South_Georgia
GMT-02:00 Etc/GMT+2
GMT-03:00 America/Araguaina
GMT-03:00 America/Argentina/Buenos_Aires
GMT-03:00 America/Argentina/Catamarca
GMT-03:00 America/Argentina/Cordoba
GMT-03:00 America/Argentina/Jujuy
GMT-03:00 America/Argentina/La_Rioja
GMT-03:00 America/Argentina/Mendoza
GMT-03:00 America/Argentina/Rio_Gallegos
GMT-03:00 America/Argentina/Salta
GMT-03:00 America/Argentina/San_Juan
GMT-03:00 America/Argentina/San_Luis
GMT-03:00 America/Argentina/Tucuman
GMT-03:00 America/Argentina/Ushuaia
GMT-03:00 America/Asuncion
GMT-03:00 America/Bahia
GMT-03:00 America/Belem
GMT-03:00 America/Cayenne
GMT-03:00 America/Fortaleza
GMT-03:00 America/Godthab
GMT-03:00 America/Maceio
GMT-03:00 America/Miquelon
GMT-03:00 America/Montevideo
GMT-03:00 America/Nuuk
GMT-03:00 America/Paramaribo
GMT-03:00 America/Punta_Arenas
GMT-03:00 America/Recife
GMT-03:00 America/Santarem
GMT-03:00 America/Santiago
GMT-03:00 America/Sao_Paulo
GMT-03:00 Antarctica/Palmer
GMT-03:00 Antarctica/Rothera
GMT-03:00 Atlantic/Stanley
GMT-03:00 Etc/GMT+3
GMT-03:30 America/St_Johns
GMT-04:00 America/Anguilla
GMT-04:00 America/Antigua
GMT-04:00 America/Aruba
GMT-04:00 America/Barbados
GMT-04:00 America/Blanc-Sablon
GMT-04:00 America/Boa_Vista
GMT-04:00 America/Campo_Grande
GMT-04:00 America/Caracas
GMT-04:00 America/Cuiaba
GMT-04:00 America/Curacao
GMT-04:00 America/Dominica
GMT-04:00 America/Glace_Bay
GMT-04:00 America/Goose_Bay
GMT-04:00 America/Grenada
GMT-04:00 America/Guadeloupe
GMT-04:00 America/Guyana
GMT-04:00 America/Halifax
GMT-04:00 America/Kralendijk
GMT-04:00 America/La_Paz
GMT-04:00 America/Lower_Princes
GMT-04:00 America/Manaus
GMT-04:00 America/Marigot
GMT-04:00 America/Martinique
GMT-04:00 America/Moncton
GMT-04:00 America/Montserrat
GMT-04:00 America/Port_of_Spain
GMT-04:00 America/Porto_Velho
GMT-04:00 America/Puerto_Rico
GMT-04:00 America/Santo_Domingo
GMT-04:00 America/St_Barthelemy
GMT-04:00 America/St_Kitts
GMT-04:00 America/St_Lucia
GMT-04:00 America/St_Thomas
GMT-04:00 America/St_Vincent
GMT-04:00 America/Thule
GMT-04:00 America/Tortola
GMT-04:00 Atlantic/Bermuda
GMT-04:00 Etc/GMT+4
GMT-05:00 America/Atikokan
GMT-05:00 America/Bogota
GMT-05:00 America/Cancun
GMT-05:00 America/Cayman
GMT-05:00 America/Detroit
GMT-05:00 America/Eirunepe
GMT-05:00 America/Grand_Turk
GMT-05:00 America/Guayaquil
GMT-05:00 America/Havana
GMT-05:00 America/Indiana/Indianapolis
GMT-05:00 America/Indiana/Marengo
GMT-05:00 America/Indiana/Petersburg
GMT-05:00 America/Indiana/Vevay
GMT-05:00 America/Indiana/Vincennes
GMT-05:00 America/Indiana/Winamac
GMT-05:00 America/Indianapolis
GMT-05:00 America/Iqaluit
GMT-05:00 America/Jamaica
GMT-05:00 America/Kentucky/Louisville
GMT-05:00 America/Kentucky/Monticello
GMT-05:00 America/Lima
GMT-05:00 America/Montreal
GMT-05:00 America/Nassau
GMT-05:00 America/New_York
GMT-05:00 America/Nipigon
GMT-05:00 America/Panama
GMT-05:00 America/Pangnirtung
GMT-05:00 America/Port-au-Prince
GMT-05:00 America/Rio_Branco
GMT-05:00 America/Thunder_Bay
GMT-05:00 America/Toronto
GMT-05:00 EST
GMT-05:00 EST5EDT
GMT-05:00 Etc/GMT+5
GMT-05:00 Pacific/Easter
GMT-06:00 America/Bahia_Banderas
GMT-06:00 America/Belize
GMT-06:00 America/Chicago
GMT-06:00 America/Costa_Rica
GMT-06:00 America/El_Salvador
GMT-06:00 America/Guatemala
GMT-06:00 America/Indiana/Knox
GMT-06:00 America/Indiana/Tell_City
GMT-06:00 America/Managua
GMT-06:00 America/Matamoros
GMT-06:00 America/Menominee
GMT-06:00 America/Merida
GMT-06:00 America/Mexico_City
GMT-06:00 America/Monterrey
GMT-06:00 America/North_Dakota/Beulah
GMT-06:00 America/North_Dakota/Center
GMT-06:00 America/North_Dakota/New_Salem
GMT-06:00 America/Rainy_River
GMT-06:00 America/Rankin_Inlet
GMT-06:00 America/Regina
GMT-06:00 America/Resolute
GMT-06:00 America/Swift_Current
GMT-06:00 America/Tegucigalpa
GMT-06:00 America/Winnipeg
GMT-06:00 CST6CDT
GMT-06:00 Etc/GMT+6
GMT-06:00 Pacific/Galapagos
GMT-07:00 America/Boise
GMT-07:00 America/Cambridge_Bay
GMT-07:00 America/Chihuahua
GMT-07:00 America/Creston
GMT-07:00 America/Dawson
GMT-07:00 America/Dawson_Creek
GMT-07:00 America/Denver
GMT-07:00 America/Edmonton
GMT-07:00 America/Fort_Nelson
GMT-07:00 America/Hermosillo
GMT-07:00 America/Inuvik
GMT-07:00 America/Mazatlan
GMT-07:00 America/Ojinaga
GMT-07:00 America/Phoenix
GMT-07:00 America/Whitehorse
GMT-07:00 America/Yellowknife
GMT-07:00 Etc/GMT+7
GMT-07:00 MST
GMT-07:00 MST7MDT
GMT-08:00 America/Los_Angeles
GMT-08:00 America/Tijuana
GMT-08:00 America/Vancouver
GMT-08:00 Etc/GMT+8
GMT-08:00 Pacific/Pitcairn
GMT-08:00 PST8PDT
GMT-09:00 America/Anchorage
GMT-09:00 America/Juneau
GMT-09:00 America/Metlakatla
GMT-09:00 America/Nome
GMT-09:00 America/Sitka
GMT-09:00 America/Yakutat
GMT-09:00 Etc/GMT+9
GMT-09:00 Pacific/Gambier
GMT-09:30 Pacific/Marquesas
GMT-10:00 America/Adak
GMT-10:00 Etc/GMT+10
GMT-10:00 HST
GMT-10:00 Pacific/Honolulu
GMT-10:00 Pacific/Rarotonga
GMT-10:00 Pacific/Tahiti
GMT-11:00 Etc/GMT+11
GMT-11:00 Pacific/Midway
GMT-11:00 Pacific/Niue
GMT-11:00 Pacific/Pago_Pago
GMT-12:00 Etc/GMT+12
GMT+00:00 Africa/Abidjan
GMT+00:00 Africa/Accra
GMT+00:00 Africa/Bamako
GMT+00:00 Africa/Banjul
GMT+00:00 Africa/Bissau
GMT+00:00 Africa/Conakry
GMT+00:00 Africa/Dakar
GMT+00:00 Africa/Freetown
GMT+00:00 Africa/Lome
GMT+00:00 Africa/Monrovia
GMT+00:00 Africa/Nouakchott
GMT+00:00 Africa/Ouagadougou
GMT+00:00 Africa/Sao_Tome
GMT+00:00 America/Danmarkshavn
GMT+00:00 Antarctica/Troll
GMT+00:00 Atlantic/Canary
GMT+00:00 Atlantic/Faroe
GMT+00:00 Atlantic/Madeira
GMT+00:00 Atlantic/Reykjavik
GMT+00:00 Atlantic/St_Helena
GMT+00:00 Etc/GMT
GMT+00:00 Etc/GMT-0
GMT+00:00 Etc/GMT+0
GMT+00:00 Etc/GMT0
GMT+00:00 Etc/Greenwich
GMT+00:00 Etc/Universal
GMT+00:00 Etc/Zulu
GMT+00:00 Europe/Dublin
GMT+00:00 Europe/Guernsey
GMT+00:00 Europe/Isle_of_Man
GMT+00:00 Europe/Jersey
GMT+00:00 Europe/Lisbon
GMT+00:00 Europe/London
GMT+00:00 GMT
GMT+00:00 UTC
GMT+00:00 WET
GMT+01:00 Africa/Algiers
GMT+01:00 Africa/Bangui
GMT+01:00 Africa/Brazzaville
GMT+01:00 Africa/Casablanca
GMT+01:00 Africa/Ceuta
GMT+01:00 Africa/Douala
GMT+01:00 Africa/El_Aaiun
GMT+01:00 Africa/Kinshasa
GMT+01:00 Africa/Lagos
GMT+01:00 Africa/Libreville
GMT+01:00 Africa/Luanda
GMT+01:00 Africa/Malabo
GMT+01:00 Africa/Ndjamena
GMT+01:00 Africa/Niamey
GMT+01:00 Africa/Porto-Novo
GMT+01:00 Africa/Tunis
GMT+01:00 Arctic/Longyearbyen
GMT+01:00 CET
GMT+01:00 Etc/GMT-1
GMT+01:00 Europe/Amsterdam
GMT+01:00 Europe/Andorra
GMT+01:00 Europe/Belgrade
GMT+01:00 Europe/Berlin
GMT+01:00 Europe/Bratislava
GMT+01:00 Europe/Brussels
GMT+01:00 Europe/Budapest
GMT+01:00 Europe/Busingen
GMT+01:00 Europe/Copenhagen
GMT+01:00 Europe/Gibraltar
GMT+01:00 Europe/Ljubljana
GMT+01:00 Europe/Luxembourg
GMT+01:00 Europe/Madrid
GMT+01:00 Europe/Malta
GMT+01:00 Europe/Monaco
GMT+01:00 Europe/Oslo
GMT+01:00 Europe/Paris
GMT+01:00 Europe/Podgorica
GMT+01:00 Europe/Prague
GMT+01:00 Europe/Rome
GMT+01:00 Europe/San_Marino
GMT+01:00 Europe/Sarajevo
GMT+01:00 Europe/Skopje
GMT+01:00 Europe/Stockholm
GMT+01:00 Europe/Tirane
GMT+01:00 Europe/Vaduz
GMT+01:00 Europe/Vatican
GMT+01:00 Europe/Vienna
GMT+01:00 Europe/Warsaw
GMT+01:00 Europe/Zagreb
GMT+01:00 Europe/Zurich
GMT+01:00 MET
GMT+02:00 Africa/Blantyre
GMT+02:00 Africa/Bujumbura
GMT+02:00 Africa/Cairo
GMT+02:00 Africa/Gaborone
GMT+02:00 Africa/Harare
GMT+02:00 Africa/Johannesburg
GMT+02:00 Africa/Khartoum
GMT+02:00 Africa/Kigali
GMT+02:00 Africa/Lubumbashi
GMT+02:00 Africa/Lusaka
GMT+02:00 Africa/Maputo
GMT+02:00 Africa/Maseru
GMT+02:00 Africa/Mbabane
GMT+02:00 Africa/Tripoli
GMT+02:00 Africa/Windhoek
GMT+02:00 Asia/Amman
GMT+02:00 Asia/Beirut
GMT+02:00 Asia/Damascus
GMT+02:00 Asia/Famagusta
GMT+02:00 Asia/Gaza
GMT+02:00 Asia/Hebron
GMT+02:00 Asia/Jerusalem
GMT+02:00 Asia/Nicosia
GMT+02:00 EET
GMT+02:00 Etc/GMT-2
GMT+02:00 Europe/Athens
GMT+02:00 Europe/Bucharest
GMT+02:00 Europe/Chisinau
GMT+02:00 Europe/Helsinki
GMT+02:00 Europe/Kaliningrad
GMT+02:00 Europe/Kiev
GMT+02:00 Europe/Mariehamn
GMT+02:00 Europe/Nicosia
GMT+02:00 Europe/Riga
GMT+02:00 Europe/Sofia
GMT+02:00 Europe/Tallinn
GMT+02:00 Europe/Uzhgorod
GMT+02:00 Europe/Vilnius
GMT+02:00 Europe/Zaporozhye
GMT+03:00 Africa/Addis_Ababa
GMT+03:00 Africa/Asmara
GMT+03:00 Africa/Dar_es_Salaam
GMT+03:00 Africa/Djibouti
GMT+03:00 Africa/Juba
GMT+03:00 Africa/Kampala
GMT+03:00 Africa/Mogadishu
GMT+03:00 Africa/Nairobi
GMT+03:00 Antarctica/Syowa
GMT+03:00 Asia/Aden
GMT+03:00 Asia/Baghdad
GMT+03:00 Asia/Bahrain
GMT+03:00 Asia/Istanbul
GMT+03:00 Asia/Kuwait
GMT+03:00 Asia/Qatar
GMT+03:00 Asia/Riyadh
GMT+03:00 Etc/GMT-3
GMT+03:00 Europe/Istanbul
GMT+03:00 Europe/Kirov
GMT+03:00 Europe/Minsk
GMT+03:00 Europe/Moscow
GMT+03:00 Europe/Simferopol
GMT+03:00 Indian/Antananarivo
GMT+03:00 Indian/Comoro
GMT+03:00 Indian/Mayotte
GMT+03:30 Asia/Tehran
GMT+04:00 Asia/Baku
GMT+04:00 Asia/Dubai
GMT+04:00 Asia/Muscat
GMT+04:00 Asia/Tbilisi
GMT+04:00 Asia/Yerevan
GMT+04:00 Etc/GMT-4
GMT+04:00 Europe/Astrakhan
GMT+04:00 Europe/Samara
GMT+04:00 Europe/Saratov
GMT+04:00 Europe/Ulyanovsk
GMT+04:00 Europe/Volgograd
GMT+04:00 Indian/Mahe
GMT+04:00 Indian/Mauritius
GMT+04:00 Indian/Reunion
GMT+04:30 Asia/Kabul
GMT+05:00 Antarctica/Mawson
GMT+05:00 Asia/Aqtau
GMT+05:00 Asia/Aqtobe
GMT+05:00 Asia/Ashgabat
GMT+05:00 Asia/Atyrau
GMT+05:00 Asia/Dushanbe
GMT+05:00 Asia/Karachi
GMT+05:00 Asia/Oral
GMT+05:00 Asia/Qyzylorda
GMT+05:00 Asia/Samarkand
GMT+05:00 Asia/Tashkent
GMT+05:00 Asia/Yekaterinburg
GMT+05:00 Etc/GMT-5
GMT+05:00 Indian/Kerguelen
GMT+05:00 Indian/Maldives
GMT+05:30 Asia/Calcutta
GMT+05:30 Asia/Colombo
GMT+05:30 Asia/Kolkata
GMT+05:45 Asia/Kathmandu
GMT+05:45 Asia/Katmandu
GMT+06:00 Antarctica/Vostok
GMT+06:00 Asia/Almaty
GMT+06:00 Asia/Bishkek
GMT+06:00 Asia/Dhaka
GMT+06:00 Asia/Omsk
GMT+06:00 Asia/Qostanay
GMT+06:00 Asia/Thimphu
GMT+06:00 Asia/Urumqi
GMT+06:00 Etc/GMT-6
GMT+06:00 Indian/Chagos
GMT+06:30 Asia/Yangon
GMT+06:30 Indian/Cocos
GMT+07:00 Antarctica/Davis
GMT+07:00 Asia/Bangkok
GMT+07:00 Asia/Barnaul
GMT+07:00 Asia/Ho_Chi_Minh
GMT+07:00 Asia/Hovd
GMT+07:00 Asia/Jakarta
GMT+07:00 Asia/Krasnoyarsk
GMT+07:00 Asia/Novokuznetsk
GMT+07:00 Asia/Novosibirsk
GMT+07:00 Asia/Phnom_Penh
GMT+07:00 Asia/Pontianak
GMT+07:00 Asia/Tomsk
GMT+07:00 Asia/Vientiane
GMT+07:00 Etc/GMT-7
GMT+07:00 Indian/Christmas
GMT+08:00 Asia/Brunei
GMT+08:00 Asia/Choibalsan
GMT+08:00 Asia/Hong_Kong
GMT+08:00 Asia/Irkutsk
GMT+08:00 Asia/Kuala_Lumpur
GMT+08:00 Asia/Kuching
GMT+08:00 Asia/Macau
GMT+08:00 Asia/Makassar
GMT+08:00 Asia/Manila
GMT+08:00 Asia/Shanghai
GMT+08:00 Asia/Singapore
GMT+08:00 Asia/Taipei
GMT+08:00 Asia/Ulaanbaatar
GMT+08:00 Australia/Perth
GMT+08:00 Etc/GMT-8
GMT+08:45 Australia/Eucla
GMT+09:00 Asia/Chita
GMT+09:00 Asia/Dili
GMT+09:00 Asia/Jayapura
GMT+09:00 Asia/Khandyga
GMT+09:00 Asia/Pyongyang
GMT+09:00 Asia/Seoul
GMT+09:00 Asia/Tokyo
GMT+09:00 Asia/Yakutsk
GMT+09:00 Etc/GMT-9
GMT+09:00 Pacific/Palau
GMT+09:30 Australia/Darwin
GMT+10:00 Antarctica/DumontDUrville
GMT+10:00 Asia/Ust-Nera
GMT+10:00 Asia/Vladivostok
GMT+10:00 Australia/Brisbane
GMT+10:00 Australia/Lindeman
GMT+10:00 Etc/GMT-10
GMT+10:00 Pacific/Chuuk
GMT+10:00 Pacific/Guam
GMT+10:00 Pacific/Port_Moresby
GMT+10:00 Pacific/Saipan
GMT+10:30 Australia/Adelaide
GMT+10:30 Australia/Broken_Hill
GMT+11:00 Antarctica/Casey
GMT+11:00 Antarctica/Macquarie
GMT+11:00 Asia/Magadan
GMT+11:00 Asia/Sakhalin
GMT+11:00 Asia/Srednekolymsk
GMT+11:00 Australia/Currie
GMT+11:00 Australia/Hobart
GMT+11:00 Australia/Lord_Howe
GMT+11:00 Australia/Melbourne
GMT+11:00 Australia/Sydney
GMT+11:00 Etc/GMT-11
GMT+11:00 Pacific/Bougainville
GMT+11:00 Pacific/Efate
GMT+11:00 Pacific/Guadalcanal
GMT+11:00 Pacific/Kosrae
GMT+11:00 Pacific/Noumea
GMT+11:00 Pacific/Pohnpei
GMT+12:00 Asia/Anadyr
GMT+12:00 Asia/Kamchatka
GMT+12:00 Etc/GMT-12
GMT+12:00 Pacific/Fiji
GMT+12:00 Pacific/Funafuti
GMT+12:00 Pacific/Kwajalein
GMT+12:00 Pacific/Majuro
GMT+12:00 Pacific/Nauru
GMT+12:00 Pacific/Norfolk
GMT+12:00 Pacific/Tarawa
GMT+12:00 Pacific/Wake
GMT+12:00 Pacific/Wallis
GMT+13:00 Antarctica/McMurdo
GMT+13:00 Etc/GMT-13
GMT+13:00 Pacific/Auckland
GMT+13:00 Pacific/Enderbury
GMT+13:00 Pacific/Fakaofo
GMT+13:00 Pacific/Tongatapu
GMT+13:45 Pacific/Chatham
GMT+14:00 Etc/GMT-14
GMT+14:00 Pacific/Apia
GMT+14:00 Pacific/Kiritimati