StarSling
APIUsage

Runner minutes and cost by group

Runner-minute and cost attribution over a time window, grouped by label/workflow/job/repo/day. Scoped to the caller's orgs.

View Markdown
GET/api/usage

Authorization

bearerAuth
AuthorizationBearer <token>

Session token from sling login.

In: header

Query Parameters

org*string

GitHub organization login. Required — usage is always org-scoped.

Length1 <= length
repo?string

Narrow to one repository, as owner/name.

group_by?string

Attribution axis — what each row is a total for. Defaults to repo.

Value in

  • "label"
  • "workflow"
  • "job"
  • "repo"
  • "day"
order_by?string

Column the rows are sorted by. Defaults to cost.

Value in

  • "cost"
  • "minutes"
  • "jobs"
  • "key"
order?string

Sort direction. Defaults to desc — the biggest spender first.

Value in

  • "asc"
  • "desc"
window?string

Relative lookback, e.g. 30d. Mutually exclusive with month and from/to.

month?string

A whole calendar month, YYYY-MM.

from?string

Start of the range, inclusive. Required with to.

to?string

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/usage?org=acme"
{  "group_by": "repo",  "window": {    "from": "2026-07-12T00:00:00.000Z",    "to": "2026-08-12T00:00:00.000Z"  },  "plan": {    "status": "free",    "free_minutes_limit": 2000,    "free_minutes_used": 1840,    "period_source": "install_cycle"  },  "rows": [    {      "key": "acme/api",      "runner_minutes": 1240.5,      "jobs": 318,      "cost_usd": 9.92,      "pct_of_total": 71.3    },    {      "key": "acme/web",      "runner_minutes": 499.5,      "jobs": 96,      "cost_usd": 3.99,      "pct_of_total": 28.7    }  ]}