Reading data
Read your signals, aggregated numbers and raw events back out of Datius, for example to feed your own reports, a BI tool or a spreadsheet. Every request uses a workspace API key with the signals:read scope (see Authentication), and the key must belong to the workspace in the URL.
Need full SQL over your history? On Pro and Enterprise your telemetry can live in your own storage bucket as Parquet files, which you can query directly with DuckDB, Spark or your BI tool.
List signals
Returns every signal in the workspace with its key, data type and tag schema. Add ?isActive=true to skip disabled signals.
curl https://<your-api-host>/api/v1/workspaces/<workspace-id>/signals \-H "X-API-Key: <your-read-key>"
One signal by id: GET /api/v1/signals/<signal-id>.
Aggregated numbers (reports)
The same query the Reports page runs: one signal over a date range, aggregated into buckets, optionally grouped by a tag. The response has a summary, the series of buckets and, when grouped, a breakdown by tag value.
curl -X POST https://<your-api-host>/api/v1/workspaces/<workspace-id>/reports/query \-H "X-API-Key: <your-read-key>" \-H "Content-Type: application/json" \-d '{"signalKey": "order_revenue","startDate": "2026-09-01T00:00:00.000Z","endDate": "2026-10-01T00:00:00.000Z","granularity": "1d","aggregation": "sum","groupByDimension": "store"}'
granularity:1h,1d,1wor1m.aggregation:count,sum,avg,min,max,p95orp99.- Optional
tagFiltersnarrow the events first, the same way the filter bar does in the app.
Raw events
Individual events over a time range, newest first, up to 500 per request. Page with offset, and narrow with signalKey, tagFilters or search.
curl -X POST https://<your-api-host>/api/v1/workspaces/<workspace-id>/telemetry/query \-H "X-API-Key: <your-read-key>" \-H "Content-Type: application/json" \-d '{"mode": "historical","signalKey": "order_revenue","startTime": "2026-09-30T12:00:00.000Z","endTime": "2026-09-30T13:00:00.000Z","limit": 100,"offset": 0}'
Errors
401: the key is missing, wrong or expired.403: the key lackssignals:read, isn't scoped to a workspace, or belongs to a different workspace than the one in the URL.400: the request body didn't validate. The response lists each problem field.
Every request and response shape is in the API Reference.