Playground

O Playground (barra lateral > Playground) permite executar requests de API em tempo real com sua chave real sem escrever nenhum código. É a maneira mais rápida de testar um novo site de destino, depurar uma response complexa ou comparar Auto, Single, Proxy e Browser lado a lado.

Abra em foura.ai/dashboard#playground.

O Que Ele Faz

Um formulário. Quatro engines. Tráfego real.

  • Auto: busca inteligente. Você passa uma URL e uma regra validate, e o FourA escolhe o caminho mais barato que funcione.
  • Single: busca HTTP direta com características de rede realistas semelhantes às de um navegador
  • Proxy: busca com proxy rotativo gerenciado, opcionalmente restrita a países visíveis pelo destino
  • Browser: abre a URL em uma instância do navegador Chrome para sites renderizados com JS

As requests são executadas com a chave de API que você selecionar no topo da página. O uso é contabilizado na cota dessa chave da mesma forma que uma chamada em produção, portanto, não esgote seu plano durante os testes.

Escolhendo uma Chave

O menu suspenso de chave de API lista todas as chaves ativas que você pode usar: as suas em My Keys e depois um grupo por organização à qual você pertence. Qualquer membro pode executar uma chave de organização, e uma request nela é contabilizada no plano do proprietário da organização. Escolha aquela na qual você quer que a request seja cobrada. Se você ainda não tiver chaves ativas, um prompt inline exibirá um link para a página API Keys para criar uma.

Escolhendo um Modo

Uma linha superior de Mode alterna entre Auto e as engines manuais. Quando Auto está selecionado, o formulário muda para a interface mínima do Auto (URL mais validate e alguns ajustes). Ambas as linhas são sempre mostradas: Mode: Auto, e Product: Single, Proxy, Browser. Selecionar um desmarca o outro. A troca de produtos altera quais campos ficam visíveis e qual engine a request atinge. A seleção atual é mantida quando você recarrega a página.

Mode Quando usar
Auto Novo destino ou site com proteção mista. O Auto escolhe o caminho mais barato e memoriza o que funciona.
Single Busca HTTP rápida. Melhor primeira opção para um host conhecido.
Proxy A mesma busca com rotação automática de proxy. Defina exitCountries quando precisar de um país visível pelo destino.
Browser Carrega a página em uma instância do navegador Chrome. Use quando os dados aparecerem apenas após a execução do JavaScript.

Construindo a Request

Linha da URL

A linha superior contém o método HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), a URL de destino e o botão Send. Single, Proxy e Auto aceitam todos os métodos. Browser ignora o método (o Chrome sempre emite GET para navegação) e o body.

Abas da Request

Abaixo da linha da URL, cinco abas permitem preencher todo o restante:

Aba O que ela controla
UI Campos de formulário para timeouts, redirecionamentos, flags, proxy, opções específicas de browser e regras de validação
Body Body de formato livre para requisições POST / PUT / PATCH
Headers Headers de requisição customizados como pares chave-valor
Cookies Cookies a serem enviados com a requisição
Raw O payload JSON exato que será enviado, como uma visualização somente leitura com Copiar JSON, e o comando curl reprodutor abaixo dele

Tudo o que você altera em UI / Body / Headers / Cookies é refletido em Raw. Não é possível digitar em Raw: altere a requisição nas outras abas. Um ponto vermelho aparece em qualquer aba ou seção recolhível que contenha um valor diferente dos padrões do mecanismo, para que você possa identificar rapidamente o que customizou.

Seções do Painel UI

