# Tạo hồ sơ trình duyệt nâng cao

Tạo một profile trình duyệt với cấu hình dấu vân tay đầy đủ.
- **Điều kiện tiên quyết**: cùng các bước kiểm tra gói và hạn mức trong ngày như khi tạo nhanh. Tên profile phải là duy nhất trong nhóm, tọa độ phải nằm ngoài Trung Quốc đại lục, và `advancedSetting.ua` phải nhất quán với `uaVersion`. Nếu bạn truyền `proxyId`, nó phải đã tồn tại trong nhóm.
- **Tác động**: chèn profile, thông tin đăng nhập của nó (được mã hóa khi lưu) và cấu hình sau khi khởi động; tiêu tốn dung lượng của gói và bộ đếm tạo trong ngày. Một URL nền tảng tùy chỉnh còn tạo thêm một bản ghi site.
- **Hoàn tất**: đồng bộ. `data` chứa ID của profile mới.
- **Thử lại**: không idempotent. Lệnh gọi thứ hai với cùng một `envName` chỉ định rõ sẽ thất bại ở bước kiểm tra trùng tên; nếu không đặt tên thì nó tạo ra một bản trùng lặp. Không có khóa idempotency. Đừng thử lại một cách mù quáng sau khi hết thời gian chờ: hãy truy vấn trạng thái trước.
- **Local API**: các kernel ứng viên được lọc theo phiên bản client desktop đang chạy, và các lệnh gọi đồng thời từ cùng một nhóm được xếp tuần tự bằng khóa ở cấp nhóm.

Các mã lỗi nghiệp vụ đã ghi nhận: `19001`, `19002`, `19004`, `19005`, `19063`, `19064`, `19100`, `19101`, `19102`, `19103`, `19104`, `19105`, `19106`, `19107`, `19108`, `19109`, `19110`, `19111`, `19112`, `19141`, `19175`. Xem [Error Codes](../Getting%20Started/error-codes.md) để biết ý nghĩa từng mã. Mọi thao tác cũng có thể trả về các mã dùng chung.

Endpoint: POST /api/env/create/advanced
Version: 2026-09-05

## Request fields (application/json):

  - `browserTypeId` (integer, required)
    ID loại trình duyệt; 1=Chrome, 2=Firefox

  - `operatorSystemId` (integer, required)
    ID loại hệ điều hành; 1:Windows 2:macOS 3:Android 4:IOS 5:Linux

  - `isEncrypt` (integer)
    Có mã hóa profile hay không; 0=Không, 1=Có

  - `startupParams` (array)
    Tham số khởi động trình duyệt bổ sung

  - `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` (string)
    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` (string)
    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 dịch vụ thiết bị 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)
    Phiên bản kernel; mặc định: 0 (tự động khớp). Lấy các phiên bản khả dụng qua `/api/env/advanced/ua/versions`.

  - `cookies` (string)
    Chuỗi cookie nạp trước (không bắt buộc)

  - `envName` (string)
    Tên môi trường

  - `envRemark` (string)
    Ghi chú môi trường; độ dài tối đa: 1500 ký tự

  - `groupId` (string)
    ID nhóm môi trường; mặc định: chưa thuộc nhóm (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` (string)
    ID proxy; mặc định: 0

  - `tagIds` (array)
    ID các thẻ; mặc định: không có

  - `uaVersion` (integer)
    Phiên bản UA đặt trước; mặc định: 0 (tất cả)

  - `disableAudio` (integer)
    Tắt âm thanh: 0 = không, 1 = có

  - `disableImg` (integer)
    Tắt tải hình ảnh: 0 = không, 1 = có

  - `disableVideo` (integer)
    Tắt tải video: 0 = không, 1 = có

  - `imgLimitSize` (integer)
    Kích thước ảnh tối đa (KB)

  - `proxy` (object)
    Thông tin proxy

  - `proxy.proxyId` (string)
    ID proxy

  - `proxy.proxyName` (string)
    Tên proxy (tối đa 600 ký tự)

  - `proxy.proxyType` (integer)
    Kiểu proxy, 0: http, 1: https. Không được để trống khi proxyProvider là 7/8

  - `proxy.proxyProvider` (string)
    Loại proxy 0: http, 1: https, 2: socks5, 3: ssh, 4: Oxylabs, 5: Proxys.io, 7: Luminati, 8: Lumauto, 9: Oxylabsauto, 10: Trojan, 11: Shadowsocks, 13: ABCPROXY, 14: LunaProxy, 15: IPHTML, 16: PiaProxy, 17: 922S5, 18: 360Proxy

  - `proxy.proxyIp` (string)
    IP proxy. Có thể để trống khi proxyProvider là 16/17/18; bắt buộc với các trường hợp còn lại

  - `proxy.proxyPort` (integer)
    Cổng proxy (chỉ nhận số từ 1 đến 65535). Có thể để trống khi proxyProvider là 16/17/18; bắt buộc với các trường hợp còn lại

  - `proxy.username` (string)
    Tên người dùng (tối đa 200 ký tự)

  - `proxy.password` (string)
    Mật khẩu (tối đa 100 ký tự)

  - `proxy.refreshUrl` (string)
    URL làm mới

  - `proxy.country` (string)
    Mã quốc gia (ví dụ `us`). Xem [bảng quốc gia và múi giờ](/api-reference/appendix/country-time-zone) để biết các mã được hỗ trợ. Bắt buộc khi proxyProvider là 16/17/18

  - `proxy.city` (string)
    Thành phố

  - `proxy.state` (string)
    Tỉnh/Thành

  - `proxy.encryptionType` (integer)
    Phương thức mã hóa. Không được để trống khi proxyProvider là 11. 1: aes-128-gcm, 2: aes-192-gcm, 3: aes-256-gcm, 4: aes-128-cfb, 5: aes-192-cfb, 6: aes-256-cfb, 7: aes-128-ctr, 8: aes-192-ctr, 9: aes-256-ctr, 10: rc4-md5, 11: chacha20-ietf, 12: xchacha20, 13: chacha20-ietf-poly1305, 14: xchacha20-ietf-poly1305

  - `proxy.ipMonitor` (boolean)
    Bật theo dõi thay đổi IP? true: bật, false: tắt

  - `proxy.ipChangeAction` (integer)
    Theo dõi thay đổi IP 0: chặn truy cập, 1: cảnh báo

## Response 200:

  - `200` (unknown)
    Thành công. `data` là một giá trị chuỗi duy nhất.

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (string | null, required)

  - `data` (string, required)

  - `requestId` (string, required)

