List / search the sync-archaeology timeline
const url = 'https://example.com/api/v1/timeline?scopeKind=arr-instance&arrType=radarr&status=success&page=1&pageSize=100';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/timeline?scopeKind=arr-instance&arrType=radarr&status=success&page=1&pageSize=100'Returns a merged, paginated feed of archaeology events aggregated across four read-only sources (sync runs, PCD snapshots, rollbacks, canary rollouts), newest first, with annotations hydrated inline. This is a pure read/visual layer — no materialized event table; the only persisted timeline state is user annotations.
Filters combine with AND and gate which sources are included (fail-closed):
- no scope filter → all four sources
instanceIdorarrType→sync+canaryonly (snapshot/rollback carry no arr scope)databaseId→snapshot+rollbackonlysourceintersects the included setstatus,from,to,qapply inside every included branch
Ordering is occurredAt DESC, source ASC, id DESC so same-second cross-source events never
duplicate or skip across page boundaries. Contradictory scope combinations return 400.
Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Restrict to a subset of sources. Comma-separated (form, non-exploded).
Which instance axis an event is scoped to.
Restrict to one scope axis. Rejected with 400 when it contradicts a supplied id.
Arr instance scope — includes sync + canary only.
PCD database scope — includes snapshot + rollback only.
Arr family scope — includes sync + canary only (never inferred for pcd sources).
Normalized, cross-source status used for filtering and badge colour.
ISO-8601 (or date-only) lower bound on the event time.
ISO-8601 (or date-only) upper bound on the event time.
Free-text match on scope label or error text.
Responses
Section titled “Responses”Timeline page
object
A single normalized timeline event with inline annotations.
object
Stable composite key ${source}:${sourceId}.
The event source a timeline event originates from.
ISO-8601 UTC event time (normalized across source dialects).
Source-specific subtype (e.g. the trigger).
Normalized, cross-source status used for filtering and badge colour.
Badge variant used to colour the event row.
Where an event happened. id is null when the Arr instance was deleted; label is retained.
object
Which instance axis an event is scoped to.
Deep-link into the owning feature’s existing detail surface.
A user note attached to a single timeline event.
object
The event source a timeline event originates from.
Per-source event counts over the same filtered/gated set.
object
Example
{ "items": [ { "source": "sync", "status": "success", "badge": "success", "scope": { "kind": "arr-instance", "arrType": "radarr" }, "annotations": [ { "source": "sync" } ] } ]}Invalid query parameter or contradictory scope combination
object
Error message
Examplegenerated
{ "error": "example"}Failed to list timeline
object
Error message
Examplegenerated
{ "error": "example"}