Get a risk snapshot by id
GET
/risk-snapshots/{id}
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();const url = 'https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0";
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url https://api.vendorica.com/v1/risk-snapshots/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Authorization: Bearer <token>'The header plus everything frozen under it: the scenarios, the indicator readings WITH the thresholds they were judged against, and the appetite comparison per category. Every child freezes the NAME beside the id it references, so a snapshot still renders after the live category, register or scenario is deleted — those references go null and the *NameAtCapture fields carry the record. An EMPTY indicators array is ambiguous on its own: it means either the org had no indicators or the snapshot predates the KRI layer. summary.indicators is what distinguishes them — present-with-zero for the first, absent for the second.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
Responses
Section titled “Responses”Success
Media typeapplication/json
object
success
required
boolean
data
required
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
scenarios
required
Array<object>
object
id
required
string format: uuid
snapshotId
required
string format: uuid
scenarioId
required
string | null format: uuid
registerId
required
string | null format: uuid
registerNameAtCapture
required
string | null
displayIdAtCapture
required
string | null
title
required
string
description
required
string | null
categoryId
required
string | null format: uuid
categoryNameAtCapture
required
string | null
riskType
required
Array<string> | null
inherentLikelihood
required
integer | null
inherentImpact
required
integer | null
residualLikelihood
required
integer | null
residualImpact
required
integer | null
lifecycleStatus
required
string | null
approvalStatus
required
string | null
isArchived
required
boolean | null
treatment
required
string | null
treatmentPlan
required
string | null
ownerUserId
required
string | null format: uuid
ownerEmailAtCapture
required
string | null
targetResolutionDate
required
string | null
indicators
required
Array<object>
object
id
required
string format: uuid
snapshotId
required
string format: uuid
indicatorId
required
string | null format: uuid
displayIdAtCapture
required
string | null
name
required
string
categoryId
required
string | null format: uuid
categoryNameAtCapture
required
string | null
unit
required
string | null
direction
required
string | null
amberThreshold
required
number | null
redThreshold
required
number | null
value
required
number | null
status
required
string | null
measuredAt
required
string | null format: date-time
cadence
required
string | null
ownerEmailAtCapture
required
string | null
appetite
required
Array<object>
object
id
required
string format: uuid
snapshotId
required
string format: uuid
statementId
required
string | null format: uuid
categoryId
required
string | null format: uuid
categoryNameAtCapture
required
string | null
statement
required
string | null
toleranceMetric
required
string | null
toleranceLimit
required
number | null
toleranceWarning
required
number | null
approvalStatusAtCapture
required
string | null
observedValue
required
number | null
appetitePosition
required
string | null
categoryStatusAtCapture
required
string | null
categoryAmberIndicatorCount
required
integer | null
categoryRedIndicatorCount
required
integer | null
timestamp
required
string format: date-time
requestId
string
message
string
Example
{ "success": true, "data": { "id": "188ee750-faf6-4616-867d-f30fa3459a51", "organizationId": "6a5c7185-f686-4785-8c12-e7f2a7c32842", "registerId": "ba9fbf63-2a7a-45b3-8e7b-b41060bc7b7c", "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": "7b4b8562-77e2-4620-8d49-791977a9a8a7", "capturedByEmail": "string", "scenarios": [ { "id": "61014f19-d00f-4781-8a72-51a613f68206", "snapshotId": "3fe1bb81-135a-4f39-80f8-584ee0f2fc7e", "scenarioId": "d8043fcb-d7b0-496b-82b5-eeb8d066d1f4", "registerId": "99dc73ea-1e0a-4638-8578-1ee10118a27f", "registerNameAtCapture": "string", "displayIdAtCapture": "string", "title": "string", "description": "string", "categoryId": "2ad5af5d-cd63-428d-80f6-358ab1964e8a", "categoryNameAtCapture": "string", "riskType": [ "confidentiality" ], "inherentLikelihood": 1, "inherentImpact": 1, "residualLikelihood": 1, "residualImpact": 1, "lifecycleStatus": "string", "approvalStatus": "string", "isArchived": true, "treatment": "string", "treatmentPlan": "string", "ownerUserId": "6d20edcb-93d6-436b-8265-4cb8e177cbf4", "ownerEmailAtCapture": "string", "targetResolutionDate": "string" } ], "indicators": [ { "id": "2b023dc8-7e87-44fe-8bf1-9a477055d779", "snapshotId": "7dec61d4-111e-43e2-8340-1b33c4ead795", "indicatorId": "c633023b-3b4c-4fbb-816d-0ea81aae18c4", "displayIdAtCapture": "string", "name": "string", "categoryId": "2fa46c40-41d6-4be6-898b-d97f02275ca1", "categoryNameAtCapture": "string", "unit": "string", "direction": "string", "amberThreshold": 1, "redThreshold": 1, "value": 1, "status": "string", "measuredAt": "2026-08-19T09:41:12.004Z", "cadence": "string", "ownerEmailAtCapture": "string" } ], "appetite": [ { "id": "dcc45618-a313-4aee-84c3-b3177312e6e9", "snapshotId": "bb15d3a4-295c-4e52-8d1c-e9834b839f85", "statementId": "c484320f-691a-4a77-892c-b49ca9604b48", "categoryId": "b2d1e070-f264-4376-88ef-612f3bd5f6b1", "categoryNameAtCapture": "string", "statement": "string", "toleranceMetric": "string", "toleranceLimit": 1, "toleranceWarning": 1, "approvalStatusAtCapture": "string", "observedValue": 1, "appetitePosition": "string", "categoryStatusAtCapture": "string", "categoryAmberIndicatorCount": 1, "categoryRedIndicatorCount": 1 } ] }, "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string"}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"}