DATIUSDocs

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.

Shell
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.

Shell
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, 1w or 1m.
  • aggregation: count, sum, avg, min, max, p95 or p99.
  • Optional tagFilters narrow 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.

Shell
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 lacks signals: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.