Browser Profiles

add, update, delete browser and other operations.

Create a browser profile, the fingerprint object is mandatory.

When creating a profile with a random fingerprint object, simply pass an empty object {} and leave the fingerprint values empty to generate them randomly.

POST /browser/update

Note: Windows 7/8/Win Server 2012 no longer support kernel versions 109 and above. Therefore, for the aforementioned systems, please specify coreVersion as kernel version 104 to prevent issues where the profile cannot be opened when specifying kernel version 112.

Request Body

NameTypeDescription

groupId

String

when add browsers by a sub user, groupId is required.

platform*

String

a url, eg: https://www.facebook.com

platformIcon*

String

default is hostname of platform url.

url*

String

open urls when launch, multiple separated by commas

name*

String

browser name

remark*

String

remarks

userName*

String

platform user name

password*

String

platform user password

cookie

String

json string cookies

proxyMethod*

Int

proxy method, default is 2, 3 is extract ip

proxyType*

String

proxy type, one of ['noproxy', 'http', 'https', 'socks5', 'ssh']

host

String

Host

port

Int

Port

proxyUserName

String

proxy user name

proxyPassword

String

proxy user password

ip

String

ip

country

String

country code

province

String

state/provice code

city

String

city code

browserFingerPrint*

Obect

browser fingerprint object, refer to

abortImage

Boolean

not loading img, default is false.

stopWhileNetError

Boolean

stop opening while net error, default is false

dynamicIpUrl

while proxyMethod is 3, provide a extract url

dynamicIpChannel

String

rola | 922 | doveip | cloudam | luna | ipidea | pias5 | common

isDynamicIpChangeIp

Boolean

default is false

syncTabs

Boolean

Sync browser tabs, default is true

syncCookies

Boolean

Sync cookies, default is true.

syncIndexedDb

Boolean

Sync IndexedDb, default is false.

syncBookmarks

Boolean

default is false

syncAuthorization

Boolean

Sync saved passwords, default is false

syncHistory

Boolean

default is false

ipCheckService

String

ip lookup service, default is ip-api. options: ip-api | ip123in | luminati,luminati is just for luminati

allowedSignin

Boolean

Allow sign in to browser, default is true.

clearCacheFilesBeforeLaunch

Boolean

Default is false

clearCookiesBeforeLaunch

Boolean

Default is false

clearHistoriesBeforeLaunch

Boolean

Default is false

randomFingerprint

Boolean

Random browser fingerprint before launch each time.

disableGpu

Boolean

Default is false

muteAudio

Boolean

Default is false

abortMedia

Boolean

not autoplay and payload videos, default is false

workbench

String

localserver or disable,default is localserver

isIpv6

Boolean

IPv6 or not, default is false.

isGlobalProxyInfo

Boolean

use global settings of these proxy. iphtml,oxylabs,lumauto,ipidea

syncExtensions

Boolean

default is false

syncUserExtensions

Boolean

Sync extensions data accross browsers.

credentialsEnableService

Boolean

not pop up autofill anymore, default is false

syncLocalStorage

Boolean

default is false

refreshProxyUrl

String

proxy rotate url

isValidUsername

Boolean

According to the platform, username, password, check for duplicates, it's valid at the time of creation.

disableTranslatePopup

Boolean

Disable browser pop-up for Google Translate, default is false.

abortImageMaxSize

Int

While abortImage is true, set to prohibit loading images larger than a specified size.

stopWhileIpChange

Boolean

Stop opening while ip changed, default to false.

stopWhileCountryChange

Boolean

Stop opening while the ip country changed, default to false.

disableNotifications

Boolean

Disable notifications popup, default to false.

disableClipboard

Boolean

Prevents websites from accessing clipboard content for enhanced security.

Modify profile and fingerprint specified field values, supporting bulk modifications.

POST /browser/update/partial

Only pass the fields that need to be updated. For example, if you want to update the 'name' field, only provide the 'name' value.

Request Body

NameTypeDescription

ids*

Array

Collection of profile IDs to be updated. When updating a single profile, provide a single ID, for example: ["abd8fd953d3641a0915865a09b8d99ba"].

browserFingerPrint

Object

Fingerprint object - pass the corresponding fingerprint fields to be updated. If no adjustments are needed, simply use an empty object {}.

