Saltar al contenido

En ISP, Datacenter y Gaming, cada registro de log es una conexión, no una sola solicitud: el registro se escribe cuando se cierra la conexión. En HTTP sin cifrar, una sola conexión keep-alive puede transportar varias solicitudes; el campo request solo muestra la primera. Una conexión que sigue abierta no aparece en la lista hasta que se cierra.

Cada registro se devuelve con el mismo conjunto fijo de claves, sea cual sea el tipo de servicio; una clave sin valor es null y nunca falta. Las claves propias de la familia ISP son siempre null en los registros de Mobile/Residential, y statusCode es siempre null en la familia ISP. La lista está ordenada del registro más reciente al más antiguo.

Tres trampas

Campos

✓ llega con valor en este tipo; null está siempre vacío en este tipo. Un campo marcado con ✓ también puede ser null si no se registró un valor para esa conexión.

CampoFamilia ISPMobile / ResidentialSignificado
id✓✓Identificador del registro. En la familia ISP es igual a requestId (ULID); en los registros anteriores al 17/09/2026 es un identificador derivado y estable.
timestamp✓✓ISO-8601, UTC. En la familia ISP, el momento en que la conexión SE CERRÓ, con resolución de segundos. La lista está ordenada de más reciente a más antiguo.
level✓✓connect, disconnect, error, quota o auth. En la familia ISP se deriva de result (tabla de códigos de resultado).
message✓✓Resumen legible, p. ej., HTTP CONNECT → example.com:443. En la familia ISP, en los registros fallidos sin datos de conexión es la descripción legible y el código de resultado (p. ej., This command/protocol is not supported (#103)). Su formato puede cambiar; no lo analices, lee los campos correspondientes.
method✓✓Comando o método HTTP: CONNECT, GET, POST… En la familia ISP es igual a command (UDP ASSOCIATE incluido). null si la conexión se rechazó antes de llegar a esa fase.
ip✓✓Destino, con el formato host:port (la IP si no hay nombre de host). null en una conexión rechazada antes de determinar el destino.
sourceIp✓✓La IP de tu cliente; la máquina que se conecta al proxy.
bytesIn✓✓Bytes DESCARGADOS (del destino hacia ti).
bytesOut✓✓Bytes SUBIDOS (de ti hacia el destino).
durationMs✓✓Tiempo que la conexión estuvo abierta, en ms. NO es la latencia.
statusCodenull✓Código de estado HTTP. Solo Mobile/Residential.
headersnull✓Encabezados HTTP de la solicitud (texto JSON). Solo Mobile/Residential.
requestId✓nullIdentificador único de la conexión (ULID de 26 caracteres). Envíalo en las solicitudes de soporte. null en los registros anteriores al 17/09/2026.
result✓nullCódigo de resultado (tabla de abajo). null en los registros anteriores al 17/09/2026.
resultCategory✓nullsuccess, client, policy, upstream o unknown. Si result es null, se deriva de ok: success o unknown.
ok✓nullSi la conexión tuvo éxito (true / false).
errorCode✓nullresult como texto de 5 dígitos, p. ej., 00104 (00000 si tuvo éxito). null si result es null.
service✓nullEl protocolo usado realmente: http o socks (SOCKS5). Con el protocolo auto, el mismo puerto acepta los dos. null si la conexión se rechazó antes de llegar a esa fase.
proxyType✓nullNombre antiguo; mismo valor que service.
command✓nullCONNECT, GET, POST… o UDP ASSOCIATE (UDP sobre SOCKS5; compatible con el protocolo auto). null si la conexión se rechazó antes de llegar a esa fase.
request✓nullLa PRIMERA línea de solicitud de la conexión. En una conexión keep-alive solo se registra la primera. null si se rechazó antes de leer la solicitud.
targetHost✓nullNombre de host del destino (la IP si la conexión fue directa a una IP). null si se rechazó antes de determinar el destino.
targetIp✓nullIP resuelta del destino. null si no se llegó a conectar con el destino.
targetPort✓nullPuerto de destino. null si se rechazó antes de determinar el destino.
targetInfo✓nullFormato antiguo: targetIp:targetPort.
clientPort✓nullPuerto de origen de tu cliente.
gateIp✓nullLa dirección del proxy (de entrada) a la que te conectaste; normalmente el host de la lista de proxies. NO es tu IP de salida.
gatePort✓nullEl puerto del proxy al que te conectaste.
egressIp✓nullLa IP REAL por la que tu tráfico sale a internet; la dirección que ve el sitio de destino. No se registra en todas las conexiones; si falta, es null (siempre null en los registros anteriores al 17/09/2026).
extIp✓nullNombre antiguo; mismo valor que egressIp.
latencyMs✓nullLatencia de conexión con el destino, en ms. null si no se midió; no es 0.
totalBytes✓nullbytesIn + bytesOut.
slot✓nullNúmero de slot de puerto del pedido. null en los registros anteriores al 17/09/2026.

Códigos de resultado

Solo ISP, Datacenter y Gaming. Las descripciones son textos que puedes mostrar a tus clientes. Se pueden añadir códigos nuevos; trata un código desconocido como un error.

resulterrorCodeHTTPCategoríalevelSignificado
000000200successconnectConexión correcta
10000100407clientauthNombre de usuario o contraseña incorrectos
10100101403clientauthTu dirección IP no está autorizada para este pedido
10200102400clienterrorEl formato de la solicitud no es válido
10300103—clienterrorEste comando o protocolo no es compatible
10400104403policyerrorNo tienes permiso para acceder a la dirección de destino
10500105403policyquotaSe agotó la cuota
10600106429policyquotaSe alcanzó el límite de conexiones
10700107403policyerrorEl puerto de destino está bloqueado
20000200502upstreamerrorNo se pudo acceder al servidor de destino
20100201—clientdisconnectEl cliente cerró la conexión (no es un error del servicio)
———unknownerrorCódigo no reconocido; trátalo como un error

Categorías de resultado

resultCategorySignificado
successSe estableció la conexión.
clientOriginado en el lado del cliente: credenciales o autorización de IP, formato de la solicitud, comando no compatible o cierre de la conexión por parte del cliente.
policyPolítica de uso o límite de la cuenta: destino bloqueado, cuota, conexiones simultáneas, puerto cerrado.
upstreamNo se pudo conectar con el destino; vuelve a intentarlo.
unknownCódigo no reconocido (o un registro fallido anterior al 17/09/2026).

Filtrado

ok, result, category, request_id, client_ip, egress_ip, target_host, service,udp, slot, port y min_latency_ms solo son válidos en estos tipos. Aquí, status_group devuelve 400.

status_group (2xx, 4xx, 5xx) solo es válido en estos tipos. Aquí, ip se busca dentro de la dirección de destino o de la del cliente. Enviar un parámetro propio de la familia ISP devuelve 400 invalid_request; details.field indica el parámetro.

Un parámetro desconocido o un rango de fechas cuyo inicio es posterior al final también devuelve 400. Todos los parámetros están en el endpointLogs.

Lista incompleta

meta.partial se devuelve en cada respuesta. Si es true, la lista puede estar incompleta: en la familia ISP no se pudieron leer los registros antiguos en ese momento; en Mobile/Residential solo se devolvieron los registros más recientes. Vuelve a intentarlo un poco más tarde. Si no se puede acceder temporalmente al almacén de logs, devuelve503 service_unavailable.

Registros anteriores al 17/09/2026

Cómo se devuelven los registros del sistema de logs anterior

El sistema de logs de ISP, Datacenter y Gaming se renovó el 17/09/2026. Los registros más antiguos también se devuelven en la lista (después de los registros nuevos), pero los campos que no existían en ese sistema son null: requestId, result, errorCode, egressIp, extIp, latencyMs yslot. En estos registros, level solo puede ser connect o error, y resultCategory, solo success ounknown; id es un identificador derivado y estable.

Los filtros que dependen solo de campos del sistema nuevo (ok, result, category, request_id, egress_ip,target_host, udp, slot, port, min_latency_ms) y las búsquedas parciales en el parámetro ip solo devuelven registros del 17/09/2026 en adelante. La línea de tiempo de logs y los contadores de uso del detalle del servicio también cubren solo el sistema nuevo.

Si en ese momento no se pueden leer los registros antiguos, la respuesta se devuelve igualmente, pero meta.partial es true. En el mismo caso, el historial de uso devuelve meta.available como false.

Cambios incompatibles con versiones anteriores
  • extIp es ahora la IP de salida real (igual que egressIp). Antes contenía la dirección del proxy al que te conectabas; esa dirección está ahora en gateIp + gatePort.
  • Se eliminó parentInfo.
  • En los registros de ISP, id es ahora el requestId (ULID).
  • timestamp es ahora el momento en que la conexión SE CERRÓ, con resolución de segundos.
  • level ahora también admite los valores auth, quota y disconnect.
  • Cada registro se devuelve con el mismo conjunto fijo de claves. Se añadieron claves nuevas: requestId, result, gateIp, egressIp, latencyMs y otras.
  • proxyType ahora solo puede ser http o socks (igual que service); un valor no reconocido devuelve null.
  • En la familia ISP, el valor de source de los endpoints de uso es ahora logs.
  • En los logs de Mobile/Residential, bytesIn y bytesOut se devolvían intercambiados. Ahora, en todos los tipos, bytesIn son los bytes descargados y bytesOut, los subidos (registros anteriores incluidos).

En las solicitudes de soporte, envía el requestId

Cuando pidas ayuda con una conexión, envía el valor requestId de ese registro; con él, el equipo de soporte encuentra exactamente esa conexión. Tú también puedes consultar la misma conexión con el parámetro request_id. No es el request_id de las respuestas de error: ese identifica tu solicitud a la API; este, una conexión de proxy.