Skip to main content
The metrics endpoints power dashboards and reporting. They are read-only (GET) and require an account-id (or individual); org callers need at least viewer. Paths are under /metrics/.

Dashboard summary

GET /metrics/dashboard?account-id={uuid}&vendor-list-id={listId}
Returns portfolio counts plus overallPosture (the tier-weighted mean of latest scores), vendorsInOverallPosture, avgGrcScore (unweighted), portfolioApprovedPercent, and an explanation string.
Tier weights used for overallPosture: Core 1.0, Standard 0.65, Minimal / untiered 0.65. See Dependency tiers.

Recent incidents

GET /metrics/recent-incidents?account-id={uuid}&vendor-list-id={listId}&limit={n}
Returns recent incident records. vendor-list-id scopes to a list; limit is capped at 100.

Vendors from a list

GET /metrics/vendors-from-list?account-id={uuid}&vendor-list-id={listId}
Returns each vendor on the list with recent_incident_count (approx. last 30 days), vendor_id, and alerts_enabled.

Portfolio posture history

GET /metrics/list-posture-history?account-id={uuid}&vendor-list-id={listId}&limit_months={n}
Returns monthly tier-weighted posture: { items: [{ yearMonth, overallPosture, recordedAt }] }. Defaults to 24 months (max 120).

Vendor score history

GET /metrics/vendor-grc-history?account-id={uuid}&vendor-id={uuid}&limit_months={n}
Returns a vendor’s monthly aggregate: { items: [{ yearMonth, rawScore, grcAssessedAt, recordedAt }] }. Defaults to 36 months. The vendor must be on the list.

AI summary

GET /metrics/ai-summary?account-id={uuid}&vendor-list-id={listId}
Returns a generated weekly summary of your portfolio as a JSON string.
History endpoints read from monthly snapshots recorded on the 1st of each month, so trends are stable and comparable over time.