A aba UI agrupa as configurações em seções recolhíveis. Campos vazios voltam para o padrão do schema do mecanismo. As seções que não se aplicam ao Mode atual ficam ocultas.

  • Timeouts: timeout_ms, connect_timeout_ms, accept_timeout_ms, server_response_timeout_ms, dns_cache_timeout_sec. O Auto expõe apenas timeout_ms (o orçamento total).
  • Redirects: ative e defina followRedirects (0-20). Single e Proxy. O Browser segue redirecionamentos por conta própria.
  • Flags: unblocker para Single, Proxy e Browser (unblocker no Browser conclui as verificações solicitadas pela página); tryJsonData e returnBuffer para Single e Proxy. O Auto expõe forceProxy e returnSession em vez disso.
  • Proxy: escolha um ID de proxy específico para Single ou Browser, ou defina maxTries, o timeout externo do Proxy, exitCountries, exitClass e ignoreProxies para o mecanismo de Proxy. O Auto também expõe ignoreProxies. A seleção exitClass tem três estados: não definida não envia campo algum, standard indica que a requisição nunca deve escalar, e premium permite que ela escale para uma saída premium quando o pool padrão estiver enfrentando dificuldades. Não definido e standard são requisições diferentes, portanto deixe a seleção vazia a menos que deseje uma das duas opções. O modo Premium precisa de um plano que inclua saídas premium: consulte exitClass.
  • Browser profile: três menus suspensos em cascata, os, browser e version, listando o que o FourA pode de fato apresentar. Eles aparecem no modo Single e Proxy. Deixe-os vazios para usar o Chrome mais recente. Cada seleção restringe as outras duas, de modo que uma combinação sem correspondência nunca é exibida. A seção precisa de unblocker ativo: com ele desativado, nenhum header de browser é enviado, o perfil seria aplicado apenas pela metade, e a API recusa a requisição.
  • Browser: opções exclusivas de browser, como checkStatus e checkText.
  • Validate: status accept e status fail aceitam códigos de status separados por vírgula (validate.status), e body accept e body fail aceitam substrings com alternativas separadas por | (validate.data). Disponível para Single, Proxy e Auto. O Browser usa checkStatus e checkText em vez disso. O formulário não possui campo para regras de header (validate.headers).

Assim que uma execução retorna um proxy funcional, uma seção Working proxies aparece no final da aba da UI. Ela lista até 20 IDs de proxy, os mais recentes primeiro, cada um com seu país de saída e horário. use insere um deles no campo proxy em Single ou Browser (o mecanismo Proxy encontra o seu próprio), e × o remove da lista.

Escopo por país de saída (Modo Proxy)

O campo exitCountries em Proxy aceita uma lista separada por vírgulas de códigos de país de duas letras visíveis ao destino (CZ, GB). Os valores são formatados sem espaços extras, convertidos para maiúsculas e deduplicados no envio. A seleção é uma allowlist restrita: proxies com saídas desconhecidas são excluídos e a request nunca faz fallback para outro país. Se o pool atual não tiver correspondências, a response retorna code: "no_eligible_proxy" com o escopo solicitado refletido em details.exitCountries. Mantenha o escopo e tente novamente mais tarde.

Quando uma chamada de proxy tem sucesso sob o escopo definido, a barra de response exibe exit <CODE> ao lado do ID do proxy para que você possa verificar se o país atendido corresponde ao solicitado.

Redefinição da barra de ferramentas

O botão Reset na barra de ferramentas (ao lado de History e Saved) redefine o playground para o estado inicial. Como se trata de uma ação destrutiva, ele abre uma caixa de diálogo de confirmação listando exatamente o que será apagado: os formulários dos três produtos (Single, Proxy, Browser), quaisquer cookies salvos no jar, quaisquer proxies transportados e a response atual. Presets salvos e a API key selecionada são mantidos. Clique em Reset everything para confirmar; qualquer outra ação cancela.

Envio e cancelamento

Clique em Send para disparar a request. A coluna direita muda para um estado de carregamento com um spinner e um botão Cancel enquanto a chamada está em andamento. Clique em Cancel (ou toque no botão novamente no celular) para abortar. Uma request cancelada restaura o placeholder de espera com "Request canceled." em vez de exibir um erro.

O card de response muda para o resultado no instante em que a request é concluída (ou falha). Execuções automáticas podem demorar mais do que os mecanismos manuais porque a sequência pode subir vários níveis em um destino frio.

Leitura da response

