Registros de log
Na família ISP, cada registro de log é uma conexão; campos, códigos de resultado, categorias e os três erros mais comuns nas integrações.
Em ISP, Datacenter e Gaming, cada registro de log é uma conexão, e não uma única requisição: o registro é gravado quando a conexão é encerrada. Em HTTP simples, uma única conexão keep-alive pode levar várias requisições; o campo request mostra apenas a primeira. Uma conexão que ainda está aberta não aparece na lista até ser encerrada.
Todo registro, independentemente do tipo de serviço, vem com o mesmo conjunto fixo de chaves; uma chave sem valor é null e nunca é omitida. As chaves exclusivas da família ISP são sempre null nos registros de Mobile/Residential, e statusCode é sempre null na família ISP. A lista é ordenada do registro mais recente para o mais antigo.
Três armadilhas
Campos
✓ vem preenchido neste tipo; null está sempre vazio neste tipo. Um campo marcado com ✓ também pode ser null se nenhum valor foi gravado para aquela conexão.
| Campo | Família ISP | Mobile / Residential | Significado |
|---|---|---|---|
id | ✓ | ✓ | ID do registro. Na família ISP, é igual a requestId (ULID); em registros anteriores a 17/09/2026, é um ID estável e derivado. |
timestamp | ✓ | ✓ | ISO-8601, UTC. Na família ISP, é o momento em que a conexão foi ENCERRADA, com resolução de segundos. A lista é ordenada do mais recente para o mais antigo. |
level | ✓ | ✓ | connect, disconnect, error, quota ou auth. Na família ISP, é derivado de result (tabela de códigos de resultado). |
message | ✓ | ✓ | Resumo legível, por exemplo, HTTP CONNECT → example.com:443. Na família ISP, em registros com falha sem dados de conexão, é a descrição legível e o código de resultado (por exemplo, This command/protocol is not supported (#103)). O formato pode mudar; não faça parsing, leia os campos correspondentes. |
method | ✓ | ✓ | Comando ou método HTTP: CONNECT, GET, POST … Na família ISP, é igual a command (incluindo UDP ASSOCIATE). null se a conexão foi recusada antes de chegar a essa etapa. |
ip | ✓ | ✓ | Destino, no formato host:porta (o IP, se não houver nome de host). null em uma conexão recusada antes de o destino ser definido. |
sourceIp | ✓ | ✓ | O IP do seu cliente; a máquina que se conecta ao proxy. |
bytesIn | ✓ | ✓ | Bytes BAIXADOS (do destino para você). |
bytesOut | ✓ | ✓ | Bytes ENVIADOS (de você para o destino). |
durationMs | ✓ | ✓ | Tempo em que a conexão ficou aberta, em ms. NÃO é latência. |
statusCode | null | ✓ | Código de status HTTP. Apenas Mobile/Residential. |
headers | null | ✓ | Cabeçalhos HTTP da requisição (texto JSON). Apenas Mobile/Residential. |
requestId | ✓ | null | ID único da conexão (ULID de 26 caracteres). Informe-o ao pedir suporte. null em registros anteriores a 17/09/2026. |
result | ✓ | null | Código de resultado (tabela abaixo). null em registros anteriores a 17/09/2026. |
resultCategory | ✓ | null | success, client, policy, upstream ou unknown. Se result for null, é derivado de ok: success ou unknown. |
ok | ✓ | null | Se a conexão foi bem-sucedida (true / false). |
errorCode | ✓ | null | result como texto de 5 dígitos, por exemplo, 00104 (00000 em caso de sucesso). null se result for null. |
service | ✓ | null | O protocolo efetivamente usado: http ou socks (SOCKS5). No protocolo auto, a mesma porta aceita os dois. null se a conexão foi recusada antes de chegar a essa etapa. |
proxyType | ✓ | null | Nome antigo; mesmo valor de service. |
command | ✓ | null | CONNECT, GET, POST … ou UDP ASSOCIATE (UDP via SOCKS5; suportado no protocolo auto). null se a conexão foi recusada antes de chegar a essa etapa. |
request | ✓ | null | A PRIMEIRA linha de requisição da conexão. Em uma conexão keep-alive, só a primeira é gravada. null se a conexão foi recusada antes de a requisição ser lida. |
targetHost | ✓ | null | Nome do host de destino (o IP, se a conexão foi feita diretamente a um IP). null se foi recusada antes de o destino ser definido. |
targetIp | ✓ | null | O IP resolvido do destino. null se não houve conexão com o destino. |
targetPort | ✓ | null | Porta de destino. null se foi recusada antes de o destino ser definido. |
targetInfo | ✓ | null | Formato antigo: targetIp:targetPort. |
clientPort | ✓ | null | A porta de origem do seu cliente. |
gateIp | ✓ | null | O endereço do proxy (de entrada) ao qual você se conectou; normalmente o host da lista de proxies. NÃO é o seu IP de saída. |
gatePort | ✓ | null | A porta do proxy à qual você se conectou. |
egressIp | ✓ | null | O IP REAL pelo qual o seu tráfego sai para a internet; o endereço que o site de destino vê. Não é gravado em toda conexão; se faltar, null (sempre null em registros anteriores a 17/09/2026). |
extIp | ✓ | null | Nome antigo; mesmo valor de egressIp. |
latencyMs | ✓ | null | Latência de conexão com o destino, em ms. null se não foi medida; não é 0. |
totalBytes | ✓ | null | bytesIn + bytesOut. |
slot | ✓ | null | Número do slot de porta do pedido. null em registros anteriores a 17/09/2026. |
Códigos de resultado
Apenas ISP, Datacenter e Gaming. As descrições são textos que você pode mostrar aos seus clientes. Novos códigos podem ser adicionados; trate um código desconhecido como erro.
| result | errorCode | HTTP | Categoria | level | Significado |
|---|---|---|---|---|---|
0 | 00000 | 200 | success | connect | Conexão bem-sucedida |
100 | 00100 | 407 | client | auth | Nome de usuário ou senha incorretos |
101 | 00101 | 403 | client | auth | Seu endereço IP não está autorizado para este pedido |
102 | 00102 | 400 | client | error | Formato de requisição inválido |
103 | 00103 | — | client | error | Este comando/protocolo não é suportado |
104 | 00104 | 403 | policy | error | Você não tem permissão para acessar o endereço de destino |
105 | 00105 | 403 | policy | quota | Cota esgotada |
106 | 00106 | 429 | policy | quota | Limite de conexões atingido |
107 | 00107 | 403 | policy | error | Porta de destino bloqueada |
200 | 00200 | 502 | upstream | error | Não foi possível acessar o servidor de destino |
201 | 00201 | — | client | disconnect | Conexão encerrada pelo cliente (não é um erro do serviço) |
— | — | — | unknown | error | Código não reconhecido; trate como erro |
Categorias de resultado
| resultCategory | Significado |
|---|---|
success | Conexão estabelecida. |
client | Causado pelo lado do cliente: credenciais ou autorização de IP, formato da requisição, comando não suportado ou encerramento da conexão pelo cliente. |
policy | Política de uso ou limite da conta: destino bloqueado, cota, conexões simultâneas, porta fechada. |
upstream | Não foi possível conectar ao destino; tente de novo. |
unknown | Código não reconhecido (ou um registro com falha anterior a 17/09/2026). |
Filtragem
ok, result, category, request_id, client_ip, egress_ip, target_host, service,udp, slot, port e min_latency_ms só valem nestes tipos. Aqui, status_group retorna 400.
status_group (2xx, 4xx, 5xx) só vale nestes tipos. Aqui, ip é buscado dentro do endereço de destino ou do cliente. Enviar um parâmetro exclusivo da família ISP retorna 400 invalid_request; details.field informa qual é o parâmetro.
Um parâmetro desconhecido ou um intervalo de datas cujo início é posterior ao fim também retornam 400. Todos os parâmetros estão no endpointLogs.
Lista incompleta
meta.partial vem em toda resposta. Se for true, a lista pode estar incompleta: na família ISP, os registros antigos não puderam ser lidos naquele momento; em Mobile/Residential, só os registros mais recentes foram retornados. Tente de novo em instantes. Se o armazenamento de logs estiver temporariamente inacessível, retorna503 service_unavailable.
Registros anteriores a 17/09/2026
Como são retornados os registros do sistema de logs antigo
O sistema de logs de ISP, Datacenter e Gaming foi renovado em 17/09/2026. Os registros mais antigos também são retornados na lista (depois dos registros novos), mas os campos que não existiam naquele sistema são null: requestId, result, errorCode, egressIp, extIp, latencyMs eslot. Nesses registros, level só pode ser connect ou error, e resultCategory só pode ser success ouunknown; id é um ID estável e derivado.
Os filtros que dependem apenas de campos do novo sistema (ok, result, category, request_id, egress_ip,target_host, udp, slot, port, min_latency_ms) e as buscas parciais no parâmetro ip só retornam registros a partir de 17/09/2026. A linha do tempo dos logs e os contadores de uso nos detalhes do serviço também cobrem apenas o novo sistema.
Se os registros antigos não puderem ser lidos naquele momento, a resposta é retornada mesmo assim, mas meta.partial vem true. Na mesma situação, o histórico de uso retorna meta.available false.
Mudanças incompatíveis com versões anteriores
extIpagora é o IP de saída real (igual aegressIp). Antes, levava o endereço do proxy ao qual você se conectava; esse endereço agora está emgateIp+gatePort.parentInfofoi removido.- Nos registros de ISP,
idagora é orequestId(ULID). timestampagora é o momento em que a conexão foi ENCERRADA e tem resolução de segundos.levelagora também assume os valoresauth,quotaedisconnect.- Todo registro vem com o mesmo conjunto fixo de chaves. Novas chaves foram adicionadas:
requestId,result,gateIp,egressIp,latencyMse outras. proxyTypeagora só pode serhttpousocks(igual aservice); um valor não reconhecido retornanull.- Na família ISP, o valor de
sourcenos endpoints de uso agora élogs. - Nos logs de Mobile/Residential,
bytesInebytesOutvinham trocados. Agora, em todos os tipos,bytesInsão os bytes baixados ebytesOut, os enviados (incluindo registros antigos).
Informe o requestId ao pedir suporte
Ao pedir ajuda sobre uma conexão, informe o valor requestId daquele registro; com ele, a equipe de suporte encontra exatamente aquela conexão. Você também pode consultar a mesma conexão com o parâmetro request_id. Este não é o request_id das respostas de erro: aquele identifica a sua requisição à API, e este, uma conexão de proxy.