Registros de log
En la familia ISP, cada registro de log es una conexión: campos, códigos de resultado, categorías y los tres errores más frecuentes en las integraciones.
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.
| Campo | Familia ISP | Mobile / Residential | Significado |
|---|---|---|---|
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. |
statusCode | null | ✓ | Código de estado HTTP. Solo Mobile/Residential. |
headers | null | ✓ | Encabezados HTTP de la solicitud (texto JSON). Solo Mobile/Residential. |
requestId | ✓ | null | Identificador ú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 | ✓ | null | Código de resultado (tabla de abajo). null en los registros anteriores al 17/09/2026. |
resultCategory | ✓ | null | success, client, policy, upstream o unknown. Si result es null, se deriva de ok: success o unknown. |
ok | ✓ | null | Si la conexión tuvo éxito (true / false). |
errorCode | ✓ | null | result como texto de 5 dígitos, p. ej., 00104 (00000 si tuvo éxito). null si result es null. |
service | ✓ | null | El 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 | ✓ | null | Nombre antiguo; mismo valor que service. |
command | ✓ | null | CONNECT, 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 | ✓ | null | La 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 | ✓ | null | Nombre 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 | ✓ | null | IP resuelta del destino. null si no se llegó a conectar con el destino. |
targetPort | ✓ | null | Puerto de destino. null si se rechazó antes de determinar el destino. |
targetInfo | ✓ | null | Formato antiguo: targetIp:targetPort. |
clientPort | ✓ | null | Puerto de origen de tu cliente. |
gateIp | ✓ | null | La 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 | ✓ | null | El puerto del proxy al que te conectaste. |
egressIp | ✓ | null | La 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 | ✓ | null | Nombre antiguo; mismo valor que egressIp. |
latencyMs | ✓ | null | Latencia de conexión con el destino, en ms. null si no se midió; no es 0. |
totalBytes | ✓ | null | bytesIn + bytesOut. |
slot | ✓ | null | Nú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.
| result | errorCode | HTTP | Categoría | level | Significado |
|---|---|---|---|---|---|
0 | 00000 | 200 | success | connect | Conexión correcta |
100 | 00100 | 407 | client | auth | Nombre de usuario o contraseña incorrectos |
101 | 00101 | 403 | client | auth | Tu dirección IP no está autorizada para este pedido |
102 | 00102 | 400 | client | error | El formato de la solicitud no es válido |
103 | 00103 | — | client | error | Este comando o protocolo no es compatible |
104 | 00104 | 403 | policy | error | No tienes permiso para acceder a la dirección de destino |
105 | 00105 | 403 | policy | quota | Se agotó la cuota |
106 | 00106 | 429 | policy | quota | Se alcanzó el límite de conexiones |
107 | 00107 | 403 | policy | error | El puerto de destino está bloqueado |
200 | 00200 | 502 | upstream | error | No se pudo acceder al servidor de destino |
201 | 00201 | — | client | disconnect | El cliente cerró la conexión (no es un error del servicio) |
— | — | — | unknown | error | Código no reconocido; trátalo como un error |
Categorías de resultado
| resultCategory | Significado |
|---|---|
success | Se estableció la conexión. |
client | Originado 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. |
policy | Política de uso o límite de la cuenta: destino bloqueado, cuota, conexiones simultáneas, puerto cerrado. |
upstream | No se pudo conectar con el destino; vuelve a intentarlo. |
unknown | Có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
extIpes ahora la IP de salida real (igual queegressIp). Antes contenía la dirección del proxy al que te conectabas; esa dirección está ahora engateIp+gatePort.- Se eliminó
parentInfo. - En los registros de ISP,
ides ahora elrequestId(ULID). timestampes ahora el momento en que la conexión SE CERRÓ, con resolución de segundos.levelahora también admite los valoresauth,quotaydisconnect.- Cada registro se devuelve con el mismo conjunto fijo de claves. Se añadieron claves nuevas:
requestId,result,gateIp,egressIp,latencyMsy otras. proxyTypeahora solo puede serhttposocks(igual queservice); un valor no reconocido devuelvenull.- En la familia ISP, el valor de
sourcede los endpoints de uso es ahoralogs. - En los logs de Mobile/Residential,
bytesInybytesOutse devolvían intercambiados. Ahora, en todos los tipos,bytesInson los bytes descargados ybytesOut, 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.