Skip to content

接口文档

浏览器健康检查

健康检查

GET /health

1 请求参数

Text

2 返回结果

Json
{
    "code": 0,      // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"   // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

团队项目接口

获取团队项目列表

GET /browser/workspace

1 请求参数

Json
{
    "page_index": 1,                                // 分页索引, int类型, 非必传, 默认1
    "page_size": 15                                // 分页条数, int类型, 非必传, 默认15
}
参数名称必需项参数类型默认值描述
page_indexint1分页索引
page_sizeint15分页条数

2 返回结果

Json
{
    "code": 0,                                              // 状态码, 0:成功,500:失败,int类型
    "data": {
        "total": 1,                                         // 总条数
        "rows": [
            {
                "id": 1,                                    // 团队ID
                "workspaceName": "feihairui's Team",   // 团队名称
                "project_details": [                        // 项目详细信息
                    {   
                        "projectId": 1,                     // 项目编号
                        "projectName": "xx项目"             // 项目名称
                    }
                ]
            }
        ]
    },
    "msg": "成功"                                           // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
totalint总条数
idint团队ID
workspaceNamestring团队名称
project_detailsList项目详细信息
projectIdint项目编号
projectNamestring项目名称
msgstring返回结果

获取账号列表

GET /browser/account

1 请求参数

Json
{   
    "workspaceId": 1,       // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "accountId": 1,         // 账号库id, int类型, 非必传
    "page_index": 1,        // 分页索引, int类型, 非必传, 默认1
    "page_size": 15        // 分页条数, int类型, 非必传, 默认15
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
accountIdint1账号库id
page_indexint1分页索引
page_sizeint15分页条数

2 返回结果

Json
{
    "code": 0,                                                                  // 状态码, 0:成功,500:失败,int类型
    "data": {
        "total": 1,                                                             // 总条数
        "rows": [
            {
                "id": 3,                                                        // 账号库id
                "platformUrl": "https://www.tiktok.com/",                       // 平台账号url
                "platformUserName": "Roxytest",                                 // 账号库用户名
                "platformPassword": "123456",                                   // 账号库密码
                "platformEfa": "2F3CD67B6D",                                    // 账号库Efa
                "platformCookies": [{"name": "1","value": "2","domain": "3"}],  // 账号库Cookies
                "platformName": "Roxytest",                                     // 平台名称
                "platformRemarks": "Roxytest",                                  // 平台备注
                "createTime": "2024-10-23 15:45:46",                            // 创建时间
                "updateTime": "2024-10-23 15:45:46"                             // 修改时间
            }
        ] 
    },
    "msg": "成功"                                                               // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果
totalint总条数
idint账号库id
platformUrlstring平台账号url
platformUserNamestring账号库用户名
platformPasswordstring账号库密码
platformEfastring账号库Efa
platformCookiesobject账号库Cookies
platformNamestring平台名称
platformRemarksstring平台备注
createTimestring创建时间
updateTimestring修改时间

获取标签列表

GET /browser/label

1 请求参数

Json
{   
    "workspaceId": 1       // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id

2 返回结果

Json
{
    "code": 0,                                                                  // 状态码, 0:成功,500:失败,int类型
    "data": [
        {
            "id": 3,                                                           // 标签id
            "color": "#7558F5",                                                // 标签颜色
            "name": "roxy测试标签"                                              // 标签名称
        }
    ],
    "msg": "成功"                                                               // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果
idint标签id
colorstring标签颜色
namestring标签名称

浏览器窗口接口

获取浏览器窗口列表

GET /browser/list_v3

1 请求参数

Json
{   
    "workspaceId": 10,                              // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirIds": "dc1ed4d,2e18ce,yy67yegk",            // 浏览器窗口id,str类型,非必传,多个以英文逗号分隔
    "windowName": "Roxytest",                       // 浏览器窗口名称,str类型,非必传
    "sortNums": "11,12",                            // 窗口序号,str类型,非必传,多个以英文逗号分隔
    "os": "Windows",                                // 操作系统,str类型,非必传
    "projectIds": "10,11",                          // 项目ID,str类型,非必传,多个以英文逗号分隔
    "windowRemark": "Windows",                      // 窗口备注,str类型,非必传
    "page_index": 1,                                // 分页索引, int类型, 非必传, 默认1
    "page_size": 15                                 // 分页条数, int类型, 非必传, 默认15
    
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdsstring--浏览器窗口id
windowNamestring--浏览器窗口名称
sortNumsstring--窗口序号
osstring--操作系统
projectIdsstring--项目ID
windowRemarkstring--窗口备注
page_indexint1分页索引
page_sizeint15分页条数

2 返回结果

Json
{
    "code": 0,
    "data": {
        "total": 1,
        "rows": [
             {
                "dirId": "dc1e73d4dd954a",                              // 浏览器窗口id, str类型
                "windowSortNum": 99,                                    // 窗口序号, int类型
                "windowName": "Roxytest",                               // 窗口名称, str类型
                "coreVersion": "117",                                   // 内核版本,枚举值:135,133,130,125,117,109, str类型
                "coreType": "Chrome",                                   // 浏览器内核类型,Chrome/Firefox, str类型
                "os": "Windows",                                        // 操作系统, 枚举值:Windows、macOS、Linux、Android、IOS, str类型
                "osVersion": "11",                                      // 操作系统版本, 枚举值:Windows的枚举值:11、10、8、7; Linux的枚举值: ALL; macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7; Android的枚举值:14、13、12、11、10、9; IOS的枚举值:18.2、18.1、18.0、17.0、16.6、16.5、16.4、16.3、16.2、16.1、16.0、15.7、15.6、15.5、15.4、15.3、15.2、15.1、15.0、14.7、14.6、14.5、14.4、14.3、14.2、14.1、14.0; str类型
                "windowRemark": "Roxytest",                             // 窗口备注, str类型
                "createTime": "2023-12-04 21:55:58",                    // 窗口创建时间, str类型
                "updateTime": "2023-12-04 21:56:01",                    // 窗口修改时间, str类型
                "userName": "roxytest"                                  // 窗口归属人用户名,即用户账号, str类型
            }
        ]
    },
    "msg": "成功"
}
字段名称
字段类型
描述
dirIdstring浏览器窗口id
windowSortNumint窗口序号
windowNamestring窗口名称
coreVersionstring内核版本,枚举值:135,133,130,125,117,109
coreTypestring浏览器内核类型,Chrome/Firefox
osstring操作系统,枚举值:Windows、macOS、Linux、Android、IOS
osVersionstring操作系统版本, 枚举值:Windows的枚举值:11、10、8、7;
Linux的枚举值: ALL;
macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7;
Android的枚举值:14、13、12、11、10、9;
IOS的枚举值:18.2、18.1、18.0、17.0、16.6、16.5、16.4、16.3、16.2、16.1、16.0、15.7、15.6、15.5、15.4、15.3、15.2、15.1、15.0、14.7、14.6、14.5、14.4、14.3、14.2、14.1、14.0
windowRemarkstring窗口备注
createTimestring窗口创建时间
updateTimestring窗口修改时间
userNamestring窗口归属人用户名,即用户账号

获取浏览器窗口明细

GET /browser/detail

1 请求参数

Json
{   
    "workspaceId": 10,                              // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirId": "dc1e73d4dd954a"            			// 浏览器窗口id,str类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdstring--浏览器窗口id

2 返回结果

Json
{
    "code": 0,
    "data": {
        "total": 1,
        "rows": [
             {
                "dirId": "dc1e73d4dd954a",                              // 浏览器窗口id, str类型
                "windowSortNum": 99,                                    // 窗口序号, int类型
                "windowName": "Roxytest",                               // 窗口名称, str类型
                "coreVersion": "117",                                   // 内核版本,枚举值:135,133,130,125,117,109, str类型
                "os": "Windows",                                        // 操作系统, 枚举值:Windows、macOS、Linux、Android、IOS, str类型
                "osVersion": "11",                                      // 操作系统版本, 枚举值:Windows的枚举值:11、10、8、7; Linux的枚举值: ALL; macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7; Android的枚举值:14、13、12、11、10、9; IOS的枚举值:18.2、18.1、18.0、17.0、16.6、16.5、16.4、16.3、16.2、16.1、16.0、15.7、15.6、15.5、15.4、15.3、15.2、15.1、15.0、14.7、14.6、14.5、14.4、14.3、14.2、14.1、14.0; str类型
                "userAgent": "Mozilla/5.0 (Windows NT 10.0)",           // User Agent, str类型
                "cookie": [												 				
                    {
                        "name": "1",
                        "value": "2",
                        "domain": "3"
                    }
                ],                                                      // cookie, List类型
                "searchEngine": "Google",                               // 搜索引擎,枚举值:Google, Microsoft Bing, Yahoo, Yandex, DuckDuckGo, str类型
                "windowPlatformList": [{
                    "id": 0,                                            // 平台账号id,int类型,非必传,通过平台账号列表接口【/account/list】获取
                    "platformUrl": "https://www.tiktok.com/",           // 平台账号URL,str类型
                    "platformUserName": "Roxytest",                     // 平台账号,str类型
                    "platformPassword": "Roxytest",                     // 平台密码,str类型
                    "platformEfa": "2F3CD67B6D",                        // efa,str类型                      
                    "platformRemarks": "Roxytest"                       // 平台备注,str类型      
                }],
                "defaultOpenUrl": ["https://www.facebook.com"],         // 存储浏览器标签页,List类型
                "windowRemark": "Roxytest",                             // 窗口备注, str类型
                "projectId": 4,											// 项目ID, int类型
                "projectName": "Roxytest",								// 项目名称, str类型	
                "openStatus": false,                                    // 团队内是否已打开, 枚举值:true: 已打开,false: 未打开,布尔类型
                "statusInfo":[
                    {   
                        "openTime": "2024-01-09 12:12:12",              // 打开时间,str类型
                        "openUserName": "test"                          // 打开人用户名,str类型
                    }
                ],                                                      // 窗口打开时的详细信息,List类型
                "createTime": "2023-12-04 21:55:58",                    // 窗口创建时间, str类型
                "updateTime": "2023-12-04 21:56:01",                    // 窗口修改时间, str类型
                "userName": "roxytest",                                 // 窗口归属人用户名,即用户账号, str类型
                "openTime": "2024-12-05 10:57:43",						// 窗口最后打开时间, str类型	
                "closeTime": "2024-12-05 10:40:54",						// 窗口最后关闭时间, str类型 
                "proxyInfo": {
                    "moduleId": 0,                                      // 代理id,int类型,0 为不使用,非必传,通过代理列表接口【/proxy/list】获取
                    "proxyMethod": "custom",                            // 代理方式,枚举值:手动填写:custom,选择代理 IP:choose,str类型
                    "proxyCategory": "noproxy",                         // 代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5, SSH, str类型
                    "ipType": "IPV4",                                   // 网络协议, 枚举值:IPV4, IPV6,str类型
                    "protocol": "SOCKS5",                               // 代理协议,枚举值:HTTP, HTTPS, SOCKS5,str类型
                    "host": "122.11.11.11",                             // 代理主机,str类型
                    "port": "37746",                                    // 代理端口,str类型
                    "proxyUserName": "roxytest",                        // 代理账号,str类型
                    "proxyPassword": "roxytest",                        // 代理密码,str类型
                    "refreshUrl": "http://refresh-hk.roxybrowser.com",  // 刷新URL,str类型
                    "lastIp": "119.1.2.3",                              // 出口IP,str类型
                    "lastCountry": "CN",                                // 出口国家,str类型
                    "checkChannel": "http://iprust.io/ip.json"			// IP查询渠道,str类型
                },
                "isOften": false,										// 是否收藏,true:是,false:否,布尔类型
                "labelInfo": [											
                    {
                        "labelId": 859,									// 标签ID,int类型
                        "labelName": "Roxytest",						// 标签名称,str类型
                        "labelColor": "#FC9D12"							// 标签颜色,str类型
                    }
                ]														// 标签详细信息,List类型
            }
        ]
    },
    "msg": "成功"
}
字段名称
字段类型
描述
dirIdstring浏览器窗口id
windowSortNumint窗口序号
windowNamestring窗口名称
coreVersionstring内核版本,枚举值:135,133,130,125,117,109
osstring操作系统,枚举值:Windows、macOS、Linux、Android、IOS
osVersionstring操作系统版本, 枚举值:Windows的枚举值:11、10、8、7;
Linux的枚举值: ALL;
macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7;
Android的枚举值:14、13、12、11、10、9;
IOS的枚举值:18.2、18.1、18.0、17.0、16.6、16.5、16.4、16.3、16.2、16.1、16.0、15.7、15.6、15.5、15.4、15.3、15.2、15.1、15.0、14.7、14.6、14.5、14.4、14.3、14.2、14.1、14.0
userAgentstringUser Agent
cookieListcookie
searchEnginestring搜索引擎,枚举值:Google, Microsoft Bing, Yahoo, Yandex, DuckDuckGo
defaultOpenUrlList存储浏览器标签页
windowRemarkstring窗口备注
projectIdint项目ID
projectNamestring项目名称
openStatusboolean团队内是否已打开, 枚举值:true: 已打开,false: 未打开
createTimestring窗口创建时间
updateTimestring窗口修改时间
userNamestring窗口归属人用户名,即用户账号
openTimestring窗口最后打开时间
closeTimestring窗口最后关闭时间
isOftenboolean是否收藏,true:是,false:否
windowPlatformListListwindowPlatformList
statusInfoobject窗口打开时的详细信息,见 statusInfo
proxyInfoobjectproxyInfo
labelInfoobjectlabelInfo

windowPlatformList:

字段名称字段类型描述
platformUrlstring平台账号URL
platformUserNamestring平台账号
platformPasswordstring平台密码
platformEfastringefa
platformRemarksstring平台备注

statusInfo:

字段名称字段类型描述
openUserNamestring打开人用户名
openTimestring打开时间

proxyInfo:

字段名称字段类型描述
proxyMethodstring代理方式,枚举值:自定义:custom,导入的IP:choose,API接入:api
proxyCategorystring代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5
ipTypestring网络协议, 枚举值:IPV4, IPV6
protocolstring代理协议,枚举值:HTTP, HTTPS, SOCKS5
hoststring代理主机
portstring代理端口
proxyUserNamestring代理账号
proxyPasswordstring代理密码
refreshUrlstring刷新URL
lastIpstring出口IP
lastCountrystring出口国家
checkChannelstringIP查询渠道

labelInfo:

字段名称字段类型描述
labelIdint标签ID
labelNamestring标签名称
labelColorstring标签颜色

创建浏览器窗口

POST /browser/create

1 请求参数

Json
{
    "workspaceId": 1,                                           // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "windowName": "Roxytest",                                   // 窗口名称, str类型,非必传
    "coreVersion": "117",                                       // 内核版本,枚举值 例如:138,137,136等, str类型,非必传
    "coreType": "Chrome",                                       // 浏览器内核类型,Chrome/Firefox, str类型,非必传
    "os": "Windows",                                            // 操作系统, 枚举值:Windows、macOS、Linux、IOS、Android, str类型,非必传,默认Windows
    "osVersion": "11",                                          // 操作系统版本, Windows的枚举值:11、10、8、7; Linux的枚举值:ALL; macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7,Android的枚举值:14,13,12,11,10,9;IOS的枚举值:18.2,18.1,18.0,17.0,16.6,16.5,16.4,16.3,16.2,16.1,16.0,15.7,15.6,15.5,15.4,15.3,15.2,15.1,15.0,14.7,14.6,14.5,14.4,14.3,14.2,14.1,14.0;str类型,非必传,默认取最大值
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",   // userAgent, str类型,非必传
    "cookie": [],                                               // cookie, List类型,非必传
    "searchEngine": "Google",                                   // 搜索引擎,枚举值:Google, Microsoft Bing, Yahoo, Yandex, DuckDuckGo, str类型,非必传,默认为Google
    "labelIds": [12,13],                                        // 标签列表id,List类型,非必传,通过标签列表接口【/browser/label】获取
    "windowPlatformList": [{
        "id": 0,                                                // 平台账号id,int类型,非必传,通过平台账号列表接口【/account/list】获取
        "platformUrl": "https://www.tiktok.com/",               // 平台账号URL,str类型,非必传
        "platformUserName": "Roxytest",                         // 平台账号,str类型,非必传
        "platformPassword": "12345655",                         // 平台密码,str类型,非必传
        "platformEfa": "2F3CD67B6D",                            // efa,str类型,非必传                           
        "platformRemarks": "Roxytest"                           // 平台备注,str类型,非必传      
    }],
    "defaultOpenUrl": ["https://www.facebook.com"],             // 存储浏览器标签页,List类型,非必传
    "windowRemark": "Roxytest",                                 // 窗口备注, str类型,非必传
    "projectId":1,                                              // 项目ID, int类型, 非必传,通过团队项目接口【/browser/workspace】获取
    "proxyInfo": {
        "moduleId": 0,                                          // 代理id,int类型,0 为不使用,非必传,通过代理列表接口【/proxy/list】获取
        "proxyMethod": "custom",                                // 代理方式,枚举值:手动填写:custom,选择代理 IP:choose,str类型
        "proxyCategory": "noproxy",                             // 代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5, SSH, str类型,非必传,默认为noproxy
        "ipType": "IPV4",                                       // 网络协议, 枚举值:IPV4, IPV6,str类型,非必传,默认为IPV4
        "host": "122.11.11.11",                                 // 代理主机,str类型,非必传
        "port": "37746",                                        // 代理端口,str类型,非必传
        "proxyUserName": "roxytest",                            // 代理账号,str类型,非必传
        "proxyPassword": "roxytest",                            // 代理密码,str类型,非必传
        "refreshUrl": "http://refresh-hk.roxybrowser.com",      // 刷新URL,str类型,非必传
        "checkChannel": "IPRust.io"                             // IP查询渠道,枚举值:IPRust.io,IP-API,IP123.in,str类型,非必传
    },
    "fingerInfo": {
        "isLanguageBaseIp": true,                               // 浏览器语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "language": "en-US",                                    // 浏览器语言类型为自定义时指定的语言值,str类型,非必传,见附录-语言列表
        "isDisplayLanguageBaseIp": true,                        // 界面语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "displayLanguage": "en-US",                             // 界面语言类型为自定义时指定的语言值,str类型,非必传,见附录-界面语言列表
        "isTimeZone": true,                                     // 时区类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "timeZone": "GMT-12:00 Etc/GMT+12",                     // 时区类型为自定义时指定的时区值, str类型,非必传,见附录-时区列表
        "position": 0,                                          // 地理位置提示类型,询问: 0,允许:1,禁用:2,int类型, 非必传, 默认1
        "isPositionBaseIp": true,                               // 地理位置类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "longitude": "376",                                     // 经度值,isPositionBaseIp为false时设置, str类型, 非必传
        "latitude": "165",                                      // 纬度值, isPositionBaseIp为false时设置, str类型, 非必传
        "precisionPos": "600",                                  // 精度值(米), isPositionBaseIp为false时设置, str类型, 非必传
        "forbidAudio": true,                                    // 网页是否打开声音,开启:true,关闭:false,布尔类型,非必传, 默认true
        "forbidImage": true,                                    // 网页是否加载图片,开启:true,关闭:false,布尔类型,非必传, 默认true
        "forbiddenPictureSize": 0,                              // 图片加载大小阈值。当 forbidImage 为 false 时,设置 forbiddenPictureSize = 0 将禁用所有图片加载。默认 0。
        "forbidMedia": true,                                    // 网页是否播放视频,开启:true,关闭:false,布尔类型,非必传, 默认true
        "openWidth": "1000",                                    // 窗口尺寸,宽度, str类型,非必传,默认 1000
        "openHeight": "1000",                                   // 窗口尺寸,高度, str类型,非必传,默认 1000
        "openBookmarks":false,                                  // 是否开启书签,true:开启,false:关闭,布尔类型,非必传, 默认false
        "positionSwitch":false,                                 // 窗口位置开关,true:自定义,false:全屏,布尔类型,非必传, 默认true
        "windowRatioPosition": "",                              // 指定窗口打开位置, str类型,非必传,默认(0, 0)。使用比例坐标系统,格式为"x,y",取值范围为0到显示器数量。"0,0": 第一个显示器左上角;"0.5,0.5": 第一个显示器中央;"1.5,0": 两显示器横排时,第二显示器顶部中央;"0,1.5": 两显示器纵排时,第二显示器左侧中央
        "isDisplayName": false,                                 // 窗口名是否在标题栏显示,显示:true,不显示:false,布尔类型,非必传, 默认false
        "syncBookmark": false,                                  // 是否同步书签,true:是,false:否,布尔类型,非必传, 默认false
        "syncHistory": false,                                   // 是否同步历史记录,true:是,false:否,布尔类型,非必传, 默认false
        "syncTab": true,                                        // 是否同步标签页,true:是,false:否,布尔类型,非必传, 默认true
        "syncCookie": true,                                     // 是否同步Cookie,true:是,false:否, 布尔类型,非必传, 默认true
        "syncExtensions": false,                                // 是否同步扩展应用数据,true:是,false:否,布尔类型,非必传, 默认false
        "syncPassword": true,                                   // 是否同步已保存的用户名密码,true:是,false:否,布尔类型,非必传, 默认true
        "syncIndexedDb": false,                                 // 是否同步IndexedDB,true:是,false:否,布尔类型,非必传, 默认false
        "syncLocalStorage": false,                              // 是否同步Local Storage,true:是,false:否,布尔类型,非必传, 默认false
        "clearCacheFile": true,                                 // 启动浏览器前是否删除缓存文件,true:是,false:否,布尔类型,非必传, 默认false
        "clearCookie": true,                                    // 启动浏览器前是否删除Cookie,true:是,false:否,布尔类型,非必传, 默认false
        "clearLocalStorage": true,                              // 启动浏览器前删除Local Storage,true:是,false:否,布尔类型,非必传, 默认false
        "randomFingerprint": false,                              // 启动浏览时是否随机生成指纹,true:是,false:否,布尔类型,非必传, 默认false
        "forbidSavePassword": true,                             // 网页是否弹出保存密码提示,true:是,false:否,布尔类型,非必传, 默认true
        "stopOpenNet": true,                                    // 网络不通是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "stopOpenIP": true,                                     // 出口IP发生变化是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "stopOpenPosition": true,                               // 出口IP对应国家/地区发生变化是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "openWorkbench": 1,                                     // 是否打开工作台, 关闭: 0,开启: 1,跟随软件设置: 2,int类型, 非必传, 默认1
        "resolutionType": true,                                 // 分辨率,true: 自定义, false: 跟随系统,布尔类型,非必传, 默认false
        "resolutionX": "",                                      // 自定义分辨率时,分辨率宽度值, str类型,见附录-分辨率列表,非必传
        "resolutionY": "",                                      // 自定义分辨率时,分辨率高度值, str类型,见附录-分辨率列表,非必传
        "fontType": false,                                      // 字体指纹,随机:true,跟随系统:false,布尔类型,非必传, 默认false
        "webRTC": 0,                                            // webrtc 替换: 0,真实:1,禁止:2,int类型, 非必传, 默认2
        "webGL": true,                                          // webGL图像, 随机:true,真实:false,布尔类型,非必传, 默认true
        "webGLInfo": true,                                      // webGLInfo开关,自定义:true,真实:false,布尔类型,非必传, 默认true
        "webGLManufacturer": "",                                // webGLInfo为自定义时指定的webGL厂商值, str类型,非必传
        "webGLRender": "",                                      // webGLInfo为自定义时指定的webGL渲染值, str类型,非必传
        "webGpu": "webgl",                                      // webGpu,基于webgl匹配:webgl,真实:real,禁用:block,str类型,非必传,默认值:webgl
        "canvas": true,                                         // canvas,随机:true,真实:false,布尔类型,非必传, 默认true
        "audioContext": true,                                   // audioContext值,随机:true,真实:false,布尔类型,非必传, 默认true
        "speechVoices": true,                                   // Speech Voices,随机:true,真实:false,布尔类型,非必传, 默认true
        "doNotTrack": true,                                     // doNotTrack,true:开启,false:关闭,布尔类型,非必传, 默认true
        "clientRects": true,                                    // ClientRects,随机:true,真实:false,布尔类型,非必传, 默认true
        "deviceInfo": true,                                     // 媒体设备,随机:true,真实:false,布尔类型,非必传, 默认true
        "deviceNameSwitch": true,                               // 设备名称,随机:true,真实:false,布尔类型,非必传, 默认true
        "macInfo": true,                                        // MAC地址,自定义:true,真实:false,布尔类型,非必传, 默认true
        "hardwareConcurrent": "4",                              // 硬件并发数, str类型,非必传
        "deviceMemory": "8",                                    // 设备内存, str类型,非必传
        "disableSsl": true,                                     // ssl指纹设置, true: 开启, false: 关闭, 布尔类型,非必传, 默认false
        "disableSslList": [],                                   // ssl特性值列表,List格式类型,非必传
        "portScanProtect": true,                                // 端口扫描保护, false: 关闭, true: 开启,布尔类型,非必传, 默认true
        "portScanList": "",                                     // 端口扫描保护开启时的白名单,英文逗号分隔,str类型,非必传
        "useGpu": true,                                         // 使用硬件加速模式,true:是,false:否,布尔类型,非必传, 默认true
        "sandboxPermission": false,                             // 禁用沙盒,true:开启,false:关闭,布尔类型,非必传, 默认false
        "startupParam": "",                                     // 浏览器启动参数, str类型,多个参数以英文分号分隔,非必传
        "openBattery": false,                                   // 电池 API 模拟总开关,布尔类型,非必传,默认 false
        "openCharging": false,                                  // 开启电池模拟时的充电状态,布尔类型,非必传,默认 false
        "chargingTime": "",                                     // 距离充满的秒数(纯数字字符串,不带单位后缀),str,非必传
        "dischargingTime": "",                                  // 距离耗尽的秒数(纯数字字符串,不带单位后缀),str,非必传
        "level": "",                                            // 电量,0–1,str,非必传
        "openNetwork": false,                                   // Network Information API 模拟总开关,布尔类型,非必传,默认 false
        "networkType": "wifi",                                  // 连接类型:wifi、cellular、ethernet、bluetooth、wimax、other、unknown,str,非必传
        "networkSpeed": "4g",                                   // 有效连接类型:slow-2G、2g、3g、4g(对应下行/有效类型;networkType 为 cellular 时,slow-2G 会规范为 2G 作为底层 nettype),str,非必传
        "downloadSpeed": "",                                    // 下行速率(Mbps),str,非必传
        "maxDownloadSpeed": "",                                 // 最大下行速率(Mbps),str,非必传
        "latency": "",                                          // 往返时延(ms),str 或 number,非必传
        "saveFlowMode": false,                                  // 省流 / Save-Data 模式,布尔类型,非必传,默认 false
        "openBluetooth": false,                                 // 蓝牙模拟总开关,布尔类型,非必传,默认 false
        "bluetoothAdapter": false,                              // 是否模拟存在蓝牙适配器,布尔类型,非必传,默认 false
        "blockDomainList": "",                                  // 网址访问黑名单, 多个域名使用 \n 分割
        "allowDomainList": ""                                   // 网址访问白名单, 多个域名使用 \n 分割
    }
}
参数名称必需项
参数类型
默认值
描述
workspaceIdint--团队id
windowNamestring--窗口名称
coreVersionstring最新内核版本,枚举值 例如:138,137,136等
coreTypestringChrome浏览器内核类型,Chrome/Firefox
osstringWindows操作系统, 枚举值:Windows、macOS、Linux、IOS、Android
osVersionstring11操作系统版本,
Windows的枚举值:11、10、8、7;
Linux的枚举值:ALL;
macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7,
Android的枚举值:14,13,12,11,10,9;
IOS的枚举值:18.2,18.1,18.0,17.0,16.6,16.5,16.4,16.3,16.2,16.1,16.0,15.7,15.6,15.5,15.4,15.3,15.2,15.1,15.0,14.7,14.6,14.5,14.4,14.3,14.2,14.1,14.0
userAgentstringMozilla/5.0 (Windows NT 10.0; Win64; x64)userAgent
cookieboolean--cookie
searchEnginestringGoogle搜索引擎
labelIdsList--标签列表id
defaultOpenUrlList--存储浏览器标签页
windowRemarkstring--窗口备注
projectIdnumber--项目ID
windowPlatformListList--windowPlatformList
proxyInfoobject--proxyInfo
fingerInfoobject--fingerInfo

windowPlatformList:

参数名称必需项参数类型默认值描述
platformUrlstring--平台账号URL
platformUserNamestring--平台账号
platformPasswordstring--平台密码
platformEfastring--efa
platformRemarksstring--平台备注

proxyInfo:

参数名称必需项参数类型默认值描述
proxyMethodstringcustom代理方式,枚举值:自定义:custom
proxyCategorystringnoproxy代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5, SSH
ipTypestringIPV4网络协议, 枚举值:IPV4, IPV6
hoststring--代理主机
portstring--代理端口
proxyUserNamestring--代理账号
proxyPasswordstring--代理密码
refreshUrlstring--刷新URL
checkChannelstring--IP查询渠道

fingerInfo:

参数名称必需项
参数类型
默认值
描述
isLanguageBaseIpbooleantrue浏览器语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
languagestring--浏览器语言类型为自定义时指定的语言值,str类型,非必传,见 附录-语言列表
isDisplayLanguageBaseIpbooleantrue界面语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
displayLanguagestring--界面语言类型为自定义时指定的语言值,str类型,非必传,见 附录-界面语言列表
isTimeZonebooleantrue时区类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
timeZonestring--时区类型为自定义时指定的时区值, str类型,非必传,见 附录-时区列表
positionint1地理位置提示类型,询问: 0,允许:1,禁用:2
isPositionBaseIpbooleantrue地理位置类型,跟随IP匹配:true,自定义:false
longitudestring--经度值,isPositionBaseIp为false时设置
latitudestring--纬度值, isPositionBaseIp为false时设置
precisionPosstring--精度值(米), isPositionBaseIp为false时设置
forbidAudiobooleantrue网页是否打开声音,开启:true,关闭:false
forbidImagebooleantrue网页是否加载图片,开启:true,关闭:false
forbiddenPictureSizenumber0当 forbidImage 为 false 时,设置 forbiddenPictureSize = 0 将禁用所有图片加载。
forbidMediabooleantrue网页是否播放视频,开启:true,关闭:false
openWidthstring1000窗口尺寸,宽度
openHeightstring1000窗口尺寸,高度
openBookmarksbooleanfalse是否开启书签,true:开启,false:关闭
positionSwitchbooleantrue窗口位置开关,true:自定义,false:全屏
windowRatioPositionstring0,0windowRatioPosition
isDisplayNamebooleanfalse窗口名是否在标题栏显示,显示:true,不显示:false
syncBookmarkbooleanfalse是否同步书签,true:是,false:否
syncHistorybooleanfalse是否同步历史记录,true:是,false:否
syncTabbooleantrue是否同步标签页,true:是,false:否
syncCookiebooleantrue是否同步Cookie,true:是,false:否
syncExtensionsbooleanfalse是否同步扩展应用数据,true:是,false:否
syncPasswordbooleantrue是否同步已保存的用户名密码,true:是,false:否
syncIndexedDbbooleanfalse是否同步IndexedDB,true:是,false:否
syncLocalStoragebooleanfalse是否同步Local Storage,true:是,false:否
clearCacheFilebooleanfalse启动浏览器前是否删除缓存文件,true:是,false:否
clearCookiebooleanfalse启动浏览器前是否删除Cookie,true:是,false:否
clearLocalStoragebooleanfalse启动浏览器前删除Local Storage,true:是,false:否
randomFingerprintbooleanfalse启动浏览时是否随机生成指纹,true:是,false:否
forbidSavePasswordbooleanfalse网页是否弹出保存密码提示,true:是,false:否
stopOpenNetbooleanfalse网络不通是否停止打开窗口,true:是,false:否
stopOpenIPbooleanfalse出口IP发生变化是否停止打开窗口,true:是,false:否
stopOpenPositionbooleanfalse出口IP对应国家/地区发生变化是否停止打开窗口,true:是,false:否
openWorkbenchint1是否打开工作台, 1: 开启,关闭: 0,跟随软件设置: 2
resolutionTypebooleanfalse分辨率,true: 自定义, false: 跟随系统
resolutionXstring--自定义分辨率时,分辨率宽度值, str类型,见 附录-分辨率列表
resolutionYstring--自定义分辨率时,分辨率高度值, str类型,见 附录-分辨率列表
fontTypebooleanfalse字体指纹,随机:true,跟随系统:false
webRTCint2webrtc 替换: 0,真实:1,禁止:2
webGLbooleantruewebGL图像, 随机:true,真实:false
webGLInfobooleantruewebGLInfo开关,自定义:true,真实:false
webGLManufacturerstring--webGLInfo为自定义时指定的webGL厂商值
webGLRenderstring--webGLInfo为自定义时指定的webGL渲染值
webGpustringwebglwebGpu,基于webgl匹配:webgl,真实:real,禁用:block
canvasbooleantruecanvas,随机:true,真实:false
audioContextbooleantrueaudioContext值,随机:true,真实:false
speechVoicesbooleantrueSpeech Voices,随机:true,真实:false
doNotTrackbooleantruedoNotTrack,true:开启,false:关闭
clientRectsbooleantrueClientRects,随机:true,真实:false
deviceInfobooleantrue媒体设备,随机:true,真实:false
deviceNameSwitchbooleantrue设备名称,随机:true,真实:false
macInfobooleantrueMAC地址,自定义:true,真实:false
hardwareConcurrentstring--硬件并发数
deviceMemorystring--设备内存
disableSslbooleanfalsessl指纹设置, true: 开启, false: 关闭
disableSslListList--ssl特性值列表,List格式类型
portScanProtectbooleantrue端口扫描保护, false: 关闭, true: 开启
portScanListstring--端口扫描保护开启时的白名单,英文逗号分隔
useGpubooleantrue使用硬件加速模式,true:是,false:否
sandboxPermissionbooleanfalse禁用沙盒,true:是,false:否
startupParamstring--浏览器启动参数
openBatterybooleanfalse电池 API 模拟总开关
openChargingbooleanfalse开启电池模拟时的充电状态
chargingTimestring--距离充满的秒数(纯数字字符串,不带单位后缀)
dischargingTimestring--距离耗尽的秒数(纯数字字符串,不带单位后缀)
levelstring--电量,0–1
openNetworkbooleanfalseNetwork Information API 模拟总开关
networkTypestring--连接类型:wifi、cellular、ethernet、bluetooth、wimax、other、unknown
networkSpeedstring--有效类型:slow-2G、2g、3g、4g;当 networkType 为 cellular 时,slow-2G 会规范为 2G 作为底层 nettype
downloadSpeedstring--下行速率(Mbps)
maxDownloadSpeedstring--最大下行速率(Mbps)
latencystring / number--往返时延(ms)
saveFlowModebooleanfalse省流 / Save-Data 模式
openBluetoothbooleanfalse蓝牙模拟总开关
bluetoothAdapterbooleanfalse是否模拟存在蓝牙适配器
blockDomainListstring--网址访问黑名单,多个域名使用 \n 分割
allowDomainListstring--网址访问白名单,多个域名使用 \n 分割

windowRatioPosition: 用于指定窗口在单/多显示器环境中的精确位置。该参数采用比例坐标系统,使您能够轻松定位窗口,无需考虑实际屏幕分辨率。

坐标系统
参数格式:(x, y),其中:
x 表示水平位置,取值范围为 0 到显示器总数
y 表示垂直位置,取值范围为 0 到显示器总数

单显示器示例

在单显示器环境中,坐标系统如下图所示:

windowRatioPosition 参数

(0, 0) - 屏幕左上角
(0.5, 0) - 屏幕顶部中央
(1, 0) - 屏幕右上角
(0, 0.5) - 屏幕左侧中央
(0.5, 0.5) - 屏幕正中央
(0, 1) - 屏幕左下角

多显示器示例

横向排列显示器
当两个显示器横向排列时:
(0, 0) - 第一个显示器的左上角
(1, 0) - 第一个显示器的右上角/第二个显示器的左上角
(1.5, 0) - 第二个显示器的顶部中央
(2, 0) - 第二个显示器的右上角

纵向排列显示器
当两个显示器纵向排列时:
(0, 0) - 第一个显示器的左上角
(0, 1) - 第一个显示器的左下角/第二个显示器的左上角
(0, 1.5) - 第二个显示器的左侧中央
(0, 2) - 第二个显示器的左下角

2 返回结果

Json
{
    "code": 0,          // 状态码, 0:成功,500:失败,int类型
    "msg": "成功",      // 返回结果, str类型
    "data": {
        "dirId": "05299704c4a89337bd6a37cdb9b95d96"
    }
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

修改浏览器窗口

POST /browser/mdf

1 请求参数

Json
{   
    "workspaceId": 1,                                       // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirId": "dc1e73d4dd954a3a8ca087d53d2e18ce",            // 浏览器窗口id, str类型,必传
    "windowName": "Roxytest",                               // 窗口名称, str类型,非必传
    "coreVersion": "117",                                   // 内核版本,枚举值:138,137,136等, str类型,非必传
    "os": "Windows",                                        // 操作系统, 枚举值:Windows、macOS、Linux、IOS、Android, str类型,非必传,默认Windows
    "osVersion": "11",                                      // 操作系统版本, Windows的枚举值:11、10、8、7; Linux的枚举值:ALL; macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7,Android的枚举值:14,13,12,11,10,9;IOS的枚举值:18.2,18.1,18.0,17.0,16.6,16.5,16.4,16.3,16.2,16.1,16.0,15.7,15.6,15.5,15.4,15.3,15.2,15.1,15.0,14.7,14.6,14.5,14.4,14.3,14.2,14.1,14.0;str类型,非必传,默认取最大值
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",   // userAgent, str类型,非必传
    "cookie": [],                                           // cookie, List类型,非必传
    "searchEngine": "Google",                               // 搜索引擎,枚举值:Google, Microsoft Bing, Yahoo, Yandex, DuckDuckGo, str类型,非必传,默认为Google
    "labelIds": [12,13],                                    // 标签列表id,List类型,非必传,通过标签列表接口【/browser/label】获取
    "windowPlatformList": [{
        "id": 0,                                            // 平台账号id,int类型,非必传,通过平台账号列表接口【/account/list】获取
        "platformUrl": "https://www.tiktok.com/",           // 平台账号URL,str类型,非必传
        "platformUserName": "Roxytest",                     // 平台账号,str类型,非必传
        "platformPassword": "123456",                       // 平台密码,str类型,非必传
        "platformEfa": "2F3CD67B6D",                        // efa,str类型,非必传                                 
        "platformRemarks": "Roxytest"                       // 平台备注,str类型,非必传      
    }],
    "defaultOpenUrl": ["https://www.facebook.com"],         // 存储浏览器标签页,List类型,非必传
    "windowRemark": "Roxytest",                             // 窗口备注, str类型,非必传
    "projectId": 1,                                         // 项目ID, int类型, 非必传,通过团队项目接口【/browser/workspace】获取
    "proxyInfo": {
        "moduleId": 0,                                      // 代理id,int类型,0 为不使用,非必传,通过代理列表接口【/proxy/list】获取
        "proxyMethod": "custom",                            // 代理方式,枚举值:手动填写:custom,选择代理 IP:choose,str类型
        "proxyCategory": "noproxy",                         // 代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5, SSH, str类型,默认为noproxy
        "ipType": "IPV4",                                   // 网络协议, 枚举值:IPV4, IPV6,str类型,非必传,默认为IPV4
        "host": "122.11.11.11",                             // 代理主机,str类型,非必传
        "port": "37746",                                    // 代理端口,str类型,非必传
        "proxyUserName": "roxytest",                        // 代理账号,str类型,非必传
        "proxyPassword": "roxytest",                        // 代理密码,str类型,非必传
        "refreshUrl": "http://refresh-hk.roxybrowser.com",  // 刷新URL,str类型,非必传
        "checkChannel": "IPRust.io"                         // IP查询渠道,枚举值:IPRust.io,IP-API,IP123.in,str类型,非必传
    },
    "fingerInfo": {
        "isLanguageBaseIp": true,                           // 浏览器语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "language": "en-US",                                // 浏览器语言类型为自定义时指定的语言值,str类型,非必传,见附录-语言列表
        "isDisplayLanguageBaseIp": true,                    // 界面语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "displayLanguage": "en-US",                         // 界面语言类型为自定义时指定的语言值,str类型,非必传,见附录-界面语言列表
        "isTimeZone": true,                                 // 时区类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "timeZone": "GMT-12:00 Etc/GMT+12",                 // 时区类型为自定义时指定的时区值, str类型,非必传,见附录-时区列表
        "position": 0,                                      // 地理位置提示类型,询问: 0,允许:1,禁用:2,int类型, 非必传, 默认1
        "isPositionBaseIp": true,                           // 地理位置类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
        "longitude": "376",                                 // 经度值,isPositionBaseIp为false时设置, str类型, 非必传
        "latitude": "165",                                  // 纬度值, isPositionBaseIp为false时设置, str类型, 非必传
        "precisionPos": "600",                              // 精度值(米), isPositionBaseIp为false时设置, str类型, 非必传
        "forbidAudio": true,                                // 网页是否打开声音,开启:true,关闭:false,布尔类型,非必传, 默认true
        "forbidImage": true,                                // 网页是否加载图片,开启:true,关闭:false,布尔类型,非必传, 默认true
        "forbiddenPictureSize": 0,                          // 图片加载大小阈值。当 forbidImage 为 false 时,设置 forbiddenPictureSize = 0 将禁用所有图片加载。默认 0。
        "forbidMedia": true,                                // 网页是否播放视频,开启:true,关闭:false,布尔类型,非必传, 默认true
        "openWidth": "1000",                                // 窗口尺寸,宽度, str类型,非必传,默认 1000
        "openHeight": "1000",                               // 窗口尺寸,高度, str类型,非必传,默认 1000
        "openBookmarks":false,                              // 是否开启书签,true:开启,false:关闭,布尔类型,非必传, 默认false
        "positionSwitch":false,                             // 窗口位置开关,true:自定义,false:全屏,布尔类型,非必传, 默认true
        "windowRatioPosition": "",                          // 指定窗口打开位置, str类型,非必传,默认(0, 0)。使用比例坐标系统,格式为"x,y",取值范围为0到显示器数量。"0,0": 第一个显示器左上角;"0.5,0.5": 第一个显示器中央;"1.5,0": 两显示器横排时,第二显示器顶部中央;"0,1.5": 两显示器纵排时,第二显示器左侧中央
        "isDisplayName": false,                             // 窗口名是否在标题栏显示,显示:true,不显示:false,布尔类型,非必传, 默认false
        "syncBookmark": false,                              // 是否同步书签,true:是,false:否,布尔类型,非必传, 默认false
        "syncHistory": false,                               // 是否同步历史记录,true:是,false:否,布尔类型,非必传, 默认false
        "syncTab": true,                                    // 是否同步标签页,true:是,false:否,布尔类型,非必传, 默认true
        "syncCookie": true,                                 // 是否同步Cookie,true:是,false:否, 布尔类型,非必传, 默认true
        "syncExtensions": false,                            // 是否同步扩展应用数据,true:是,false:否,布尔类型,非必传, 默认false
        "syncPassword": true,                               // 是否同步已保存的用户名密码,true:是,false:否,布尔类型,非必传, 默认true
        "syncIndexedDb": false,                             // 是否同步IndexedDB,true:是,false:否,布尔类型,非必传, 默认false
        "syncLocalStorage": false,                          // 是否同步Local Storage,true:是,false:否,布尔类型,非必传, 默认false
        "clearCacheFile": true,                             // 启动浏览器前是否删除缓存文件,true:是,false:否,布尔类型,非必传, 默认false
        "clearCookie": true,                                // 启动浏览器前是否删除Cookie,true:是,false:否,布尔类型,非必传, 默认false
        "clearLocalStorage": true,                          // 启动浏览器前删除Local Storage,true:是,false:否,布尔类型,非必传, 默认false
        "randomFingerprint": false,                          // 启动浏览时是否随机生成指纹,true:是,false:否,布尔类型,非必传, 默认false
        "forbidSavePassword": true,                         // 网页是否弹出保存密码提示,true:是,false:否,布尔类型,非必传, 默认true
        "stopOpenNet": true,                                // 网络不通是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "stopOpenIP": true,                                 // 出口IP发生变化是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "stopOpenPosition": true,                           // 出口IP对应国家/地区发生变化是否停止打开窗口,true:是,false:否,布尔类型,非必传, 默认false
        "openWorkbench": 1,                                 // 是否打开工作台, 1: 开启,关闭: 0,跟随软件设置: 2,int类型, 非必传, 默认1
        "resolutionType": true,                             // 分辨率,true: 自定义, false: 跟随系统,布尔类型,非必传, 默认false
        "resolutionX": "",                                  // 自定义分辨率时,分辨率宽度值, str类型,见附录-分辨率列表,非必传
        "resolutionY": "",                                  // 自定义分辨率时,分辨率高度值, str类型,见附录-分辨率列表,非必传
        "fontType": false,                                  // 字体指纹,随机:true,跟随系统:false,布尔类型,非必传, 默认false
        "webRTC": 0,                                        // webrtc 替换: 0,真实:1,禁止:2,int类型, 非必传, 默认2
        "webGL": true,                                      // webGL图像, 随机:true,真实:false,布尔类型,非必传, 默认true
        "webGLInfo": true,                                  // webGLInfo开关,自定义:true,真实:false,布尔类型,非必传, 默认true
        "webGLManufacturer": "",                            // webGLInfo为自定义时指定的webGL厂商值, str类型,非必传
        "webGLRender": "",                                  // webGLInfo为自定义时指定的webGL渲染值, str类型,非必传
        "webGpu": "webgl",                                  // webGpu,基于webgl匹配:webgl,真实:real,禁用:block,str类型,非必传,默认值:webgl
        "canvas": true,                                     // canvas,随机:true,真实:false,布尔类型,非必传, 默认true
        "audioContext": true,                               // audioContext值,随机:true,真实:false,布尔类型,非必传, 默认true
        "speechVoices": true,                               // Speech Voices,随机:true,真实:false,布尔类型,非必传, 默认true
        "doNotTrack": true,                                 // doNotTrack,true:开启,false:关闭,布尔类型,非必传, 默认true
        "clientRects": true,                                // ClientRects,随机:true,真实:false,布尔类型,非必传, 默认true
        "deviceInfo": true,                                 // 媒体设备,随机:true,真实:false,布尔类型,非必传, 默认true
        "deviceNameSwitch": true,                           // 设备名称,随机:true,真实:false,布尔类型,非必传, 默认true
        "macInfo": true,                                    // MAC地址,自定义:true,真实:false,布尔类型,非必传, 默认true
        "hardwareConcurrent": "4",                          // 硬件并发数, str类型,非必传
        "deviceMemory": "8",                                // 设备内存, str类型,非必传
        "disableSsl": true,                                 // ssl指纹设置, true: 开启, false: 关闭, 布尔类型,非必传, 默认false
        "disableSslList": [],                               // ssl特性值列表,List格式类型,非必传
        "portScanProtect": true,                            // 端口扫描保护, false: 关闭, true: 开启,布尔类型,非必传, 默认true
        "portScanList": "",                                 // 端口扫描保护开启时的白名单,英文逗号分隔,str类型,非必传
        "useGpu": true,                                     // 使用硬件加速模式,true:是,false:否,布尔类型,非必传, 默认true
        "sandboxPermission": false,                         // 禁用沙盒,true:开启,false:关闭,布尔类型,非必传, 默认false
        "startupParam": "",                                 // 浏览器启动参数, str类型,多个参数以英文分号分隔,非必传
        "openBattery": false,                               // 电池 API 模拟总开关,布尔类型,非必传,默认 false
        "openCharging": false,                              // 开启电池模拟时的充电状态,布尔类型,非必传,默认 false
        "chargingTime": "",                                 // 距离充满的秒数(纯数字字符串,不带单位后缀),str,非必传
        "dischargingTime": "",                              // 距离耗尽的秒数(纯数字字符串,不带单位后缀),str,非必传
        "level": "",                                            // 电量,0–1,str,非必传
        "openNetwork": false,                               // Network Information API 模拟总开关,布尔类型,非必传,默认 false
        "networkType": "wifi",                              // 连接类型:wifi、cellular、ethernet、bluetooth、wimax、other、unknown,str,非必传
        "networkSpeed": "4g",                               // 有效连接类型:slow-2G、2g、3g、4g(对应下行/有效类型;networkType 为 cellular 时,slow-2G 会规范为 2G 作为底层 nettype),str,非必传
        "downloadSpeed": "",                                // 下行速率(Mbps),str,非必传
        "maxDownloadSpeed": "",                             // 最大下行速率(Mbps),str,非必传
        "latency": "",                                      // 往返时延(ms),str 或 number,非必传
        "saveFlowMode": false,                              // 省流 / Save-Data 模式,布尔类型,非必传,默认 false
        "openBluetooth": false,                             // 蓝牙模拟总开关,布尔类型,非必传,默认 false
        "bluetoothAdapter": false,                          // 是否模拟存在蓝牙适配器,布尔类型,非必传,默认 false
        "blockDomainList": "",                             // 网址访问黑名单, 多个域名使用 \n 分割
        "allowDomainList": ""                              // 网址访问白名单, 多个域名使用 \n 分割
    }
}
参数名称必需项
参数类型
默认值描述
dirIdstring--浏览器窗口id
workspaceIdint--团队id
windowNamestring--窗口名称
coreVersionstring最新内核版本,枚举值:135,133,130,125,117,109,默认最新
osstringWindows操作系统, 枚举值:Windows、macOS、Linux、IOS、Android,
osVersionstring11操作系统版本,
Windows的枚举值:11、10、8、7;
Linux的枚举值:ALL;
macOS的枚举值: 15.3.2,15.3.1,15.3,15.2,15.1,15.0.1,15.0,14.7.4,14.7.3,14.7.2,14.7.1,14.7,14.6.1,14.6,14.5,14.4.1,14.4,14.3.1,14.3,14.2.1,14.2,14.1,13.7.4,13.7.3,13.7.2,13.7.1,13.7,
Android的枚举值:14,13,12,11,10,9;
IOS的枚举值:18.2,18.1,18.0,17.0,16.6,16.5,16.4,16.3,16.2,16.1,16.0,15.7,15.6,15.5,15.4,15.3,15.2,15.1,15.0,14.7,14.6,14.5,14.4,14.3,14.2,14.1,14.0
userAgentstringMozilla/5.0 (Windows NT 10.0; Win64; x64)userAgent
cookieboolean--cookie
searchEnginestringGoogle搜索引擎
labelIdsList--标签列表id
defaultOpenUrlList--存储浏览器标签页
windowRemarkstring--窗口备注
projectIdnumber--项目ID
windowPlatformListList--windowPlatformList
proxyInfoobject--proxyInfo
fingerInfoobject--fingerInfo

windowPlatformList:

参数名称必需项参数类型默认值描述
platformUrlstring--平台账号URL
platformUserNamestring--平台账号
platformPasswordstring--平台密码
platformEfastring--efa
platformRemarksstring--平台备注

proxyInfo:

参数名称必需项参数类型默认值描述
proxyMethodstringcustom代理方式,枚举值:自定义:custom
proxyCategorystringnoproxy代理类型,枚举值:noproxy, HTTP, HTTPS, SOCKS5
ipTypestringIPV4网络协议, 枚举值:IPV4, IPV6
hoststring--代理主机
portstring--代理端口
proxyUserNamestring--代理账号
proxyPasswordstring--代理密码
refreshUrlstring--刷新URL
checkChannelstring--IP查询渠道

fingerInfo:

参数名称必需项
参数类型
默认值
描述
isLanguageBaseIpbooleantrue浏览器语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
languagestring--浏览器语言类型为自定义时指定的语言值,str类型,非必传,见 附录-语言列表
isDisplayLanguageBaseIpbooleantrue界面语言类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
displayLanguagestring--界面语言类型为自定义时指定的语言值,str类型,非必传,见 附录-界面语言列表
isTimeZonebooleantrue时区类型,跟随IP匹配:true,自定义:false,布尔类型,非必传, 默认true
timeZonestring--时区类型为自定义时指定的时区值, str类型,非必传,见 附录-时区列表
positionint1地理位置提示类型,询问: 0,允许:1,禁用:2
isPositionBaseIpbooleantrue地理位置类型,跟随IP匹配:true,自定义:false
longitudestring--经度值,isPositionBaseIp为false时设置
latitudestring--纬度值, isPositionBaseIp为false时设置
precisionPosstring--精度值(米), isPositionBaseIp为false时设置
forbidAudiobooleantrue网页是否打开声音,开启:true,关闭:false
forbidImagebooleantrue网页是否加载图片,开启:true,关闭:false
forbiddenPictureSizenumber0当 forbidImage 为 false 时,设置 forbiddenPictureSize = 0 将禁用所有图片加载。
forbidMediabooleantrue网页是否播放视频,开启:true,关闭:false
openWidthstring1000窗口尺寸,宽度
openHeightstring1000窗口尺寸,高度
openBookmarksbooleanfalse是否开启书签,true:开启,false:关闭
positionSwitchbooleantrue窗口位置开关,true:自定义,false:全屏
windowRatioPositionstring0,0windowRatioPosition
isDisplayNamebooleanfalse窗口名是否在标题栏显示,显示:true,不显示:false
syncBookmarkbooleanfalse是否同步书签,true:是,false:否
syncHistorybooleanfalse是否同步历史记录,true:是,false:否
syncTabbooleantrue是否同步标签页,true:是,false:否
syncCookiebooleantrue是否同步Cookie,true:是,false:否
syncExtensionsbooleanfalse是否同步扩展应用数据,true:是,false:否
syncPasswordbooleantrue是否同步已保存的用户名密码,true:是,false:否
syncIndexedDbbooleanfalse是否同步IndexedDB,true:是,false:否
syncLocalStoragebooleanfalse是否同步Local Storage,true:是,false:否
clearCacheFilebooleanfalse启动浏览器前是否删除缓存文件,true:是,false:否
clearCookiebooleanfalse启动浏览器前是否删除Cookie,true:是,false:否
clearLocalStoragebooleanfalse启动浏览器前删除Local Storage,true:是,false:否
randomFingerprintbooleanfalse启动浏览时是否随机生成指纹,true:是,false:否
forbidSavePasswordbooleanfalse网页是否弹出保存密码提示,true:是,false:否
stopOpenNetbooleanfalse网络不通是否停止打开窗口,true:是,false:否
stopOpenIPbooleanfalse出口IP发生变化是否停止打开窗口,true:是,false:否
stopOpenPositionbooleanfalse出口IP对应国家/地区发生变化是否停止打开窗口,true:是,false:否
openWorkbenchint1是否打开工作台, 1: 开启,关闭: 0,跟随软件设置: 2
resolutionTypebooleanfalse分辨率,true: 自定义, false: 跟随系统
resolutionXstring--自定义分辨率时,分辨率宽度值, str类型,见 附录-分辨率列表
resolutionYstring--自定义分辨率时,分辨率高度值, str类型,见 附录-分辨率列表
fontTypebooleanfalse字体指纹,随机:true,跟随系统:false
webRTCint2webrtc 替换: 0,真实:1,禁止:2
webGLbooleantruewebGL图像, 随机:true,真实:false
webGLInfobooleantruewebGLInfo开关,自定义:true,真实:false
webGLManufacturerstring--webGLInfo为自定义时指定的webGL厂商值
webGLRenderstring--webGLInfo为自定义时指定的webGL渲染值
webGpustringwebglwebGpu,基于webgl匹配:webgl,真实:real,禁用:block
canvasbooleantruecanvas,随机:true,真实:false
audioContextbooleantrueaudioContext值,随机:true,真实:false
speechVoicesbooleantrueSpeech Voices,随机:true,真实:false
doNotTrackbooleantruedoNotTrack,true:开启,false:关闭
clientRectsbooleantrueClientRects,随机:true,真实:false
deviceInfobooleantrue媒体设备,随机:true,真实:false
deviceNameSwitchbooleantrue设备名称,随机:true,真实:false
macInfobooleantrueMAC地址,自定义:true,真实:false
hardwareConcurrentstring--硬件并发数
deviceMemorystring--设备内存
disableSslbooleanfalsessl指纹设置, true: 开启, false: 关闭
disableSslListList--ssl特性值列表,List格式类型
portScanProtectbooleantrue端口扫描保护, false: 关闭, true: 开启
portScanListstring--端口扫描保护开启时的白名单,英文逗号分隔
useGpubooleantrue使用硬件加速模式,true:是,false:否
sandboxPermissionbooleanfalse禁用沙盒,true:是,false:否
startupParamstring--浏览器启动参数
openBatterybooleanfalse电池 API 模拟总开关
openChargingbooleanfalse开启电池模拟时的充电状态
chargingTimestring--距离充满的秒数(纯数字字符串,不带单位后缀)
dischargingTimestring--距离耗尽的秒数(纯数字字符串,不带单位后缀)
levelstring--电量,0–1
openNetworkbooleanfalseNetwork Information API 模拟总开关
networkTypestring--连接类型:wifi、cellular、ethernet、bluetooth、wimax、other、unknown
networkSpeedstring--有效类型:slow-2G、2g、3g、4g;当 networkType 为 cellular 时,slow-2G 会规范为 2G 作为底层 nettype
downloadSpeedstring--下行速率(Mbps)
maxDownloadSpeedstring--最大下行速率(Mbps)
latencystring / number--往返时延(ms)
saveFlowModebooleanfalse省流 / Save-Data 模式
openBluetoothbooleanfalse蓝牙模拟总开关
bluetoothAdapterbooleanfalse是否模拟存在蓝牙适配器
blockDomainListstring--网址访问黑名单,多个域名使用 \n 分割
allowDomainListstring--网址访问白名单,多个域名使用 \n 分割

windowRatioPosition: 用于指定窗口在单/多显示器环境中的精确位置。该参数采用比例坐标系统,使您能够轻松定位窗口,无需考虑实际屏幕分辨率。

坐标系统
参数格式:(x, y),其中:
x 表示水平位置,取值范围为 0 到显示器总数
y 表示垂直位置,取值范围为 0 到显示器总数

单显示器示例

在单显示器环境中,坐标系统如下图所示:

windowRatioPosition 参数

(0, 0) - 屏幕左上角
(0.5, 0) - 屏幕顶部中央
(1, 0) - 屏幕右上角
(0, 0.5) - 屏幕左侧中央
(0.5, 0.5) - 屏幕正中央
(0, 1) - 屏幕左下角

多显示器示例

横向排列显示器
当两个显示器横向排列时:
(0, 0) - 第一个显示器的左上角
(1, 0) - 第一个显示器的右上角/第二个显示器的左上角
(1.5, 0) - 第二个显示器的顶部中央
(2, 0) - 第二个显示器的右上角

纵向排列显示器
当两个显示器纵向排列时:
(0, 0) - 第一个显示器的左上角
(0, 1) - 第一个显示器的左下角/第二个显示器的左上角
(0, 1.5) - 第二个显示器的左侧中央
(0, 2) - 第二个显示器的左下角

2 返回结果

Json
{
    "code": 0,          // 状态码, 0:成功,500:失败,int类型
    "msg": "成功",      // 返回结果, str类型
    "data": {
        "dirId": "05299704c4a89337bd6a37cdb9b95d96"
    }
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

删除浏览器窗口(支持批量)

POST /browser/delete

1 请求参数

Json
{   
    "workspaceId": 1,                              // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirIds": ["dc1ed4d","2e18ce","yy67yegk"],      // 浏览器窗口id,List类型,必传
    "isSoftDelete": false  // 软删除,回收站
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdsList--浏览器窗口id

2 返回结果

Json
{
    "code": 0,      // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"   // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

打开浏览器窗口

POST /browser/open

1 请求参数

Json
{   
    "workspaceId": 1,                                                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirId": "dc1e73d4dd954a3a8ca087d53d2e18ce",                        // 浏览器窗口id, str类型,必传
    "args": ["--remote-allow-origins=*", "--disable-audio-output"],      // 浏览器启动参数,List类型,非必传
    "forceOpen": false,  // 是否强制打开
    "headless": false    // 是否以无头模式打开
}

注意:如下启动参数为系统内置参数,在修改时不会生效:
--disable-background-mode           
--disable-popup-blocking          
--no-first-run                      
--no-default-browser-check          
--remote-debugging-port=0           
--use-mock-keychain                 
--user-data-dir                     
--window-position=0,0               
--window-size=1000,1000             
--no-sandbox                        
--disable-setuid-sandbox  
          
详细参数说明可打开如下地址查看:https://peter.sh/experiments/chromium-command-line-switches/
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdstring--浏览器窗口id
argsList--浏览器启动参数

2 返回结果

Json
 {
    "code": 0,                                                                              // 状态码, 0:成功,500:失败,int类型
    "data": {       
        "ws": "ws://127.0.0.1:52314/devtools/browser/857b2d0d-aae6-4852-ab3c-0784f0b2c1fb", // 用于自动化工具的ws接口
        "http": "127.0.0.1:52314",                                                          // 用于自动化工具的http接口
        "coreVersion": "112",                                                               // 内核版本
        "driver": "C:\\Users\\lumibrowser\\AppData\\Roaming\\lumibrowser\\chrome-bin\\125\\chromedriver.exe",  // 用于自动化工具的webdriver
        "sortNum": 3474,                                                                    // 窗口排序号
        "windowName": "",                                                                   // 窗口名称
        "windowRemark": "",                                                                 // 窗口备注
        "pid":1111                                                                          // 进程id
    },
    "msg": "成功"                                                                           // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
wsstring用于自动化工具的ws接口
httpstring用于自动化工具的http接口
coreVersionstring内核版本
driverstring用于自动化工具的webdriver
sortNumint窗口排序号
windowNamestring窗口名称
windowRemarkstring窗口备注
pidint进程id
msgstring返回结果

关闭浏览器窗口

POST /browser/close

1 请求参数

Json
{
    "dirId": "dc1e73d4dd954a3a8ca087d53d2e18ce"     // 浏览器窗口id, str类型,必传
}
参数名称必需项参数类型默认值描述
dirIdstring--浏览器窗口id

2 返回结果

Json
{
    "code": 0,          // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"       // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

窗口随机指纹

POST /browser/random_env

1 请求参数

Json
{   "workspaceId": 1,                                      // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirId": "dc1e73d4dd954a3a8ca087d53d2e18ce"            // 浏览器窗口id, str类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdstring--浏览器窗口id

2 返回结果

Json
{
    "code": 0,      // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"   // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

清空窗口本地缓存

POST /browser/clear_local_cache

1 请求参数

Json
{
    "dirIds": ["dc1ed4d","2e18ce","yy67yegk"],    // 浏览器窗口id,List类型,必传
    "type": "all",                                // 清除类型,str类型,非必传,默认 all。partial:清除本地缓存(保留插件);all:清除本地缓存;cloud:清除本地及云端全部缓存
    "workspaceId": 1                              // 团队id,int类型,type 为 cloud 时必传,通过团队项目接口【/browser/workspace】获取
}
参数名称必需项参数类型默认值描述
dirIdsList--浏览器窗口id
typestringall清除类型,枚举值:partial(清除扩展数据以外的所有本地缓存文件,登录状态不会失效,窗口指纹信息、IP 不会被清理)、all(清除所有本地缓存文件,登录状态不会失效,窗口指纹信息、IP 不会被清理)、cloud(清除本地及云端的 Cookie 和全部缓存,同步的标签页和浏览器相关登录状态会全部失效)
workspaceIdtype 为 cloud 时必传int--团队id

2 返回结果

Json
{
    "code": 0,          // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"       // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

清空窗口服务器缓存

POST /browser/clear_server_cache

1 请求参数

Json
{   
    "workspaceId": 1,                              // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "dirIds": ["dc1ed4d","2e18ce","yy67yegk"]      // 浏览器窗口id,List类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
dirIdsList--浏览器窗口id

2 返回结果

Json
{
    "code": 0,      // 状态码, 0:成功,500:失败,int类型
    "msg": "成功"   // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

已打开窗口进程信息

GET /browser/connection_info

1 请求参数

Json
{   
    "dirIds": "dc1e73d4dd954a,157d4e73ae4f1ac8"                       // 浏览器窗口id列表, str类型, 多个以英文逗号分隔,非必传
}
参数名称必需项参数类型默认值描述
dirIdsstring--浏览器窗口id列表

2 返回结果

Json
{
    "code": 0,                                                                                  // 状态码, 0:成功,500:失败,int类型
    "data": [
        {       
            "ws": "ws://127.0.0.1:52314/devtools/browser/857b2d0d-aae6-4852-ab3c-0784f0b2c1fb", // 用于自动化工具的ws接口
            "http": "127.0.0.1:52314",                                                          // 用于自动化工具的http接口
            "coreVersion": "112",                                                               // 内核版本
            "driver": "C:\\Users\\lumibrowser\\AppData\\Roaming\\lumibrowser\\chrome-bin\\125\\chromedriver.exe",  // 用于自动化工具的webdriver
            "sortNum": 3474,                                                                    // 窗口排序号
            "windowName": "",                                                                   // 窗口名称
            "windowRemark": "",                                                                 // 窗口备注
            "pid":1111,                                                                         // 进程id
            "dirId": "doc64hdyy7e"                                                              // 窗口Id
        },
        {       
            "ws": "ws://127.0.0.1:53325/devtools/browser/857b2d0d-aae6-4852-ab3c-0784f0b2c1fb",
            "http": "127.0.0.1:53325",
            "coreVersion": "112", 
            "driver": "C:\\Users\\lumibrowser\\AppData\\Roaming\\lumibrowser\\chrome-bin\\125\\chromedriver.exe",
            "sortNum": 3474, 
            "windowName": "", 
            "windowRemark": "",  
            "pid":2222, 
            "dirId": "doc64hdyy7e"
        }
    ],
    "msg": "成功"
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
wsstring用于自动化工具的ws接口
httpstring用于自动化工具的http接口
coreVersionstring内核版本
driverstring用于自动化工具的webdriver
sortNumint窗口排序号
windowNamestring窗口名称
windowRemarkstring窗口备注
pidint进程id
dirIdstring窗口Id

代理 IP 接口

获取检测渠道

GET /proxy/detect_channel

1 请求参数

Text

2 返回结果

Json
{
    "code": 0,      // 状态码, 0:成功,500:失败,int类型
    "data":[
        {
            "label": "",    // str类型
            "type": "",     // str类型
            "value": ""     // str类型
        }
    ],
    "msg": "成功"   // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
labelstring渠道标签
typestring渠道类型
valuestring渠道值
msgstring返回结果

获取代理 IP 列表

GET /proxy/list

1 请求参数

Json
{   
    "workspaceId": 1,    // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "page_index": 1,     // 分页索引, int类型, 非必传, 默认1
    "page_size": 15      // 分页条数, int类型, 非必传, 默认15
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
page_indexint1分页索引
page_sizeint15分页条数

2 返回结果

Json
{
    "code": 0,                                // 状态码, 0:成功,500:失败,int类型
    "data": {
        "total": 1,                           // 总条数
        "rows": [
            {
                "id": 1,                      // 代理库 id,int
                "checkStatus": 0,             // 检测状态,int
                "checkChannel": "",           // 检测渠道地址,str
                "checkChannelValue": "",      // 检测渠道值,str
                "lastIp": "",                 // 最后 IP,str
                "lastCountry": "",            // 最后国家,str
                "lastState": "",              // 最后州,str
                "lastCity": "",               // 最后城市,str
                "ipType": "",                 // IP 类型,str
                "protocol": "",               // 协议,str
                "host": "",                   // 主机,str
                "port": "",                   // 端口,str
                "proxyPassword": "",          // 代理密码,str
                "proxyUserName": "",          // 代理用户名,str
                "refreshUrl": "",             // 刷新 URL,str
                "remark": "",                 // 备注,str
                "checkTime": "",              // 检测时间,str
                "createTime": "",             // 创建时间,str
                "updateTime": "",             // 更新时间,str
            }
        ] 
    },
    "msg": "成功"                                                               // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果
totalint总条数
idint代理库id
checkStatusint检测状态
checkChannelstring检测渠道地址
checkChannelValuestring检测渠道值
lastIpstring最后 IP
lastCountrystring最后国家
lastStatestring最后州
lastCitystring最后城市
ipTypestringIP 类型
protocolstring协议
hostint主机
portstring端口
proxyPasswordstring代理密码
proxyUserNamestring代理用户名
refreshUrlstring刷新 URL
remarkstring备注
checkTimestring检测时间
createTimestring创建时间
updateTimestring更新时间

创建代理 IP

POST /proxy/create

1 请求参数

Json
{   
    "workspaceId": 1,               // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
	"checkChannel": "",             // 查询渠道,必传,通过团队项目接口【/proxy/detect_channel】获取
    "ipType": "IPV4",               // 网络协议,IPV4, IPV6,必传   
    "protocol": "SOCKS5",           // 代理协议,HTTP, HTTPS, SOCKS5,必传
    "host": "",                     // 代理主机 str, 必传
    "port": "",                     // 代理端口 str, 必传
    "proxyUserName": "",            // 代理账号 str
    "proxyPassword": "",            // 代理密码 str
    "refreshUrl": "",               // 刷新URL str
    "remark":"",                    // 备注
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
checkChannelstring--查询渠道
ipTypestring--网络协议
protocolstring--代理协议
hoststring--代理主机
portstring--代理端口
proxyUserNamestring--代理账号
proxyPasswordstring--代理密码
refreshUrlstring--刷新URL
remarkstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, int
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

批量创建代理 IP

POST /proxy/batch_create

1 请求参数

Json
{
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "checkChannel": "",                 // 查询渠道,必传,通过团队项目接口【/proxy/detect_channel】获取
    "proxyList":[
        {   
            "checkChannel": "",             // 查询渠道,不传使用外层查询渠道
            "ipType": "IPV4",               // 网络协议,IPV4, IPV6,必传   
            "protocol": "SOCKS5",           // 代理协议,HTTP, HTTPS, SOCKS5,必传
            "host": "",                     // 代理主机 str, 必传
            "port": "",                     // 代理端口 str, 必传
            "proxyUserName": "",            // 代理账号 str
            "proxyPassword": "",            // 代理密码 str
            "refreshUrl": "",               // 刷新URL str
            "remark":"",                    // 备注
        }
    ]
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
checkChannelstring--查询渠道
proxyListList--proxyList

proxyList:

参数名称必需项参数类型默认值描述
checkChannelstring--查询渠道
ipTypestring--网络协议
protocolstring--代理协议
hoststring--代理主机
portstring--代理端口
proxyUserNamestring--代理账号
proxyPasswordstring--代理密码
refreshUrlstring--刷新URL
remarkstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, int
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

检测代理 IP

POST /proxy/detect

1 请求参数

Json
{   
    "workspaceId": 1,               // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "id": 1,                        // 代理 id,int类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队 id
idint--代理 id

2 返回结果

Json
{
    "code": 0,      // 状态码, int
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

修改代理 IP

POST /proxy/modify

1 请求参数

Json
{   
    "workspaceId": 1,               // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "id": 1,                        // 代理 id,int类型,必传
    "checkChannel": "",             // 查询渠道,必传,通过团队项目接口【/proxy/detect_channel】获取
    "ipType": "IPV4",               // 网络协议,IPV4, IPV6,必传   
    "protocol": "SOCKS5",           // 代理协议,HTTP, HTTPS, SOCKS5,必传
    "host": "",                     // 代理主机 str, 必传
    "port": "",                     // 代理端口 str, 必传
    "proxyUserName": "",            // 代理账号 str
    "proxyPassword": "",            // 代理密码 str
    "refreshUrl": "",               // 刷新URL str
    "remark":"",                    // 备注
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队 id
idint--代理 id
checkChannelstring--查询渠道
ipTypestring--网络协议
protocolstring--代理协议
hoststring--代理主机
portstring--代理端口
proxyUserNamestring--代理账号
proxyPasswordstring--代理密码
refreshUrlstring--刷新URL
remarkstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, int
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

删除代理 IP(支持批量)

POST /proxy/delete

1 请求参数

Json
{   
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "ids": [],                          // 平台账号 id,List类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队 id
idList--代理 id

2 返回结果

Json
{
    "code": 0,      // 状态码, intd
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

获取已购代理 IP 列表(v3.7.0 +)

GET /proxy/bought_list

1 请求参数

Json
{   
    "workspaceId": 1,    // 团队 id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "page_index": 1,     // 分页索引,int类型,非必传,默认1
    "page_size": 15,     // 分页条数,int类型,非必传,默认15
    "type":0             // 查询类型,int类型,非必传,默认0,0:查询所有,1:查询可用,
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id,通过团队项目接口【/browser/workspace】获取
page_indexint1分页索引
page_sizeint15分页条数
typeint0查询类型,0:查询所有,1:查询可用

2 返回结果

Json
{
    "code": 0,                                // 状态码, 0:成功,500:失败,int类型
    "data": {
        "total": 1,                           // 总条数
        "rows": [
            {
                "id": 1,                      // 已购代理 IP id
                "orderNo": "",                // 订单号
                "checkStatus": 1,             // 检测状态
                "proxyCheckChannel": "",      // 检测渠道地址
                "checkChannelValue": "",      // 检测渠道值
                "lastIp": "",                 // 最后 IP
                "lastCountry": "",            // 最后国家
                "lastState": "",              // 最后州
                "lastCity": "",               // 最后城市
                "proxyProviderName": "",      // 代理提供商名称
                "providerType": "",           // 代理提供商类型
                "ipType": "",                 // IP 类型
                "protocol": "",               // 协议
                "host": "",                   // 主机
                "port": "",                   // 端口
                "proxyUserName": "",          // 代理用户名
                "proxyPassword": "",          // 代理密码
                "remark": "",                 // 备注
                "checkTime": "",              // 检测时间
                "createTime": "",             // 创建时间
                "updateTime": "",             // 更新时间
                "expireDate": "",             // 过期时间
            }
        ] 
    },
    "msg": "成功"                                                               // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果
totalint总条数
idint已购代理 IP id
orderNostring订单号
checkStatusint检测状态
proxyCheckChannelstring检测渠道地址
checkChannelValuestring检测渠道值
lastIpstring最后 IP
lastCountrystring最后国家
lastStatestring最后州
lastCitystring最后城市
proxyProviderNamestring代理提供商名称
providerTypestring代理提供商类型
ipTypestringIP 类型
protocolstring协议
hoststring主机
portstring端口
proxyUserNamestring代理用户名
proxyPasswordstring代理密码
remarkstring备注
checkTimestring检测时间
createTimestring创建时间
updateTimestring更新时间
expireDatestring过期时间

平台账号接口

获取平台账号列表

GET /account/list

1 请求参数

Json
{   
    "workspaceId": 1,       // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "page_index": 1,        // 分页索引, int类型, 非必传, 默认1
    "page_size": 15        // 分页条数, int类型, 非必传, 默认15
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
page_indexint1分页索引
page_sizeint15分页条数

2 返回结果

Json
{
    "code": 0,                                                                  // 状态码, 0:成功,500:失败,int类型
    "data": {
        "total": 1,                                                             // 总条数
        "rows": [
            {
                "id": 3,                                                        // 账号库id
                "platformUrl": "https://www.tiktok.com/",                       // 平台账号url
                "platformUserName": "Roxytest",                                 // 账号库用户名
                "platformPassword": "123456",                                   // 账号库密码
                "platformEfa": "2F3CD67B6D",                                    // 账号库Efa
                "platformCookies": [{"name": "1","value": "2","domain": "3"}],  // 账号库Cookies
                "platformRemarks": "Roxytest",                                  // 平台备注
                "createTime": "2024-10-23 15:45:46",                            // 创建时间
                "updateTime": "2024-10-23 15:45:46"                             // 修改时间
            }
        ] 
    },
    "msg": "成功"                                                               // 返回结果, str类型
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果
totalint总条数
idint账号库id
platformUrlstring平台账号url
platformUserNamestring账号库用户名
platformPasswordstring账号库密码
platformEfastring账号库Efa
platformCookiesobject账号库Cookies
platformRemarksstring平台备注
createTimestring创建时间
updateTimestring修改时间

创建平台账号

POST /account/create

1 请求参数

Json
{   
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "platformUrl":"https://www.x.com/", // 平台 URL,str类型,必传
    "platformUserName":"",              // 平台账号,str类型
    "platformPassword":"",              // 平台密码,str类型
    "platformEfa":"",                   // 2FA密钥,str类型
    "platformRemarks":""                // 备注,str类型
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
platformUrlstring--平台 URL
platformUserNamestring--平台账号
platformPasswordstring--平台密码
platformEfastring--2FA
platformRemarksstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, intd
    "data":{
        "platform_id":0 //平台 ID
    },
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
platform_idint平台账号 ID
msgstring返回结果

批量创建平台账号

POST /account/batch_create

1 请求参数

Json
{
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "accountList":[
        {   
            "platformUrl":"https://www.x.com/", // 平台 URL,str类型,必传
            "platformUserName":"",              // 平台账号,str类型
            "platformPassword":"",              // 平台密码,str类型
            "platformEfa":"",                   // 2FA密钥,str类型
            "platformRemarks":""                // 备注,str类型
        }
    ]
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队id
accountListList--accountList

accountList:

参数名称必需项参数类型默认值描述
platformUrlstring--平台 URL
platformUserNamestring--平台账号
platformPasswordstring--平台密码
platformEfastring--2FA
platformRemarksstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, intd
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

修改平台账号

POST /account/modify

1 请求参数

Json
{   
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "id": 1,                            // 平台账号 id,int类型,必传
    "platformUrl":"https://www.x.com/", // 平台 URL,str类型,必传
    "platformUserName":"",              // 平台账号,str类型
    "platformPassword":"",              // 平台密码,str类型
    "platformEfa":"",                   // 2FA密钥,str类型
    "platformRemarks":""                // 备注,str类型
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队 id
idint--平台账号 id
platformUrlstring--平台 URL
platformUserNamestring--平台账号
platformPasswordstring--平台密码
platformEfastring--2FA
platformRemarksstring--备注

2 返回结果

Json
{
    "code": 0,      // 状态码, intd
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

删除平台账号(支持批量)

POST /account/delete

1 请求参数

Json
{   
    "workspaceId": 1,                   // 团队id,int类型,必传,通过团队项目接口【/browser/workspace】获取
    "ids": [],                          // 平台账号 id,List类型,必传
}
参数名称必需项参数类型默认值描述
workspaceIdint--团队 id
idList--平台账号 id

2 返回结果

Json
{
    "code": 0,      // 状态码, intd
    "msg": "成功"    // 返回结果, str
}
字段名称字段类型描述
codeint状态码, 0:成功,500:失败
msgstring返回结果

API接入代码示例

Python-代码调用示例

1、接口调用示例

Python
import requests
import json
import time

class RoxyClient:
    '''
    :param port: api服务的端口号
    :param token: api服务的token
    '''
    def __init__(self,port:int,token:str) -> None:
        self.port = port 
        self.host = "127.0.0.1"
        self.token = token
        self.url = f"http://{self.host}:{self.port}"

    def _build_headers(self):
        return {"Content-Type": "application/json","token":self.token}
    
    def _post(self,path,data = None):
        return requests.post(self.url + path,json=data,headers=self._build_headers())
    
    def _get(self,path,data = None):
        return requests.get(self.url + path,params=data,headers=self._build_headers())

    '''
    健康检查,用于检查API服务是否正常运行
    '''
    def health(self):
        return self._get("/health").json()
    
    '''
    获取团队项目列表,用于获取已拥有的团队和项目列表
    :param page_index,page_size 分页参数
    '''
    def workspace_project(self):
        return self._get("/browser/workspace").json()

    '''
    获取账号列表,用于获取已配置的平台账号
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的平台账号,通过workspace_project方法获取
    :param accountId: 账号库id, 选填
    :param page_index,page_size 分页参数
    '''
    def account(self,workspaceId:int,accountId:int = 0,page_index:int = 1,page_size:int = 15):
        return self._get("/browser/account",{"workspaceId":workspaceId,"accountId":accountId,"page_index":page_index,"page_size":page_size}).json()
    '''
    获取标签列表,用于获取已配置的标签信息
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的标签,通过workspace_project方法获取
    '''
    def label(self,workspaceId:int):
        return self._get("/browser/label",{"workspaceId":workspaceId}).json()
    '''
    获取窗口列表
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的窗口列表,通过workspace_project方法获取
    :param dirId: 窗口id, 选填;如果填了就只查询这个窗口的信息
    :param page_index,page_size 分页参数
    :res 返回值参考文档
    '''
    def browser_list(self,workspaceId:int,sortNums:str = "",page_index:int = 1,page_size:int = 15):
        return self._get("/browser/list_v3",{"workspaceId":workspaceId,"sortNums":sortNums,"page_index":page_index,"page_size":page_size}).json()
    
    '''
    获取浏览器窗口明细
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的窗口明细,通过workspace_project方法获取
    :param dirId: 窗口id, 必填,指定要获取的窗口
    :res 返回值参考文档
    '''
    def browser_detail(self, workspaceId: int, dirId: str):
        return self._get("/browser/detail", {"workspaceId": workspaceId, "dirId": dirId}).json()

    '''
    创建窗口
    :param data: 创建窗口需要传的参数,参考文档说明,其中workspaceId为必传,通过workspace_project方法获取
    :res 返回值参考文档
    '''
    def browser_create(self,data:dict = None):
        return self._post("/browser/create",data).json()

    '''
    修改窗口
    :param data: 修改窗口需要传的参数,参考文档说明,其中workspaceId和dirId为必传,workspaceId通过workspace_project方法获取
    :res 返回值参考文档
    '''
    def browser_mdf(self,data:dict):
        return self._post("/browser/mdf",data).json()
    
    '''
    删除窗口
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirIds: 窗口id列表, 必填,指定要删除的浏览器窗口列表
    :res 返回值参考文档
    '''
    def browser_delete(self,workspaceId:int,dirIds:list):
        return self._post("/browser/delete",{"workspaceId":workspaceId,"dirIds": dirIds}).json()
    
    '''
    打开窗口
    :param dirId: 需要打开的窗口ID,必填
    :param args: 指定浏览器启动参数,选填
    :res 返回值参考文档
    '''
    def browser_open(self,dirId:str,args=[]):
        return self._post("/browser/open",{"dirId":dirId,"args": args}).json()
        
    '''
    关闭窗口
    :param dirId: 需要关闭的窗口ID,必填
    :res 返回值参考文档
    '''
    def browser_close(self,dirId:str):
        return self._post("/browser/close",{"dirId":dirId}).json()

    '''
    窗口随机指纹
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirId: 窗口id, 必填,指定需要随机指纹的窗口
    :res 返回值参考文档
    '''
    def browser_random_env(self,workspaceId:int,dirId:str):
        return self._post("/browser/random_env",{"workspaceId": workspaceId,"dirId":dirId}).json()
    
    '''
    清空窗口本地缓存
    :param dirIds: 窗口id列表, 必填,指定要清空缓存的窗口列表
    :param type: 清除类型,选填,默认 all。partial:清除本地缓存(保留插件);all:清除本地缓存;cloud:清除本地及云端全部缓存
    :param workspaceId: 团队id, type 为 cloud 时必填,通过workspace_project方法获取
    :res 返回值参考文档
    '''
    def browser_local_cache(self,dirIds:list,type:str="all",workspaceId:int=None):
        data = {"dirIds":dirIds,"type":type}
        if workspaceId is not None:
            data["workspaceId"] = workspaceId
        return self._post("/browser/clear_local_cache",data).json()
    
    '''
    清空窗口服务器缓存
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirIds: 窗口id列表, 必填,指定要清空缓存的窗口列表
    :res 返回值参考文档
    '''
    def browser_server_cache(self,workspaceId:int,dirIds:list):
        return self._post("/browser/clear_server_cache",{"workspaceId": workspaceId,"dirIds":dirIds}).json()
    
    '''
    获取已打开的浏览器信息
    :param dirIds: 需要查询的窗口ID,选填
    :res 返回值参考文档
    '''
    def browser_connection_info(self,dirIds=[]):
        return self._get("/browser/connection_info",{"dirIds":dirIds}).json()

if __name__ == "__main__":
    client = RoxyClient(port=50000,token="d1f497a404d6854880773e5c3cd9ca25")
    #print(client.health())
    print(client.workspace_project())
    #print(client.account(workspaceId=10))
    #print(client.browser_list(workspaceId=10,sortNums="1,2"))
    '''
    data = {
        "workspaceId": 10,
        "windowName":"启动时随机指纹",
        "coreVersion":"117",
        "os":"Windows",
        "osVersion": "11",
        "windowRemark":"备注",
        "proxyInfo":{
            "proxyMethod":"custom",
            "proxyCategory":"SOCKS5",
            "ipType":"IPV4",
            "protocol":"SOCKS5",
            "host":"xxx",
            "port":"1200",
            "proxyUserName":"xxx",
            "proxyPassword":"xxx"
        },
        "fingerInfo":{
            "randomFingerprint":False,
            "portScanProtect":False
        }
    }
    print(client.browser_create(data))
    
    data = {
        "workspaceId": 10,
        "dirId":"ac4bd731074a6ef3bbe1e8f4f6667749",
        "windowName":"修改窗口",
        "coreVersion":"109",
        "os":"macOS",
        "proxyInfo":{
            "port":"1000"
        }
    }
    print(client.browser_mdf(data))
    
    '''
    #print(client.browser_delete(workspaceId=10,dirIds=["ac4bd731074a6ef3bbe1e8f4f6667749"]))
    print(client.browser_open(dirId="ac4bd731074a6ef3bbe1e8f4f6667749"))
    #print(client.browser_close(dirId="ac4bd731074a6ef3bbe1e8f4f6667749"))
    #print(client.browser_random_env(workspaceId=10,dirId="ac4bd731074a6ef3bbe1e8f4f6667749"))
    #print(client.browser_local_cache(dirIds=["ac4bd731074a6ef3bbe1e8f4f6667749"]))
    #print(client.browser_server_cache(workspaceId=10,dirIds=["ac4bd731074a6ef3bbe1e8f4f6667749"]))
    print(client.browser_connection_info())

2、selenium自动化运行示例

Python
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.chrome.service import Service
import RoxyClient

if __name__ == "__main__":
    brwoser_id = "8ba009cbbedf192f34817574c81c9454"
    # 初始化客户端
    client = RoxyClient(port=50000,token="d1f491a404druyt54880943e5c3cd9ca25")
    # 打开浏览器
    rsp = client.browser_open(brwoser_id)
    if rsp.get("code") != 0:
        print("浏览器打开失败:",rsp)
        exit(0)
    # 获取selenium的连接信息
    debuggerAddress = rsp.get("data").get("http")
    driverPath = rsp.get("data").get("driver")
    print(f"浏览器打开成功,debuggerAddress:{debuggerAddress},driverPath:{driverPath}")

    # selenium 连接代码
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option("debuggerAddress", debuggerAddress)

    chrome_service = Service(driverPath)
    driver = webdriver.Chrome(service=chrome_service, options=chrome_options)

    driver.get('https://ip123.in/')
    print(driver.title)

    #client.browser_close(brwoser_id)

Nodejs-代码调用示例

1、接口列表:roxy_api.js

JavaScript
const fetch = require('node-fetch');

class RoxyClient {
    constructor(port, token)  {
        this.port = port;
        this.token = token;
        this.host = '127.0.0.1';
        this.url = "http://" + this.host + ":" + this.port
    }
    _build_headers() {
        return {"Content-Type": "application/json","token":this.token}
    }
    async _post(path,data) {
        const response = await fetch(`http://${this.host}:${this.port}${path}`, {
            method: 'post',
            body: JSON.stringify(data),
            headers: this._build_headers(),
            timeout:10000
        });
        return response.json()
    }

    async _get(path,data) {
    
        let parmas = ""
        if (data) {
            for (var k in data) {
                let v = data[k]
                if (parmas == "") {
                    parmas = `${k}=${v}`
                } else {
                    parmas = `${parmas}&${k}=${v}`
                }
            }
        }
        let base_url = `http://${this.host}:${this.port}${path}`
        // console.log(base_url)
        const response = await fetch(parmas==""?base_url:`${base_url}?${parmas}`, {
            headers: this._build_headers(),
            timeout:10000});
        return await response.json();
        
    }

    /*
    健康检查,用于检查API服务是否正常运行
    */
    health() {
        return this._get("/health")
    }
    
    /*
    获取团队项目列表,用于获取已拥有的团队和项目列表
    :param page_index,page_size 分页参数
    */
    workspace_project(self) {
        return this._get("/browser/workspace")
    }
    
    /*
    获取账号列表,用于获取已配置的平台账号
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的平台账号,通过workspace_project方法获取
    :param accountId: 账号库id, 选填
    :param page_index,page_size 分页参数
    */
    account(self,workspaceId,accountId = 0,page_index = 1,page_size = 15) {
        return self._get("/browser/account",{"workspaceId":workspaceId,"accountId":accountId,"page_index":page_index,"page_size":page_size})
    }
    /*
    获取标签列表,用于获取已配置的标签信息
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的标签,通过workspace_project方法获取
    */
    label(self,workspaceId) {
        return self._get("/browser/label",{"workspaceId":workspaceId})
    }
    /*
    获取窗口列表
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的窗口列表,通过workspace_project方法获取
    :param dirId: 窗口id, 选填;如果填了就只查询这个窗口的信息
    :param page_index,page_size 分页参数
    :res 返回值参考文档
    */
    browser_list(workspaceId,sortNums = "",page_index = 1,page_size = 15) {
        return this._get("/browser/list_v3",{"workspaceId":workspaceId,"sortNums":sortNums,"page_index":page_index,"page_size":page_size})
    }
    
    /*
    获取浏览器窗口明细
    :param workspaceId: 团队id, 必填,指定要获取哪个团队下的窗口明细,通过workspace_project方法获取
    :param dirId: 窗口id, 必填,指定要获取的窗口
    :res 返回值参考文档
    */
    browser_detail(workspaceId, dirId) {
        return this._get("/browser/detail", {"workspaceId": workspaceId, "dirId": dirId})
    }

    /*
    创建窗口
    :param data: 创建窗口需要传的参数,参考文档说明,其中workspaceId为必传,通过workspace_project方法获取
    :res 返回值参考文档
    */
    browser_create(data = {}) {
        return this._post("/browser/create",data)
    }

    /*
    修改窗口
    :param data: 修改窗口需要传的参数,参考文档说明,其中workspaceId和dirId为必传,workspaceId通过workspace_project方法获取
    :res 返回值参考文档
    */
    browser_mdf(data = {}) {
        return this._post("/browser/mdf",data)
    }

    /*
    删除窗口
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirIds: 窗口id列表, 必填,指定要删除的浏览器窗口列表
    :res 返回值参考文档
    */
    browser_delete(workspaceId,dirid) {
        return this._post("/browser/delete",{"workspaceId":workspaceId,"dirIds":[dirid]})
    }

    /*
    打开窗口
    :param dirId: 需要打开的窗口ID,必填
    :param args: 指定浏览器启动参数,选填
    :res 返回值参考文档
    */
    browser_open(dirId,args=[]) {
        return this._post("/browser/open",{"dirId":dirId,"args": args})
    }

    /*
    关闭窗口
    :param dirId: 需要关闭的窗口ID,必填
    :res 返回值参考文档
    */
    browser_close(dirId) {
        return this._post("/browser/close",{"dirId":dirId})
    }

    /*
    清空窗口本地缓存
    :param dirIds: 窗口id列表, 必填,指定要清空缓存的窗口列表
    :param type: 清除类型,选填,默认 all。partial:清除本地缓存(保留插件);all:清除本地缓存;cloud:清除本地及云端全部缓存
    :param workspaceId: 团队id, type 为 cloud 时必填,通过workspace_project方法获取
    :res 返回值参考文档
    */
    browser_clear_local_cache(dirIds, type = 'all', workspaceId = null) {
        const data = {"dirIds": dirIds, "type": type}
        if (workspaceId !== null) {
            data.workspaceId = workspaceId
        }
        return this._post("/browser/clear_local_cache", data)
    }
    
    /*
    清空窗口服务器缓存
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirIds: 窗口id列表, 必填,指定要清空缓存的窗口列表
    :res 返回值参考文档
    */
    browser_clear_server_cache(workspaceId,dirid) {
        return this._post("/browser/clear_server_cache",{"workspaceId": workspaceId,"dirIds":[dirid]})
    }

    /*
    窗口随机指纹
    :param workspaceId: 团队id, 必填,指定窗口所在的团队,通过workspace_project方法获取
    :param dirId: 窗口id, 必填,指定需要随机指纹的窗口
    :res 返回值参考文档
    */
    browser_random_env(workspaceId,dirid) {
        return this._post("/browser/random_env",{"workspaceId": workspaceId,"dirId":dirid})
    }
    
    /*
    获取已打开的浏览器信息
    :param dirIds: 需要查询的窗口ID,选填
    :res 返回值参考文档
    */
    browser_connection_info() {
        return this._get("/browser/connection_info")
    }

}

module.exports = {
    RoxyClient,
};

2、主程序入口

JavaScript
const {RoxyClient} = require("./roxy_api");
const puppeteer = require("puppeteer-core"); 
const api_token = "9976uu37d2df8bdde7bcbd872396142";
const roxy_client = new RoxyClient(50000, api_token);

const operate_window = async() => {

    // 健康检查
    let health_rsp = await roxy_client.health();
    console.log(`browser_health----rsp:${JSON.stringify(health_rsp)}}`);

    // 创建窗口
    let create_rsp = await roxy_client.browser_create();
    console.log(`browser_create----rsp:${JSON.stringify(create_rsp)}}`);
    
    // 获取窗口列表
    let browser_id = create_rsp["data"]["dirId"];
    let browsers_rsp = await roxy_client.browser_list(browser_id);
    console.log(`browser_list----rsp:${JSON.stringify(browsers_rsp)}}`);
    
    // 修改窗口
    let proxyInfo = {
        "proxyMethod":"custom",
        "proxyCategory":"noproxy"
    };
    let fingerInfo = {
        "clearCacheFile":true,
        "clearCookie":true,
        "clearHistory":true,
        "randomFingerprint":false,
        "syncTab":false,
        "syncCookie":false
    };
    let mdf_rsp = await roxy_client.browser_mdf({
        "windowName": "demo",
        "dirId": browser_id,
        "proxyInfo": proxyInfo,
        "os": "Windows",
        "coreVersion": "117",
        "fingerInfo": fingerInfo
    });

    console.log(`${browser_id} browser_mdf----rsp:${JSON.stringify(mdf_rsp)}`);
    
    try {
        // 打开窗口
        const rsp = await roxy_client.browser_open(browser_id);
        if (rsp["code"] != 0) {
            console.log(`${browser_id} browser_open err:${JSON.stringify(rsp)}`)
            if (rsp["msg"] == "窗口已打开") {
                let close_rsp = await roxy_client.browser_close(browser_id);
                console.log(`${browser_id} browser_close rsp:${JSON.stringify(close_rsp)}`);
            }
        }
        console.log(`${browser_id} browser_open success----ws:${rsp["data"]["ws"]}`);
        const browser = await puppeteer.connect({
            browserWSEndpoint:rsp["data"]["ws"],
            defaultViewport: null,
        });
        
        // 开始做业务
        let newPage = await browser.newPage();
        try {
            await newPage.goto("https://ip123.in/");
        } catch(err) {
            console.log(`${browser_id} open url err:${err}`);
        }

        // 已打开窗口进程信息
        let conn_info_rsp = await roxy_client.browser_connection_info();
        console.log(`browser_connection_info----rsp:${JSON.stringify(conn_info_rsp)}}`);
        
        // 关闭窗口
        // let close_rsp = await roxy_client.browser_close(browser_id);
        // console.log(`${browser_id} browser_close----rsp:${JSON.stringify(close_rsp)}`);

        // 清除本地缓存
        // let clear_local_rsp = await roxy_client.browser_clear_local_cache(browser_id);
        // console.log(`browser_clear_local_cache----rsp:${JSON.stringify(clear_local_rsp)}}`);

        // 清除服务器缓存
        // let clear_server_rsp = await roxy_client.browser_clear_server_cache(browser_id);
        // console.log(`browser_clear_server_cache----rsp:${JSON.stringify(clear_server_rsp)}}`);

        // 重新设置窗口指纹
        // let random_env_rsp = await roxy_client.browser_random_env(browser_id);
        // console.log(`browser_random_env----rsp:${JSON.stringify(random_env_rsp)}}`);

        // 删除窗口
        // let delete_rsp = await roxy_client.browser_delete(browser_id);
        // console.log(`browser_delete----rsp:${JSON.stringify(delete_rsp)}}`);

    } catch (err) {
        console.log(`${browser_id} run err:${err}`);
    }
}

(async () => {
    await operate_window();
})();

附录

附录-分辨率列表

格式:宽x高


移动端:
Text
320x569
360x640
360x720
360x740
360x748
360x760
360x780
411x731
414x896
480x853
480x854
桌面端:
Text
800x600
1024x768
1280x720
1280x800
1280x960
1280x1024
1360x768
1400x900
1400x1050
1600x900
1600x1200
1920x1080
1920x1200
2048x1152
2304x1440
2560x1440
2560x1600
2880x1800
5120x2880

附录-语言列表

Text
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

附录-界面语言列表

Text
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

附录-时区列表

Text
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