# Creación avanzada de perfil de navegador

Crea un perfil de navegador con una configuración de huella completa.
- **Requisitos previos**: las mismas comprobaciones de plan y cuota diaria que en la creación rápida. El nombre del perfil debe ser único dentro del equipo, las coordenadas deben quedar fuera de China continental, y `advancedSetting.ua` debe concordar con `uaVersion`. Si indicas un `proxyId`, ya debe existir en el equipo.
- **Efecto**: inserta el perfil, sus credenciales de cuenta (cifradas en reposo) y la configuración posterior al arranque; consume capacidad del plan y el contador diario de creación. Una URL de plataforma personalizada también crea un registro de sitio.
- **Finalización**: sincrónica. `data` contiene el ID del perfil nuevo.
- **Reintentos**: no es idempotente. Una segunda llamada con el mismo `envName` explícito falla en la comprobación de unicidad; sin nombre, crea un duplicado. No hay clave de idempotencia. No reintentes a ciegas tras un timeout: consulta primero el estado.
- **Local API**: los kernels candidatos se filtran por la versión del cliente de escritorio en ejecución, y las llamadas simultáneas de un mismo equipo se serializan mediante un bloqueo a nivel de equipo.

Errores de negocio documentados: `19001`, `19002`, `19004`, `19005`, `19063`, `19064`, `19100`, `19101`, `19102`, `19103`, `19104`, `19105`, `19106`, `19107`, `19108`, `19109`, `19110`, `19111`, `19112`, `19141`, `19175`. Consulte [Error Codes](../Getting%20Started/error-codes.md) para el significado de cada código. Cualquier operación puede devolver además los códigos comunes.

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

## Request fields (application/json):

  - `browserTypeId` (integer, required)
    ID del tipo de navegador; 1=Chrome, 2=Firefox

  - `operatorSystemId` (integer, required)
    ID del tipo de SO; 1:Windows 2:macOS 3:Android 4:IOS 5:Linux

  - `isEncrypt` (integer)
    Si se debe cifrar el perfil; 0=No, 1=Sí

  - `startupParams` (array)
    Parámetros adicionales de arranque del navegador

  - `accountInfo` (object)

  - `accountInfo.customerUrl` (string)
    URL de plataforma personalizada: obligatoria si platformId=9999, debe ser una URL válida.

  - `accountInfo.password` (string)
    Contraseña; longitud máxima: 50 caracteres

  - `accountInfo.platformId` (string)
    ID de la plataforma; utilice 9999 para la URL personalizada. Consulte /api/system/platform/list.

  - `accountInfo.siteId` (string)
    ID del sitio; se obtiene mediante la API "Get Configurable Platforms" (/api/system/platform/list).

  - `accountInfo.username` (string)
    Nombre de usuario; longitud máxima: 64 caracteres

  - `advancedSetting` (object)
    Configuración avanzada de la huella digital y el comportamiento del navegador.

  - `advancedSetting.ua` (string)
    Personaliza el User-Agent (UA) del perfil. Debe seguir el formato estándar de UA.
Disponible a través de la API "Get Browser UA".

  - `advancedSetting.time_zone` (object)

  - `advancedSetting.time_zone.switcher` (integer)
    Opción de zona horaria. Predeterminado: 1. 1 = Coincidencia con IP, 2 = Personalizada.

  - `advancedSetting.time_zone.value` (string)
    Obligatorio cuando switcher=2.
ID de zona horaria obtenido de la API “Obtener lista de zonas horarias e idiomas”.

  - `advancedSetting.web_rtc` (object)

  - `advancedSetting.web_rtc.switcher` (integer)
    Política de WebRTC. Predeterminado: 2. 1 = Privacidad, 2 = Reemplazo, 3 = Real, 4 = Deshabilitado, 5 = Reenvío.

  - `advancedSetting.geo_location` (object)

  - `advancedSetting.geo_location.switcher` (integer)
    Política de geolocalización. Predeterminado: 1. 1 = Solicitar, 2 = Deshabilitado.

  - `advancedSetting.geo_location.base_on_ip` (boolean)
    ¿Generar ubicación en función de la IP? Predeterminado: verdadero. verdadero = solicitud, falso = manual.

  - `advancedSetting.geo_location.latitude` (number)
    Latitud. Obligatorio si base_on_ip=false.

  - `advancedSetting.geo_location.longitude` (number)
    Longitud. Obligatorio si base_on_ip=false.

  - `advancedSetting.geo_location.accuracy` (number)
    Precisión en metros. Obligatorio si base_on_ip=false.

  - `advancedSetting.language` (object)

  - `advancedSetting.language.switcher` (integer)
    Política de idioma. Predeterminado: 1. 1 = Coincidencia de IP, 2 = Personalizado.

  - `advancedSetting.language.value` (string)
    Obligatorio cuando switcher=2.
