Preview incoming upstream PCD changes
const url = 'https://example.com/api/v1/pcd/1/incoming/preview';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/pcd/1/incoming/previewRead-only preview of what pulling the upstream branch would change per entity, and which
published local user ops would conflict (or be auto-aligned) under the database’s
conflict strategy. Fetches only the remote-tracking ref origin/<branch>; never changes
pcd_ops, pcd_op_history, the clone’s HEAD, or its working tree. Does not contact any Arr
instance. Local-path sources return available=false. Fails closed: no partial preview.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”PCD database ID
Responses
Section titled “Responses”Incoming preview
Read-only preview of what pulling the upstream changes would do to the PCD, per entity, with the predicted fate of local user ops. Never modifies pcd_ops, pcd_op_history, the clone’s HEAD, or its working tree. sections diff the current base state against the incoming base state (user ops excluded); predictedConflicts come from a dry replay of published user ops over the incoming state.
object
False when the database source cannot be previewed (for example a local-path source)
Local_source when available is false, otherwise null
Local commits not on the remote branch; when above zero the pull may not fast-forward
One upstream commit that a pull would bring in
object
Per-database strategy applied to conflicting local user ops when upstream changes are pulled
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
Human-readable family label (e.g. “Custom Formats”, “Naming (radarr)”)
Namespaced entity type; per-arr families are “${entityType}:${arrType}”
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
True only for deletes of entities Praxrr created (ownership ledger); only these execute on reviewed apply.
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
Predicted fate of one published local user op when replayed over the incoming base. Predictions match the conflicts the pull’s cache build records in the op history (not the later automatic override resolution).
object
Entity type from the op metadata, when recorded
Entity name from the op metadata, when recorded
Conflict = the op will be recorded as conflicted; aligned = the op is redundant upstream and will be dropped
Guard_mismatch, duplicate_key, missing_target, or aligned
Value-guard decision, for example rowcount_zero_conflict
Per-database strategy applied to conflicting local user ops when upstream changes are pulled
True only when the pull’s automatic override will resolve this conflict itself: strategy override, predictedStatus conflicted, an enabled database, and an override handler for the op (delete ops, or an entity type with an override handler). False for aligned entries and for conflicts that need a user decision.
A published local user op that would fail with a non-conflict error against the incoming base
object
Published-op fingerprint at preview time
Example
{ "unavailableReason": "local_source", "conflictStrategy": "override", "sections": [ { "arrType": "radarr", "changes": [ { "action": "create", "fields": [ { "type": "added" } ] } ] } ], "predictedConflicts": [ { "operation": "create", "kind": "conflict", "predictedStatus": "conflicted", "strategy": "override" } ]}Invalid parameters
object
Optional machine-readable error code, for example sync_in_progress or preview_stale
Examplegenerated
{ "error": "example", "code": "example"}Database not found
object
Optional machine-readable error code, for example sync_in_progress or preview_stale
Examplegenerated
{ "error": "example", "code": "example"}A sync is running (code sync_in_progress) or local state changed while building the preview (code preview_stale)
object
Optional machine-readable error code, for example sync_in_progress or preview_stale
Examplegenerated
{ "error": "example", "code": "example"}Failed to generate the incoming preview
object
Optional machine-readable error code, for example sync_in_progress or preview_stale
Examplegenerated
{ "error": "example", "code": "example"}Upstream fetch or extraction failed (code fetch_failed or incoming_unavailable)
object
Optional machine-readable error code, for example sync_in_progress or preview_stale
Examplegenerated
{ "error": "example", "code": "example"}