Destaques
Foi o site que recusou ou o seu plano? Cada request que o seu plano recusa agora responde em um único header, e o Auto e o Playground também leem essa resposta. A porta do proxy passou a memorizar o direcionamento na chave, e a renderização de Browser com resolução de CAPTCHA agora vem em todos os planos, inclusive no Free.
O Que Há de Novo
Uma recusa que identifica quem recusou
Quando um dos limites do seu plano rejeita uma request, a response inclui um header X-FourA-Limit informando qual deles: plan_limit_credits, plan_limit_rate, plan_limit_browser_daily e outros quatro. O body repete o código em reason, ao lado do limite aplicado à sua conta. Os limites compartilhados da nossa plataforma nunca definem esse header, portanto a presença dele por si só indica que a recusa está relacionada à sua conta, e não à sobrecarga da FourA.
import requests
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": "pk_live_..."},
json={"url": "https://example.com/data"},
)
limit = r.headers.get("X-FourA-Limit")
if limit:
print("my plan stopped this:", limit, r.json()["error"])
Todos os limites da sua conta agora são definidos pelo plano contratado, e a seção Usage & Limits lista cada um deles ao lado do seu consumo atual no período. A referência de rate limits detalha todos os sete códigos e quais deles são liberados após uma breve espera.
O Auto lê esse mesmo código e age de acordo. Um limite que bloqueia um nível (a cota diária de browser, por exemplo) mantém o restante da cadeia funcionando, e os nós de saída já testados não são penalizados por uma recusa gerada pelo seu plano. Um limite que indica o esgotamento da própria conta, como créditos, largura de banda ou um produto não incluído no seu plano, interrompe a cadeia imediatamente e retorna a recusa em vez de testar todas as outras rotas antes. Nada disso altera o propósito do Auto: deixe que ele encontre o nível que funciona, depois reproduza a session retornada no /api/single ou no /api/browser e direcione seu volume para lá.
O Playground descreve isso com clareza. Uma linha acima da response informa o que carregou a página: uma session pré-existente para aquele host, uma request simples, um proxy rotativo ou um browser real, além de indicar se um desafio foi resolvido, qual tentativa teve sucesso e qual foi o custo. Quando seu plano bloqueia a request, a linha começa com "Stopped by your plan, not by the site" e especifica o limite atingido.
A porta de proxy, em beta
A porta de proxy permite que qualquer cliente compatível com uma URL de proxy envie tráfego através dos nossos nós de saída, sem a necessidade de chamadas de API. É uma versão beta: o tráfego por ela ainda não é cobrado, não há compromisso de uptime e os nomes das opções ainda podem mudar.
Esta semana ficou mais claro o que você está selecionando: a rede compartilhada, que utiliza nossas próprias saídas e está inclusa no seu plano, ou a rede residencial, com endereços residenciais consumidos da franquia premium do seu plano. O fallback para a rede residencial quando a rede compartilhada não consegue atender a uma request é uma opção separada, que vem desmarcada por padrão. Marcar essa caixa automaticamente significaria decidir gastar sua franquia por você.
O direcionamento agora fica nas credenciais. Salve um país, região, cidade ou dispositivo em um usuário de proxy e todas as conexões feitas com ele responderão dessa forma. Assim, a connection string é reduzida apenas às credenciais básicas e ao que for diferente. No entanto, o username ainda tem prioridade para uma conexão específica, e any anula um valor salvo: -city-any solicita o país inteiro a partir de uma chave configurada para uma cidade específica.
Executando um perfil de browser por endereço? Defina quantos endereços fixos você precisa e a página listará uma linha para cada um, com seu respectivo nome de session. O botão New names gera um novo conjunto quando o destino bloquear o anterior, e as linhas são fornecidas como URL ou no formato host:port:user:pass, a estrutura que a maioria dos gerenciadores de proxy importa. A documentação da porta de proxy contém toda a sintaxe do username.
Páginas protegidas, em todos os planos
A renderização de navegador e a resolução de CAPTCHA fazem parte de todos os planos, incluindo o Free, variando apenas os limites. Os planos Free e Developer também incluem tráfego de saída premium, para que você possa ver uma página protegida responder na sua própria URL antes de pagar qualquer valor.
As saídas premium no Proxy Finder deixaram de se importar com o site de destino. Envie exitClass: premium para qualquer alvo e o tráfego premium do seu plano (e o saldo restante dele) será o único fator determinante.
Faturamento que acompanha os seus dados
A empresa, o número de VAT e o país salvos em Billing Details são exatamente o que emitimos na sua fatura e o que define o tratamento fiscal, no checkout e a cada renovação. Se você digitar algo diferente no formulário de pagamento, o valor substituirá apenas esse campo nessa transação específica.
Se configuramos um plano para você como parte de um contrato assinado, a seção Plan & Usage agora o disponibiliza com um botão Confirm: escolha mensal ou anual, adicione um cartão e pague o período integral adiantado, sem cobrança proporcional.
Dois novos cards aparecem ao lado dos créditos em Plan & Usage, um para largura de banda e outro para tráfego premium, mostrando o consumo em relação ao que seu plano inclui somado a qualquer compra adicional. Quando uma recarga dessa categoria estiver disponível, o botão Buy estará no card correspondente. O guia de faturamento explica ambos detalhadamente.
Por baixo dos panos
O seu rate limit por minuto contabiliza exatamente o tráfego enviado naquele minuto, até a virada do próximo. As tabelas do Dashboard cabem na tela de um notebook e, no celular, as tabelas largas rolam horizontalmente dentro de seu próprio quadro. As tabelas do blog rolam da mesma forma em telas estreitas. Além disso, a página da sua organização lista os convites pendentes assim que é aberta.
Uma recusa legível permite planejamento. Na próxima vez que um job for interrompido, um único header informará se você deve aguardar um segundo, esperar pela meia-noite UTC ou verificar o seu plano.