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 complicada ou comparar Single, Proxy e Browser lado a lado.
Abra em foura.ai/dashboard#playground.
O que ele faz
Um formulário. Três motores. Tráfego real.
- Single: fetch HTTP direto com características de rede realistas semelhantes às de um navegador
- Proxy: fetch de proxy rotativo gerenciado
- Browser: abre a URL em uma instância do navegador Chrome para sites renderizados em JS
Os requests são executados com a chave de API que você escolher no topo da página. O uso é contabilizado na cota dessa chave da mesma forma que uma chamada de produção, portanto, não consuma todo o seu plano durante os testes.
Escolhendo uma chave
O menu suspenso de chave de API mostra todas as chaves ativas no seu escopo: chaves pessoais, chaves de organização que você administra e chaves compartilhadas com a equipe que você pode acessar. Escolha aquela na qual deseja faturar o request. Se você ainda não tiver nenhuma chave ativa, um aviso na tela direcionará você para a página de API Keys para criar uma.
Escolhendo um produto
Três pílulas ficam acima do formulário: Single, Proxy, Browser. Alternar entre as pílulas altera quais campos ficam visíveis e qual motor o request atinge. A seleção atual é preservada quando você recarrega a página.
| Product | Quando usar |
|---|---|
| Single | Fetch HTTP rápido. A melhor primeira escolha para qualquer URL. |
| Proxy | O mesmo fetch com rotação automática de proxy. Use quando o Single continuar sendo bloqueado. |
| Browser | Carrega a página em uma instância do navegador Chrome. Use quando os dados aparecem apenas após a execução do JavaScript. |
Construindo o 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 aceitam todos os métodos. O Browser ignora o método (o Chrome sempre emite GET para navegação) e o body.
Abas de request
Abaixo da linha da URL, cinco abas permitem preencher todo o resto:
| Aba | O que controla |
|---|---|
| UI | Campos de formulário para timeouts, redirecionamentos, flags, proxy, opções específicas do browser e regras de validação |
| Body | Corpo de formato livre para requests POST / PUT / PATCH |
| Headers | Headers de request personalizados como pares chave-valor |
| Cookies | Cookies para enviar com o request |
| Raw | O payload JSON exato que será enviado, editável diretamente |
Qualquer alteração feita em UI / Body / Headers / Cookies é refletida em Raw. Editar o Raw também funciona, atualizando as outras abas de acordo.
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 motor.
- Timeouts:
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec - Redirects: ative e defina
followRedirects(0-20). Apenas Single + Proxy. O Browser segue redirecionamentos por conta própria. - Flags:
unblocker,tryJsonData,returnBuffer. Single + Proxy. - Proxy: escolha um ID de proxy específico para Single ou Browser, ou defina
maxTries, o timeout externo do Proxy eignoreProxiespara o motor Proxy. - Browser: opções exclusivas do browser, como
checkStatusecheckText. - Validate: regras de aceitação/falha para
validate.status(status codes),validate.headers(regras de chave-valor de header) evalidate.data(substrings de aceitação/falha do body, alternativas separadas por|).
Campos que não se aplicam ao produto selecionado no momento são ocultados.
Reset da barra de ferramentas
O botão Reset na barra de ferramentas (ao lado de History) redefine o formulário do produto ativo de volta aos padrões. Os padrões mantêm unblocker and tryJsonData ativados, o que corresponde ao ponto de partida mais comum. Use-o quando você tiver se desviado muito de uma base funcional e quiser recomeçar do zero sem recarregar a página.
Enviando e cancelando
Clique em Send para disparar o request. A coluna da direita muda para um estado de carregamento com um indicador de progresso e um botão Cancel enquanto a chamada está em andamento. Clique em Cancel (ou toque no botão novamente no celular) para abortar. Um request cancelado restaura o marcador de inatividade com "Request canceled." em vez de renderizar um erro.
O card de response muda para o resultado no momento em que o request é concluído (ou falha).
Lendo a response
A coluna de response espelha o layout do request com suas próprias abas:
| Aba | O que mostra |
|---|---|
| Body | Corpo analisado. Alterna entre as visualizações JSON, HTML e Text dependendo do que retornou. |
| Headers | Headers de 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 mostra um selo HO nos cookies exclusivos do host; os cookies de domínio não são marcados. |
| Raw | O envelope JSON completo retornado pela API. |
Uma faixa de metadados acima das abas mostra o status HTTP de origem, o tempo total e (para requests Proxy / single-with-proxy-id) o ID do proxy que processou a chamada. Os botões de copiar e baixar ficam no canto superior direito de cada painel, para que você possa extrair o body ou os headers para um arquivo com um único clique.
Expandir para tela cheia
O ícone de expansão na barra de ferramentas de response retira o card de response do layout dividido e o coloca em uma sobreposição de tela cheia. Use-o para árvores JSON profundas, dumps longos de Set-Cookie ou corpos HTML largos onde a coluna de meia largura fica apertada. A página em si para de rolar enquanto a sobreposição está aberta. Clique no ícone novamente (ou pressione Escape) para fechar.
O reprodutor curl
Abaixo da response, um bloco de curl mostra o equivalente exato em linha de comando do request que você acabou de construir. Copie-o para reproduzir o request a partir de um terminal, compartilhe-o com um colega de equipe ou cole-o 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 como está. Clique novamente para ocultar. Chaves legadas (criadas antes do lançamento do recurso de revelação) mantêm um marcador PASTE_PLAINTEXT_FOR_<key-name>; regenere a chave na página de API Keys para torná-la revelável.
A revelação é registrada no log de auditoria do 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ê precisar reconfigurar o mesmo destino repetidamente, salve-o. Clique em Save na linha de abas de request para armazenar a configuração atual como um preset nomeado.
Abra Saved na barra de ferramentas para navegar, renomear ou excluir seus presets. Clique em qualquer preset para carregá-lo de volta no formulário.
| Campo do preset | O que armazena |
|---|---|
| Name | Um rótulo curto (até 100 caracteres) |
| Description | Notas opcionais (até 500 caracteres) |
| Endpoint | Para qual produto o preset se destina (single / proxy / browser) |
| Config | O payload completo do request, incluindo campos de UI, headers, cookies e body |
Presets são restritos à sua conta de usuário e não são compartilhados com membros da equipe.
Reexecutando a partir do histórico
Cada request que você executa é registrado. 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, a URL de destino, o status e o tempo. Clique em Replay em qualquer linha para carregar esse request de volta no formulário e, em seguida, em Send para executá-lo novamente.
O histórico é automaticamente restrito à sua conta: você vê apenas suas próprias execuções.
Abrindo a partir da atividade
A caixa de diálogo de detalhes do Activity Log possui um botão Open in Playground. Clique nele e o Playground será carregado com o request arquivado e a response arquivada. O formulário é preenchido a partir do payload armazenado, e o card de response mostra o que a API retornou naquele momento com um selo "archived" na faixa de metadados do proxy ("archived
A partir daí, você pode alterar um parâmetro e clicar em Send para executar um novo request na API ativa, ou apenas inspecionar o payload arquivado sem executá-lo novamente. Os payloads são mantidos por 24 horas, portanto, as 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 destino. Você saberá em segundos se o Single é suficiente ou se precisará do Browser.
- Salve um preset para cada destino que você faz scraping regularmente. Reexecutar um preset salvo requer apenas um clique; reconstruir o request de cabeça demora mais.
- Use a aba Cookies para depurar scraping baseado em sessão. A visualização Set-Cookie bruta mostra exatamente o que o destino enviou.
- Os requests do Playground são faturados na chave que você escolher. Use uma chave dedicada de cota baixa para exploração casual se quiser manter o uso de produção limpo.
Relacionado
- API Endpoints: Referência completa de parâmetros para todos os três produtos
- Choosing the Right Endpoint: Quando escolher Single vs Proxy vs Browser
- API Keys: Gerencie as chaves com as quais você autentica os requests do Playground
- Activity Log: Abra um request anterior diretamente no Playground
- Dashboard Overview: Todas as seções da barra lateral