Skip to content
sigiro

Run SQL over your telemetry

Accepts exactly one SELECT statement as the raw request body. Allowed tables: sigiro_spans, sigiro_logs, sigiro_log_templates, sigiro_metrics_gauge, sigiro_metrics_sum, sigiro_metrics_histogram, sigiro_metrics_exp_histogram, sigiro_profiles, sigiro_anomalies (optionally qualified as lake.* or main.*). WITH/CTE clauses are not supported — rewrite as derived-table subqueries. Scalar functions are allowlisted (aggregates, json extraction, date/time, string, math, conditional helpers); file/network readers are blocked. Every drill_down_sql returned by /v1/investigate can be pasted here verbatim.

Request

POST /v1/query
curl -X POST "https://api.sigiro.com/v1/query" \
  -H "Content-Type: text/plain" \
  -d 'SELECT service_name, count(*) AS errors FROM sigiro_spans GROUP BY 1'
Auth
None. Self-hosted default; the hosted service requires a tenant key.
Body
text/plainstring

Responses

200Query results — one object per row, keyed by your SELECT's column namesapplication/json

example
[
  {
    "errors": 128,
    "service_name": "checkout"
  },
  {
    "errors": 4,
    "service_name": "cart"
  }
]

Every field and constraint is in /openapi.json, which is the document this page is generated from.