Metrics API
List metrics
GET /v1/metrics| Parameter | Type | Required | Description |
|---|---|---|---|
| search | string | no | Semantic search query |
| tag | string | no | Filter by tag |
bash
curl -H "Authorization: Bearer $KEY" \
"https://api.onlymetrix.com/v1/metrics?search=revenue"Returns { "metrics": [...] } with name, description, tags, filters, dimensions.
Query a metric
POST /v1/metrics/:name| Parameter | Type | Required | Description |
|---|---|---|---|
| filters | object | no | Key-value dimension filters |
| dimension | string | no | Break results down by this column |
| granularity | string | no | Time grain: day, week, month, quarter, year |
| limit | integer | no | Max rows (default 100) |
bash
curl -X POST -H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"filters": {"country": "United Kingdom"}, "dimension": "tier"}' \
https://api.onlymetrix.com/v1/metrics/revenue_byResponse:
json
{
"metric": "revenue_by",
"columns": [{"name": "dimension", "type": "TEXT"}, {"name": "revenue_gbp", "type": "NUMERIC"}],
"rows": [
{"dimension": "enterprise", "revenue_gbp": 6892.0},
{"dimension": "pro", "revenue_gbp": 371.0}
],
"row_count": 2,
"execution_time_ms": 12,
"filters_applied": ["country = 'United Kingdom'"]
}Errors:
| Code | Meaning |
|---|---|
| 404 | Metric not found |
| 400 | Invalid filter or dimension |
| 429 | Rate limit exceeded |
Raw SQL query
POST /v1/query| Parameter | Type | Required | Description |
|---|---|---|---|
| sql | string | yes | SELECT query |
| limit | integer | no | Max rows (default 100, max 1000) |
Only SELECT queries allowed. Results are PII-masked and audit-logged.
Disabled when policies.only_metrics = true.
Create a metric
POST /v1/setup/metrics| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Metric identifier |
| sql | string | yes | SQL query |
| description | string | yes | Human-readable description |
| tags | array | no | Classification tags |
| source_tables | array | no | Tables for open filter validation |
| dimensions | boolean | no | Enable open dimensions ($dimension placeholder) |
| ground_truth_sql | string | no | SQL for autoresearch scoring |
| filters | array | no | Declared filter columns with types |
| time_column | string | no | Time column for time range filters |
Delete a metric
DELETE /v1/setup/metrics/:nameReturns { "deleted": "metric_name" } or 404.