Skip to content

Audit Logging

Every request proxied through Sylo is logged with full context. Query the audit log to see exactly what your agents are doing.

const { events, total } = await sylo.queryAudit({
tenantId: "acme",
destination: "api.openai.com",
policyDecision: "allow",
limit: 100,
offset: 0,
});

Each audit event contains:

FieldDescription
timestampWhen the request was made
destinationTarget hostname (e.g., api.openai.com)
methodHTTP method (GET, POST, etc.)
pathRequest path (e.g., /v1/chat/completions)
statusCodeResponse status from the target API
policyDecisionallow, deny, or would-block (shadow mode)
credentialUsedName of the injected credential (if any)
modemitm or passthrough
tenantIdYour customer identifier
userIdEnd user who triggered the agent
responseSizeResponse body size in bytes

Filter by any combination of fields:

// All denied requests
await sylo.queryAudit({ policyDecision: "deny" });
// All requests to GitHub for a specific tenant
await sylo.queryAudit({
tenantId: "acme",
destination: "api.github.com",
});

The Sylo dashboard shows audit events in a sortable table with real-time updates. Filter by destination, tenant, or policy decision.