Skip to content

Export config-health history for one instance

GET
/config-health/{instanceId}/trends/export
curl --request GET \
--url 'https://example.com/api/v1/config-health/1/trends/export?format=json'

Downloads the same canonical filtered result and point order as the trend endpoint. JSON uses the complete response envelope. CSV uses one row per canonical point and a fixed criteria JSON cell. A valid empty selection returns 200 with an empty JSON points array or a header-only CSV.

The exact 10,000-point limit and stored-evidence budgets apply atomically to both formats; oversized selections are never silently truncated.

instanceId
required
integer

Arr instance id

format
string
default: json
Allowed values: json csv

Attachment representation. Defaults to the canonical JSON envelope.

days
integer
>= 1 <= 3650

Relative UTC window in days. Cannot be combined with from or to.

from
One of:
string format: date

Inclusive date-only or ISO-8601 date-time lower bound.

to
One of:
string format: date

Inclusive date-only or ISO-8601 date-time upper bound.

profile
string
>= 1 characters

Exact non-empty persisted profile name. Matching does not trim or case-fold.

JSON or CSV attachment, including successful empty selections

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
instance
required
object
id
required
integer
name
required
string
arrType
required
string
Allowed values: radarr sonarr lidarr
currentEngineVersion
required
string
normalizedFilter
required

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.

object
from
required
One of:
string format: date-time
to
required
string format: date-time
profile
required
One of:
string
>= 1 characters
retention
required

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.

object
days
required
integer
>= 1
maxEntries
required
integer
>= 1
ageCutoffAt
required
string format: date-time
oldestAvailableAt
required
One of:
string format: date-time
newestAvailableAt
required
One of:
string format: date-time
availableProfiles
required

Exact historical profile names in deterministic order.

Array<string>
counts
required
object
points
required
integer
measured
required
integer
unknown
required
integer
missing
required

Points whose selected evidence is profile-missing or not-recorded.

integer
engineBoundaries
required
Array<object>

Start of one contiguous persisted engine-version run in canonical point order.

object
engineVersion
required
string
startsAt
required
string format: date-time
pointIndex
required
integer
points
required
Array<object>

One persisted snapshot observation in generatedAt ASC, snapshotId ASC order.

object
snapshotId
required
integer
>= 1
generatedAt
required
string format: date-time
engineVersion
required
string
state
required

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.

string
Allowed values: measured unknown profile-missing not-recorded
score
required
One of:
integer
<= 100
band
required
One of:

Health band derived from the 0–100 rollup. unknown means every enabled criterion was skipped.

string
Allowed values: healthy attention needs-review unknown
criteria
required

Persisted overall criterion observations; empty for exact-profile scope.

Array<object>

One persisted overall criterion observation. Profile-scoped points do not expose criteria. Nullable numeric fields remain distinct from measured zero.

object
id
required
string
label
required
string
state
required

Availability of one persisted overall criterion observation.

string
Allowed values: measured not-evaluated not-recorded
score
required
One of:
integer
<= 100
weight
required
One of:
integer
contribution
required
One of:
integer
Example
{
"instance": {
"arrType": "radarr"
},
"points": [
{
"state": "measured",
"band": "healthy",
"criteria": [
{
"state": "measured"
}
]
}
]
}
Content-Disposition
string

Fixed ASCII attachment filename derived from the numeric instance id and server time

Cache-Control
string
Allowed values: no-store

Prevents storage of operational history downloads

X-Content-Type-Options
string
Allowed values: nosniff

Prevents content-type sniffing

Invalid instance id, filter, filter combination, range, or format

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Instance not found or not sync-capable

Media typeapplication/json
object
error
required

Error message

string
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 attachment is returned.

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Failed to export config-health history

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}