Skip to content

Apply a sync preview

POST
/sync/preview/{previewId}/apply
curl --request POST \
--url https://example.com/api/v1/sync/preview/example/apply \
--header 'Content-Type: application/json' \
--data '{ "sections": [ "qualityProfiles" ] }'

Applies a previously generated preview to the target Arr instance.

Preview generation itself is read-only, but this operation runs the normal sync execution path for the selected sections.

Apply rejects previews that are too stale based on policy:

  • warnings are returned when the preview is older than 5 minutes
  • apply is blocked when staleness exceeds the hard threshold
previewId
required
string

Preview snapshot ID

Media typeapplication/json
object
sections

Optional section filters for preview application

Array<string>
Allowed values: qualityProfiles delayProfiles mediaManagement metadataProfiles

Preview applied

Media typeapplication/json
object
id
required

Preview identifier

string
instanceId
required

Target Arr instance ID

integer
instanceName
required

Target Arr instance name

string
arrType
required

Arr instance family

string
Allowed values: radarr sonarr lidarr
createdAt
required

ISO 8601 timestamp when preview was generated

string format: date-time
expiresAt
required

ISO 8601 timestamp when preview becomes expired

string format: date-time
status
required

Preview lifecycle state:

  • generating: build in progress
  • ready: preview fully materialized and runnable
  • applying: preview is being executed as sync
  • applied: execution succeeded
  • failed: generation or execution failed
  • expired: staleness TTL elapsed
string
Allowed values: generating ready applying applied failed expired
error

Optional error message from generation or apply

string
sections
required

Sections included in preview

Array<string>
Allowed values: qualityProfiles delayProfiles mediaManagement metadataProfiles
sectionOutcomes
required

Per-section preview generation status used to enforce safe apply behavior.

Array<object>
object
section
required

Sync section handled by preview generation

string
Allowed values: qualityProfiles delayProfiles mediaManagement metadataProfiles
skipped
required

True when the section had no config to preview and was skipped.

boolean
error
required
One of:
string
qualityProfiles
required
One of:
object
section
required
string
Allowed values: qualityProfiles
customFormats
required

Custom-format change set

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
qualityProfiles
required

Quality-profile change set

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
delayProfiles
required
One of:
object
section
required
string
Allowed values: delayProfiles
profile
required
One of:
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
mediaManagement
required
One of:
object
section
required
string
Allowed values: mediaManagement
naming
required
One of:
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
qualityDefinitions
required

Quality definition change set

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
mediaSettings
required
One of:
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
metadataProfiles
required
One of:
object
section
required
string
Allowed values: metadataProfiles
profile
required
One of:
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

Number of create actions

integer
totalUpdates
required

Number of update actions

integer
totalDeletes
required

Number of delete actions

integer
totalUnchanged
required

Number of unchanged entities

integer
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 request body

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Preview not found or expired

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Preview is not in a ready state, contains failed sections, or instance is syncing

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Preview is stale beyond apply threshold

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}

Failed to apply preview

Media typeapplication/json
object
error
required

Error message

string
Examplegenerated
{
"error": "example"
}