Aggregate run usage for the current org over a date range
curl --request GET \
--url https://api.runflow.io/v1/runs-stats \
--header 'Authorization: Bearer <token>'{
"timeline": [
{
"date": "2023-12-25",
"runs": 123,
"spend": "<string>"
}
],
"by_flow": [
{
"flow_slug": "<string>",
"flow_name": "<string>",
"runs": 123,
"spend": "<string>",
"avg_duration_ms": 123
}
],
"by_source": [
{
"runs": 123,
"pct": 123
}
]
}Runs
Aggregate run usage for the current org over a date range
Return timeline, top targets, and source split for one org.
All aggregation runs in PostgreSQL — the response shape is bounded by the date range and a fixed top-N, not by the org’s run volume.
by_flow is filtered to target types whose parent resource the
caller has read on (flows:read / models:read /
comfyui-workflows:read); rows for target types the caller cannot
read are dropped silently. timeline and by_source always
aggregate every run in scope — they expose only counts and spend, no
target identity.
GET
/
v1
/
runs-stats
Aggregate run usage for the current org over a date range
curl --request GET \
--url https://api.runflow.io/v1/runs-stats \
--header 'Authorization: Bearer <token>'{
"timeline": [
{
"date": "2023-12-25",
"runs": 123,
"spend": "<string>"
}
],
"by_flow": [
{
"flow_slug": "<string>",
"flow_name": "<string>",
"runs": 123,
"spend": "<string>",
"avg_duration_ms": 123
}
],
"by_source": [
{
"runs": 123,
"pct": 123
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Query Parameters
Inclusive lower bound on Run.created_at (ISO-8601, UTC).
Inclusive upper bound on Run.created_at (ISO-8601, UTC).
⌘I