List failure signatures visible to the caller (org + system tier).
Returns the caller's org-scoped signatures plus every system-tier (NULL organization_id) signature, ordered by signature key (an org row sorts before a system row of the same key, then by tier). Optional `tier`/`kind` query params narrow the result.
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.
tier?string"observed""assisted""auto"kind?string"remedy""constraint""diagnostic""prevention"Failure signatures visible to the caller.
application/json- response
signatures*array<>curl -X GET 'https://app.rensei.ai/api/failure-signatures'{ "signatures": [ { "id": "string", "organizationId": "string", "signatureKey": "string", "entryKind": "remedy", "matcher": { "ciConclusion": "success", "mergeable": "MERGEABLE", "runCount": { "op": "eq", "value": 0 }, "logTailPattern": "string", "launchOutcomeReason": "launch_rejected", "harness": "string", "defectClass": "string", "stage": "seat", "terminalReasonPattern": "string" }, "remedyVerb": "rebase_main", "blastRadiusClass": "read_only", "tier": "observed", "attemptsCap": -9007199254740991, "provenance": { "sourceIssue": "string", "decisionRef": "string", "confirmedSessions": [] }, "createdAt": "string", "updatedAt": "string" } ]}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`.
Create an org-scoped failure signature (always tier='observed'). Requires the org admin role.
Creates a signature owned by the caller's org. Requires org admin (a plain `member` or the read-only `auditor` role is refused 403). The route forces tier='observed' - any other tier in the body is refused 422 tier_not_allowed. A never-auto blast_radius_class under tier='auto' is refused 422 never_auto_class (defense in depth; unreachable via this route since tier is forced). A duplicate (organization_id, signature_key) is refused 409 duplicate_key.