Skip to content

Preview restoring a PCD snapshot

GET
/pcd/{databaseId}/snapshots/{snapshotId}/rollback/preview
curl --request GET \
--url https://example.com/api/v1/pcd/1/snapshots/1/rollback/preview

Read-only, PCD-to-PCD preview of exactly what restoring this snapshot would change in the PCD desired state (issue #16). Does not contact any Arr instance. The returned currentStateHash is the from-state value-guard required by the execute endpoint.

databaseId
required
integer

PCD database ID

snapshotId
required
integer

PCD snapshot ID

Rollback preview

Media typeapplication/json

Mandatory PCD-to-PCD preview of what restoring a snapshot would change in the PCD desired state. Never contacts an Arr instance. When reconstructable is false the snapshot cannot be safely restored and sections is empty.

object
databaseId
required
integer
snapshotId
required
integer
reconstructable
required

Whether the snapshot verifies against its fingerprint and can be restored

boolean
reason
required

When not reconstructable, why (legacy/no-fingerprint or diverged history)

string
nullable
currentStateHash
required

Live published-op fingerprint at preview time; echo as expectedCurrentStateHash on execute

string
nullable
snapshotStateHash
required

The snapshot’s stored restore-target fingerprint

string
nullable
opsWrittenSince
required
integer
sections
required
Array<object>

A group of entity changes for one resolved-config family. Reuses the sync-preview EntityChange/FieldChange shapes. Diff direction is PCD-to-PCD: each FieldChange.current is the CURRENT PCD desired-state and FieldChange.desired is the SNAPSHOT restore-target state (NOT live Arr state).

object
title
required

Human-readable family label (e.g. “Custom Formats”, “Naming (radarr)”)

string
entityType
required

Namespaced entity type; per-arr families are “${entityType}:${arrType}”

string
arrType
required
string
nullable
Allowed values: radarr sonarr lidarr
changes
required
Array<object>
object
entityType
required

Sync target entity kind (e.g., customFormat, qualityProfile)

string
name
required

Entity display name (namespace-stripped where applicable)

string
action
required
string
Allowed values: create update delete unchanged
remoteId
required

Arr entity ID when present

integer
nullable
fields
required

Field-level diff; empty for unchanged/create where no deltas are tracked

Array<object>
object
field
required

Dot-notated field path

string
type
required
string
Allowed values: added changed removed
current
required
Any of:
string
desired
required
Any of:
string
summary
required
object
totalCreates
required
integer
totalUpdates
required
integer
totalDeletes
required
integer
totalUnchanged
required
integer
Example
{
"sections": [
{
"arrType": "radarr",
"changes": [
{
"action": "create",
"fields": [
{
"type": "added"
}
]
}
]
}
]
}

Invalid parameters

Media typeapplication/json
object
error
required
string
Examplegenerated
{
"error": "example"
}

Snapshot not found or doesn’t belong to database

Media typeapplication/json
object
error
required
string
Examplegenerated
{
"error": "example"
}

Failed to generate rollback preview

Media typeapplication/json
object
error
required
string
Examplegenerated
{
"error": "example"
}