Skip to content

Get one indicator’s measurement series

GET
/risk-indicators/{id}/trend
curl --request GET \
--url 'https://api.vendorica.com/v1/risk-indicators/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/trend?limit=60' \
--header 'Authorization: Bearer <token>'

The readings behind an indicator, oldest first, so the array plots left to right without re-sorting. Bounded by limit rather than paginated: a trend is read whole or not at all. Each row’s status was frozen against the thresholds in force AT MEASUREMENT TIME, so it can legitimately disagree with what the indicator’s current lines would say about the same number — that is the record working, not drift to reconcile. Re-colouring the history from today’s thresholds would make the series stop being evidence.

id
required
string format: uuid
limit
integer
default: 60 >= 1 <= 365
from
string format: date-time
to
string format: date-time

Success

Media typeapplication/json
object
success
required
boolean
data
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
indicatorId
required
string format: uuid
value
required
number
status
required
string
Allowed values: green amber red
measuredAt
required
string format: date-time
windowStart
required
string | null format: date-time
windowEnd
required
string | null format: date-time
sourceKind
required
string
Allowed values: manual test_results drift_events vendor_rating incidents report_dataset
evidence
required
object
key
additional properties
note
required
string | null
capturedBy
required
string | null format: uuid
createdAt
required
string format: date-time
timestamp
required
string format: date-time
requestId
string
message
string
Example
{
"success": true,
"data": [
{
"id": "40065da9-7505-4431-8995-eab6e9007636",
"organizationId": "8c03c6b4-1ff1-4082-8aab-3b13228e0535",
"indicatorId": "1b9c65e0-5934-42c6-8277-7c1f8d185e81",
"value": 1,
"status": "green",
"measuredAt": "2026-08-19T09:41:12.004Z",
"windowStart": "2026-08-19T09:41:12.004Z",
"windowEnd": "2026-08-19T09:41:12.004Z",
"sourceKind": "manual",
"evidence": {},
"note": "string",
"capturedBy": "f959e6bb-4186-453b-8e45-c72893d88a44",
"createdAt": "2026-08-19T09:41:12.004Z"
}
],
"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"
}