Skip to main content

API: summary and sources

Two read-only endpoints power the dashboard overview: summary returns headline counts and breakdowns, and sources returns a paginated list of indexed log files. Both accept the standard API conventions and require a key when API key authentication is enabled.

Summary

Returns a single object aggregated across all issues in the current application.

KeyShapeNotes
totalgroups_count, occurrences, last_seenOne row. occurrences is 0 when empty.
severityrows of severity, groups_count, occurrencesOrdered EMERGENCY to ALERT to CRITICAL to ERROR to WARNING to NOTICE to INFO.
typesrows of log_type, groups_count, occurrencesOrdered by occurrences descending.
trendrows of day, countOccurrences grouped by occurred_day, oldest first.
daily_severityrows of day, severity, countLatest 30 calendar days ending on the newest occurrence day; the UI fills missing days with zero.
statusrows of status, groups_count, occurrencesWorkflow composition used by the triage-health chart.
filesup to 12 recent source filesSame row shape as sources data below.
modulesrows of module fields plus issue_countOrdered by name (case-insensitive).

See severities for the level ordering and modules for how issues are grouped.

Sources

Lists indexed log files, newest import first.

ParameterDefaultRange
page1clamped to 1 minimum
limit121-100

Each row includes:

{
"id": 1,
"path": "/var/log/laravel.log",
"size": 48213,
"imported_at": "2026-07-25 09:12:00",
"log_type": "laravel",
"channel": "single",
"occurrence_count": 37,
"module_id": 2,
"module_name": "Billing",
"module_slug": "billing",
"module_color": "#3b82f6"
}

module_* fields are null when the source is unassigned. The response wraps rows in data with pagination meta:

{
"data": [ ... ],
"meta": { "total": 40, "page": 1, "limit": 12, "pages": 4 }
}

pages is total divided by limit, rounded up.