name

String

This is an example field. For the fields you want to update, provide the necessary values; there's no need to pass values for fields you don't want to update.

Open a browser by id, returns ws and http debug address, and coreVersion and chromedriver path

POST /browser/open

Request Body

NameTypeDescription

id*

String

args

Array

launch args, eg: ["--headless"]

queue

Boolean

Open the profile in a queue to prevent concurrency.

{
    "success": true,
    "data": {
        "ws": "ws://127.0.0.1:53325/devtools/browser/857b2d0d-aae6-4852-ab3c-0784f0b2c1fb",
        "http": "127.0.0.1:53325",
        "coreVersion": "112",
        "driver": "/Users/ddd/Library/Application Support/Electron/chromedriver/112/chromedriver",
        "seq": 3474,
        "name": "",
        "remark": "",
        "groupId": "2c9c29a28161edd0018161f3790d0002",
        "pid": 31295
    }
}

Close a browser

POST /browser/close

Request Body

NameTypeDescription

id*

String

Reset browser closed state

POST /users

This interface is used only after an abnormal window closure. If the window is not opening due to a status of "opening" or "closing" when reopened, you can use this interface to reset the window state to "closed." Ensure that the window is actually closed before using this interface.

Body

NameTypeDescription

id

string

Required, browser profile's ID

Delete a browser

POST /browser/delete

Request Body

NameTypeDescription

id*

String

Get browser profile's detail

POST /browser/detail

Request Body

NameTypeDescription

id

String

{
  success: true,
  data: {
    id: '2c9c2dsdsd323xceeeds24a30065',
    seq: 41,
    code: 'd3sdsddddd',
    platform: 'https://www.instagram.com/',
    platformIcon: 'instagram',
    url: 'https%3A%2F%2Fwww.facebook.com%2F,https%3A%2F%2Fwww.amazon.com%2FBest-Sellers%2Fzgbs%2Fref%3Dzg_bs_unv_hpc_0_2314207011_4_sbg_1,https%3A%2F%2Fwww.baidu.com%2F',
    name: 'ins',
    userName: '',
    password: '',
    cookie: '[{"domain":".instagram.com","expirationDate":1680060024.48996,"hostOnly":false,"httpOnly":false,"name":"ig_nrcb","path":"/","secure":true,"session":false,"storeId":null,"value":"1"}]',
    proxyMethod: 2,
    proxyType: 'noproxy',
    agentId: '',
    host: '',
    proxyUserName: '',
    proxyPassword: '',
    lastIp: '221.222.180.190',
    lastCountry: '中国',
    country: '',
    province: '',
    city: '',
    remark: '备注',
    status: 1,
    operUserId: 'sdd3ds',
    operUserName: '3ds3sdee',
    operTime: '2022-04-14 16:11:05',
    isDelete: 0,
    delReason: null,
    isMostCommon: 1,
    tempStr: null,
    createdBy: 'sdfd3ddddd',
    userId: 'sdfd33dddddd',
    createdTime: '2022-03-31 13:44:40',
    updateBy: 'sdfsdf322222',
    updateTime: '2022-04-14 16:11:05',
    mainUserId: 'dfsddded323fdddd',
    browserFingerPrint: {
      id: '2c9c29a27fda71dd017fde8124a90066',
      seq: 41,
      browserId: '2c9c29a27fda71dd017fde8124a30065',
      ostype: 'PC',
      os: 'Win64',
      version: '',
      userAgent: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.3887.132 Safari/537.36',
      isIpCreateTimeZone: true,
      timeZone: '',
      webRTC: '0',
      position: '1',
      isIpCreatePosition: true,
      isIpCreateLanguage: true,
      resolutionType: '0',
      resolution: '',
      fontType: '0',
      canvas: '0',
      webGL: '0',
      webGLMeta: '0',
      webGLManufacturer: 'Intel Inc.',
      webGLRender: 'ANGLE (NVIDIA GeForce GTX 960M Direct3D11 vs_5_0 ps_5_0)',
      audioContext: '0',
      mediaDevice: '0',
      clientRects: '0',
      hardwareConcurrency: '4',
      deviceMemory: '8',
      deviceNameType: '1',
      deviceName: 'DESKTOP-FZEVSE',
      doNotTrack: '1',
      flash: '',
      portScanProtect: '',
      portWhiteList: '',
      isDelete: 0,
      colorDepth: 32,
      devicePixelRatio: 1.2,
      createdBy: 'sdfsdf333',
      createdTime: '2022-03-31 13:44:40',
      updateBy: 'sdfdsfdsf33333',
      updateTime: '2022-03-31 13:45:19'
    },
    createdName: null,
    belongUserName: null,
    updateName: null,
    agentIpCount: 1,
    belongToMe: false,
    ip: ''
  }
}

