List Profiles
Endpoint
GET /openapi/v2/profiles
Returns a list of Profiles.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
page | integer | No | Page number for page-based pagination, starting at 1. Cannot be combined with cursor/limit. |
page_size | integer | No | Number of items per page for page-based pagination. Cannot be combined with cursor/limit. |
cursor | string | No | Cursor for cursor-based pagination. Omit on the first request. |
limit | integer | No | Number of items per page for cursor-based pagination. Cannot be combined with page/page_size. |
serial_no | integer | No | Profile serial number. Exact match. |
name | string | No | Profile name. Partial match. |
remark | string | No | Remark. Partial match. |
group_ids | string[] | No | Profile Group ID list. |
tag_ids | string[] | No | Tag ID list. |
proxy_type | string | No | Proxy type, such as none, http, https, ssh, or socks5. |
run_status | string | No | Runtime status. Available values: running, stopped. |
created_from | string | No | Start of the creation-time range. |
created_to | string | No | End of the creation-time range. |
last_opened_from | string | No | Start of the last-opened-time range. |
last_opened_to | string | No | End of the last-opened-time range. |
Array query parameters may be supplied more than once:
group_ids=group-a&group_ids=group-b
Response Parameters
data.list is a list of Profile summaries. For the structure of each item, see Profile Summary Fields.
Create a Profile
Endpoint
POST /openapi/v2/profiles
Creates a new browser Profile.
Request Parameters
The request body uses ProfileCreateRequest. For its fields, see Profile Creation and Update Parameters.
Request Example
{
"name": "profile-v2-demo",
"group_ids": [],
"proxy_binding": {
"mode": "none"
},
"fingerprint": {
"os": "windows",
"kernel_version": "142",
"language": {
"mode": "ip"
},
"timezone": {
"mode": "ip"
}
},
"advanced": {
"startup": {
"urls": [],
"restore_session_mode": "global"
},
"multi_open": "global",
"remote_inspector": "global",
"spoofing_video": "disabled"
},
"cookies": [],
"account_list": [],
"tag_ids": [],
"remark": "created by Local API V2"
}
Response Example
{
"code": 0,
"msg": "success",
"data": {
"id": "1876881021063852034",
"serial_no": 1,
"name": "profile-v2-demo"
},
"next": null
}
The response data uses the Profile summary structure. For its fields, see Profile Summary Fields.
Get Profile Details
Endpoint
GET /openapi/v2/profiles/{profileId}
Returns the details of a single Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
The response data uses the Profile details structure. For its fields, see Profile Detail Fields.
Partially Update a Profile
Endpoint
PATCH /openapi/v2/profiles/{profileId}
Updates an existing Profile. Omitted fields remain unchanged.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
The request body uses ProfilePatchRequest, whose fields are largely the same as those of ProfileCreateRequest. See Profile Creation and Update Parameters.
Request Example
{
"name": "profile-v2-demo-updated",
"remark": "updated by Local API V2"
}
Delete a Profile
Endpoint
DELETE /openapi/v2/profiles/{profileId}
Deletes a Profile. This typically moves it to the recycle bin.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Permanently Delete a Profile
Endpoint
DELETE /openapi/v2/profiles/{profileId}/permanent
Permanently deletes a Profile. This action cannot be undone; use it with caution.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Restore a Profile
Endpoint
POST /openapi/v2/profiles/{profileId}/restore
Restores a deleted Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Move a Profile to Profile Groups
Endpoint
POST /openapi/v2/profiles/{profileId}/move
Moves a Profile to the specified Profile Groups.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
group_ids | string[] | No | Target Profile Group ID list. |
Request Example
{
"group_ids": ["1876881021063852033"]
}
Clone a Profile
Endpoint
POST /openapi/v2/profiles/{profileId}/clone
Clones a Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | ID of the Profile to clone. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
copies | integer | No | Number of new Profiles to create. Range: 1-100. |
group_ids | string[] | No | Target Profile Group ID list. If empty, the original Profile Groups are retained. |
inherit_items | string[] | No | Data items to inherit. Available values: fingerprint_and_proxy, account, cloud_data. If empty, the Fingerprint and Proxy, account, and cloud data are inherited by default. |
remark | string | No | Remark for the clone. If empty, the original Profile’s remark is retained. |
Request Example
{
"copies": 1,
"group_ids": [],
"inherit_items": ["fingerprint_and_proxy", "account", "cloud_data"],
"remark": "clone by Local API V2"
}
Start a Profile
Endpoint
POST /openapi/v2/profiles/{profileId}/start
Starts a Profile. On success, the debugging port or WebSocket address is available in the response data.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
client_ip | string | No | Client IP address. |
headless | boolean | No | Whether to start in headless mode. Desktop clients typically pass false. |
skip_proxy_check | boolean | No | Whether to skip the Proxy check before startup. |
skip_cookie_sync_before_open | boolean | No | Whether to skip cookie synchronization before startup. |
skip_data_sync_before_open | boolean | No | Whether to skip data synchronization before startup. |
skip_extension_data_sync | boolean | No | Whether to skip extension data synchronization before startup. |
Optional query parameters:
| Name | Type | Required | Description |
|---|---|---|---|
sync | string | No | When set to false, startup progress may be returned; the final result still uses the V2 response format. |
Request Example
{
"client_ip": "127.0.0.1",
"headless": false,
"skip_proxy_check": true
}
Response Example
{
"code": 0,
"msg": "success",
"data": {
"id": "1876881021063852034",
"pid": "12345",
"serial_number": 1,
"debug_port": 9222,
"web_socket_url": "ws://127.0.0.1:9222/devtools/browser/xxxx",
"request_id": "request-id"
},
"next": null
}
Stop a Profile
Endpoint
POST /openapi/v2/profiles/{profileId}/stop
Stops a Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
skip_cookie_sync_after_close | boolean | No | Whether to skip cookie synchronization after stopping. |
skip_data_sync_after_close | boolean | No | Whether to skip data synchronization after stopping. |
skip_extension_sync_after_close | boolean | No | Whether to skip extension synchronization after stopping. |
Request Example
{
"skip_cookie_sync_after_close": true,
"skip_data_sync_after_close": true,
"skip_extension_sync_after_close": true
}
List Profile Accounts
Endpoint
GET /openapi/v2/profiles/{profileId}/accounts
Returns the list of accounts for a Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
The response data.list is the account list. For its fields, see Account Parameters.
Add a Profile Account
Endpoint
POST /openapi/v2/profiles/{profileId}/accounts
Adds an account to a Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
The request body uses the account parameters. See Account Parameters.
Request Example
{
"platform": "other",
"username": "account@example.com",
"password": "password",
"secret": "",
"url": "https://example.com",
"remark": "account remark"
}
Update a Profile Account
Endpoint
PATCH /openapi/v2/profiles/{profileId}/accounts/{accountId}
Updates a Profile account.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
accountId | string | Yes | Account ID. |
Request Parameters
The request body uses the account parameters. See Account Parameters.
Delete a Profile Account
Endpoint
DELETE /openapi/v2/profiles/{profileId}/accounts/{accountId}
Deletes a Profile account.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
accountId | string | Yes | Account ID. |
Update a Profile’s Proxy Binding
Endpoint
PATCH /openapi/v2/profiles/{profileId}/proxy-binding
Updates the Proxy binding for a single Profile.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
proxy_binding | object | No | Proxy binding configuration. See Proxy Binding Parameters. |
Request Example
{
"proxy_binding": {
"mode": "linked",
"proxy_id": "1876881021063852999"
}
}
Batch Update Profile Proxy Bindings
Endpoint
PATCH /openapi/v2/profiles/proxy-binding/batch
Updates Proxy bindings for multiple Profiles.
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profile_ids | string[] | No | Profile ID list. Must not be empty. |
proxy_binding | object | No | Proxy binding configuration. See Proxy Binding Parameters. |
Get a Summary of Open Profiles in a Specified Set
Endpoint
POST /openapi/v2/profiles/summary
Returns a summary of open Profiles within the specified set of Profiles.
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ids | string[] | Yes | Profile ID list. |
Clear Profile Storage
Endpoint
DELETE /openapi/v2/profiles/{profileId}/storage
Clears a Profile’s Storage.
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
profileId | string | Yes | Profile ID. |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
types | string[] | No | Storage types to clear. If omitted, local_storage and indexed_db are cleared by default. |
Request Example
{
"types": ["local_storage", "indexed_db"]
}
Parameter Reference
Profile Creation and Update Parameters
ProfileCreateRequest and ProfilePatchRequest use the same primary fields:
| Name | Type | Required | Description |
|---|---|---|---|
name | string | No | Profile name. If omitted, it is generated automatically according to system rules. |
group_ids | string[] | No | Profile Group ID list. Only one valid value is retained; if omitted or empty, the default Profile Group is used automatically. |
proxy_binding | object | No | Profile Proxy binding configuration. See Proxy Binding Parameters. |
fingerprint | object | No | Fingerprint configuration. See Fingerprint Parameters. |
advanced | object | No | Advanced configuration. See Advanced Configuration Parameters. |
cookies | object[] | No | Cookies to write when creating or updating the Profile. Omit to leave cookies unchanged; pass an empty array to write an empty cookie list. |
account_list | object[] | No | Platform accounts to bind when creating or updating the Profile. See Account Parameters. |
tag_ids | string[] | No | Tag ID list. |
remark | string | No | Remark. |
Proxy Binding Parameters
The proxy_binding field configures the Proxy used by the Profile.
| Name | Type | Required | Description |
|---|---|---|---|
mode | string | No | Proxy binding mode. Available values: none, manual, linked. |
proxy_id | string | No | Saved Proxy ID. Required when mode=linked. |
type | string | No | Proxy type. Required when mode=manual and must not be none. Available values: none, http, https, ssh, socks5. |
host | string | No | Proxy host. Required when mode=manual. |
port | integer | No | Proxy port. Required when mode=manual. Range: 1-65535. |
username | string | No | Proxy username. Used when mode=manual. |
password | string | No | Proxy password. Used when mode=manual. |
ip_check_provider | string | No | IP check provider. Available values: ip2location, ipapi. |
ip_version | string | No | IP address version. Available values: ipv4, ipv6. |
Example: no Proxy.
{
"proxy_binding": {
"mode": "none"
}
}
Example: bind a saved Proxy.
{
"proxy_binding": {
"mode": "linked",
"proxy_id": "1876881021063852999"
}
}
Example: manual Proxy.
{
"proxy_binding": {
"mode": "manual",
"type": "http",
"host": "127.0.0.1",
"port": 8080,
"username": "",
"password": "",
"ip_check_provider": "ipapi",
"ip_version": "ipv4"
}
}
Fingerprint Parameters
fingerprint configures the Profile Fingerprint. All fields are optional; omitted fields are generated according to system rules or retain their existing configuration.
| Name | Type | Description |
|---|---|---|
os | string | Operating system type. Available values: random, windows, macos, linux, android, ios. |
kernel_version | string | Browser kernel version. Available values: 120, 134, 142, 143, 147. |
ua | string | User Agent. If empty, the system generates one randomly; if supplied, it must match the operating system type and kernel version. |
language | object | Browser language configuration. |
ui_language | object | User interface language configuration. |
timezone | object | Timezone configuration. |
geolocation | object | Geolocation configuration. |
fonts | object | Font configuration. |
webrtc | object | WebRTC configuration. |
screen | object | Screen configuration. |
webgl | object | WebGL configuration. |
webgpu | object | General-purpose Fingerprint module configuration. |
audio_context | object | General-purpose Fingerprint module configuration. |
client_rects | object | General-purpose Fingerprint module configuration. |
speech_voices | object | General-purpose Fingerprint module configuration. |
media_devices | object | General-purpose Fingerprint module configuration. |
hardware | object | Hardware configuration. |
privacy | object | Privacy configuration. |
launch | object | Launch parameter configuration. |
language
| Name | Type | Description |
|---|---|---|
mode | string | Browser language mode. Available values: ip, custom. |
languages | string[] | Browser language list. Required when mode=custom, for example ["en-US", "en"]. |
ui_language
| Name | Type | Description |
|---|---|---|
mode | string | User interface language mode. Available values: follow_browser_language, current_device_language, custom. |
value | string | Custom user interface language. Required when mode=custom, for example en-US. |
timezone
| Name | Type | Description |
|---|---|---|
mode | string | Timezone source. Available values: ip, custom, real. |
value | string | Timezone value. Applies only when mode=custom. |
geolocation
| Name | Type | Description |
|---|---|---|
permission | string | Geolocation permission. Available values: ask, allow, block. |
source | string | Coordinate source. Available values: ip, custom. |
coordinates.longitude | number | Longitude. |
coordinates.latitude | number | Latitude. |
coordinates.accuracy | number | Accuracy. |
fonts
| Name | Type | Description |
|---|---|---|
mode | string | Font mode. Available values: real, random, custom. |
values | string[] | Font list. Applies only when mode=custom. |
webrtc
| Name | Type | Description |
|---|---|---|
mode | string | WebRTC mode. Available values: real, replace, forward, disabled. |
ip_source | string | Source for replace mode. Applies only when mode=replace. Available values: manual, proxy, random. |
ip | string | Manually specified private IP address. Applies only when ip_source=manual. |
keep_random_internal_ip | boolean | Whether to keep the random private IP address unchanged. Applies only when ip_source=random. |
screen
| Name | Type | Description |
|---|---|---|
resolution_mode | string | Resolution mode. Available values: recommended, random, custom, real. |
resolution.width | integer | Resolution width. |
resolution.height | integer | Resolution height. |
window_size_mode | string | Window size mode. Available values: recommended, custom. |
window_size.width | integer | Window width. |
window_size.height | integer | Window height. |
webgl
| Name | Type | Description |
|---|---|---|
image_mode | string | WebGL image mode. Available values: real, mask. |
metadata_mode | string | WebGL metadata mode. Available values: real, random, custom. |
manufacturer | string | WebGL manufacturer. Applies only when metadata_mode=custom. |
renderer | string | WebGL renderer. Applies only when metadata_mode=custom. |
webgpu
| Name | Type | Description |
|---|---|---|
mode | string | WebGPU mode. Available values: real, mask, disabled. |
Noise-Based Fingerprint Modules
audio_context, client_rects, speech_voices, and media_devices use the same structure:
| Name | Type | Description |
|---|---|---|
mode | string | Module mode. Available values: real, mask. |
hardware
| Name | Type | Description |
|---|---|---|
cpu_cores.mode | string | CPU core count mode. Available values: random, custom, real. |
cpu_cores.value | string | Custom CPU core count. Applies only when mode=custom. |
memory_gb.mode | string | Memory size mode. Available values: random, custom, real. |
memory_gb.value | string | Custom memory size in GB. Applies only when mode=custom. |
device_name_mode | string | Device name mode. Available values: real, random, custom. |
device_name | string | Device name. Applies only when device_name_mode=custom. |
mac_address_mode | string | MAC address mode. Available values: real, random, custom. |
mac_address | string | MAC address. Applies only when mac_address_mode=custom. |
privacy
| Name | Type | Description |
|---|---|---|
do_not_track_mode | string | Do Not Track. Available values: default, enabled, disabled. |
battery_mode | string | Battery mode. Available values: real, mask, disabled. |
port_scan_protection_enabled | boolean | Whether port-scan protection is enabled. |
hardware_acceleration_mode | string | Hardware acceleration. Available values: default, enabled, disabled. |
launch
| Name | Type | Description |
|---|---|---|
start_params | string | Browser launch parameters, separated by commas. |
Advanced Configuration Parameters
advanced configures startup, browser behavior, synchronization, cache, bookmarks, access restrictions, and extensions.
| Name | Type | Description |
|---|---|---|
startup | object | Startup configuration. |
browser_settings | object | Browser settings. |
data_sync | object | Profile data synchronization settings. |
local_cache | object | Local cache cleanup settings. |
bookmarks | object | Bookmark settings. |
access_limit | object | Access restriction settings. |
extensions | object | Extension settings. |
multi_open | string | Multiple-open mode. Available values: global, allow, ban. |
remote_inspector | string | Remote debugging mode. Available values: global, allow, ban. |
spoofing_video | string | Video replacement mode. Available values: enabled, disabled. |
startup
| Name | Type | Description |
|---|---|---|
urls | string[] | List of URLs to open at startup. |
restore_session_mode | string | Session restoration mode. Available values: global, restore, not_restore. |
browser_settings
| Name | Type | Description |
|---|---|---|
scope | string | Application scope. Available values: global, custom. |
restore_last_page | boolean | Whether to restore the last page. |
block_images | boolean | Whether to block images. |
block_video | boolean | Whether to block video. |
mute_audio | boolean | Whether to mute audio. |
block_notifications | boolean | Whether to block web notifications. |
block_open_on_proxy_failure | boolean | Whether to prevent the Profile from opening when the Proxy check fails. |
block_save_password_prompt | boolean | Whether to suppress save-password prompts. |
disable_developer_tools | boolean | Whether to disable developer tools. |
ignore_https_errors | boolean | Whether to ignore HTTPS certificate errors. |
disable_extension_management | boolean | Whether to disable extension management. |
random_fingerprint_on_launch | boolean | Whether to generate a random Fingerprint on every launch. |
disable_incognito | boolean | Whether to disable incognito mode. |
hide_homepage | boolean | Whether to hide the home page. |
extension_security | boolean | Whether to enable extension security. |
block_extension_store | boolean | Whether to block access to the extension store. |
disable_view_password | boolean | Whether to prevent viewing website passwords. |
block_on_proxy_country_change | boolean | Whether to prevent the Profile from opening when the Proxy country changes. |
block_on_extension_download_failure | boolean | Whether to prevent the Profile from opening when an extension download fails. |
disable_disk_write | boolean | Whether to disable disk writes. |
data_sync
| Name | Type | Description |
|---|---|---|
scope | string | Application scope. Available values: global, custom. |
items | string[] | List of synchronization items, such as cookie, bookmark, account, local_storage, indexed_db, extensions. |
permission.enabled | boolean | Whether synchronization permission control is enabled. |
permission.role_ids | string[] | List of role IDs permitted to synchronize. |
local_cache
| Name | Type | Description |
|---|---|---|
scope | string | Application scope. Available values: global, custom. |
clear_mode | string | Cleanup mode. Available values: none, default, custom. |
items | string[] | List of items to clear. |
sync_after_clear | boolean | Whether to synchronize and save after cleanup. |
frequency | string | Cleanup frequency. Available values: every_open, custom_days. |
interval | integer | Cleanup interval in days. Applies only when frequency=custom_days. |
bookmarks
| Name | Type | Description |
|---|---|---|
scope | string | Application scope. Available values: global, custom. |
enabled | boolean | Whether bookmark settings are enabled. |
import_mode | string | Import mode. Available values: append, cover. |
cover_rule | string | Replacement rule. Available values: overwrite, clear. |
file_name | string | Bookmark filename. Usually unnecessary when creating or updating a Profile. |
content | object | Bookmark content. A browser-exported bookmark tree is recommended. |
access_limit
| Name | Type | Description |
|---|---|---|
scope | string | Application scope. Available values: global, custom. |
enabled | boolean | Whether access restrictions are enabled. |
policy | string | Restriction policy. Available values: block, allow_only. |
quick_selection | string[] | Quick-select items, such as google_play. |
urls | string | URL list as multiline text. |
extensions
| Name | Type | Description |
|---|---|---|
mode | string | Extension mode. Available values: allow, ban. |
group_id | string | Extension group ID. |
Account Parameters
| Name | Type | Required | Description |
|---|---|---|---|
platform | string | Yes | Account platform. Use one of the values listed below. |
username | string | No | Login username. |
password | string | No | Login password. |
secret | string | No | 2FA secret or account secret. |
url | string | No | Custom website URL. Required when platform=other and must start with http:// or https://. Built-in platforms ignore this field. |
remark | string | No | Account remark. |
Available values for platform:
other, facebook.com, amazon.com, linkedin.com, x.com, paypal.com, accounts.google.com, vinted.fr, discord.com, aliexpress.com, youtube.com, ebay.com, mail.com, stripe.com, payoneer.com, lazada.com, shopify.com, shoplineapp.com, walmart.com, wish.com, shopee.com, etsy.com, dhgate.com, alibaba.com, tiktok.com, instagram.com, whatsapp.com.
Profile Summary Fields
| Name | Type | Description |
|---|---|---|
id | string | Profile ID. |
serial_no | integer | Profile serial number. |
name | string | Profile name. |
status | string | Profile status. Available values: enabled, disabled. |
run_status | string | Runtime status. Available values: stopped, running, locked. |
browser | object | Browser configuration. |
os | string | Operating system. |
groups | object[] | Profile Group list. |
tags | object[] | Tag list. |
proxy_binding | object | Profile Proxy binding configuration. |
proxy_summary | object | Proxy summary. |
created_at | string | Creation time. |
updated_at | string | Last update time. |
last_opened_at | string | Last opened time. |
remark | string | Remark. |
Profile Detail Fields
Profile details include all Profile summary fields, plus the following:
| Name | Type | Description |
|---|---|---|
group_ids | string[] | Profile Group ID list. |
tag_ids | string[] | Tag ID list. |
fingerprint | object | Fingerprint configuration. |
advanced | object | Advanced configuration. |
Common Workflows
Create and Start a Profile
- Create a Profile:
POST /openapi/v2/profiles
- Get the Profile ID from the response
data.id. - Start the Profile:
POST /openapi/v2/profiles/{profileId}/start
- Use
debug_portorweb_socket_urlfrom the response to connect to the browser debugging protocol. - Stop the Profile:
POST /openapi/v2/profiles/{profileId}/stop
Bind a Saved Proxy to a Profile
- Create a Proxy:
POST /openapi/v2/proxies
- Get the Proxy ID from the response
data.proxy_id. - Bind it to the Profile:
PATCH /openapi/v2/profiles/{profileId}/proxy-binding
Request body:
{
"proxy_binding": {
"mode": "linked",
"proxy_id": "proxy-id"
}
}