Skip to main content
Branch logs let you inspect PostgreSQL server output across the primary and replicas of a branch. Logs are useful for debugging slow queries, connection issues, replication problems, and other runtime behavior. Branch logs are generally available on every branch — no opt-in or feature flag is required.

Viewing logs in the dashboard

Open a branch in the Xata dashboard and select Logs in the branch sidebar to browse entries in a searchable viewer. From the Logs page you can:
  • Pick a preset or custom time range.
  • Filter by level (error, warning, info, debug), instance (primary or a specific replica), and process.
  • Search log message bodies with substring or regex matching.
  • Click any entry to open a details panel with the full message and metadata.
  • Use Refresh to fetch the latest entries for the current time range.
For programmatic access — for example, shipping logs to an external observability tool — use the API described below.

Retrieving logs

Use the branchLogs endpoint to fetch logs for a time range. The endpoint requires the logs:read scope on your API key.
The response contains a logs array of entries and a nextCursor that you can pass back in a follow-up request to page through additional results.

Request parameters

Log entry fields

Filtering

Pass one or more filters to narrow results. Each filter applies to a specific field with an op and either a value or values: Supported operators:
  • in — match any value in values (use with instance, level, process).
  • contains / icontains — substring match on the log body (case-sensitive / insensitive).
  • regex / iregex — regular-expression match on the log body.
For example, fetch only error-level entries from the primary instance that mention deadlock:

Credential redaction

Branch logs are scrubbed before they reach the API response. If a CREATE ROLE, ALTER ROLE, CREATE USER, ALTER USER, CREATE GROUP, ALTER GROUP, or CREATE/ALTER USER MAPPING statement appears in a log line, the statement is truncated at the PASSWORD keyword and the secret is replaced with <REDACTED>. This applies to both single-line and multi-line log records. For example, a log line like:
is returned as:
Redaction is applied on the read path, so it covers historical entries as well as newly emitted logs. Other password mentions outside role and user-mapping statements are left untouched.

Pagination

When a response includes a non-null nextCursor, pass it back as cursor in the next request to fetch the following page. The start, end, limit, and filters should remain the same across paged requests.