Get browser profiles list

POST /browser/list

Note: page start from 0

Request Body

NameTypeDescription

page*

Int

page, start from 0

pageSize*

Int

max is 100

groupId

String

name

String

remark

String

seq

Int

browser profile's seq

minSeq

Int

min seq, do not use with seq

maxSeq

Int

max seq, do not use with seq

sort

String

Sorting filed, default is "desc", options: desc | asc

Reset browser window bounds

POST /windowbounds

Note that, except for the 'type' parameter, all other parameters must be of integer numeric type. Please refer to the 'windowbounds' object below as an example.

Request Body

NameTypeDescription

type*

String

box | diagonal

startX*

Int

default is 0

startY*

Int

default is 0

width*

Int

min is 500

height*

Int

min is 200

col*

Int

spaceX*

Int

Horizontal spacing, default is 0

spaceY

Int

Vertical spacing, default is 0

offsetX*

Int

Horizontal offset, default is 0

offsetY*

Int

Vertical offset, default is 0

seqlist

Array

Array of profiles indices to be arranged. If not provided, all windows will be arranged.

screenId

Int

Display screen ID needs to be arranged on which monitor, just pass the monitor ID. The specific monitor ID can be obtained through the /alldisplays interface.

Adaptive window arrangement

POST /windowbounds/flexable

Note that except for 'type', all other parameters must be of integer type. Refer to the following 'windowbounds' object.

Request Body

NameTypeDescription

seqlist

Array

Array of window indices to be arranged. If not passed, arrange all.

batch update browser profile's group

POST /browser/group/update

Request Body

NameTypeDescription

groupId*

String

browserIds*

Array

profile ids

Batch update browser's proxy

POST /browser/proxy/update

Request Body

NameTypeDescription

ids*

Array

browser ids

ipCheckService*

String

options: ip-api | ip123in | luminati, default is ip-api

proxyMethod*

int

options: 2 | 3, default is 2, 3 is extract proxy ip

proxyType

String

noproxy|http|https|socks5|ssh, default is noproxy

host

String

proxyUserName

String

proxyPassword

String

dynamicIpUrl

String

extraction link

dynamicIpChannel

String

extraction provider, options: rola|ipidea|deoveip|cloudam

isDynamicIpChangeIp

Boolean

default is true

isGlobalProxyInfo

Boolean

default is false

port

Int

isIpv6

Boolean

default is false

Batch update remarks of browser profiles

POST /browser/remark/update

Request Body

NameTypeDescription

browserIds*

Array

remark*

String

Close browsers by seq

POST /browser/close/byseqs

Request Body

NameTypeDescription

seqs*

Array

browser seqs you want to close:[101, 103, 105]

Close all opened profiles

POST /browser/close/all

close all opened profiles, no params.

Get opened browser's pids

POST /browser/pids

Request Body

NameTypeDescription

ids*

Array

browser profile ids

{
    "success": true,
    "data": {
        "02d39dd4f9c54e40bc1ef51929d27235": 69902,
        "39dd4f4e40bc1ef51929d27232sdf3ds": 84773
    }
}

Get all alived browser's pids

POST /browser/pids/all

{
    "81ec99fc222148dbae513597dfaa4333": 12212,
    "10702539009b4d90a862c78aed2c98c9": 32342
}

Delete browser profiles by ids, up to 100, delete completely includes cache files.

POST /browser/delete/ids

Request Body

NameTypeDescription

ids*

Array

profile ids

{
    // Response
}

Clear browser cache files

POST /cache/clear

Note: will clear local cache files and cloud files.

Request Body

NameTypeDescription

ids

Array

profile ids collection, like ['sdsdflk32dsdkl232l3ldsldk3kdksdk']

