Generate a sync preview
const url = 'https://example.com/api/v1/sync/preview';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"instanceId":1,"sections":["qualityProfiles"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/sync/preview \ --header 'Content-Type: application/json' \ --data '{ "instanceId": 1, "sections": [ "qualityProfiles" ] }'Computes a read-only preview of the sync changes for an Arr instance.
This endpoint performs no writes. It only reads from PCD and Arr GET endpoints to compare desired versus current state, then stores a preview snapshot for later retrieval or application.
If no sections are provided, all configured sections for the instance are
included.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Arr instance ID to preview
Optional section filters for preview generation
Responses
Section titled “Responses”Preview generated
object
Preview identifier
Target Arr instance ID
Target Arr instance name
Arr instance family
ISO 8601 timestamp when preview was generated
ISO 8601 timestamp when preview becomes expired
Preview lifecycle state:
generating: build in progressready: preview fully materialized and runnableapplying: preview is being executed as syncapplied: execution succeededfailed: generation or execution failedexpired: staleness TTL elapsed
Optional error message from generation or apply
Sections included in preview
object
Custom-format change set
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
Quality-profile change set
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
Quality definition change set
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
object
Sync target entity kind (e.g., customFormat, qualityProfile)
Entity display name (namespace-stripped where applicable)
Arr entity ID when present
Field-level diff; empty for unchanged/create where no deltas are tracked
object
Dot-notated field path
object
Number of create actions
Number of update actions
Number of delete actions
Number of unchanged entities
Example
{ "arrType": "radarr", "status": "generating", "sections": [ "qualityProfiles" ], "sectionOutcomes": [ { "section": "qualityProfiles" } ], "qualityProfiles": { "section": "qualityProfiles", "customFormats": [ { "action": "create", "fields": [ { "type": "added" } ] } ], "qualityProfiles": [ { "action": "create", "fields": [ { "type": "added" } ] } ] }, "delayProfiles": { "section": "delayProfiles", "profile": { "action": "create", "fields": [ { "type": "added" } ] } }, "mediaManagement": { "section": "mediaManagement", "naming": { "action": "create", "fields": [ { "type": "added" } ] }, "qualityDefinitions": [ { "action": "create", "fields": [ { "type": "added" } ] } ], "mediaSettings": { "action": "create", "fields": [ { "type": "added" } ] } }, "metadataProfiles": { "section": "metadataProfiles", "profile": { "action": "create", "fields": [ { "type": "added" } ] } }}Invalid instanceId, unsupported section, or request body
object
Error message
Examplegenerated
{ "error": "example"}Instance not found
object
Error message
Examplegenerated
{ "error": "example"}Preview for this instance is already generating
object
Error message
Examplegenerated
{ "error": "example"}Preview creation is rate-limited or preview-store capacity is exhausted
object
Error message
Examplegenerated
{ "error": "example"}Failed to generate preview
object
Error message
Examplegenerated
{ "error": "example"}