Identificadores de idioma separados por comas de la API "Obtener lista de zona horaria e idioma".

  - `advancedSetting.resolution` (object)

  - `advancedSetting.resolution.switcher` (integer)
    Política de resolución. Predeterminado: 1. 1 = Real, 2 = Personalizado.

  - `advancedSetting.resolution.id` (string)
    Obligatorio cuando switcher=2.
ID de resolución de la API “Obtener lista de resoluciones”.

  - `advancedSetting.font` (object)

  - `advancedSetting.font.switcher` (integer)
    Política de fuentes. Predeterminado: 1. 1 = Real, 2 = Personalizado.

  - `advancedSetting.font.value` (string)
    Nombres de fuentes personalizadas separadas por comas (obligatorio si switcher=2).

  - `advancedSetting.canvas` (object)

  - `advancedSetting.canvas.switcher` (integer)
    Política de Canvas. Predeterminado: 1. 1 = Ruido, 2 = Real.

  - `advancedSetting.webgl_image` (object)

  - `advancedSetting.webgl_image.switcher` (integer)
    Política de imagen WebGL. Predeterminado: 1. 1 = Ruido, 2 = Real.

  - `advancedSetting.webgl_metadata` (object)

  - `advancedSetting.webgl_metadata.switcher` (integer)
    Política de metadatos de WebGL. Predeterminado: 3. 1 = Real, 2 = Deshabilitar la aceleración por hardware, 3 = Personalizado.

  - `advancedSetting.webgl_metadata.provider` (string)
    Cadena de servicio de WebGL (por ejemplo, "Google Inc.")

  - `advancedSetting.webgl_metadata.render` (string)
    Cadena de renderizado WebGL (por ejemplo, "ANGLE (...)")

  - `advancedSetting.audio_context` (object)

  - `advancedSetting.audio_context.switcher` (integer)
    Política de AudioContext. Predeterminado: 1. 1 = Ruido, 2 = Realista.

  - `advancedSetting.media_device` (object)

  - `advancedSetting.media_device.switcher` (integer)
    Política del dispositivo multimedia. Predeterminado: 1. 1 = Ruido, 2 = Real.

  - `advancedSetting.client_rects` (object)

  - `advancedSetting.client_rects.switcher` (integer)
    Política ClientRects. Predeterminado: 1. 1 = Ruido, 2 = Real.

  - `advancedSetting.speech_voise` (object)

  - `advancedSetting.speech_voise.switcher` (integer)
    Política SpeechVoices. Predeterminado: 1. 1 = Privacidad, 2 = Real

  - `advancedSetting.hardware_concurrency` (integer)
    Número simulado de núcleos lógicos de CPU.
Valor predeterminado: 4. Opciones: 0 (real), 2, 3, 4, 6, 8, 10, 12.

  - `advancedSetting.memery_device` (integer)
    Memoria simulada del dispositivo (GB).

Valor predeterminado: 8. Opciones: 0 (real), 2, 4, 6, 8.

  - `advancedSetting.do_not_track` (integer)
    Configuración de No rastrear. Predeterminado: 2. 1 = activado, 2 = desactivado.

  - `advancedSetting.bluetooth` (object)

  - `advancedSetting.bluetooth.switcher` (integer)
    Política de Bluetooth. Predeterminado: 1. 1 = Privacidad, 2 = Autenticidad.

  - `advancedSetting.battery` (object)

  - `advancedSetting.battery.switcher` (integer)
    Política de batería. Predeterminado: 1. 1 = Privacidad, 2 = Autenticidad.

  - `advancedSetting.port_scan_protection` (object)

  - `advancedSetting.port_scan_protection.switcher` (integer)
    Protección contra escaneo de puertos. Predeterminado: 1. 1 = Activado, 2 = Desactivado.

  - `advancedSetting.port_scan_protection.value` (string)
    Se permitió la conexión de puertos de red locales (separados por comas).

  - `advancedSetting.os_version` (string)
    Versión del sistema macOS (por ejemplo, macOS 12, macOS 13, macOS 14).

  - `advancedSetting.web_gpu` (object)

  - `advancedSetting.web_gpu.switcher` (integer)
    Política de WebGPU. Predeterminado: 1. 1 = Coincidencia basada en WebGL, 2 = verdadero, 3 = deshabilitado.

  - `advancedSetting.ciphers` (object)

  - `advancedSetting.ciphers.switcher` (integer)
    Política de cifrado TLS. Predeterminado: 1. 1 = Predeterminado, 2 = Personalizado.

  - `advancedSetting.ciphers.value` (string)
    Obligatorio cuando switcher=2.