Get all opened profile's remote-debugging-port

POST /browser/ports

{
    "success": true,
    "data": {
        "8caf925feebb4d2fb0bfd79ed9591e11": "64170",
        "c6925679d4e848a59e7ec49e44184013": "64217"
    }
}

Proxy detection API can be used to query proxy information and check the availability of proxies.

POST /checkagent

Note that if the IP needs to be used under a global proxy, global proxy settings must be enabled.

Request Body

NameTypeDescription

host*

String

proxy host

port*

String

proxy port

proxyType*

String

Choose one among noproxy, socks5, ssh, http.

proxyUserName

String

proxyPassword

String

checkExists

Int

Check if the ip used in system, 1 or 0

{
    "success": true,
    "data": {
        "success": true,
        "data": {
            "ip": "94.154.157.98",
            "countryName": "英国(GB)",
            "stateProv": "England(ENG)",
            "countryCode": "GB",
            "region": "ENG",
            "city": "London",
            "languages": "en-GB",
            "timeZone": "Europe/London",
            "offset": "1",
            "longitude": "-0.0991",
            "latitude": "51.5269",
            "zip": "EC1V",
            "status": 1,
            "used": false,
            "usedTime": null
        }
    }
}

Random fingerprint value - provide the profile ID, generate a random fingerprint once, and return the fingerprint object.

POST /browser/fingerprint/random

Note that it doesn't return the browser object, only the fingerprint object.

Request Body

NameTypeDescription

browserId*

String

browser profile id

Clear cache without extensions and extension's data

POST /cache/clear/exceptExtensions

Request Body

NameTypeDescription

ids

Array

profile ids

Get all displays

POST /alldisplays

Get all screen displays, no request data.

Run RPA task

POST /rpa/run

Body

NameTypeDescription

id

string

RPA task ID. Copy it from the RPA management interface, specifically from the edit RPA task section.

Stop RPA task

POST /rpa/stop

Body

NameTypeDescription

id

string

RPA task ID. Copy it from the RPA management interface, specifically from the edit RPA task section.

Autopaste

POST /autopaste

It will automatically delay inputting the text from the clipboard into the focused input field on the page. Note: There must be a focused input field on the page, otherwise, input will not be possible.

Body

NameTypeDescription

browserId

string

Browser profile's ID

url

string

The browser tab url

Read local excel file

POST /utils/readexcel

Body

NameTypeDescription

filepath

string

Required, the excel file's path, eg: C:\Users\User\Downloads\abc.xlsx

Read the content of text-based files, such as JSON, TXT, and other text files.

POST /utils/readfile

Body

NameTypeDescription

filepath

string

Required, eg: C:\Users\User\Downloads\abc.json

Set real-time cookies for the opened profile

POST /browser/cookies/set

Body

NameTypeDescription

browserId

string

Required, browser profile's ID

cookies

array

The array of cookies to be set must follow the standard cookies format. Please refer to the appendix for details.

Retrieve real-time cookies for the opened profile

POST /browser/cookies/get

Note that real-time cookies may change continuously, so the values retrieved in two separate instances might differ.

Body

NameTypeDescription

browserId

string

Required, browser profile's ID

Clear cookies. Supported in client versions 7.0.2 and above

POST /browser/cookies/clear

This interface can clear cookies from local cache regardless of whether the window is open. Cookies synchronized to the server are controlled by the saveSynced field, with the default being to clear both local and server-side cookies.

Body

NameTypeDescription

browserId

string

Required, browser profile's ID

saveSynced

boolean

Whether to retain cookies synchronized to the server from the window. The default is true

POST /browser/cookies/format

Body

NameTypeDescription

cookie

string | array

The given cookie data may be in the form of an array, string, etc.

hostname

number

The domain value of a cookie. For some cookies that do not include a domain value, you need to manually specify the hostname, for example, .abc.com. Most cookies do not require a specific domain to be set.

Windowbounds object

{
  "type": "box", // box | diagonal
  "startX": 0,
  "startY": 0,
  "width": 500,
  "height": 300,
  "col": 4,
  "spaceX": 0,
  "spaceY": 0,
  "offsetX": 50,
  "offsetY": 50
}

browserFingerPrint Object

