Skip to main content

API: issue search

Search the issue list over the JSON API. One row is returned per normalized issue group. All filters combine with AND semantics.

GET /?api=errors
GET /?api=issues

errors and issues are aliases. The dashboard uses GET /?api=groups, which shares the same filters and sorting but always includes stack and context fields.

Filters

ParameterType / defaultBehavior
appfirst registeredSelects one isolated application. No cross-application value.
qstringCase-insensitive search across title, representative message, exception class, application frame, module name, source channel, and archived source path.
dateYYYY-MM-DDIngested groups with an occurrence that day, plus manual issues created that day. Invalid formats return 422. count stays the lifetime total.
severitystringExact: EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG.
statusstringExact: open, in_progress, fixed, wont_fix, reoccurred.
log_typestringExact: laravel, horizon, nginx_access, console, manual.
originstringingested or manual.
kindstringerror for ingested; issue, bug, feature_request, task for manual.
moduleinteger / stringModule ID, slug, or case-insensitive name.
sourcestringExact channel or partial archived path. Unlike q, skips application frames.
taginteger / stringTag ID or case-insensitive tag name.
has_stackbooleantrue requires a parsed stack; false requires none; omit for both.

Projection

ParameterDefaultAdds
include_stackfalsesample_stack
include_contextfalsesample_context, sample_message
skip_vendorfalseStrips /vendor/ stack lines (needs include_stack=true; never alters stored data).

Sorting and paging

ParameterDefaultValues
sortnewestnewest, oldest, occurrences (highest lifetime count first)
page1One-indexed; values below one normalize to one
limit50Page size, clamped to 1-200

Response

{
"data": [
{
"id": 15, "fingerprint": "sha256...", "severity": "ERROR",
"title": "Database query failed", "count": 42,
"first_seen": "2026-07-20 09:14:00", "last_seen": "2026-07-24 16:42:12",
"status": "in_progress", "log_type": "laravel", "channel": "laravel.log",
"origin": "ingested", "kind": "error", "module_name": "Billing",
"has_stack": 1, "tags": []
}
],
"meta": { "total": 144, "page": 1, "limit": 50, "pages": 3,
"sort": "newest", "include_stack": false, "include_context": false, "skip_vendor": false }
}