Lista de protocolos TLS separados por comas que se deben deshabilitar (p. ej., "TLSv1,TLSv1.1").

  - `advancedSetting.mobile_device` (string)
    ID del modelo de teléfono (como cadena de texto). Se obtiene mediante la API "Obtener lista de modelos de teléfono".
Ejemplo: "1826502391344832512"

  - `afterStartupConfig` (object)

  - `afterStartupConfig.afterStartup` (integer)
    Acción tras el inicio. Predeterminado: 1.
1 = Continuar en la última página,
2 = Abrir las URL especificadas,
3 = Abrir las URL + plataforma,
4 = Continuar en la última página + plataforma.

  - `afterStartupConfig.autoOpenUrls` (array)
    Lista de URL válidas para abrir automáticamente (obligatoria para las opciones 2 y 3).

  - `browserCore` (integer)
    Versión del kernel; por defecto: 0 (coincidencia automática). Obtén las versiones disponibles con `/api/env/advanced/ua/versions`.

  - `cookies` (string)
    Cadena de cookies que se precargará (opcional)

  - `envName` (string)
    Nombre del entorno

  - `envRemark` (string)
    Comentario del entorno; longitud máxima: 1500 caracteres

  - `groupId` (string)
    ID del grupo de entornos; por defecto: sin grupo (0)

  - `groupName` (string)
    Nombre del grupo (máximo 50 caracteres). Si se proporciona, el sistema primero verifica groupId: si se encuentra un grupo válido, se utiliza; de lo contrario, busca por groupName. Si existe un grupo con ese nombre, se referencia; si no, se crea uno nuevo. Cada equipo está limitado a 1.000 grupos.

  - `proxyId` (string)
    ID del proxy; por defecto: 0

  - `tagIds` (array)
    ID de etiquetas; por defecto: ninguna

  - `uaVersion` (integer)
    Versión preestablecida del UA; por defecto: 0 (todas)

  - `disableAudio` (integer)
    Desactivar audio: 0 = no, 1 = sí

  - `disableImg` (integer)
    Desactivar la carga de imágenes: 0 = no, 1 = sí

  - `disableVideo` (integer)
    Desactivar la carga de vídeo: 0 = no, 1 = sí

  - `imgLimitSize` (integer)
    Tamaño máximo de imagen (KB)

  - `proxy` (object)
    Información del proxy

  - `proxy.proxyId` (string)
    ID del proxy

  - `proxy.proxyName` (string)
    Nombre del proxy (máximo 600 caracteres)

  - `proxy.proxyType` (integer)
    Tipo de proxy, 0: http, 1: https. No puede estar vacío cuando proxyProvider es 7/8

  - `proxy.proxyProvider` (string)
    Tipo de 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 del proxy. Puede estar vacía cuando proxyProvider es 16/17/18; obligatoria para los demás

  - `proxy.proxyPort` (integer)
    Puerto del proxy (solo números del 1 al 65535). Puede estar vacío cuando proxyProvider es 16/17/18; obligatorio para los demás

  - `proxy.username` (string)
    Nombre de usuario (máximo 200 caracteres)

  - `proxy.password` (string)
    Contraseña (máximo 100 caracteres)

  - `proxy.refreshUrl` (string)
    URL de actualización

  - `proxy.country` (string)
    Código de país (por ejemplo `us`). Consulta la [tabla de países y zonas horarias](/api-reference/appendix/country-time-zone) para ver los códigos admitidos. Obligatorio cuando proxyProvider es 16/17/18

  - `proxy.city` (string)
    Ciudad

  - `proxy.state` (string)
    Estado/Provincia

  - `proxy.encryptionType` (integer)
    Método de cifrado. No puede estar vacío cuando proxyProvider es 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)
    ¿Activar la supervisión de cambios de IP? true: activada, false: desactivada

  - `proxy.ipChangeAction` (integer)
    Supervisión de cambios de IP 0: bloquear el acceso, 1: advertir

## Response 200:

  - `200` (unknown)
    Correcto. `data` es un único valor cadena.

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (string | null, required)

  - `data` (string, required)

  - `requestId` (string, required)

