Read config-health history for one instance
const url = 'https://example.com/api/v1/config-health/1/trends';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/config-health/1/trendsReturns one canonical, bounded historical result from persisted config-health snapshots for an active sync-capable instance. Overall scope includes persisted criterion observations; exact profile scope includes only the profile score and band recorded in each snapshot.
Filters are inclusive. days is mutually exclusive with from and to, and is normalized to
absolute UTC bounds in the response. Points are ordered by generatedAt ASC, snapshotId ASC.
Unknown, absent, or unrecorded evidence is represented by explicit states and nullable values,
never recomputed or silently truncated. A valid selection with no points returns 200.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Arr instance id
Query Parameters
Section titled “Query Parameters”Relative UTC window in days. Cannot be combined with from or to.
Exact non-empty persisted profile name. Matching does not trim or case-fold.
Responses
Section titled “Responses”Canonical health history, including an empty points array when nothing matches
Canonical bounded historical result shared by chart/table JSON and JSON/CSV export selection.
Empty selections are successful and contain points: [] with the same metadata shape.
object
object
Applied absolute filter echoed for representation parity. from=null means unbounded history;
to is captured once per request so a later export cannot acquire newer points. Profile matching
preserves the exact persisted name.
Current global retention policy and observed availability for this instance. These values do not identify why any older point is absent or prove which retention rule removed it.
Exact historical profile names in deterministic order.
object
Points whose selected evidence is profile-missing or not-recorded.
Start of one contiguous persisted engine-version run in canonical point order.
object
One persisted snapshot observation in generatedAt ASC, snapshotId ASC order.
object
Availability of the point’s selected scope. unknown is persisted scoring without a measured
score, profile-missing preserves a snapshot where the exact profile was absent, and
not-recorded preserves snapshot identity when stored evidence is unusable.
Persisted overall criterion observations; empty for exact-profile scope.
One persisted overall criterion observation. Profile-scoped points do not expose criteria. Nullable numeric fields remain distinct from measured zero.
Example
{ "instance": { "arrType": "radarr" }, "points": [ { "state": "measured", "band": "healthy", "criteria": [ { "state": "measured" } ] } ]}Invalid instance id, filter, filter combination, or range
object
Error message
Examplegenerated
{ "error": "example"}Instance not found or not sync-capable
object
Error message
Examplegenerated
{ "error": "example"}Exact selection exceeds the 10,000-point limit, or selected/retained-profile evidence exceeds the safe per-row, aggregate-byte, or nested-item budget. No partial result is returned.
object
Error message
Examplegenerated
{ "error": "example"}Failed to read config-health history
object
Error message
Examplegenerated
{ "error": "example"}