Skip to content

List risk snapshots

GET
/risk-snapshots
curl --request GET \
--url 'https://api.vendorica.com/v1/risk-snapshots?page=1&limit=100&sortOrder=asc' \
--header 'Authorization: Bearer <token>'

Snapshot HEADERS, newest first — the frozen summary without the thousands of child rows under it. Read one snapshot by id for those. A registerId of null means the capture was org-wide rather than scoped to one register. Paginated.

page
integer
default: 1 >= 1 <= 10000
limit
integer
default: 100 >= 1 <= 500
sortBy
string
sortOrder
string
default: desc
Allowed values: asc desc
search
string
>= 1 characters <= 255 characters
registerId
string format: uuid

Success

Media typeapplication/json
object
success
required
boolean
data
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
registerId
required
string | null format: uuid
registerNameAtCapture
required
string | null
name
required
string
description
required
string | null
summary
required
object
totals
required
object
registers
required
integer
scenarios
required
integer
byStatus
required
object
open
required
integer
mitigating
required
integer
accepted
required
integer
closed
required
integer
byInherentBand
required
object
none
required
integer
low
required
integer
medium
required
integer
high
required
integer
critical
required
integer
byResidualBand
required
object
none
required
integer
low
required
integer
medium
required
integer
high
required
integer
critical
required
integer
averages
required
object
inherent
required
number | null
residual
required
number | null
indicators
object
total
required
integer
byStatus
required
object
unknown
required
integer
green
required
integer
amber
required
integer
red
required
integer
appetite
object
categoriesWithStatement
required
integer
byPosition
required
object
within
required
integer
warning
required
integer
breach
required
integer
unknown
required
integer
capturedAt
required
string format: date-time
capturedBy
required
string | null format: uuid
capturedByEmail
required
string | null
timestamp
required
string format: date-time
requestId
string
message
string
pagination
object
page
required
integer
limit
required
integer
total
required
integer
totalPages
required
integer
Example
{
"success": true,
"data": [
{
"id": "616001f8-4423-4c8e-8045-f1f7d11be189",
"organizationId": "79eef69d-922e-4c4d-8cc8-eeca0e4fee4a",
"registerId": "d78ed3bb-0ed7-4c3b-84ec-fc289d10f944",
"registerNameAtCapture": "string",
"name": "string",
"description": "string",
"summary": {
"totals": {
"registers": 1,
"scenarios": 1
},
"byStatus": {
"open": 1,
"mitigating": 1,
"accepted": 1,
"closed": 1
},
"byInherentBand": {
"none": 1,
"low": 1,
"medium": 1,
"high": 1,
"critical": 1
},
"byResidualBand": {
"none": 1,
"low": 1,
"medium": 1,
"high": 1,
"critical": 1
},
"averages": {
"inherent": 1,
"residual": 1
},
"indicators": {
"total": 1,
"byStatus": {
"unknown": 1,
"green": 1,
"amber": 1,
"red": 1
}
},
"appetite": {
"categoriesWithStatement": 1,
"byPosition": {
"within": 1,
"warning": 1,
"breach": 1,
"unknown": 1
}
}
},
"capturedAt": "2026-08-19T09:41:12.004Z",
"capturedBy": "faaf342a-c9cf-4af8-8c07-7921f4c3b53f",
"capturedByEmail": "string"
}
],
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H",
"message": "string",
"pagination": {
"page": 1,
"limit": 1,
"total": 1,
"totalPages": 1
}
}

Validation error

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Bad request",
"code": "BAD_REQUEST",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Unauthorized

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Forbidden — missing scope

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Forbidden",
"code": "FORBIDDEN",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Not found

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Resource not found",
"code": "NOT_FOUND",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Rate limit exceeded

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Too many requests",
"code": "TOO_MANY_REQUESTS",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}