A coluna de response reflete o layout da request com suas próprias abas:

Aba O que ela mostra
Body Corpo analisado. Alterna entre visualizações em JSON, HTML e Text dependendo do retorno.
Headers Headers da response, um por linha.
Cookies Cookies retornados pelo destino, tanto na visualização analisada (agrupada por host) quanto na bruta (texto Set-Cookie). A visualização analisada exibe um badge HO em cookies host-only; cookies de domínio não são marcados.
Raw O envelope JSON completo retornado pela API.

A barra de ferramentas da response possui Copy e Download para a response inteira, e Find in response (Ctrl+K ou Cmd+K) para pesquisar na aba aberta, usando Enter e Shift+Enter para navegar pelos resultados. Body, Headers e Cookies também possuem seus próprios botões Copy e Download exclusivos para cada aba.

Uma faixa de metadados acima das abas mostra o status HTTP upstream, o tempo total, o ID do proxy que processou a chamada e (para uma chamada Proxy com escopo) o exit <CODE> de duas letras. Para execuções Auto, a faixa também mostra qual nível da escala entregou a response, quantas sub-tentativas foram feitas e os créditos gastos.

O que a Chamada Exigiu

Uma frase sob a faixa de metadados descreve em texto o que carregou a página. Para uma execução Auto, ela indica o nível (uma sessão que o FourA já tinha para o host, uma request simples, um proxy rotativo, um navegador real ou um navegador primeiro seguido de um replay econômico), se um desafio foi resolvido, quantas tentativas foram necessárias e o custo.

Quando um dos limites do seu plano recusar a chamada, a frase indicará isso primeiro: "Stopped by your plan, not by the site", seguido por qual limite (requests de navegador de hoje esgotadas, excesso de requests em andamento, créditos deste período gastos, e assim por diante) e um link para Usage & Limits. A linha é construída a partir do código X-FourA-Limit retornado pela API, permitindo que uma página complexa que falhar informe se o bloqueio ocorreu pelo site ou pelo plano.

Transportar Valores Entre Execuções

Após qualquer execução que retorne dados de sessão reutilizáveis, um pequeno controle Carry na barra de ferramentas da response mostra o que está disponível:

  • As execuções Auto oferecem a trinca completa do session (proxy, cookies, userAgent).
  • As execuções Browser oferecem o userAgent da response, além do ID do proxy se algum foi utilizado.
  • As execuções Proxy oferecem o ID do proxy retornado, o perfil de navegador quando a rotação escolheu um diferente do solicitado, e o exitClass que atendeu à chamada, para que uma resposta premium possa ser enviada de volta diretamente.

Clique em Carry e escolha onde aplicar cada valor com um clique: userAgent vira um header User-Agent no Single ou Proxy, e o ID do proxy é inserido no campo proxy no Single ou Browser. Campos que recebem um valor transportado exibem o ponto vermelho "modified" para que você possa ver o que mudou.

Um perfil de navegador transportado preenche os três seletores de os, browser e version e ativa o unblocker, a mesma regra que se aplica quando você seleciona um perfil manualmente. Ele é oferecido apenas após o carregamento do catálogo de perfis, já que o formulário é composto por três seletores e não por um campo de id.

O perfil é o único valor que indica que a request que funcionou não foi a request que você digitou: o Proxy relata o profile apenas quando migrou para uma família de navegadores que você não solicitou. Repetir sem ele significa repetir a versão que falhou. Consulte Why a Proxy Request Ran Out of Tries.

Expandir para Tela Cheia

O ícone de expansão na barra de ferramentas da response projeta o card da response para fora do layout dividido em uma sobreposição de tela cheia. Use-o para árvores JSON profundas, dumps extensos de Set-Cookie ou corpos HTML amplos onde a coluna de meia largura fica apertada. A página em si para de rolar enquanto a sobreposição estiver aberta. Clique no ícone novamente (ou pressione Escape) para recolher.

O Reprodutor curl

