logs_histogram
const url = 'https://api.siteqwality.com/logs/v2/histogram';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"query":{"v":1,"signal":"logs","text":"example","filters":["example"],"range":{"from":"example","to":"example"},"tz":"example","analytics":{"group_by":["example"],"measure":{"op":"count","field":"example"},"interval":"example","limit":1,"display":"timeseries"}},"interval":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.siteqwality.com/logs/v2/histogram \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "query": { "v": 1, "signal": "logs", "text": "example", "filters": [ "example" ], "range": { "from": "example", "to": "example" }, "tz": "example", "analytics": { "group_by": [ "example" ], "measure": { "op": "count", "field": "example" }, "interval": "example", "limit": 1, "display": "timeseries" } }, "interval": "example" }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
A log, span or trace query: the explorer URL, a saved view, a widget, an
alert rule and an MCP call all carry this. text and filters are AND-combined.
object
The signal of an [EventQuery].
The text grammar (6.5.2).
The f grammar (6.5.1), parsed for the signal’s scope.
A window of T2 tokens (now, now-2h) or instants (ISO 8601, epoch milliseconds), resolved
when the query is compiled, so a stored view stays rolling.
object
Group-by analytics over an [EventQuery]: a time series or a top list.
object
Up to three fields, in the f field syntax (service, @http.route).
object
A numeric field (duration, @db.rows); none for count.
A T2 bucket interval or auto; absent means auto.
Groups returned, 1 to 100; absent means 10.
Responses
Section titled “ Responses ”OK
object
object
Logs at error or fatal level; spans with error status. The level fields are logs only:
debug includes trace, and records without a level are the remainder of count.
object
Example generated
{ "data": [ { "timestamp": "example", "count": 1, "error": 1, "warn": 1, "info": 1, "debug": 1 } ], "step_seconds": 1, "meta": { "from": "example", "to": "example", "clamped_from": "example", "partial": true, "slow_terms": [ "example" ] }}Invalid query, data contains QueryError
Signal restricted
Read quota exhausted
Telemetry paused, busy or unavailable
Narrow the query