Metrics
Stored metric values — one row per (owner, key), newest write wins.
Base path /api/v1/metrics on https://ionwarp.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.
List metrics
GET /api/v1/metrics
curl "https://ionwarp.com/api/v1/metrics" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Show me the metrics filtered by owner kinddata_query {
"collection": "metrics"
}Returns a paginated list of metric objects, newest first.
{
"object": "list",
"data": [
{
"object": "metric",
"id": "obj_123",
"owner_kind": "owner kind",
"owner_id": "owner_123",
"key": "key",
"value": 1,
"unit": "unit",
"note": "note",
"day": "day",
"raw_findings": 1,
"raw_spend_usd": 1,
"raw_agents": 1,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
owner_kind | string | filter | project, or the owning collection key (e.g. agents). |
owner_id | string | filter | Project id or owning object id. |
key | string | filter | Metric key from the agent's metric registry. |
sort | string | sort | One of key; prefix with - to reverse. |
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_cursor from the previous page. |
Retrieve a metric
GET /api/v1/metrics/learning-tests-run-under-bun
curl "https://ionwarp.com/api/v1/metrics/learning-tests-run-under-bun" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Open the metric {id}data_get {
"collection": "metrics",
"object_id": "learning-tests-run-under-bun"
}Returns the metric object.
{
"object": "metric",
"id": "obj_123",
"owner_kind": "owner kind",
"owner_id": "owner_123",
"key": "key",
"value": 1,
"unit": "unit",
"note": "note",
"day": "day",
"raw_findings": 1,
"raw_spend_usd": 1,
"raw_agents": 1,
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The metric's id or slug. |
What comes back (read-only)
Every metric carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.
| Field | Type | Description |
|---|---|---|
object | string | Always metric. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
counted_runs | array | Run ids already folded into this day's accumulators — a re-delivered terminal for a counted run is a no-op, never a double count. |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.