# Criação avançada de perfil de navegador

Cria um perfil de navegador com uma configuração completa de impressão digital.
- **Pré-requisitos**: as mesmas verificações de plano e cota diária da criação rápida. O nome do perfil precisa ser único dentro da equipe, as coordenadas precisam ficar fora da China continental, e `advancedSetting.ua` precisa concordar com `uaVersion`. Se você informar um `proxyId`, ele já precisa existir na equipe.
- **Efeito**: insere o perfil, as credenciais de conta dele (criptografadas em repouso) e a configuração pós-inicialização; consome capacidade do plano e o contador diário de criação. Uma URL de plataforma personalizada também cria um registro de site.
- **Conclusão**: sincrônica. `data` contém o ID do novo perfil.
- **Nova tentativa**: não é idempotente. Uma segunda chamada com o mesmo `envName` explícito falha na verificação de unicidade; sem nome, cria uma duplicata. Não há chave de idempotência. Não repita às cegas depois de um timeout: consulte o estado primeiro.
- **Local API**: os kernels candidatos são filtrados pela versão do cliente desktop em execução, e chamadas simultâneas de uma mesma equipe são serializadas por um bloqueio no nível da equipe.

Erros de negócio 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 o significado de cada código. Qualquer operação também pode retornar os códigos comuns.

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

## Request fields (application/json):

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

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

  - `isEncrypt` (integer)
    Se o perfil deve ser criptografado; 0=Não, 1=Sim

  - `startupParams` (array)
    Parâmetros adicionais de inicialização do navegador

  - `accountInfo` (object)

  - `accountInfo.customerUrl` (string)
    URL da plataforma personalizada — obrigatória se platformId=9999, deve ser uma URL válida.

  - `accountInfo.password` (string)
    Senha; comprimento máximo: 50 caracteres

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

  - `accountInfo.siteId` (string)
    ID do site; obtido através da API "Obter Plataformas Configuráveis" (/api/system/platform/list)

  - `accountInfo.username` (string)
    Nome de usuário; comprimento máximo: 64 caracteres

  - `advancedSetting` (object)
    Configuração avançada de impressões digitais e comportamento do navegador.

  - `advancedSetting.ua` (string)
    Personalize o User-Agent (UA) do perfil. Deve seguir o formato padrão de UA.
Disponível através da API “Obter UA do Navegador”.

  - `advancedSetting.time_zone` (object)

  - `advancedSetting.time_zone.switcher` (integer)
    Opção de fuso horário. Padrão: 1. 1 = Corresponder ao IP, 2 = Personalizado.

  - `advancedSetting.time_zone.value` (string)
    Obrigatório quando switcher=2.
ID do fuso horário obtido da API "Obter lista de fusos horários e idiomas".

  - `advancedSetting.web_rtc` (object)

  - `advancedSetting.web_rtc.switcher` (integer)
    Política WebRTC. Padrão: 2. 1 = Privacidade, 2 = Substituição, 3 = Real, 4 = Desativado, 5 = Encaminhamento.

  - `advancedSetting.geo_location` (object)

  - `advancedSetting.geo_location.switcher` (integer)
    Política de geolocalização. Padrão: 1. 1 = Solicitar, 2 = Desativado.

  - `advancedSetting.geo_location.base_on_ip` (boolean)
    Gerar localização com base no IP? Padrão: verdadeiro. verdadeiro = solicitado, falso = manual.

  - `advancedSetting.geo_location.latitude` (number)
    Latitude. Obrigatório se base_on_ip=false.

  - `advancedSetting.geo_location.longitude` (number)
    Longitude. Obrigatório se base_on_ip=false.

  - `advancedSetting.geo_location.accuracy` (number)
    Precisão em metros. Obrigatório se base_on_ip=false.

  - `advancedSetting.language` (object)

  - `advancedSetting.language.switcher` (integer)
    Política de idioma. Padrão: 1. 1 = Corresponder ao IP, 2 = Personalizado.

  - `advancedSetting.language.value` (string)
    Obrigatório quando switcher=2.
