Skip to content

Rule Fields

Every field a rule condition can use, generated from the rule engine. See Rule Format for how conditions fit into a rule file.

Fields are grouped by the operators they accept. The Scopes column lists the target_scope values where the field is allowed (all means every scope); import rejects a rule that uses a field outside its scope.

Fields marked install-specific hold IDs or names that differ between Reclaimerr installs. Rules that use them must be edited after import.

Numbers

Operators: equals, exists, greater_than, greater_than_or_equal, less_than, less_than_or_equal, not_equals, not_exists

value is a single number.

Field Label Scopes Value notes
anilist.favourites AniList favourites all whole number >= 0
anilist.popularity AniList popularity all whole number >= 0
anilist.score AniList score all whole number 0-100
arr.days_since_file_added Days since latest Arr file added all days
arr.days_since_first_import Days since first Arr import movie_version, series days
audio.bitrate_kbps Audio bitrate (kbps) movie_version kbps
audio.channels Audio channels movie_version, series, season
audio.track_count Audio track count movie_version
collection.days_since_latest_sibling_watched Days since collection sibling watched movie_version days
disk.free_bytes Disk free all bytes
disk.free_percent Disk free (%) all 0-100
episode.days_since_air_date Days since episode aired episode days
episode.number Episode number episode
episode.position_by_air_date Episode position by air date episode
episode.season_number Episode season number episode
favorites.user_count Favorite/watchlist user count all
imdb.rating IMDb rating all number 0-10
imdb.vote_count IMDb votes all whole number >= 0
letterboxd.score Letterboxd score all whole number 0-100; Letterboxd publishes this as 0-5; Reclaimerr stores it as a percentage
letterboxd.vote_count Letterboxd votes all whole number >= 0
media.days_since_added Days since added all days
media.duration Duration (ms) movie_version milliseconds
media.size Size all bytes
media.year Year all
media_server.user_rating Media server user rating all number 0-10
metacritic.metascore Metacritic metascore all whole number 0-100
metacritic.user_score Metacritic user score all whole number 0-100; Metacritic publishes this as 0-10; Reclaimerr stores it as a percentage
metacritic.user_vote_count Metacritic user votes all whole number >= 0
metacritic.vote_count Metacritic critic count all whole number >= 0
movie.version_count Movie version count movie_version
playback.days_since_last_activity Days since playback activity all days
playback.longest_duration_minutes Longest playback (minutes) all minutes
playback.play_count Playback plays all
playback.total_duration_minutes Playback duration (minutes) all minutes
playback.unique_user_count Playback user count all
playback_history.days_since_last_activity Days since recorded history activity all days
playback_history.days_since_last_completed Days since recorded completed watch all days
playback_history.longest_duration_minutes Longest recorded history playback (minutes) all minutes
playback_history.play_count Recorded history plays all
playback_history.total_duration_minutes Recorded history duration (minutes) all minutes
playback_history.unique_user_count Recorded history user count all
rottentomatoes.popcorn_meter Rotten Tomatoes Popcornmeter all whole number 0-100
rottentomatoes.popcorn_vote_count Rotten Tomatoes Popcornmeter votes all whole number >= 0
rottentomatoes.tomato_meter Rotten Tomatoes Tomatometer all whole number 0-100
rottentomatoes.tomato_vote_count Rotten Tomatoes Tomatometer votes all whole number >= 0
season.days_since_air_date Days since season aired season, episode days
season.episode_count Episode count season, episode
season.position_by_air_date Season position by air date season
season.season_number Season number season, episode
season.seasons_from_latest Seasons from latest season, episode
season.watched_percent Season watched (%) season, episode 0-100
seerr.days_since_last_requested Days since latest active Seerr request all days
series.library_season_count Library season count series, season, episode
series.tmdb_season_count TMDB season count series, season, episode
series.watched_percent Series watched (%) series 0-100
subtitle.track_count Subtitle track count movie_version
tmdb.days_since_first_air_date Days since first aired series, season, episode days
tmdb.days_since_last_air_date Days since last aired series, season, episode days
tmdb.days_since_release Days since released movie_version days
tmdb.popularity TMDB popularity all
tmdb.runtime_minutes TMDB runtime (minutes) movie_version minutes
tmdb.vote_average TMDB rating all number 0-10
tmdb.vote_count TMDB votes all whole number >= 0
trakt.rating Trakt rating all whole number 0-100
trakt.vote_count Trakt votes all whole number >= 0
video.bit_depth Video bit depth movie_version
video.bitrate_kbps Video bitrate (kbps) movie_version kbps
video.height Video height movie_version, series, season
video.width Video width movie_version, series, season
watch.days_since_last_watched Days since watched all days
watch.view_count View count all

Dates

Operators: after, before, exists, not_exists, on_or_after, on_or_before

value is an ISO date string such as "2024-01-31". A value that is not a valid date never matches.

