Get the snapshot trend series
GET
/risk-snapshots/trend
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/trend?limit=50"), 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/trend?limit=50"
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/trend?limit=50") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();const url = 'https://api.vendorica.com/v1/risk-snapshots/trend?limit=50';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/trend";
let querystring = [ ("limit", "50"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .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/trend?limit=50' \ --header 'Authorization: Bearer <token>'The most recent snapshot headers oldest first, ready to plot as a left-to-right series — the “is our exposure improving” read, without paging the whole snapshot list to assemble it. Bounded by limit rather than paginated. summary.indicators and summary.appetite are absent on any snapshot captured before the KRI layer shipped; treat an absent key as “not captured” rather than defaulting it to zero, which would assert the organization had no red indicators on a date it was not measuring any.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”registerId
string format: uuid
limit
integer
Responses
Section titled “Responses”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
Example
{ "success": true, "data": [ { "id": "cf91a7c4-884b-4cb2-8f3e-2aa335dd24e5", "organizationId": "df222df9-3dce-4221-8de4-7b8680ae6da6", "registerId": "775b5e87-69d5-4b5f-878f-21d486523a70", "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": "f9e3a7ee-4d61-4884-873e-5c85d82b9f13", "capturedByEmail": "string" } ], "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"}