Rensei docs

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.

GET
/api/factory/ci-rollup

Authorization

headerAuthorizationBearer <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.

Query Parameters

repository*string
Length1 <= length
orgId?string
projectId?string
since?string
before?string
limit?integer
Range0 < value <= 50000

Response Body

Per-head CI rollup with totals.

application/json
  1. response
repository*string
heads*array<>
totals*
Example Request
curl -X GET 'https://app.rensei.ai/api/factory/ci-rollup?repository=string'
Example Response
{  "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`.