{
  coreProduct: 'chrome', // chrome | firefox
  coreVersion: '126', // chromium version. options: 126 | 124 | 122 | 118 | 112 | 104
  ostype: 'PC', // PC|Android|IOS
  os: 'Win32', //  For navigator.platform values like Win32, Linux x86_64, or MacIntel, set os to iPhone when ostype is set to iOS, and set os to Linux armv81 when ostype is set to Android.
  osVersion: '', // Operating system version, when left blank, will be randomized based on the OS. If filled, it will be randomized within the provided value range. Windows options: 11|10|8|7, Android options: 13|12|11|10|9, iOS options: 17.0|16.6|16.5|16.4|16.3|16.2|16.1|16.0|15.7|15.6|15.5
  version: '', // ua version, recommended 96 or later
  userAgent: '', // leave blank to automatically gernerate
  isIpCreateTimeZone: true, // Generate time zone based on IP
  timeZone: '', // set when isIpCreateTimeZone is false
  timeZoneOffset: 0, // set when isIpCreateTimeZone is false
  webRTC: '0', //webrtc 0(replace)|1(allow)|2(disable)
  ignoreHttpsErrors: false, // true|false
  position: '1', //geoLocation 0(ask)|1(allow)|2(forbidden)
  isIpCreatePosition: true, // generate geoLocation based on IP
  lat: '', // set when isIpCreatePosition is false
  lng: '', // set when isIpCreatePosition is false
  precisionData: '', // set when isIpCreatePosition is false, meters
  isIpCreateLanguage: true, // generate language based on IP
  languages: '', // set when isIpCreateLanguage is false
  isIpCreateDisplayLanguage: false, // generate display language based on IP
  displayLanguages: '', // set when isIpCreateDisplayLanguage is false, default to blank, follow system's setting.
  openWidth: 1280, // browser window width
  openHeight: 720, // browser window height
  resolutionType: '0', // resolution type options: 0(follow system) | 1(custom)
  resolution: '1920 x 1080', // custom value
  windowSizeLimit: true, // when resolutionType is "1" and ostype is "PC", set true to limit the maximum window size to the resolution.
  devicePixelRatio: 1, // 1|1.5|2|2.5|3
  fontType: '2', // generate font type 0(follow system)|1(custom)|2(random by service)
  font: '', // when fontType is "1" or "2", set this value
  canvas: '0', // 0(noise)|1(disable)
  canvasValue: null, // canvas is '0', set 10000 - 1000000
  webGL: '0', // 0(noise)|1(disable)
  webGLValue: null, // when webGL is "0", set 10000 - 1000000
  webGLMeta: '0', // 0(noise)|1(disable)
  webGLManufacturer: '', // when webGLMeta is '0', if left blank, it will be automatically generated, refer to Appendix
  webGLRender: '', // when webGLMeta is '0', if left blank, it will be automatically generated, refer to Appendix
  audioContext: '0', // 0(noise)|1(disable)
  audioContextValue: null, // when audioContext is '0', set 1 - 100
  mediaDevice: '0', // 0(noise)|1(disable)
  mediaDeviceValue: null, // when mediaDevice is '0', leave blank to automatically generate
  speechVoices: '0', // 0(noise)|1(disable)
  speechVoicesValue: null, // when speechVoices is '0', leave blank to automatically generate
  hardwareConcurrency: '4',
  deviceMemory: '8', // 2|4|8 do not greater than 8
  doNotTrack: '1', // 0(enable)|1(disable)
  clientRectNoiseEnabled: true, // true(replace) | false(follow system)
  clientRectNoiseValue: 0, // when clientRectNoiseEnabled is true, set 1 - 999999
  portScanProtect: '0', // 0(enable)|1(disable)
  portWhiteList: '', // portscan whitelist, separate by comma
  deviceInfoEnabled: true, // default is true
  computerName: '', // set when deviceInfoEnabled is true
  macAddr: '', // set when deviceInfoEnabled is true
  disableSslCipherSuitesFlag: false, // default is false. Note that some websites may not be accessible when customizing settings after opening
  disableSslCipherSuites: null, // ssl features, refer to Appendix
  enablePlugins: false, // default is false
  plugins: '' // set when enablePlugins is true, refer to Appendix
}

Last updated