Na aba Raw da request, abaixo do JSON, um bloco curl mostra o comando de linha equivalente exato da request que você está criando, com um botão Copy curl. Copie-o para reproduzir a request a partir de um terminal, compartilhá-la com um colega de equipe ou colá-la em um relatório de bug.

Para chaves reveláveis, um botão Reveal key ao lado do snippet insere a chave real em texto simples diretamente no curl para que você possa copiar e executar imediatamente. Clique novamente para ocultar. Chaves legadas (criadas antes do lançamento do recurso de revelação) mantêm um placeholder PASTE_PLAINTEXT_FOR_<key-name>; gere a chave novamente na página API Keys para torná-la revelável.

A revelação é registrada no log de auditoria no servidor todas as vezes, e a chave em texto simples permanece na memória apenas durante a sessão atual da página.

Salvando Presets

Se você precisa reconfigurar o mesmo target repetidamente, salve-o. Clique em Save na linha de abas da request para salvar a configuração atual como um preset nomeado.

Abra Saved na barra de ferramentas para ver seus presets. Clique em Load para preencher o formulário ou em Delete para remover um preset.

Uma request aberta a partir da aba DevTools da extensão FourA para Chrome carrega com a chave da extensão selecionada quando essa chave está em sua conta, e a página indica isso. Caso contrário, ela solicita que você escolha uma chave. Uma request repetida que não define unblocker é executada com a opção ativada, assim como a API faz.

Campo do preset O que ele armazena
Name Um rótulo curto (até 100 caracteres)
Description Notas opcionais (até 500 caracteres)
Endpoint Para qual engine o preset se destina (auto / single / proxy / browser)
Config O payload completo da request, incluindo campos da UI, headers, cookies e body

Os presets são vinculados à sua conta de usuário e não são compartilhados com membros da equipe.

Executando novamente a partir do Histórico

Cada request executada é registrada. Abra History na barra de ferramentas para ver suas últimas 20 execuções, ordenadas da mais recente para a mais antiga.

Cada linha mostra o endpoint, URL de destino, status e horário. Clique em Replay em qualquer linha para carregar essa request de volta no formulário e, em seguida, clique em Send para executá-la novamente.

O histórico é limitado automaticamente à sua conta: você visualiza apenas suas próprias execuções.

Abrindo a partir de Activity

A caixa de diálogo de detalhes de Activity Log possui um botão Open in Playground. Clique nele e o Playground será carregado tanto com a request arquivada quanto com a response arquivada. O formulário é preenchido a partir do payload armazenado, e o card de response exibe o que a API retornou naquele momento com um badge "archived" na barra de metadados do proxy ("archived

A partir daí, você pode alterar um parâmetro e clicar em Send para executar uma nova request na API em produção, ou apenas inspecionar o payload arquivado sem executá-lo novamente. Os payloads são mantidos por 24 horas, portanto linhas mais antigas de Activity não terão uma response recarregável.

Dicas

  • Comece no Playground antes de escrever código para um novo alvo. Com o Auto ativado, você saberá em segundos se um fetch simples é suficiente ou se o site exige uma resolução via navegador.
  • Para alvos com bloqueio geográfico, execute uma chamada Proxy com exitCountries definido e, em seguida, use o proxy ID retornado em uma chamada Browser para que a renderização de JavaScript ocorra pela mesma saída.
  • Salve um preset para cada alvo que você coleta com frequência. Executar novamente um preset salvo leva um clique; reconstruir a request de cabeça leva mais tempo.
  • Use a aba Cookies para depurar scraping baseado em sessão. A visualização Set-Cookie bruta mostra exatamente o que o alvo enviou.
  • Quando um alvo recusar a sua conexão, tente outra opção nas seleções de perfil do Browser antes de recorrer a um engine mais pesado. Alternar o navegador apresentado não tem custo; uma renderização de navegador tem.
  • As requests no Playground são faturadas na chave selecionada. Use uma chave dedicada de cota baixa para explorações casuais caso queira manter o consumo de produção limpo.

Conteúdo relacionado

Atualizado em: 30 de setembro de 2026