Rank the biggest CI consumers
Aggregate CI leaderboard: rank StarSling-billed jobs by runner-minutes, cost, jobs, p95 duration, p99 duration, or queue wait, grouped by workflow/job/label/repo/branch, over a time window, with each row's trend vs. the prior equal-length window. Scoped to the caller's orgs.
/api/topAuthorization
bearerAuth Session token from sling login.
In: header
Query Parameters
GitHub organization login. Required — a leaderboard is always org-scoped.
1 <= lengthNarrow to one repository, as owner/name. Both segments are required.
^[^/]+/[^/]+$Ranking axis — what each row is a total for.
"workflow"Value in
- "workflow"
- "job"
- "label"
- "repo"
- "branch"
Metric the leaderboard ranks on.
"runner-minutes"Value in
- "runner-minutes"
- "cost"
- "jobs"
- "p95-duration"
- "p99-duration"
- "queue-wait"
Sort direction — desc puts the biggest burner first.
"desc"Value in
- "asc"
- "desc"
How many rows to rank. Defaults to 20.
1 <= value <= 100Relative lookback, e.g. 30d. Mutually exclusive with month and from/to.
A whole calendar month, YYYY-MM.
Start of the range, inclusive. Required with to.
End of the range, exclusive. Required with from.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/top?org=acme"{ "by": "workflow", "metric": "runner-minutes", "window": { "from": "2026-06-22T00:00:00.000Z", "to": "2026-07-22T00:00:00.000Z" }, "rows": [ { "key": "Prebuild", "repo": "hpc-sandbox-benchmarks", "runner_minutes": 66043.9, "cost_usd": 528.35, "runs": 37, "jobs": 1460, "p50_ms": 92000, "p95_ms": 405000, "p99_ms": 1200000, "queue_wait_ms": 16000, "trend_pct": 55.2 }, { "key": "CI", "repo": "api", "runner_minutes": 1240.5, "cost_usd": 9.92, "runs": 318, "jobs": 3816, "p50_ms": 41000, "p95_ms": 118000, "p99_ms": 240000, "queue_wait_ms": 4000, "trend_pct": null } ]}Break down CI wall-clock time GET
Phase decomposition: job/attempt level splits wall-clock into the frozen phase enum with a per-step breakdown; run level adds a timing-inferred critical path, parallelism efficiency, and the blocking job; repo level aggregates p50/p95 per phase per runner label. Scoped to the caller's orgs by membership.
Runner minutes and cost by group GET
Runner-minute and cost attribution over a time window, grouped by label/workflow/job/repo/day. Scoped to the caller's orgs.