Skip to content

Reference

radarr.added

type: date

When the movie was added to Radarr

radarr.digital_release

type: date

Digital release date. Can be null — older_than matches null dates.

radarr.physical_release

type: date

Physical release date. Can be null — older_than matches null dates.

radarr.size_on_disk

type: number

File size in bytes. 0 when no file exists.

radarr.has_file

type: boolean

Whether a movie file exists on disk

radarr.monitored

type: boolean

Whether the movie is monitored in Radarr

radarr.tags

type: array

Tag names applied in Radarr. Lowercased — use keep, not Keep.

radarr.genres

type: array

Genre strings. Retains original casing from metadata (e.g., Horror).

radarr.status

type: string

Release status: tba, announced, inCinemas, or released

radarr.year

type: number

Release year

radarr.on_import_list

type: boolean

Whether the movie is currently on any import list

radarr.import_list_ids

type: array

IDs of import lists containing this movie. Empty array if not on any list.

sonarr.tags

type: array

Level: Series

Tag names applied in Sonarr. Lowercased.

sonarr.genres

type: array

Level: Series

Genre strings

sonarr.status

type: string

Level: Series

Series status: ended or continuing

sonarr.year

type: number

Level: Series

First air year

sonarr.path

type: string

Level: Series

Filesystem path to the series folder

sonarr.season.monitored

type: boolean

Level: Season

Whether this season is monitored

sonarr.season.season_number

type: number

Level: Season

Season number

sonarr.season.episode_count

type: number

Level: Season

Total episodes in the season

sonarr.season.episode_file_count

type: number

Level: Season

Episodes with files downloaded

sonarr.season.has_file

type: boolean

Level: Season

Whether the season has any episode files

sonarr.season.size_on_disk

type: number

Level: Season

Season file size in bytes

Sonarr evaluates per-season. A series with 5 seasons = 5 items. Season 0 (specials) is always excluded. Tags are lowercased. Genres retain original casing.

jellyfin.watched_by

type: array

Usernames of Jellyfin users who have watched the item

jellyfin.watched_by_all

type: boolean

true if every active Jellyfin user has watched the item

jellyfin.last_played

type: date

Most recent playback timestamp across all users

jellyfin.play_count

type: number

Total play count across all users

jellyseerr.requested_by

type: string

Username of the Jellyseerr user who requested the media

jellyseerr.requested_at

type: date

When the request was created

jellyseerr.request_status

type: string

Request status: pending, approved, declined, or unknown

Jellyseerr data is series-level — all seasons share the same values.

state.days_off_import_list

type: number

Days since the movie left all import lists. Null when still on a list.

state.ever_on_import_list

type: boolean

Whether the movie was ever on any import list

Radarr-only. Computed from evaluation history — requires 2+ runs. Null state values do not cause rules to be skipped.

equals

type: string, number, boolean

Example: value: false

True if field value matches exactly

not_equals

type: string, number, boolean

Example: value: true

True if field value does not match

greater_than

type: number

Example: value: 50000000000

True if field value is greater than the target. Null fields never match.

less_than

type: number

Example: value: 2010

True if field value is less than the target. Null fields never match.

older_than

type: date

Example: value: 6mo

True if the date is further in the past than the duration. Null dates always match.

newer_than

type: date

Example: value: 2w

True if the date is within the duration. Null dates never match.

includes

type: array

Example: value: keep

True if the array contains the value

not_includes

type: array

Example: value: temporary

True if the array does not contain the value. Null arrays never match.

includes_all

type: array

Example: value: [4k, hdr]

True if the array contains every value in the list

is_empty

type: array

True if the array has zero elements. No value required.

is_not_empty

type: array

True if the array has one or more elements. No value required.

older_than and newer_than accept durations: <number><unit>. Case-sensitive.

UnitSuffixExample
Minutesmin45min
Daysd30d
Weeksw2w
Monthsmo6mo
Yearsy1y
Field TypeCompatible Operators
stringequals, not_equals
numberequals, not_equals, greater_than, less_than
booleanequals, not_equals
dateolder_than, newer_than
arrayincludes, not_includes, includes_all, is_empty, is_not_empty
  • older_than always matches null dates — guard with an additional condition if needed:

    # Without guard: matches movies with no digital release date (null = always matches)
    - field: radarr.digital_release
    operator: older_than
    value: 6mo
    # With guard: only matches movies that have a digital release date AND it's old
    conditions:
    operator: AND
    children:
    - field: radarr.has_file
    operator: equals
    value: true
    - field: radarr.digital_release
    operator: older_than
    value: 6mo
  • newer_than never matches null dates

  • greater_than / less_than never match null numbers

  • Array operators never match null arrays

  • Null enrichment data → rules referencing those fields are skipped for that item