# Chỉnh sửa hồ sơ trình duyệt

Endpoint: POST /api/env/update
Version: 1.0.0

## Request fields (application/json):

  - `browserTypeId` (integer)
    Browser type ID; 1=Chrome, 2=Firefox

  - `operatorSystemId` (integer)
    OS type ID; 1:Windows 2:macOS 3:Android 4:IOS 5:Linux

  - `isEncrypt` (integer)
    Whether to encrypt the profile; 0=No, 1=Yes

  - `startupParams` (array)
    Additional browser startup parameters

  - `accountInfo` (object)

  - `accountInfo.customerUrl` (string)
    URL nền tảng tùy chỉnh — bắt buộc nếu platformId=9999, phải là một URL hợp lệ.

  - `accountInfo.password` (string)
    Mật khẩu; độ dài tối đa: 50 ký tự

  - `accountInfo.platformId` (integer)
    Mã định danh nền tảng; sử dụng 9999 cho URL tùy chỉnh. Tham khảo /api/system/platform/list.

  - `accountInfo.siteId` (integer)
    Mã định danh trang web; lấy thông qua API "Lấy các nền tảng có thể cấu hình" (/api/system/platform/list)

  - `accountInfo.username` (string)
    Tên người dùng; độ dài tối đa: 64 ký tự

  - `advancedSetting` (object)
    Cấu hình nâng cao về dấu vân tay và hành vi trình duyệt.

  - `advancedSetting.ua` (string)
    Tùy chỉnh thông tin User-Agent (UA) của hồ sơ. Phải tuân theo định dạng UA chuẩn.
Có thể thực hiện thông qua API “Get Browser UA”.

  - `advancedSetting.time_zone` (object)

  - `advancedSetting.time_zone.switcher` (integer)
    Tùy chọn múi giờ. Mặc định: 1. 1 = Khớp địa chỉ IP, 2 = Tùy chỉnh.

  - `advancedSetting.time_zone.value` (string)
    Bắt buộc khi switcher=2.
ID múi giờ từ API “Lấy danh sách múi giờ và ngôn ngữ”.

  - `advancedSetting.web_rtc` (object)

  - `advancedSetting.web_rtc.switcher` (integer)
    Chính sách WebRTC. Mặc định: 2. 1 = Bảo mật, 2 = Thay thế, 3 = Thực, 4 = Vô hiệu hóa, 5 = Chuyển tiếp.

  - `advancedSetting.geo_location` (object)

  - `advancedSetting.geo_location.switcher` (integer)
    Chính sách định vị địa lý. Mặc định: 1. 1 = Yêu cầu xác nhận, 2 = Vô hiệu hóa.

  - `advancedSetting.geo_location.base_on_ip` (boolean)
    Tạo vị trí dựa trên địa chỉ IP? Mặc định: true. true = yêu cầu xác nhận, false = xác nhận thủ công.

  - `advancedSetting.geo_location.latitude` (number)
    Vĩ độ. Bắt buộc nếu base_on_ip=false.

  - `advancedSetting.geo_location.longitude` (number)
    Kinh độ. Bắt buộc nếu base_on_ip=false.

  - `advancedSetting.geo_location.accuracy` (number)
    Độ chính xác tính bằng mét. Bắt buộc nếu base_on_ip=false.

  - `advancedSetting.language` (object)

  - `advancedSetting.language.switcher` (integer)
    Chính sách ngôn ngữ. Mặc định: 1. 1 = Khớp IP, 2 = Tùy chỉnh.

  - `advancedSetting.language.value` (string)
    Bắt buộc khi switcher=2.
ID ngôn ngữ được phân tách bằng dấu phẩy từ API “Lấy danh sách múi giờ và ngôn ngữ”.

  - `advancedSetting.resolution` (object)

  - `advancedSetting.resolution.switcher` (integer)
    Chính sách độ phân giải. Mặc định: 1. 1 = Thực tế, 2 = Tùy chỉnh.

  - `advancedSetting.resolution.id` (string)
    Bắt buộc khi switcher=2.
ID độ phân giải từ API “Lấy danh sách độ phân giải”.

  - `advancedSetting.font` (object)

  - `advancedSetting.font.switcher` (integer)
    Chính sách phông chữ. Mặc định: 1. 1 = Phông chữ thật, 2 = Phông chữ tùy chỉnh.

  - `advancedSetting.font.value` (string)
    Tên phông chữ tùy chỉnh được phân tách bằng dấu phẩy (bắt buộc nếu switcher=2).

  - `advancedSetting.canvas` (object)

  - `advancedSetting.canvas.switcher` (integer)
    Chính sách Canvas. Mặc định: 1. 1 = Nhiễu, 2 = Thực.

  - `advancedSetting.webgl_image` (object)

  - `advancedSetting.webgl_image.switcher` (integer)
    Chính sách hình ảnh WebGL. Mặc định: 1. 1 = Nhiễu, 2 = Thực.

  - `advancedSetting.webgl_metadata` (object)

  - `advancedSetting.webgl_metadata.switcher` (integer)
    Chính sách siêu dữ liệu WebGL. Mặc định: 3. 1 = Thực, 2 = Tắt tăng tốc phần cứng, 3 = Tùy chỉnh.

  - `advancedSetting.webgl_metadata.provider` (string)
    Chuỗi nhà cung cấp WebGL (ví dụ: "Google Inc.")

  - `advancedSetting.webgl_metadata.render` (string)
    Chuỗi hiển thị WebGL (ví dụ: "ANGLE (...)")

  - `advancedSetting.audio_context` (object)

  - `advancedSetting.audio_context.switcher` (integer)
    Chính sách AudioContext. Mặc định: 1. 1 = Tiếng ồn, 2 = Chân thực.

  - `advancedSetting.media_device` (object)

  - `advancedSetting.media_device.switcher` (integer)
    Chính sách thiết bị đa phương tiện. Mặc định: 1. 1 = Nhiễu, 2 = Thực.

  - `advancedSetting.client_rects` (object)

  - `advancedSetting.client_rects.switcher` (integer)
    Chính sách ClientRects. Mặc định: 1. 1 = Nhiễu, 2 = Thực.

  - `advancedSetting.speech_voise` (object)

  - `advancedSetting.speech_voise.switcher` (integer)
    Chính sách SpeechVoices. Mặc định: 1. 1 = Riêng tư, 2 = Thực tế

  - `advancedSetting.hardware_concurrency` (integer)
    Số lõi CPU logic được mô phỏng.