IDs de idioma separados por vírgula da API "Obter lista de fusos horários e idiomas".

  - `advancedSetting.resolution` (object)

  - `advancedSetting.resolution.switcher` (integer)
    Política de resolução. Padrão: 1. 1 = Real, 2 = Personalizado.

  - `advancedSetting.resolution.id` (string)
    Obrigatório quando switcher=2.
ID da resolução obtido da API "Obter lista de resoluções".

  - `advancedSetting.font` (object)

  - `advancedSetting.font.switcher` (integer)
    Política de fontes. Padrão: 1. 1 = Real, 2 = Personalizada.

  - `advancedSetting.font.value` (string)
    Nomes de fontes personalizadas separados por vírgulas (obrigatório se switcher=2).

  - `advancedSetting.canvas` (object)

  - `advancedSetting.canvas.switcher` (integer)
    Política do Canvas. Padrão: 1. 1 = Ruído, 2 = Real.

  - `advancedSetting.webgl_image` (object)

  - `advancedSetting.webgl_image.switcher` (integer)
    Política de imagem WebGL. Padrão: 1. 1 = Ruído, 2 = Real.

  - `advancedSetting.webgl_metadata` (object)

  - `advancedSetting.webgl_metadata.switcher` (integer)
    Política de metadados WebGL. Padrão: 3. 1 = Real, 2 = Desativar aceleração de hardware, 3 = Personalizado.

  - `advancedSetting.webgl_metadata.provider` (string)
    String do serviço WebGL (por exemplo, "Google Inc.")

  - `advancedSetting.webgl_metadata.render` (string)
    String de renderização WebGL (por exemplo, "ANGLE (...)")

  - `advancedSetting.audio_context` (object)

  - `advancedSetting.audio_context.switcher` (integer)
    Política AudioContext. Padrão: 1. 1 = Ruído, 2 = Realista.

  - `advancedSetting.media_device` (object)

  - `advancedSetting.media_device.switcher` (integer)
    Política do dispositivo de mídia. Padrão: 1. 1 = Ruído, 2 = Real.

  - `advancedSetting.client_rects` (object)

  - `advancedSetting.client_rects.switcher` (integer)
    Política ClientRects. Padrão: 1. 1 = Ruído, 2 = Real.

  - `advancedSetting.speech_voise` (object)

  - `advancedSetting.speech_voise.switcher` (integer)
    Política SpeechVoices. Padrão: 1. 1 = Privacidade, 2 = Real

  - `advancedSetting.hardware_concurrency` (integer)
    Número simulado de núcleos lógicos da CPU.
Padrão: 4. Opções: 0 (real), 2, 3, 4, 6, 8, 10, 12.

  - `advancedSetting.memery_device` (integer)
    Memória simulada do dispositivo (GB).
Padrão: 8. Opções: 0 (real), 2, 4, 6, 8.

  - `advancedSetting.do_not_track` (integer)
    Configuração "Não rastrear". Padrão: 2. 1 = ativado, 2 = desativado.

  - `advancedSetting.bluetooth` (object)

  - `advancedSetting.bluetooth.switcher` (integer)
    Política de Bluetooth. Padrão: 1. 1 = Privacidade, 2 = Autenticidade.

  - `advancedSetting.battery` (object)

  - `advancedSetting.battery.switcher` (integer)
    Política de bateria. Padrão: 1. 1 = Privacidade, 2 = Autenticidade.

  - `advancedSetting.port_scan_protection` (object)

  - `advancedSetting.port_scan_protection.switcher` (integer)
    Proteção contra varredura de portas. Padrão: 1. 1 = Ligado, 2 = Desligado.

  - `advancedSetting.port_scan_protection.value` (string)
    Portas de rede local permitidas para conexão (separadas por vírgulas).

  - `advancedSetting.os_version` (string)
    Versão do sistema macOS (por exemplo, macOS 12, macOS 13, macOS 14).

  - `advancedSetting.web_gpu` (object)

  - `advancedSetting.web_gpu.switcher` (integer)
    Política WebGPU. Padrão: 1. 1 = Correspondência baseada em WebGL, 2 = verdadeiro, 3 = desativado.

  - `advancedSetting.ciphers` (object)

  - `advancedSetting.ciphers.switcher` (integer)
    Política de criptografia TLS. Padrão: 1. 1 = Padrão, 2 = Personalizado.

  - `advancedSetting.ciphers.value` (string)
    Obrigatório quando switcher=2.
