CI runs, re-runs and failures by head SHA for one repository.
Runs, `run_attempt` re-runs and failures for one repository in a window, grouped by head SHA (and branch) from the org-stamped ci_pipeline_runs rows. Rows with a NULL head SHA are skipped. The window is half-open: since is inclusive and before is exclusive.
AuthorizationBearer <WorkOS user access token>WorkOS user access token created by the Rensei CLI. The authenticated organization is resolved from membership and may be narrowed with X-Rensei-Org.
repository*string1 <= lengthorgId?stringprojectId?stringsince?stringbefore?stringlimit?integer0 < value <= 50000Per-head CI rollup with totals.
application/json- response
repository*stringheads*array<>totals*curl -X GET 'https://app.rensei.ai/api/factory/ci-rollup?repository=string'{ "repository": "string", "heads": [ { "headSha": "string", "headBranch": "string", "runs": 0, "reAttempts": 0, "failures": 0, "prNumbers": [ 0 ] } ], "totals": { "runs": 0, "heads": 0, "reAttempts": 0, "failures": 0 }}Read the agent topology cold snapshot (nodes, edges, counters).
Returns the fleet topology snapshot for the authenticated org: session/sub-agent nodes, workflow/handoff/subagent/spawn edges, top counters (sessions / issues / today cost), and a session-activity stream seed. Optionally scoped to a project via ?project=<slug> (a slug that does not resolve in the caller org yields an empty topology, never another project's sessions). Bearer-reachable; the live delta feed is the sibling SSE stream (streamOrgSessionEvents).
Seat scorecard by project, dispatch kind, card revision, model, profile, harness and effort.
Seat scorecard for every dispatch in a date range, grouped by project × dispatch kind × card revision at dispatch time × model × profile × harness × effort. Per bucket: seat count, status mix, the completed seats that delivered over budget (a stored runner budget breach - apart from failures), the review seats' typed verdict mix (with seats missing a verdict), the GitHub review mix, dollars and tokens per seat (every cost row), p50/p90 duration, eval pass rate, first-pass merge and rework rounds. Review accuracy, profile, effort, time to merge and cache share are not reported until their sources land; `unavailableDimensions` names the issue for each, and for seats with no stored launch revision or typed verdict. The window is half-open: dispatchedAfter is inclusive (default 30 days before dispatchedBefore or now) and dispatchedBefore is exclusive. The scan reads the newest dispatches first and sets `truncated` when the limit cut it. A projectId the caller cannot access answers 404, exactly like a missing project. Missing links land in an "unattributed" bucket; open PRs count as pending. Each source reports its latest row and fresh/stale status; every metric derived from a stale source is null, with the reason in `unavailable`.