Skip to main content
GET
Get project-wide server logs

Authorizations

api-key
string
header
required

Query Parameters

start_time
string

Window start. Accepts ISO 8601 format (e.g., "2026-03-15T12:00:00Z") or relative time (e.g., "-1h"). Omit to use the default 1-hour window (symmetric with the per-server log query).

end_time
string

Window end. Same format as start_time. Defaults to current time if omitted. Pass the response's older_token here to page backward through the window.

limit
integer
default:1000

Maximum number of log entries to return (1–1000). Defaults to 1000.

Required range: 1 <= x <= 1000

Case-insensitive substring to match within log messages. Applied server-side across the ENTIRE window, not just the returned page.

Maximum string length: 256
level
enum<string>

Restrict to a single inferred severity. Levels are inferred from message content (Fly forwards raw stdout without parsed levels).

Available options:
error,
warn,
info
include_counts
boolean | null
default:false

When true, also return per-level totals for the window (an extra aggregation query). Counts respect search but ignore the level filter.

Response

200 - application/json

Aggregated logs from all servers in the project with pagination cursor.

Aggregated runtime logs from all servers in the project.

logs
object[]
required

The most recent log entries from all servers in the project within the requested window (after any search/level filter), ordered oldest-to-newest.

next_token
string | null
required

Live-tail cursor pointing just after the newest entry returned. Pass as start_time in the next request to fetch only newer logs. Null if no logs were returned.

older_token
string | null
required

Backward cursor equal to the oldest entry returned. Pass as end_time (keeping the same start_time) to page further back through the window. Null if no logs were returned.

counts
object | null
required

Per-level totals for the window when include_counts was set; otherwise null.