Field Label Scopes Value notes
collection.latest_sibling_watched_at Collection sibling last watched movie_version
episode.air_date Episode air date episode
playback.last_activity_at Last playback activity all
playback_history.last_activity_at Last recorded history activity all
playback_history.last_completed_at Last recorded completed watch all latest explicit completion; episode completion for TV targets
season.air_date Season air date season, episode
seerr.last_requested_at Seerr latest active request all
tmdb.first_air_date TMDB first air date series, season, episode
tmdb.last_air_date TMDB last air date series, season, episode
tmdb.release_date TMDB release date movie_version
watch.last_viewed_at Last watched all

True / false

Operators: exists, is_false, is_true, not_exists

Every operator here is valueless: omit value.

Field Label Scopes Value notes
arr.monitored Arr monitored all
favorites.exists Favorited or watchlisted all
playback.has_activity Playback activity all
playback_history.has_activity Recorded history activity all
playback_history.has_completed_watch Recorded completed watch all explicit provider completion; episode completion for TV targets
season.fully_watched Season fully watched season, episode
season.is_latest_season Is latest season season, episode
seerr.requested Seerr requested all
seerr.requester_has_watched Seerr requester has watched all
seerr.requester_watched_after_request Seerr requester watched after requesting all
series.fully_watched Series fully watched series
sonarr.latest_season_has_finale Latest season has finale series
sonarr.latest_season_has_unaired_episodes Latest season has unaired episodes series
subtitle.has_forced Has forced subtitles movie_version
tmdb.in_collection TMDB in collection movie_version
video.dolby_vision Dolby Vision movie_version, series, season
video.hdr HDR movie_version, series, season
watch.never_watched Never watched all

Text

Operators: contains_all, contains_any, equals, exists, in, not_contains_all, not_contains_any, not_equals, not_exists, not_in

equals / not_equals take one string. The list operators take an array of strings. Comparisons ignore case.

Field Label Scopes Value notes
audio.codec_family Audio codec family movie_version, series, season
audio.languages Audio languages movie_version, season ISO 639 codes, e.g. eng
imdb.id IMDb ID all
media.container Container movie_version
media.title Title all
series.status Series status series, season, episode
sonarr.series_status Sonarr series status series, season, episode
subtitle.languages Subtitle languages movie_version, series, season ISO 639 codes, e.g. eng
tmdb.collection_name TMDB collection name movie_version
tmdb.id TMDB ID all
tmdb.origin_country TMDB origin country all ISO 3166 codes, e.g. US
tmdb.original_language TMDB original language all ISO 639 codes, e.g. en
tvdb.id TVDB ID series, season, episode
video.codec_family Video codec family movie_version, series, season
video.color_primaries Video color primaries movie_version
video.color_space Video color space movie_version
video.color_transfer Video color transfer movie_version
video.resolution Resolution movie_version

Multi-value text

Operators: contains_all, contains_any, exists, not_contains_all, not_contains_any, not_exists

The item can hold several values (for example several genres). value is an array of strings.

Field Label Scopes Value notes
emby.genres Emby genres all
favorites.usernames Favorite/watchlist users all install-specific usernames
jellyfin.genres Jellyfin genres all
media_server.collections Media server collections all
playback.fully_watched_usernames Fully watched by users all install-specific usernames
playback.usernames Playback users all install-specific usernames
playback_history.usernames Recorded history users all install-specific usernames; selected provider only
plex.genres Plex genres all
tmdb.genres TMDB genres all

ID lists

Operators: contains_all, contains_any, exists, in, not_contains_all, not_contains_any, not_exists, not_in

value is an array of strings.

Field Label Scopes Value notes
arr.movie_ids Radarr movie IDs movie_version install-specific Radarr IDs
arr.series_ids Sonarr series IDs series, season, episode install-specific Sonarr IDs
library.id Library all install-specific library IDs
seerr.requested_by_user_ids Seerr requester IDs all "instanceId:userId", install-specific

Paths

Operators: contains_all, contains_any, equals, exists, in, matches_any_regex, not_contains_all, not_contains_any, not_equals, not_exists, not_in

Like Text, plus matches_any_regex with an array of patterns.

Field Label Scopes Value notes
media.file_name Filename all
media.path Path all equals matches a folder prefix

Arr tags

Operators: contains_all, contains_any, contains_substring, equals, exists, in, matches_any_regex, not_contains_all, not_contains_any, not_contains_substring, not_equals, not_exists, not_in, not_matches_any_regex

Like Text, plus substring and regex operators. Substring and regex operators take an array of strings.

Field Label Scopes Value notes
arr.tags Arr tags all

Per-user playback

Operators: equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, not_equals

value is an object: {"usernames": ["alice"], "amount": 30}. At least one username is required; amount is 0 or greater.

Field Label Scopes Value notes
playback.user_watched_duration_minutes Playback duration by user (minutes) all amount is minutes, max 100000
playback.user_watched_percent Playback watched by user (%) movie_version, episode amount is 0-100