1.获取环境列表
- Path:/api/v1/env/list
- Method: POST
- Content-Type:application/json
- 接口描述:查询环境的信息。用户仅能查询自己有权限的环境信息。
请求参数
参数名称 | 类型 | 必传 | 说明 |
containerCodes | array | 否 | 指定环境ID查询环境 |
containerName | string | 否 | 指定环境名称查询环境 |
createEndTime | string | 否 | 创建时间-截止时间,example: yyyy-MM-dd HH:mm:ss |
createStartTime | string | 否 | 创建时间-起始时间,example: yyyy-MM-dd HH:mm:ss |
ipAddress | string | 否 | IP地址查询 |
proxyTypeNames | array | 否 | 代理类型:HTTP、HTTPS、SSH、Socks5、Oxylabsauto、Lumauto 、Luminati、 smartproxy、IPIDEA、Iphtml、不使用代理 |
remark | string | 否 | 指定环境备注信息查询环境 |
noTag | int | 否 | 默认不传参,若需要查询“未分组”的环境,传任意 |
tagNames | array | 否 | 环境分组名称数组,查询指定分组的环境 |
current | int | 否 | 分页第几页偏移量 |
size | int | 否 | 分页条数,最多200条。 |
serviceProvider | string | 否 | 环境内代理所属服务商:ROLA_IP、922S5、通用api |
请求示例
{
"current": 1,
"size": 200
}
执行成功返回
若环境内添加了帐号,会同时返回帐号信息
{
"msg": "Success",
"code": 0,
"data": {
"list": [
{
"allOpenTime": "10-19 17:51:11", //环境最后打开时间
"asDynamicType": 1, //代理使用方式,1-静态,2-动态
"containerCode": 8256337, //环境ID
"containerName": "带cookie的阿基3", //环境名称
"createTime": "2022-09-14 17:12:20", //创建时间
"lastCity": "London", //上一次IP的城市
"lastCountry": "United Kingdom", //上一次IP的国家
"lastRegion": "England", //洲或省的名称
"lastUsedIp": "8.208.80.219", //上一次使用的IP
"openTime": "2022-10-19 17:51:12", // 打开时间
"proxyHost": "8.208.80.219", //代理主机
"proxyPort": 32080, //代理端口号
"proxyTypeName": "Socks5", // 代理类型
"tagName": "小九九的分组" , //环境分组名称
"tagCode": "XXXX", //环境ID
"ua": "XXXX" //环境ua(仅支持3.39.0及以上客户端版本)
},
{
"allOpenTime": "09-14 17:10:35",
"asDynamicType": 1,
"containerCode": 8256321,
"containerName": "带cookie的阿基2",
"createTime": "2022-09-14 17:04:11",
"openTime": "2022-09-14 17:10:36",
"proxyHost": "8.208.80.219 ",
"proxyPort": 32080,
"proxyTypeName": "Socks5",
"referenceCountryCode": "smartproxy",
"tagName": "小九九的分组",
"tagCode": "XXXX",
"ua": "XXXX" //环境ua(仅支持3.39.0及以上客户端版本)
},
],
"total": 2
}
}
2.创建环境
- Path: /api/v1/env/create
- Method: POST
- Content-Type:application/json
- 接口描述:创建环境,支持配置环境的名称、备注、分组和代理信息。创建成功后返回环境ID。
请求参数
(默认新建的环境随机UA,且禁止加载图片视频)
参数名称 | 类型 | 必传 | 说明 |
containerName | string | 是 | 命名环境,限制60字以内 |
remark | string | 否 | 环境备注信息 |
tagName | string | 否 | 指定环境所属分组的名称。若分组名称不存在,将默认环境未分组。 |
cookie | string | 否 | 支持JSON格式的cookie |
asDynamicType | int | 是 | IP变更提醒;1-静态 ,2-动态 |
proxyTypeName | string | 是 | 1、自定义代理类型:HTTP、HTTPS、SSH、Socks5、Oxylabsauto、Lumauto_HTTP 、Lumauto_HTTPS 、Luminati_HTTP、Luminati_HTTPS、 smartproxy、Iphtml_HTTP、Iphtml_Socks5、IPIDEA、不使用代理 2、API提取代理类型: Socks5_ROLA_IP、HTTPS_ROLA_IP、 Socks5_922S5、HTTP_922S5、HTTPS_922S5、 Socks5_通用api、HTTP_通用api、HTTPS_通用api、Socks5_IPIDEA-API、HTTP_IPIDEA-API、HTTPS_IPIDEA-API |
ipGetRuleType | int | 否 | IP提取方式,1-IP失效时提取新IP ,2-,每次打开环境时提取新IP。API提取代理时必填 |
linkCode | string | 否 | 提取链接。API提取代理时必填 |
proxyServer | string | 否 | 代理主机,自定义代理时必填 |
proxyPort | int | 否 | 代理端口,自定义代理时必填 |
proxyAccount | string | 否 | 代理帐号 |
proxyPassword | string | 否 | 代理密码 |
referenceCountryCode | string | 否 | 环境内帐号需要登录的指定的国家。Oxylabsauto、Lumauto、Smartproxy必须填写国家或者IP |
referenceIp | string | 否 | 将根据IP自动填充环境内帐号需要登录的指定的国家。Oxylabsauto、Lumauto、Smartproxy必须填写国家或者IP |
referenceCity | string | 否 | 参考城市 |
referenceRegionCode | string | 否 | 参考州 |
ipDatabaseChannel | int | 否 | 代理查询渠道,当用户未指定时使用全局默认值。支持设置查询渠道选项,1-IP2Location 2-DB-IP 3-MaxMind |
ipProtocolType | int | 否 | IP协议选项,支持设置IP协议,新环境默认使用速度优先 1.速度优先 2.IPv4 3.IPv6 |
type | string | 否 | 操作系统参数:windows、android、ios、macos(不传参数默认windows) |
phoneModel | string | 否 | type选择Android和IOS时,机型必填。机型参数包括:“google Pixel 4、红米8、红米7、google Pixel 5a、三星Galaxy Note8、小米10、三星Galaxy S9+、小米9、iPhone 6 Plus、iPhone 8 Plus、iPhone SE 2、iPhone 7 Plus、iPhone X、iPhone13 Pro、iPhone XS、iPhone 13 Pro Max、iPhone 12 mini、iPhone 8、iPhone 13 mini、iPhone 6、iPhone 12 Pro Max、iPhone 7、iPhone 12 、iPhone 12 Pro、iPhone 11 Pro、iPhone 13、iPhone 14、iPhone 14 Pro、iPhone 14 Pro Max、iPhone 15、iPhone 15 Pro、iPhone 15 Pro Max、google Pixel 6、google Pixel 6a、google Pixel 6 Pro、google Pixel 7、google Pixel 7 Pro、google Pixel 7a、google Pixel 8、google Pixel 8 Pro、google Pixel 8a、Samsung Galaxy S20、Samsung Galaxy S20 +、Samsung Galaxy S21、Samsung Galaxy S21 +、Samsung Galaxy S21 Ultra、Samsung Galaxy S22、Samsung Galaxy S22 +、Samsung Galaxy S22 Ultra ”” |
browser | string | 否 | 非必填,可以填firefox/chrome,不填默认创建谷歌环境, |
coreVersion | int | 否 | 内核版本号,支持客户端版本已适配更新的所有内核版本,用selenium时,可以根据这个字段来判断驱动chromedriver的版本号 |
videoThrottle | int | 否 | 视频限流 0关闭 1开启 2跟随团队。不传参默认跟随团队。 |
imgThrottle | int | 否 | 图片限流 0关闭 1自定义 2跟随团队。不传参默认跟随团队。 |
imgThrottleSize | int | 否 | 图片尺寸大小 |
advancedBo | 否 | Hubstudio浏览器高级指纹参数配置,具体参数见附录advancedBo说明 | |
accounts | array | 否 | 浏览器环境添加平台账号信息,具体参数详见附录account说明 |
请求示例
{
"asDynamicType":"2",
"containerName":"新建环境",
"proxyTypeName":"不使用代理",
"coreVersion":112,
"advancedBo" : {
"uaVersion":112,
"uiLanguage":"en",
"languages":["en", "en-US"]
}
}
执行成功返回
{
"requestId": "8b558e5c5d1c437183c34aa03a09a368",
"msg": "Success",
"code": 0,
"data": {
"containerCode": 50591754, //环境ID
"coreVersion": 100 //环境使用的内核版本,用于匹配对应版本的webdriver
}
}
3. 更新环境
- Path: /api/v1/env/update
- Method: POST
- Content-Type:application/json
- 接口描述:修改环境参数,包括备注信息和分组名称。更新成功返回true。
请求参数
注:当前接口不支持 Cookie 更新和代理更新,使用对应的接口单独实现(详见本页4、6、7接口)
参数名称 | 类型 | 必传 | 说明 |
containerCode | int | 是 | 环境ID |
containerName | string | 是 | 环境命名,若无需更改环境名称传入原有名称即可 |
remark | string | 否 | 环境备注信息。不传视为留空,会覆盖原备注 |
tagName | string | 是 | 环境所属分组信息,若分组名称不存在,将默认不修改环境分组。 |
coreVersion | int | 是 | 内核版本。仅支持hub客户端支持的版本下载。 |
videoThrottle | int | 否 | 视频限流 0关闭 1开启 2跟随团队 |
imgThrottle | int | 否 | 图片限流 0关闭 1自定义 2跟随团队 |
imgThrottleSize | int | 否 | 图片尺寸大小 |
advancedBo | 否 | Hubstudio浏览器高级指纹参数配置,具体参数见附录advancedBo说明 |
请求示例
{
"containerCode":189603333,
"containerName": "修改环境名"
}
执行成功返回
{
"requestId": "68cb72ff72e9441da4fb84760937ead3",
"msg": "Success",
"code": 0,
"data": true
}
4. 更新环境代理
- Path: /api/v1/env/proxy/update
- Method: POST
- Content-Type:application/json
- 接口描述:修改指定环境的代理信息,包括代理主机、端口、帐号、密码等。更新成功返回true。
请求参数
参数名称 | 类型 | 必传 | 说明 |
containerCode | int | 是 | 环境ID |
asDynamicType | int | 是 | IP使用方式;1-静态 ,2-动态 |
proxyTypeName | string | 是 | 1、自定义代理类型:HTTP、HTTPS、SSH、Socks5、Oxylabsauto、Lumauto_HTTP 、Lumauto_HTTPS 、Luminati_HTTP、Luminati_HTTPS、 smartproxy、Iphtml_HTTP、Iphtml_Socks5、IPIDEA、不使用代理 2、API提取代理类型: Socks5_ROLA_IP、HTTP_ROLA_IP、HTTPS_ROLA_IP、 Socks5_922S5、HTTP_922S5、HTTPS_922S5、 Socks5_通用api、HTTP_通用api、HTTPS_通用api、Socks5_IPIDEA-API、HTTP_IPIDEA-API、HTTPS_IPIDEA-API |
ipGetRuleType | int | 否 | IP提取方式,1-IP失效时提取新IP ,2-,每次打开环境时提取新IP。API提取代理时必填 |
linkCode | string | 否 | 提取链接。API提取代理时必填 |
proxyHost | string | 否 | 代理主机 |
proxyPort | int | 否 | 代理端口 |
proxyAccount | string | 否 | 代理帐号 |
proxyPassword | string | 否 | 代理密码 |
referenceCountryCode | string | 否 | 环境内帐号需要登录的指定的国家。Oxylabsauto、Lumauto、Smartproxy必须填写国家或者IP |
referenceIp | 将根据IP自动填充环境内帐号需要登录的指定的国家。Oxylabsauto、Lumauto、Smartproxy必须填写国家或者IP | ||
referenceCity | string | 否 | 参考城市 |
referenceRegionCode | string | 否 | 参考州 |
ipDatabaseChannel | int | 否 | 代理查询渠道。支持设置查询渠道选项,1-IP2Location 2-DB-IP 3-MaxMind |
ipProtocolType | int | 否 | IP协议选项,支持设置IP协议 1.速度优先 2.IPv4 3.IPv6 |
请求示例
{
"containerCode":8294141,
"asDynamicType":2,
"proxyTypeName":"不使用代理"
}
执行成功返回
{
"requestId": "ef10f8a4931b455889477bb3b34ff636",
"msg": "Success",
"code": 0,
"data": true
}
5.删除环境
- Path: /api/v1/env/del
- Method: POST
- Content-Type:application/json
- 接口描述:删除指定环境。删除成功返回true。一次性最多支持删除环境1000个。
请求参数
参数名称 | 类型 | 必传 | 说明 |
containerCodes | array | 是 | 支持传多个环境ID |
请求示例
{
"containerCodes":[132725138]
}
执行成功返回
{
"requestId": "7cf821b221c34da7a99708e6947e3450",
"msg": "Success",
"code": 0,
"data": true
}
6.导入Cookie
- Path: /api/v1/env/import-cookie
- Method: POST
- Content-Type:application/json
- 接口描述:向指定环境导入cookie,导入成功返回true。
请求参数
本期只支持hubstudio导出的cookie字符串
参数名称 | 类型 | 必传 | 说明 |
containerCode | int | 是 | 环境ID |
cookie | string | 是 | 支持json格式 |
请求示例
{
"containerCode":"132823764",
"cookie":"[]" // 值为[]是清空cookie
}
执行成功返回
{
"requestId": "b4e67b308a6c4b5da2d9b1fcb9492761",
"msg": "Success",
"code": 0,
"data": true
}
7.导出Cookie
- Path: /api/v1/env/export-cookie
- Method: POST
- Content-Type:application/json
- 接口描述: 导出指定环境的cookie,导出成功返回cookie的json串。
请求参数
参数名称 | 类型 | 必传 | 说明 |
containerCode | int | 是 | 环境ID |
请求示例
{
"containerCode":"118969108"
}
执行成功返回
{
"requestId": "0b1ef5b88e5942eb933c97982ba8492a",
"msg": "Success",
"code": 0,
"data": "[{\"Name\":\"CONSENT\",\"Value\":\"PENDING+571\",\"Domain\":\".google.com\",\"Path\":\"/\",\"Secure\":true,\"HttpOnly\":false,\"Persistent\":\"1\",\"Creation\":\"2022-09-14T15:18:07.389+08:00\",\"LastAccess\":\"2024-09-13T15:18:07.389+08:00\",\"Expires\":\"2024-09-13T15:18:07.389+08:00\",\"Priority\":\"1\",\"HasExpires\":\"1\",\"Samesite\":\"-1\",\"SourceScheme\":\"2\",\"Firstpartyonly\":\"\",\"schemeMap\":false,\"isSelf\":false}]"
}
8.获取随机UA
- Path: /api/v1/env/random-ua
- Method: POST
- Content-Type:application/json
- 接口描述:获取随机UA,获取成功返回UA。
请求参数
参数名称 | 类型 | 必传 | 说明 |
type | string | 否 | 操作系统参数:windows、android、ios(不传参数默认windows) |
phoneModel | string | 否 | type选择android和ios时,机型必填。机型参数包括:“google Pixel 4、红米8、红米7、google Pixel 5a、三星Galaxy Note8、小米10、三星Galaxy S9+、小米9、iPhone 6 Plus、iPhone 8 Plus、iPhone SE 2、iPhone 7 Plus、iPhone X、iPhone 13 Pro、iPhone XS、iPhone 13 Pro Max、iPhone 12 mini、iPhone 8、iPhone 13 mini、iPhone 6、iPhone 12 Pro Max、iPhone 7、iPhone 12 、iPhone 12 Pro、iPhone 11 Pro、iPhone 13、iPhone 14、iPhone 14 Pro、iPhone 14 Pro Max、iPhone 15、iPhone 15 Pro、iPhone 15 Pro Max、google Pixel 6、google Pixel 6a、google Pixel 6 Pro、google Pixel 7、google Pixel 7 Pro、google Pixel 7a、google Pixel 8、google Pixel 8 Pro、google Pixel 8a、Samsung Galaxy S20、Samsung Galaxy S20 +、Samsung Galaxy S21、Samsung Galaxy S21 +、Samsung Galaxy S21 Ultra、Samsung Galaxy S22、Samsung Galaxy S22 +、Samsung Galaxy S22 Ultra ” |
version | array | 否 | 支持数组,不传参默认随机。范围包括95、96、97、98、99、100、101、102、103、104、105、106 |
请求示例
{
"version":[112]
}
执行成功返回
{
"requestId": "59e685a3775944e188545a10fb07e0e1",
"msg": "Success",
"code": 0,
"data": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.87 Safari/537.36"
}
9.清除环境本地缓存
- Path:/api/v1/cache/clear
- Method: POST
- Content-Type:application/json
- 接口描述:清除环境本地缓存
请求参数
参数名称 | 类型 | 必传 | 说明 |
browserOauths | array | 否 | 打开环境时返回的browserID,参数不传则删除所有环境的本地缓存 |
请求示例
{
"browserOauths": ["11509459", "11509427"]
}
执行成功返回
{
"requestId": "d2feae4d-bc25-43d9-bfdd-8e1e9a56f618",
"msg": "Success",
"code": 0,
"data": {
"action": "ClearCache",
"err": "成功",
"failIds": [
11509459
],
"info": "清理缓存成功,11509427已清理,11509459已打开 无法清理",
"requestId": "d2feae4d-bc25-43d9-bfdd-8e1e9a56f618",
"statusCode": "0",
"successIds": [
11509427
]
}
}
10.清理环境内插件缓存
- Path:/api/v1/browser/reset-extension
- Method: POST
- Content-Type:application/json
- 接口描述:清理环境内插件缓存,清理成功后插件的所有数据均会被删除
- 仅支持v3.3.0以上版本,请前往官网下载客户端最新版本【下载Hubstudio最新版】
参数名称 | 类型 | 必传 | 说明 |
browserOauth | string | 是 | 打开环境时返回的browserID |
pluginIds | array | 是 | 指定要清除的插件的ID, 可通过chrome://extensions/查看环境内所有插件的ID |
请求示例
{
"browserOauth": 33498,
"pluginIds": ["hlkenndednhfkekhgcdicdfddnkalmdm","dagohlmlhagincbfilmkadjgmdnkjinl1"]
}
11.下载环境内核
- Path:/api/v1/browser/download-core
- Method: POST
- Content-Type:application/json
- 接口描述:下载环境内核
- 仅支持v3.19.0以上版本,请前往官网下载客户端最新版本【下载Hubstudio最新版】
参数名称 | 类型 | 必传 | 说明 |
browserType | int | 是 | 浏览器内核类型,1-Chrome,2-Firefox |
version | string | 是 | 内核版本。仅支持hub客户端支持的版本下载。 |
请求示例
{
"Cores":[
{
"BrowserType":1,
"Version":"109"
},
{
"BrowserType":2,
"Version":"110"
}
]
}
12.刷新指纹
- Path:/api/v1/env/refresh-fingerprint
- Method: POST
- Content-Type:application/json
- 接口描述:刷新指纹
- 仅支持v3.37以上版本,请前往官网下载客户端最新版本【下载Hubstudio最新版】
参数名称 | 类型 | 必传 | 说明 |
containerCode | int | 是 | 环境ID |
uaVersion | int | 否 | UA版本。不传 uaVersion ,默认随机最新UA |
coreVersion | int | 否 | 客户端内核版本,不传,不会改变 |
type | string | 否 | 操作系统类型,不传默认为windows |
请求示例
{
"containerCode": 11423751,
"uaVersion": 131 ,
"coreVersion": 131,
"type": "windows"
}
返回数据
{
"code": 0,
"msg": "Success",
"requestId": "a5a2465555edad295e5342265c12b779",
"timestamp": 1740726236985,
"data": null
}
13.修改备注
- Path:/api/v1/container/batch-update-remark
- Method: POST
- Content-Type:application/json
- 接口描述:刷新指纹
- 仅支持v3.37以上版本,请前往官网下载客户端最新版本【下载Hubstudio最新版】
参数名称 | 类型 | 必传 | 说明 | |
containercodes | array | 否 | 环境ID | |
remark | string | 否 | 备注 | |
type | integer(int32) | 否 | 修改类型;1.覆盖 2.追加 |
请求示例
{
"containerCodes":[],
"remark":"",
"coreVersion": 131,
"type":0
}
返回数据
{
"code": 0,
"data":true,
"message":"",
"requestId":"",
"success":true,
"timestamp":0
}