Mặc định: 4. Tùy chọn: 0 (thực), 2, 3, 4, 6, 8, 10, 12.

  - `advancedSetting.memery_device` (integer)
    Bộ nhớ thiết bị mô phỏng (GB).
Mặc định: 8. Tùy chọn: 0 (thực), 2, 4, 6, 8.

  - `advancedSetting.do_not_track` (integer)
    Chế độ "Không theo dõi". Mặc định: 2. 1 = bật, 2 = tắt.

  - `advancedSetting.bluetooth` (object)

  - `advancedSetting.bluetooth.switcher` (integer)
    Chính sách Bluetooth. Mặc định: 1. 1 = Quyền riêng tư, 2 = Xác thực.

  - `advancedSetting.battery` (object)

  - `advancedSetting.battery.switcher` (integer)
    Chính sách pin. Mặc định: 1. 1 = Quyền riêng tư, 2 = Tính xác thực.

  - `advancedSetting.port_scan_protection` (object)

  - `advancedSetting.port_scan_protection.switcher` (integer)
    Bảo vệ chống quét cổng. Mặc định: 1. 1 = Bật, 2 = Tắt.

  - `advancedSetting.port_scan_protection.value` (string)
    Các cổng mạng cục bộ được phép kết nối (phân cách bằng dấu phẩy).

  - `advancedSetting.os_version` (string)
    Phiên bản hệ điều hành macOS (ví dụ: macOS 12, macOS 13, macOS 14).

  - `advancedSetting.web_gpu` (object)

  - `advancedSetting.web_gpu.switcher` (integer)
    Chính sách WebGPU. Mặc định: 1. 1 = khớp dựa trên WebGL, 2 = đúng, 3 = tắt.

  - `advancedSetting.ciphers` (object)

  - `advancedSetting.ciphers.switcher` (integer)
    Chính sách mã hóa TLS. Mặc định: 1. 1 = Mặc định, 2 = Tùy chỉnh.

  - `advancedSetting.ciphers.value` (string)
    Bắt buộc khi switcher=2.
Danh sách các giao thức TLS cần vô hiệu hóa, được phân tách bằng dấu phẩy (ví dụ: "TLSv1,TLSv1.1").

  - `advancedSetting.mobile_device` (string)
    Mã định danh kiểu điện thoại (dưới dạng chuỗi). Lấy thông qua API "Lấy danh sách kiểu điện thoại".
Ví dụ: "1826502391344832512"

  - `afterStartupConfig` (object)

  - `afterStartupConfig.afterStartup` (integer)
    Hành động sau khi khởi động. Mặc định: 1.
1 = Tiếp tục trang trước,
2 = Mở URL được chỉ định,
3 = Mở URL + nền tảng,
4 = Tiếp tục trang trước + nền tảng.

  - `afterStartupConfig.autoOpenUrls` (array)
    Danh sách các URL hợp lệ cần tự động mở (bắt buộc đối với tùy chọn 2–3).

  - `browserCore` (integer)
    Kernel version; default:0 (auto-match). Fetch available versions via `/api/env/advanced/ua/versions`.

  - `cookies` (string)
    Cookie string to preload (optional)

  - `envName` (string)
    Environment name

  - `envRemark` (string)
    Environment remark; max length:1500 chars

  - `groupId` (integer)
    Environment group ID; default:ungrouped (0)

  - `groupName` (string)
    Tên nhóm (tối đa 50 ký tự). Nếu được cung cấp, hệ thống sẽ kiểm tra groupId trước: nếu tìm thấy nhóm hợp lệ thì sử dụng nhóm đó; nếu không, tìm kiếm theo groupName. Nếu nhóm có tên đó tồn tại thì tham chiếu nhóm đó; nếu không thì tạo nhóm mới. Mỗi đội bị giới hạn 1.000 nhóm.

  - `proxyId` (integer)
    Proxy ID; default:0

  - `tagIds` (array)
    Tag IDs; default:none

  - `uaVersion` (integer)
    UA preset version; default:0 (all)

  - `disableAudio` (integer)
    Disable audio:0 = off, 1 = on

  - `disableImg` (integer)
    Disable image loading:0 = off, 1 = on

  - `disableVideo` (integer)
    Disable video loading:0 = off, 1 = on

  - `imgLimitSize` (integer)
    Max image size (KB)

  - `envId` (string, required)
    Environment ID

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (null, required)

  - `data` (null, required)

  - `requestId` (string, required)

