Skip to content

Compare one resolved config entity across instances

GET
/pcd/{databaseId}/resolved/{entityType}/{name}/compare
curl --request GET \
--url 'https://example.com/api/v1/pcd/1/resolved/delayProfile/example/compare?instanceIds=example&includeLive=false'

Computes per-instance transformed-desired payloads (and optionally live Arr state) for a single named entity across up to 8 Arr instances, with pairwise diffs against the first compatible instance.

Per-instance failures (unreachable, incompatible arr_type, unsupported entity type) are reported as inline statuses on that instance and never fail the whole request.

databaseId
required
integer

PCD database ID

entityType
required
string
Allowed values: delayProfile regularExpression customFormat qualityProfile naming mediaSettings qualityDefinitions lidarrMetadataProfile

Resolved config entity type

name
required
string

Entity name

instanceIds
required
string

Comma-separated Arr instance IDs to compare (maximum 8)

includeLive
boolean

When true, also fetch live per-instance state. Live fetches are rate-limited per instance.

Cross-instance comparison result

Media typeapplication/json
object
databaseId
required

PCD database ID

integer
entityType
required

Resolved config entity type

string
Allowed values: delayProfile regularExpression customFormat qualityProfile naming mediaSettings qualityDefinitions lidarrMetadataProfile
name
required

Entity name compared across instances

string
instances
required

Per-instance desired (and optionally live) state

Array<object>
object
instanceId
required

Arr instance ID

integer
instanceName
required

Arr instance name

string
arrType
required

Arr instance family, or null when the instance’s own arr_type value is unrecognized (the incompatible error case).

string
nullable
Allowed values: radarr sonarr lidarr
compatible
required

Whether this entity type is supported for the instance’s arr_type

boolean
present
required

Whether the entity is present in this instance’s desired payload

boolean
desired
One of:
object
name
required
string
preferredProtocol
required
string
Allowed values: prefer_usenet prefer_torrent only_usenet only_torrent
usenetDelay
required
integer
torrentDelay
required
integer
bypassIfHighestQuality
required
boolean
bypassIfAboveCfScore
required
boolean
minimumCfScore
required
integer
actual

Raw live Arr state for this instance, only populated when includeLive=true and the live fetch succeeded. Shape is the upstream Arr API payload, not a Portable shape.

object
key
additional properties
any
error

Sanitized reason when this instance’s desired/live lookup failed. Raw error detail never appears here; full detail is logged server-side only. Superset of the single-instance live-diff reason enum: incompatible (unrecognized arr_type), rate-limited (per-instance live fetch throttled), and error (unexpected failure, detail logged not surfaced) are comparison-specific. not_configured means the section has no sync configuration on the instance at all.

string
nullable
Allowed values: unreachable timeout unauthorized invalid_response unsupported not_found not_configured incompatible rate-limited error
diffs
required

Pairwise diffs of each compatible instance’s desired payload against the first compatible instance (the baseline).

Array<object>
object
instanceId
required

Arr instance ID this diff row belongs to

integer
changes
required

Field-level changes relative to the first compatible instance’s desired payload.

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
Example
{
"entityType": "delayProfile",
"instances": [
{
"arrType": "radarr",
"desired": {
"preferredProtocol": "prefer_usenet"
},
"error": "unreachable"
}
],
"diffs": [
{
"changes": [
{
"action": "create",
"fields": [
{
"type": "added"
}
]
}
]
}
]
}

Invalid databaseId/entityType, invalid or unknown instanceIds, instance cap exceeded, or database not ready

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Authentication required

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Database not found, or entity not found

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Comparison requests are being rate-limited

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Failed to compute cross-instance comparison

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}