Porta do Proxy
Envie seu próprio tráfego pelas saídas da FourA a partir de qualquer cliente que aceite uma URL de proxy: um navegador, uma ferramenta de download, um scraper que você já executa. A porta de proxy abre um túnel para o destino indicado e copia bytes em ambas as direções, transmitindo o que a API JSON não suporta: streams, downloads grandes e sessões completas de navegador.
Beta. A porta de proxy está em beta. O tráfego por ela ainda não é faturado, não é coberto por monitoramento ou compromisso de uptime, e os nomes das opções ainda podem mudar. Avise-nos se algo quebrar.
Conectando
| Configuração | Valor |
|---|---|
| Host | proxy.foura.ai |
| Porta | 34004 |
| Protocolo | HTTP CONNECT com autenticação Basic |
| Portas de destino | 443 e 80 |
As credenciais são obtidas no painel. Crie um usuário de proxy em Proxy na barra lateral para receber um nome de usuário e senha gerados. Eles são separados da sua chave de API de propósito: o handshake do proxy trafega em texto não criptografado a cada conexão, e um usuário de proxy pode ser rotacionado sem alterar sua integração de API. Consulte Proxy Users.
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
import requests
proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
A porta aceita apenas CONNECT. Um destino https:// é encapsulado em túnel por qualquer cliente. Um destino http:// simples funciona quando o seu cliente também o encapsula em túnel (curl: --proxytunnel); um cliente que encaminha a request simples diretamente para o proxy recebe 405 Method Not Allowed.
Opções no Nome de Usuário
Tudo após a credencial é uma lista de pares -key-value, em qualquer ordem:
USERNAME-network-residential-country-de-session-a1
Os valores são palavras em minúsculas. Um traço dentro de um valor inicia uma nova opção, portanto -city-new-york é interpretado como duas opções e recusado. Uma chave desconhecida também é recusada, nunca descartada: um -contry-de digitado incorretamente retorna um erro 400 listando as chaves suportadas, em vez de ser atendido a partir do país errado.
| Option | Values | What it does |
|---|---|---|
network |
shared (padrão, alias pool), residential |
De qual rede o endereço se origina. Shared são os pontos de saída próprios da FourA, inclusos no seu plano. Residential são endereços residenciais, extraídos do tráfego premium incluso no seu plano mais qualquer tráfego que você tenha comprado. |
fallback |
residential, off |
Apenas na rede compartilhada (shared). Usa uma saída residencial quando a rede compartilhada não puder processar a request. Desativado a menos que solicitado, e só é acionado quando seu plano inclui tráfego premium e há saldo disponível. |
country |
ISO 3166-1 alpha-2, repetível | O país de saída que o destino visualiza. Repita para definir um escopo de múltiplos países: -country-de-country-fr. |
session |
1 a 32 letras, dígitos ou sublinhados | Conexões que compartilham o mesmo nome compartilham o mesmo endereço (sticky). Omita para obter um novo endereço a cada conexão (rotating). |
state |
uma palavra | Região. Apenas na rede residencial. |
city |
uma palavra | Cidade. Apenas na rede residencial. |
asn |
um número | Rede, por número de AS. Apenas na rede residencial. |
os |
windows, android, ios, mac |
O tipo de dispositivo ao qual o endereço pertence. Apenas na rede residencial. |
lifetime |
3 a 1440 |
Minutos em que um endereço residencial sticky é mantido. Apenas na rede residencial. |
Todas as opções, exceto network, fallback e session, aceitam any, o que limpa um valor salvo no proxy user apenas para esta conexão.
Três combinações são recusadas com um erro 400 em vez de serem atendidas parcialmente:
state,city,asn,osoulifetimena rede compartilhada. A rede compartilhada é escolhida por país e nada mais específico; adicione-network-residentialpara direcionar a uma cidade.-fallback-residentialjunto com-network-residential. Um fallback não tem função na rede para a qual ele próprio faz o fallback.- Segmentação mais específica com um fallback ativado. Um fallback pode ou não ser disparado, portanto uma cidade que só poderia ser atendida ocasionalmente é recusada.
Sessions
Na rede compartilhada, uma sessão nomeada mantém a mesma saída enquanto você continuar usando-a, em uma janela deslizante de dez minutos. Se essa saída parar de funcionar, a sessão migra para outra saída em vez de falhar. Um navegador controlado através da porta deve sempre conter um nome de sessão: o carregamento de uma página abre dezenas de conexões e, sem uma sessão, cada uma delas sairá de um endereço diferente.
Na rede residencial, uma sessão nomeada mantém seu endereço por lifetime minutos, ou pelo padrão da rede quando você não definir um valor.
Saved defaults
O direcionamento salvo em um usuário de proxy no painel se aplica a todas as conexões feitas com ele, permitindo que o username permaneça curto. Qualquer parâmetro inserido no username prevalece para essa conexão específica, e any redefine para o valor padrão salvo. Uma configuração residencial padrão salva consome saldo apenas quando o seu plano permitir; caso contrário, a conexão será atendida a partir da rede compartilhada.
CONNECT headers
Um cliente capaz de adicionar headers à requisição CONNECT pode enviar as mesmas opções como headers. Um header prevalece sobre a mesma opção informada no username.
| Header | O mesmo que |
|---|---|
X-Foura-Network |
-network- |
X-Foura-Fallback |
-fallback- (residential ou off) |
X-Foura-Country |
-country-, separados por vírgula para múltiplos valores |
X-Foura-Session |
-session- |
X-Foura-State |
-state- |
X-Foura-City |
-city- |
X-Foura-Asn |
-asn- |
X-Foura-Lifetime |
-lifetime- |
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
--proxy-header "X-Foura-Country: de" \
https://example.com
Respostas
Um túnel que abre responde com 200 Connection established. Toda recusa contém um cabeçalho X-Foura-Error com um motivo de uma linha, portanto leia esse cabeçalho antes de qualquer outra coisa.
| Status | Quando |
|---|---|
| 400 Bad Request | Uma requisição malformada ou uma opção que o FourA não pode atender. O X-Foura-Error detalha a opção e os valores suportados. |
| 403 Forbidden | A porta de destino não é atendida ou o destino não é um host público da internet. |
| 405 Method Not Allowed | Uma requisição simples em vez de CONNECT. |
| 407 Proxy Authentication Required | Credenciais ausentes ou incorretas. A resposta nunca diz qual parte estava errada. |
| 408 Request Timeout | O cliente conectou e não enviou nada por 15 segundos. |
| 429 Too Many Requests | O usuário de proxy já possui 200 túneis abertos, ou a porta atingiu sua capacidade ou taxa de abertura. |
| 502 Bad Gateway | Nenhuma saída funcional foi encontrada para esse destino dentro do limite de seleção, ou o resolver próprio do FourA não conseguiu consultar o host. As duas situações geram mensagens diferentes no X-Foura-Error. |
| 503 Service Unavailable | A porta do proxy está desativada. |
Limites
- Até 200 túneis abertos simultaneamente por usuário de proxy.
- Encontrar uma saída leva até 45 segundos antes de a porta desistir com um 502. Uma sessão que já possui uma saída normalmente conecta em bem menos de um segundo.
- Um túnel sem tráfego de bytes em nenhuma direção é fechado após dois minutos de inatividade.
- Um usuário de proxy que você desativar ou excluir no dashboard deixa de autenticar em até um minuto.
Medição
Os bytes trafegados pela porta contam para a largura de banda na sua página Usage & Limits, e os bytes através de uma saída residencial também contam para o seu tráfego premium. Uma conexão que especifica -network-residential após o limite premium ter sido esgotado é atendida mesmo assim; um fallback ou um padrão residencial salvo não é acionado nesse estado, e a rede compartilhada atende a conexão.
Relacionados
- Proxy Users: Crie usuários de proxy e monte uma string de conexão no dashboard
- Proxy Request: A alternativa via API JSON, com novas tentativas e validação integradas
- Reuse a Proxy Across Requests: Mantendo uma saída na API JSON
- Usage & Limits: Largura de banda e tráfego premium em relação ao seu plano