Lista de protocolos TLS a serem desativados, separados por vírgula (por exemplo, "TLSv1,TLSv1.1").

  - `advancedSetting.mobile_device` (string)
    ID do modelo do telefone (como string). Obtido através da API "Obter Lista de Modelos de Telefone".
Exemplo: "1826502391344832512"

  - `afterStartupConfig` (object)

  - `afterStartupConfig.afterStartup` (integer)
    Ação após a inicialização. Padrão: 1.
1 = Continuar na última página,
2 = Abrir URLs especificadas,
3 = Abrir URLs + plataforma,
4 = Continuar na última página + plataforma.

  - `afterStartupConfig.autoOpenUrls` (array)
    Lista de URLs válidas para abrir automaticamente (obrigatória para as opções 2 e 3).

  - `browserCore` (integer)
    Versão do kernel; padrão: 0 (correspondência automática). Obtenha as versões disponíveis em `/api/env/advanced/ua/versions`.

  - `cookies` (string)
    String de cookies a pré-carregar (opcional)

  - `envName` (string)
    Nome do ambiente

  - `envRemark` (string)
    Observação do ambiente; comprimento máximo: 1500 caracteres

  - `groupId` (string)
    ID do grupo de ambientes; padrão: sem grupo (0)

  - `groupName` (string)
    Nome do grupo (máximo 50 caracteres). Se fornecido, o sistema primeiro verifica groupId: se um grupo válido for encontrado, ele é usado; caso contrário, pesquisa por groupName. Se um grupo com esse nome existir, ele é referenciado; se não, um novo grupo é criado. Cada equipe é limitada a 1.000 grupos.

  - `proxyId` (string)
    ID do proxy; padrão: 0

  - `tagIds` (array)
    IDs de etiquetas; padrão: nenhuma

  - `uaVersion` (integer)
    Versão predefinida do UA; padrão: 0 (todas)

  - `disableAudio` (integer)
    Desativar áudio: 0 = não, 1 = sim

  - `disableImg` (integer)
    Desativar o carregamento de imagens: 0 = não, 1 = sim

  - `disableVideo` (integer)
    Desativar o carregamento de vídeo: 0 = não, 1 = sim

  - `imgLimitSize` (integer)
    Tamanho máximo da imagem (KB)

  - `proxy` (object)
    Informações do proxy

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

  - `proxy.proxyName` (string)
    Nome do proxy (máximo de 600 caracteres)

  - `proxy.proxyType` (integer)
    Tipo de proxy, 0: http, 1: https. Não pode ficar vazio quando proxyProvider é 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 do proxy. Pode ficar vazio quando proxyProvider é 16/17/18; obrigatório para os demais

  - `proxy.proxyPort` (integer)
    Porta do proxy (apenas números de 1 a 65535). Pode ficar vazia quando proxyProvider é 16/17/18; obrigatória para os demais

  - `proxy.username` (string)
    Nome de usuário (máximo de 200 caracteres)

  - `proxy.password` (string)
    Senha (máximo de 100 caracteres)

  - `proxy.refreshUrl` (string)
    URL de atualização

  - `proxy.country` (string)
    Código do país (por exemplo `us`). Consulte a [tabela de países e fusos horários](/api-reference/appendix/country-time-zone) para ver os códigos suportados. Obrigatório quando proxyProvider é 16/17/18

  - `proxy.city` (string)
    Cidade

  - `proxy.state` (string)
    Estado/Província

  - `proxy.encryptionType` (integer)
    Método de criptografia. Não pode ficar vazio quando proxyProvider é 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)
    Ativar o monitoramento de mudança de IP? true: ativado, false: desativado

  - `proxy.ipChangeAction` (integer)
    Monitoramento de mudança de IP 0: bloquear o acesso, 1: avisar

## Response 200:

  - `200` (unknown)
    Sucesso. `data` é um único valor string.

## Response 200 fields (application/json):

  - `code` (integer, required)

  - `msg` (string | null, required)

  - `data` (string, required)

  - `requestId` (string, required)

