TgeBrowser API 文档
浏览器自动化 API
TgeBrowser 提供 RESTful API ,支持通过编程方式控制浏览器环境的全生命周期,实现自动化部署和管理。
特点: 简洁高效 • 稳定可靠 • 完整错误处理 • 实时状态同步
基础配置
认证方式
所有 API 请求必须包含有效的身份认证:
http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
User-Agent: YourApp/1.0bash
curl -X GET http://127.0.0.1:50326/api/status \
-H "Authorization: Bearer sk-1234567890abcdef" \
-H "Content-Type: application/json"javascript
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))API Key 获取
登录 TgeBrowser 客户端 → API → 生成新密钥
请求格式
HTTP 方法规范
| 方法 | 用途 | 示例 |
|---|---|---|
GET | 获取资源信息 | 查询环境列表 |
POST | 创建新资源 | 创建浏览器环境 |
PUT | 更新完整资源 | 更新环境配置 |
PATCH | 部分更新资源 | 修改环境状态 |
DELETE | 删除资源 | 删除环境 |
响应格式
标准响应结构
json
{
"success": true,
"message": "操作成功",
"data": {
// 响应数据
}
}json
{
"success": false,
"message": "详细错误描述",
"code": "ERROR_CODE"
}错误代码
| HTTP 状态 | 错误代码 | 描述 | 解决方案 |
|---|---|---|---|
400 | INVALID_PARAMS | 请求参数无效 | 检查请求参数格式和类型 |
401 | AUTH_FAILED | 认证失败 | 检查 API Key 是否有效 |
403 | PERMISSION_DENIED | 权限不足 | 联系管理员分配权限 |
404 | RESOURCE_NOT_FOUND | 资源不存在 | 确认资源 ID 正确性 |
409 | RESOURCE_CONFLICT | 资源冲突 | 检查资源状态或名称冲突 |
429 | RATE_LIMITED | 请求频率限制 | 降低请求频率或升级套餐 |
500 | SERVER_ERROR | 服务器内部错误 | 稍后重试或联系技术支持 |
错误处理建议
- 始终检查
success字段 - 根据
code字段进行错误分类处理
浏览器环境管理
1. 获取服务状态
GET/api/status
检查 API 服务运行状态和基础信息,建议在应用启动时调用此接口验证连接。
请求参数
无需请求参数
请求示例
bash
curl -X GET http://127.0.0.1:50326/api/status \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"javascript
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)python
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())响应数据
json
{
"success": true,
"message": "服务运行正常"
}2. 创建浏览器环境
POST/api/browser/create
创建一个新的浏览器环境,支持完整的指纹配置、代理设置、启动参数等。每个环境都是完全独立的沙盒,确保数据隔离。
请求示例
bash
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营销环境",
"groupId": 1,
"proxy": {
"protocol": "socks5",
"host": "proxy.example.com",
"port": 1080,
"username": "user123",
"password": "pass123",
"timezone": "America/New_York"
},
"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,
"speechVoices": true,
"clientRects": true,
"fonts": ["Arial", "Courier New"],
"disableTLS": [],
"resolution": "1920x1080",
"ram": 8,
"cpu": 4,
"language": "en-US",
"languageBaseIp": true,
"timezone": "Europe/Amsterdam",
"timezoneBaseIp": true,
"hardwareAcceleration": true,
"disableSandbox": false,
"startupParams": "",
"deviceName": "DESKTOP-ABCD",
"portScanProtection": "",
"randomFingerprint": false,
"disableImages": false,
"syncCookies": false
},
"startInfo": {
"startPage": {
"mode": "custom",
"value": [
"https://www.baidu.com"
]
},
"otherConfig": {
"openConfigPage": false,
"checkPage": true,
"extensionTab": true
}
}
}'javascript
const createBrowser = async () => {
const response = await fetch('/api/browser/create', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
browserName: 'Facebook营销环境',
groupId: 1,
proxy: {
protocol: 'socks5',
host: 'proxy.example.com',
port: 1080,
username: 'user123',
password: 'pass123',
timezone: 'America/New_York'
},
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,
speechVoices: true,
clientRects: true,
fonts: ['Arial', 'Courier New'],
disableTLS: [],
resolution: '1920x1080',
ram: 8,
cpu: 4,
language: 'en-US',
languageBaseIp: true,
timezone: 'Europe/Amsterdam',
timezoneBaseIp: true,
hardwareAcceleration: true,
disableSandbox: false,
startupParams: '',
deviceName: 'DESKTOP-ABCD',
portScanProtection: '',
randomFingerprint: false,
disableImages: false,
syncCookies: false
},
startInfo: {
startPage: {
mode: 'custom',
value: ['https://www.baidu.com']
},
otherConfig: {
openConfigPage: false,
checkPage: true,
extensionTab: true
}
}
})
})
const result = await response.json()
return result
}python
import requests
def create_browser():
url = "http://127.0.0.1:50326/api/browser/create"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"browserName": "Facebook营销环境",
"groupId": 1,
"proxy": {
"protocol": "socks5",
"host": "proxy.example.com",
"port": 1080,
"username": "user123",
"password": "pass123",
"timezone": "America/New_York"
},
"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,
"speechVoices": True,
"clientRects": True,
"fonts": ["Arial", "Courier New"],
"disableTLS": [],
"resolution": "1920x1080",
"ram": 8,
"cpu": 4,
"language": "en-US",
"languageBaseIp": True,
"timezone": "Europe/Amsterdam",
"timezoneBaseIp": True,
"hardwareAcceleration": True,
"disableSandbox": False,
"startupParams": "",
"deviceName": "DESKTOP-ABCD",
"portScanProtection": "",
"randomFingerprint": False,
"disableImages": False,
"syncCookies": False
},
"startInfo": {
"startPage": {
"mode": "custom",
"value": [
"https://www.baidu.com"
]
},
"otherConfig": {
"openConfigPage": False,
"checkPage": True,
"extensionTab": True
}
}
}
response = requests.post(url, headers=headers, json=data)
return response.json()请求参数结构
json
{
"browserName": "string", // 环境名称(必填)
"groupId": "number", // 分组ID(可选)
"remark": "string", // 备注信息(可选)
"proxy": { ... }, // 代理配置
"fingerprint": { ... }, // 指纹配置
"startInfo": { ... }, // 启动配置
"Cookie": [...] // 预设Cookie
}详细参数说明
基础信息
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
browserName | string | 是 | 环境名称,建议使用有意义的名称 | "Facebook-营销账号1" |
groupId | number | 否 | 分组 ID,用于环境分类管理 | 1 |
remark | string | 否 | 备注信息,最大 256 字符 | "主要用于Facebook广告投放" |
代理配置 proxy
| 参数 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
protocol | string | 是 | 代理协议 | http, socks5, direct |
host | string | 是* | 服务器地址 | "proxy.example.com" |
port | number | 是* | 端口 | 1080, 8080 |
username | string | 否 | 用户名 | "user123" |
password | string | 否 | 密码 | "pass123" |
timezone | string | 否 | 时区 | "America/New_York" |
proxyId | number | 否 | 已存在代理 ID | 1001 |
代理配置提示
- 使用
proxyId时,可省略其他代理参数 direct协议表示不使用代理- 时区建议与代理 IP 地理位置匹配
指纹配置 fingerprint
| 参数 | 类型 | 必填 | 说明 | 可选值 |
|---|---|---|---|---|
os | string | 是 | 操作系统 | Windows, macOS, Linux, Android, iOS |
platformVersion | string | 否 | 系统版本 | "11", "10" |
kernel | string | 否 | 内核版本 | "135" (Chrome 版本) |
userAgent | string | 否 | 用户代理 | 自动生成或自定义 |
resolution | string | 否 | 屏幕分辨率 | "1920x1080", "1366x768" |
language | string | 否 | 语言 | "en-US", "zh-CN" |
timezone | string | 否 | 时区 | "Asia/Shanghai" |
canvas | boolean | 否 | Canvas 指纹 | true(开启), false(关闭) |
webgl | boolean | 否 | WebGL 指纹 | true(开启), false(关闭) |
fonts | array | 否 | 字体列表 | ["Arial", "Times New Roman"] |
ram | number | 否 | 内存(GB) | 2, 4, 8, 16 |
cpu | number | 否 | CPU 核心数 | 2, 4, 8 |
disableSandbox | boolean | 否 | 禁用沙盒 | true(开启), false(关闭) |
startupParams | string | 否 | 启动参数 | "" |
deviceName | string | 否 | 设备名称 | "DESKTOP-ABCD" |
portScanProtection | string | 否 | 端口防护 | "" |
randomFingerprint | boolean | 否 | 随机指纹 | true(开启), false(关闭) |
disableImages | boolean | 否 | 禁用图片 | true(开启), false(关闭) |
syncCookies | boolean | 否 | 同步Cookie | true(开启), false(关闭) |
指纹配置注意事项
- 建议使用常见的参数组合,避免过于独特的配置
- 确保操作系统、浏览器版本、用户代理三者匹配
- Canvas 和 WebGL 干扰有助于提高匿名性,但可能影响某些网站功能
响应数据
json
{
"success": true,
"message": "环境创建成功",
"data": {
"envId": 5880
}
}3. 更新浏览器环境
POST/api/browser/update
更新现有浏览器环境的配置信息。
请求头
http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json请求体
json
{
"envId": 1000,
"browserName": "TestBrowser", // 浏览器环境名称
"proxy": {
"protocol": "socks5", // 代理协议(http/socks5/direct 等)新建代理
"host": "108.165.69.97", // 代理主机名 (http/socks5 时候须填写)
"port": 6059, // 代理端口 (http/socks5 时候须填写)
"username": "hygwueis", // 代理用户名 (http/socks5 时候须填写)
"password": "lc6bb3zfm359", // 代理密码 (http/socks5 时候须填写)
// "timezone": "Europe/Amsterdam", // 时区(例如:`Asia/Shanghai`)
"ipChecker": "https://ipinfo.io", // IP 检查地址
// 当 proxyId 为空时,新建代理
"proxyId": 1000
},
"fingerprint": {
"os": "Windows", // 操作系统 Windows、macOS、iOS、Android
"platformVersion": 11, // 系统版本 Windows的值:11、10; macOS的值: 11,10,Android的值:12,11,10;IOS的值:16,15;int类型,非必传,默认取最大值
"kernel": "135", // 内核版本 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, // Canvas 指纹 (true 开启随机,false 真实,默认 true)
"speechVoices": true, // 语音
"clientRects": true, //
"fonts": ["Arial", "Courier New"], // 字体
"disableTLS": [], // 禁用的 TLS 版本列表 [{ label: 'TLS_AES_128_GCM_SHA256', value: '0x1301', }, { label: 'TLS_AES_256_GCM_SHA384', value: '0x1302', }, { label: 'TLS_AES_128_CCM_8_SHA256', value: '0x1305', }, { label: 'TLS_AES_128_CCM_SHA256', value: '0x1304', }, { label: 'TLS_RSA_WITH_AES_128_CBC_SHA', value: '0x002f', }, { label: 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA', value: '0x0033', }, {label: 'TLS_RSA_WITH_AES_256_CBC_SHA', value: '0x0035', }, { label: 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA', value: '0x0039', }, { label: 'TLS_RSA_WITH_AES_128_CBC_SHA256', value: '0x003C', }, {label: 'TLS_RSA_WITH_AES_256_CBC_SHA256', value: '0x003D', }, { label: 'TLS_DHE_RSA_WITH_AES_128_CBC_SHA256', value: '0x0067', }, { label: 'TLS_DHE_RSA_WITH_AES_256_CBC_SHA256', value: '0x006B', }, { label: 'TLS_RSA_WITH_AES_128_GCM_SHA256', value: '0x009C', }, {label: 'TLS_RSA_WITH_AES_256_GCM_SHA384', value: '0x009D', }, { label: 'TLS_DHE_RSA_WITH_AES_128_GCM_SHA256', value: '0x009E', }, { label: 'TLS_DHE_RSA_WITH_AES_256_GCM_SHA384', value: '0x009F', }, { label: 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA', value: '0xc009', }, { label: 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA', value: '0xc00a', }, { label: 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA', value: '0xc013', }, { label: 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA', value: '0xc014', }, { label: 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA', value: '0xc013', }, { label: 'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA', value: '0xc014', }, { label: 'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256',value: '0xC023',}, { label: 'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384', value: '0xC024', },
"resolution": "1920x1080", // 屏幕分辨率(例如:['1920x1080','1000x1080','1366x768','1536x864','1440x900','1280x720','1600x900'])
"ram": 8, // 分配的内存 [2,4,8]
"cpu": 4, // 分配的 CPU 核心数 [1,2,4,8]
"language": "en-US", // 语言
"languageBaseIp": true, // 语言是否基于 IP
"timezone": "Europe/Amsterdam", // 时区
"timezoneBaseIp": true, // 时区是否基于 IP
"hardwareAcceleration": true, // 硬件加速
"disableSandbox": false, // 禁用沙盒
"startupParams": "", // 自定义启动参数
"deviceName": "DESKTOP-ABCD", // 设备名称
"portScanProtection": "", // 端口扫描防护
"randomFingerprint": false,
"disableImages": false,
"syncCookies": false
},
"groupId": 29, // 分组ID
"remark": "备注", // 备注
"Cookie": [], // Cookie
"startInfo": {
"startPage": {
"mode": "custom", // 启动页模式
"value": ["https://www.google.com", "https://www.bing.com"] // 启动页 ["https://www.google.com", "https://www.bing.com"]
},
"otherConfig": {
"openConfigPage": true, // 是否打开配置页
"checkPage": true, // 是否打开检查页
"extensionTab": true // 是否打开扩展标签页
}
}
}参数说明
基础参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envId | number | 是 | 浏览器环境 ID |
browserName | string | 是 | 浏览器环境名称 |
代理设置 proxy
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
protocol | string | 当 proxyId 为空必填 | 代理协议(http/socks5/direct 等) |
host | string | 否 | 主机名(http/socks5 时须填写) |
port | number | 否 | 端口(http/socks5 时须填写) |
username | string | 否 | 用户名(http/socks5 时须填写) |
password | string | 否 | 密码(http/socks5 时须填写) |
timezone | string | 否 | 时区(例如:Asia/Shanghai),不填则根据 IP |
ipChecker | string | 否 | IP 检查渠道 |
已有代理设置 proxyId
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
proxyId | number | 当 proxy 为空必填 | 使用已有代理 |
分组设置 groupId
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
groupId | number | 否 | 设置存在分组 |
备注设置 remark
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
remark | string | 否 | 设置备注 |
Cookie 设置 Cookie
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
Cookie | json | 否 | 设置 Cookie |
启动页设置 startInfo
| 参数 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
startPage.mode | string | 否 | 启动页模式 | custom 自定义,last 最后一次, none 无 |
startPage.value | array | 否 | 启动页地址 | 当 mode 为 custom 时,["https://www.google.com"];当 mode 为 last 时,[];当 mode 为 none 时,[] |
otherConfig.openConfigPage | boolean | 否 | 打开配置页 | true 打开,false 关闭 |
otherConfig.checkPage | boolean | 否 | 打开检查页 | true 打开,false 关闭 |
otherConfig.extensionTab | boolean | 否 | 打开扩展标签页 | true 打开,false 关闭 |
指纹设置 fingerprint
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
os | string | 是 | 操作系统 |
platformVersion | string | 是 | 系统版本 |
kernel | string | 是 | 内核版本 |
userAgent | string | 是 | 用户代理 |
timezone | string | 否 | 时区 |
timezoneBaseIp | boolean | 否 | 时区基于 IP |
language | string | 否 | 语言 |
languageBaseIp | boolean | 否 | 语言基于 IP |
disableSandbox | boolean | 否 | 禁用沙盒(true 开启,false 关闭,默认 false) |
startupParams | string | 否 | 启动参数 |
canvas | boolean | 否 | Canvas 指纹(true 开启随机,false 真实,默认 true) |
audioContext | boolean | 否 | AudioContext 指纹(true 随机,false 真实,默认 true) |
speechVoices | boolean | 否 | SpeechVoices 指纹(true 随机,false 真实,默认 true) |
clientRects | boolean | 否 | ClientRects 指纹(true 随机,false 真实,默认 true) |
fonts | array | 否 | 字体列表 |
disableTLS | array | 否 | 禁用的 TLS 版本 |
resolution | string | 否 | 屏幕分辨率(例如:1920x1080) |
ram | number | 否 | 内存 |
cpu | number | 否 | CPU 核心数 |
deviceName | string | 否 | 设备名称 |
portScanProtection | string | 否 | 端口扫描防护(默认关闭,格式:端口,端口) |
hardwareAcceleration | boolean | 否 | 硬件加速(true 开启,false 关闭,默认 true) |
randomFingerprint | boolean | 否 | 随机指纹(true 开启,false 关闭,默认 true) |
disableImages | boolean | 否 | 禁用图片(true 开启,false 关闭,默认 true) |
syncCookies | boolean | 否 | 同步 Cookie(true 开启,false 关闭,默认 true) |
返回示例
json
{
"success": true,
"data": {
"envId": 5880
},
"message": "成功"
}4. 启动浏览器环境
POST/api/browser/start
启动指定的浏览器环境,返回 WebSocket 连接信息。
请求示例
bash
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
}'javascript
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()
console.log(data)python
import requests
url = "http://127.0.0.1:50326/api/browser/start"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"envId": 901,
"args": ["--headless"],
"port": 1111
}
response = requests.post(url, headers=headers, json=data)
print(response.json())参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envId | number | 是 | 环境 ID |
args | string[] | 否 | 浏览器参数 |
port | number | 否 | 自定义远程端口 |
返回示例
json
{
"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",// 1.0.1版本支持
"http": "http://127.0.0.1:34721/json/version",
"pid": 32512,
"port": 34721,
"userIndex":1
},
"message": "成功"
}5. 停止浏览器环境
POST/api/browser/stop
停止正在运行的浏览器环境。
请求示例
bash
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
}'javascript
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)python
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())参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envId | number | 是 | 环境 ID |
返回示例
json
{
"success": true,
"data": {
"envId": 900
},
"message": "成功"
}6. 删除浏览器环境
POST/api/browser/delete
删除指定的浏览器环境及其相关数据。
请求示例
bash
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
}'javascript
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)python
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())参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envId | number | 是 | 环境 ID |
返回示例
json
{
"success": true,
"data": 911,
"message": "成功"
}7. 删除浏览器环境缓存
POST/api/browser/cache/delete
清理指定环境的缓存数据,包括 Cookie、本地存储等。
请求示例
bash
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
}'javascript
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)python
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())参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envId | number | 是 | 环境 ID |
返回示例
json
{
"success": true,
"data": 900,
"message": "成功"
}8. 获取环境列表
GET/api/browser/list
获取当前用户所有的浏览器环境列表,支持分页查询。
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
current | number | 否 | 1 | 当前页 |
pageSize | number | 否 | 20 | 每页数量 |
keyword | string | 否 | - | 搜索关键词 |
groupId | number | 否 | - | 分组 ID |
请求示例
bash
curl -X GET "http://127.0.0.1:50326/api/browser/list?current=1&pageSize=20&keyword=test" \
-H "Authorization: Bearer YOUR_API_KEY"javascript
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)python
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())返回示例 (具体看最新的返回)
json
{
"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},{\"name\":\"acw_tc\",\"value\":\"1a16d61617506920127867097e1e8b766176dd649c824bb6961f76bffbd1a1\",\"domain\":\"wallet.ouxyi.cash\",\"path\":\"/\",\"expires\":1750693812,\"httpOnly\":true,\"secure\":false},{\"name\":\"__cf_bm\",\"value\":\"MpIJ9kyO3Y6bYsdWvosuv5YailhJ2NuXH9sfTn3R9U0-1750692605-1.0.1.1-hhzLUZ08o0q9t..yWgfC6pITz7OcOn.xQZNnQOaOyrI1e0HS1VuKfSFXyjQuSFZrfgTsC7JhIs.fJqlE.yfh8cZA6e4NhzwCj4efRKcxuC8\",\"domain\":\".okx-doh.com\",\"path\":\"/\",\"expires\":1750694404,\"httpOnly\":true,\"secure\":true},{\"name\":\"__cf_bm\",\"value\":\"NhdZ2_OAm9tyNium8NNVkZoOwSi1RHma6zRT2QeJ.d8-1750692976-1.0.1.1-q23Ow3e6CH6mnv6KJHLV8pE.21iKURpI1wltPnyXz11B7x5uZ2oB0jWPr5npR5BI0pO6AKV3A8Ao_mI9J_qUG4gy0Z9s7CorUa_9MLPY5YU\",\"domain\":\".okx.ac\",\"path\":\"/\",\"expires\":1750694775,\"httpOnly\":true,\"secure\":true},{\"name\":\"__cf_bm\",\"value\":\"d_H1JMrnKDsQXndxuXXFJLrqwhkexDTUbQxwwGDe0.g-1750693587-1.0.1.1-UjLo8PwvZmAfFL_mJgNXJHaysx.z5iSYtJs5VvELw2GMf078o5kPT7ZM9Nvb8FNLxMku6evcafgP.dZ_4teztEztPJChMcHSttA5nhsw_Gk\",\"domain\":\".okex.org\",\"path\":\"/\",\"expires\":1750695386,\"httpOnly\":true,\"secure\":true},{\"name\":\"__cf_bm\",\"value\":\"6819NtbBrV7Grq_hvrmzxu64cVaPAOVoAUjgVr5REVc-1750693587-1.0.1.1-EMWNB1c94XJnij_xsDOYMcXmYTg1BCQAxoRmi4HgPueSBsHBT3D4e3rvsckERtmMz9bCoi8kHb6a0I.cbI0ub0AooK9z6FSW3AQwfVyBEPA\",\"domain\":\".okx-httpdns.com\",\"path\":\"/\",\"expires\":1750695386,\"httpOnly\":true,\"secure\":true},{\"name\":\"__cf_bm\",\"value\":\"Kxf0ZwNSPAgpYMl5HKpzmNPabhmwqr99ICPcsIS4xe4-1750693588-1.0.1.1-IqCN4caOphkqcWHSyWFopiUhvmGvfHdJUs..6Ci8sUz8swXfdsYYuGonOdBpWFG_ZbmQW6MDoKF430f54caM53LLCVeM8CEtbsvlxyzKh50\",\"domain\":\".okx.com\",\"path\":\"/\",\"expires\":1750695388,\"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,
"disableImages": false,
"syncCookies": false
},
"envId": 29286
}
]
},
"message": "成功"
}9. 获取正在运行的环境列表
GET/api/browser/open/list
获取当前正在运行的所有浏览器环境。
请求示例
bash
curl -X GET http://127.0.0.1:50326/api/browser/open/list \
-H "Authorization: Bearer YOUR_API_KEY"javascript
const response = await fetch('/api/browser/open/list', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY'
}
})
const data = await response.json()
console.log(data)python
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())返回示例
json
{
"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": "成功"
}10. 一键自适应排版
POST/api/windowbounds/sort
自动调整多个浏览器窗口的位置和大小,实现屏幕自适应排版。
请求示例
bash
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]
}'javascript
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)python
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())参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
envIds | number[] | 否 | 环境 ID |
返回示例
json
{ "success": true, "data": [], "message": "成功排列 2 个窗口" }分组
1. 获取分组列表
GET/api/groups/list
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
current | number | 否 | 1 | 当前页 |
pageSize | number | 否 | 20 | 每页数量 |
请求示例
http
GET /api/groups/list?current=1&pageSize=20
Authorization: Bearer YOUR_API_KEY返回示例
json
{
"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": "成功"
}代理
1. 获取代理列表
GET/api/proxies/list
请求参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
current | number | 否 | 1 | 当前页 |
pageSize | number | 否 | 20 | 每页数量 |
请求示例
http
GET /api/proxies/list?current=1&pageSize=20
Authorization: Bearer YOUR_API_KEY返回示例
json
{
"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": "成功"
}配置参数
分辨率
5120x2880
2880x1800
2560x1600
2560x1440
2304x1440
2048x1152
1920x1200
1920x1080
1600x1200
1600x900
1400x1050
1400x900
1360x768
1280x1024
1280x960
1280x800
1280x720
1024x768
800x600语言
sq-AL - 阿尔巴尼亚语 - shqip
ak - 阿肯语 - Akan
ar - 阿拉伯语 - العربية
an - 阿拉贡语 - aragonés
am - 阿姆哈拉语 - አማርኛ
as - 阿萨姆语 - অসমীয়া
az-Cyrl-AZ - 阿塞拜疆语 - azərbaycan
ast - 阿斯图里亚斯语 - asturianu
ee - 埃维语 - Eʋegbe
ay - 艾马拉语 - Aymar
ga - 爱尔兰语 - Gaeilge
et-EE - 爱沙尼亚语 - eesti
oc - 奥克语 - occitan
or - 奥里亚语 - ଓଡ଼ିଆ
om - 奥罗莫语 - Oromoo
eu - 巴斯克语 - euskara
be-BY - 白俄罗斯语 - беларуская
bm - 班巴拉语 - bamanakan
bg-BG - 保加利亚语 - български
nso - 北索托语 - Northern Sotho
is-IS - 冰岛语 - íslenska
pl-PL - 波兰语 - polski
bs - 波斯尼亚语 - bosanski
fa - 波斯语 - فارسی
bho - 博杰普尔语 - भोजपुरी
br - 布列塔尼语 - brezhoneg
tn - 茨瓦纳语 - Tswana
ts - 聪加语 - Xitsonga
tt - 鞑靼语 - татар
da-DK - 丹麦语 - dansk
de - 德语 - Deutsch
de-AT - 德语(奥地利) - Deutsch (Österreich)
de-DE - 德语(德国) - Deutsch (Deutschland)
de-LI - 德语(列支敦士登) - Deutsch (Liechtenstein)
de-CH - 德语(瑞士) - Deutsch (Schweiz)
dv - 迪维希语 - ދިވެހި
doi - 多格拉语 - डोगरी
ru - 俄语 - русский
fo - 法罗语 - føroyskt
fr - 法语 - français
fr-FR - 法语(法国) - français (France)
fr-CA - 法语(加拿大) - français (Canada)
fr-CH - 法语(瑞士) - français (Suisse)
sa - 梵语 - संस्कृत भाषा
fil-PH - 菲律宾语 - Filipino
fi-FI - 芬兰语 - suomi
km - 高棉语 - ខ្មែរ
ka-GE - 格鲁吉亚语 - ქართული
gu - 古吉拉特语 - ગુજરાતી
gn - 瓜拉尼语 - Guarani
ia - 国际语 - interlingua
kk - 哈萨克语 - қазақ тілі
ht - 海地克里奥尔语 - créole haïtien
ko - 韩语 - 한국어
ha - 豪萨语 - Hausa
nl-NL - 荷兰语 - Nederlands
gl - 加利西亚语 - galego
ca - 加泰罗尼亚语 - català
cs-CZ - 捷克语 - čeština
kn - 卡纳达语 - ಕನ್ನಡ
ky - 柯尔克孜语 - кыргызча
xh - 科萨语 - IsiXhosa
co - 科西嘉语 - Corsican
hr-HR - 克罗地亚语 - hrvatski
qu - 克丘亚语 - Runasimi
kok - 孔卡尼语 - कोंकणी
ku - 库尔德语 - Kurdî
la - 拉丁语 - Latin
lv-LV - 拉脱维亚语 - latviešu
lo-LA - 老挝语 - ລາວ
lt-LT - 立陶宛语 - lietuvių
ln - 林加拉语 - lingála
lg - 卢干达语 - Luganda
lb - 卢森堡语 - Lëtzebuergesch
rw-RW - 卢旺达语 - Kinyarwanda
ro-RO - 罗马尼亚语 - română
mo - 罗马尼亚语(摩尔多瓦) - română (Republica Moldova)
rm - 罗曼什语 - rumantsch
mt-MT - 马耳他语 - Malti
mr - 马拉地语 - मराठी
mg - 马拉加斯语 - Malagasy
ml - 马拉雅拉姆语 - മലയാളം
ms - 马来语 - Melayu
mk-MK - 马其顿语 - македонски
mai - 迈蒂利语 - मैथिली
mni-Mtei - 曼尼普尔语(曼尼普尔文) - mni (Mtei)
mi - 毛利语 - Māori
mn - 蒙古语 - монгол
bn-BD - 孟加拉语 - বাংলা
lus - 米佐语 - Mizo tawng
my - 缅甸语 - မြန်မာ
hmn - 苗语 - Hmong
af - 南非荷兰语 - Afrikaans
st - 南索托语 - Southern Sotho
ne-NP - 尼泊尔语 - नेपाली
nn - 挪威尼诺斯克语 - norsk nynorsk
no - 挪威语 - norsk
pa - 旁遮普语 - ਪੰਜਾਬੀ
pt-PT - 葡萄牙语 - português
pt-BR - 葡萄牙语(巴西) - português (Brasil)
pt-PT - 葡萄牙语(葡萄牙) - português (Portugal)
ps - 普什图语 - پښتو
ny - 齐切瓦语 - Nyanja
tw - 契维语 - Twi
chr - 切罗基语 - ᏣᎳᎩ
ja-JP - 日语 - 日本語
sv-SE - 瑞典语 - svenska
sm - 萨摩亚语 - Samoan
sh - 塞尔维亚-克罗地亚语 - srpskohrvatski
sr-Latn-RS - 塞尔维亚语 - српски
si - 僧伽罗语 - සිංහල
sn - 绍纳语 - chiShona
eo - 世界语 - Esperanto
nb - 书面挪威语 - norsk bokmål
sk-SK - 斯洛伐克语 - slovenčina
sl-SI - 斯洛文尼亚语 - slovenščina
sw - 斯瓦希里语 - Kiswahili
gd - 苏格兰盖尔语 - Gàidhlig
ceb - 宿务语 - Cebuano
so - 索马里语 - Soomaali
tg - 塔吉克语 - тоҷикӣ
te - 泰卢固语 - తెలుగు
ta - 泰米尔语 - தமிழ்
th - 泰语 - ไทย
to - 汤加语 - lea fakatonga
ti - 提格利尼亚语 - ትግርኛ
tr-TR - 土耳其语 - Türkçe
tk - 土库曼语 - türkmen dili
wa - 瓦隆语 - wa
cy - 威尔士语 - Cymraeg
ug - 维吾尔语 - ئۇيغۇرچە
wo - 沃洛夫语 - Wolof
ur - 乌尔都语 - اردو
uk-UA - 乌克兰语 - українська
uz - 乌兹别克语 - o‘zbek
es-ES - 西班牙语 - español
es-AR - 西班牙语(阿根廷) - español (Argentina)
es-CO - 西班牙语(哥伦比亚) - español (Colombia)
es-CR - 西班牙语(哥斯达黎加) - español (Costa Rica)
es-HN - 西班牙语(洪都拉斯) - español (Honduras)
es-419 - 西班牙语(拉丁美洲) - español (Latinoamérica)
es-US - 西班牙语(美国) - español (Estados Unidos)
es-PE - 西班牙语(秘鲁) - español (Perú)
es-MX - 西班牙语(墨西哥) - español (México)
es-VE - 西班牙语(委内瑞拉) - español (Venezuela)
es-UY - 西班牙语(乌拉圭) - español (Uruguay)
es-ES - 西班牙语(西班牙) - español (España)
es-CL - 西班牙语(智利) - español (Chile)
fy - 西弗里西亚语 - Frysk
he - 希伯来语 - עברית
el-GR - 希腊语 - Ελληνικά
haw - 夏威夷语 - ʻŌlelo Hawaiʻi
sd - 信德语 - سنڌي
hu-HU - 匈牙利语 - magyar
su - 巽他语 - Basa Sunda
hy-AM - 亚美尼亚语 - հայերեն
ig - 伊博语 - Igbo
ilo - 伊洛卡诺语 - Ilokano
it-IT - 意大利语 - italiano
it-CH - 意大利语(瑞士) - italiano (Svizzera)
it-IT - 意大利语(意大利) - italiano (Italia)
yi - 意第绪语 - ייִדיש
hi - 印地语 - हिन्दी
id-ID - 印度尼西亚语 - Indonesia
en - 英语 - English
en-IE - 英语(爱尔兰) - English (Ireland)
en-AU - 英语(澳大利亚) - English (Australia)
en-CA - 英语(加拿大) - English (Canada)
en-US - 英语(美国) - English (United States)
en-ZA - 英语(南非) - English (South Africa)
en-NZ - 英语(新西兰) - English (New Zealand)
en-IN - 英语(印度) - English (India)
en-GB-oxendict - 英语(英国,《牛津英语词典》拼法) - English (United Kingdom
en-GB - 英语(英国) - English (United Kingdom)
yo - 约鲁巴语 - Èdè Yorùbá
vi-VN - 越南语 - Tiếng Việt
jv - 爪哇语 - Jawa
ckb - 中库尔德语 - کوردیی ناوەندی
zh - 中文 - 中文
zh-TW - 中文(繁体) - 中文(繁體)
zh-CN - 中文(简体) - 中文(简体)
zh-HK - 中文(香港) - 中文(香港)
zu - 祖鲁语 - isiZulu时区
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