Logs
Vincent Depassier · 30 de agosto de 2026
Todo request que llega al API Gateway queda registrado. No una muestra, no solo las fallas — todos, incluidos los que se rechazaron antes de tocar un dato.
Eso hace de la pestaña Logs el primer lugar donde mirar cuando una integración se porta mal, y el único que puede decirte qué mandó realmente quien llamó, en vez de lo que cree que mandó.
La encontrás en API Gateway → Logs.

Qué guarda una entrada
Campo | Qué te dice |
Tipo | Qué superficie se usó — ver abajo |
Principal | Qué aplicación llamó, por su nombre visible |
Prefijo de credencial | Qué key de ese principal, ej. |
Usuario final | La persona, cuando la llamada llevaba un JWT |
Tipo de auth |
|
Estado | El código HTTP devuelto |
Duración | Milisegundos de ejecución |
Filas / bytes | Cuánto volvió |
IP de origen y user agent | De dónde vino |
Error | El mensaje, cuando lo hubo |
Cuerpo de la consulta | El payload completo que mandó quien llamó |
Cuerpo de la respuesta | Lo que se devolvió |
Los dos últimos están en la vista de detalle y no en la lista, y son la razón por la que el log vale la pena: podés leer el JSON exacto que mandó un llamador, lo que zanja la mayoría de las discusiones de "la API está rota" en unos diez segundos.
El registro ocurre después de enviar la respuesta, así que nunca hace más lento a un request.
Los cinco tipos
Tipo | Cubre |
| Lecturas PraxQL |
| Escrituras PraxQL |
| Llamadas entrantes a un endpoint |
| Registro, login, refresh y operaciones de contraseña de usuarios finales |
| Llamadas a herramientas desde un conector de IA |
Tenerlos separados importa más de lo que parece. Un workspace que se ve ocupado suele estarlo de una de estas cinco formas, y la columna de tipo te dice cuál sin leer un solo payload.
Tipos de auth, y qué implican
Tipo de auth | Quien llamó era |
| Un backend con |
| Un navegador o app con |
| Un usuario final, con su propio token de sesión |
| Un usuario final, cuya app además se identificó con una key publicable |
La presencia de un usuario final en una fila es la señal útil: significa que ese request estuvo sujeto a los scopes y row filters de esa persona, no a los de una credencial. Si una fila que esperabas filtrada no muestra usuario final, la llamada se hizo con una key de aplicación y no aplicó ningún filtro por usuario.
Filtros
La lista filtra por credencial, usuario final, rango de estado y rango de fechas, con búsqueda libre sobre principal, correo del usuario final, IP de origen y mensaje de error encima.
El rango de estado es el primero al que recurrir. 400–499 son todos los requests rechazados; recorrer eso es cómo encontrás un cliente que viene fallando en silencio hace una semana porque nadie mira sus logs.
Qué nunca aparece acá
Tres cosas, todas a propósito:
Corridas del Playground. Ejecutar una consulta en el Playground no escribe nada en el log y no cuenta contra tu cuota. Si estás depurando mirando esta pestaña, una corrida del Playground nunca va a aparecer — llamá al endpoint de verdad.
Interior de las automatizaciones. Un webhook muestra una entrada por la llamada entrante. Lo que después hicieron las automatizaciones suscritas está en el historial de ejecuciones, no acá.
El contexto de conversación con la IA. Una entrada MCP registra la llamada a la herramienta — qué tabla, qué operación — y no lo que alguien le escribió al asistente.
Los logs no se pueden borrar
No hay eliminar, ni purga masiva. Eso es lo que hace del log una traza de auditoría y no una comodidad de depuración: una entrada no la puede sacar quien la causó, administrador incluido.
Depurar con esto
"La integración dejó de funcionar." Filtrá por su credencial y ordená por más reciente. Si no hay ninguna entrada, el request nunca llegó — eso es un problema de URL, DNS o firewall del lado de ellos, no de permisos del tuyo. Si hay entradas, el estado te dice qué capa las rechazó.
"Funciona en el Playground pero no desde mi app." Casi siempre una de tres cosas, y el log las distingue: un 403 SCOPE_VIOLATION significa que los scopes de esa credencial difieren de la que probaste; un 401 significa key equivocada, vencida o revocada; y ninguna entrada significa que tu app no está llegando al gateway.
"Nos están limitando." Filtrá por estado 429. El patrón en las marcas de tiempo te dice si es una sobrecarga sostenida o un cliente en bucle de reintentos.
"Un cliente dice que ve datos de otro." Filtrá por su id de usuario final. Cada entrada muestra qué pidió y qué volvió — y si el row filter de su rol se aplicó siquiera.
Un `403` sin usuario final en una llamada de cara al usuario merece una segunda mirada por sí solo: normalmente significa que la app cayó de vuelta a su API key en algún punto, y el aislamiento por usuario no estuvo vigente para ese request.
Siguiente
Uso y cuotas — cuánto cuestan estas llamadas y qué pasa al llegar al límite.
Modelo de Seguridad — a qué capa corresponde cada código de estado.