For other applications

Your other tools can ask Routarr.

A script, n8n, Home Assistant or a dashboard can ask where a title would go, force its category, run a simulation and apply it, or read the state, each with a key that does only what you allowed.

  1. 01

    X-Api-Key: rtr_…

    Make a key on the Applications screen, one per tool. Every key reads, and a scope that changes something, such as operate to apply or write to pin a title, is granted only where needed: the reference below names the one each operation takes. Routarr shows the key once, and Authorization: Bearer carries it too.

  2. 02

    GET /api/v1/route

    Ask where a title would go. Routarr looks it up in the Arr, runs it through your rules and moves nothing. Here jq keeps what a script needs from the answer.

  3. 03

    GET /api/v1/openapi.json

    Every operation and the scope it needs are on the API reference screen of your Routarr, which serves the OpenAPI contract at this path, for the version it runs.

route.sh
curl -fsS -H "X-Api-Key: $ROUTARR_KEY" \
  "http://localhost:9876/api/v1/route?type=movie&tmdb=149" \
  | jq '.answers[0]
      | {category, folder: .root_folder.path, action, rule}'
answer.json
{
  "category": "anime",
  "folder": "/movies/anime",
  "action": "move",
  "rule": "Japanese animation"
}

Nothing documented under /api/v1 is removed, renamed or retyped. New operations and fields may come with any release.

Reference

What an application can ask.

The operations of Routarr 0.2.0, the release this page names, grouped by what they touch. Open one for what it takes and what it answers. The word on the right is the scope a key needs. A type name leads to its entry among the types listed last.

Status

Whether Routarr is up, and what needs attention.

GET/api/v1/auth/meWho the key belongs to, scope: read

Takes nothing.

Answer 200Me

subject
string
GET/api/v1/healthReach every Arr and source, and report, scope: operate

Parameters

probe
boolean · in the query
fresh
boolean · in the query

Answer 200HealthResponse

database
string
instances
InstanceHealth[]
metadata
MetadataHealth
stats
AppStats
status
string
version
string
warnings
Warning[]
GET/api/v1/metadata/providersThe metadata sources, and what each can answer, scope: read

Takes nothing.

Answer 200ProvidersResponse

order
string[]
providers
ProviderDescription[]
GET/api/v1/metricsPrometheus metrics, scope: read

Takes nothing.

Answer 200

GET/api/v1/pingWhether Routarr is up, scope: no key

Takes nothing.

Answer 200Pong

status
string
GET/api/v1/statusWhat needs attention, scope: read

Takes nothing.

Answer 200StatusResponse

dry_run
boolean
failed_decisions
integer
pending_decisions
integer
running_jobs
integer
version
string
warnings
Warning[]

Library

The titles Routarr read from the Arrs, and where each one goes.

GET/api/v1/mediaThe library, a page at a time, scope: read

Parameters

instance_id
string · in the query
media_type
string · in the query
category
string · in the query
search
string · in the query
tmdb_id
integer · in the query
tvdb_id
integer · in the query
imdb_id
string · in the query
unmatched
boolean · in the query
page
integer · in the query
per_page
integer · in the query

Answer 200Page_MediaListItem

data
MediaListItem[]
pagination
Pagination
GET/api/v1/media/facetsThe values the library holds, for each condition, scope: read

Takes nothing.

Answer 200LibraryFacets

certifications
Facet[]
genres
Facet[]
origin_countries
Facet[]
original_languages
Facet[]
root_folders
Facet[]
series_types
Facet[]
statuses
Facet[]
tags
Facet[]
total_media
integer
vocabularies
Vocabularies
without_metadata
integer
GET/api/v1/media/{id}One title, scope: read

Parameters

id
string · in the path · required

Answer 200MediaDetail

instance_name
string?
media
MediaView
metadata
MediaMetadata?
override
PinnedCategory?
GET/api/v1/media/{id}/explainWhere a title goes, and why, scope: read

Parameters

id
string · in the path · required

Answer 200Explanation

action
string
confidence
number
instance_enabled
boolean
media
MediaView
metadata
MediaMetadata?
override_category
string?
rule_traces
RuleTrace[]
rules_category
string
target_category
string
target_root_folder
string?
winning_rule
string?
GET/api/v1/routeWhere a title another service names would go, scope: read

Parameters

type
string · in the query · required
tmdb
integer · in the query
tvdb
integer · in the query
imdb
string · in the query
instance
string · in the query
tags
string · in the query
series_type
string · in the query
monitored
boolean · in the query
enrich
boolean · in the query

Answer 200Placement

answers
PlacementAnswer[]
errors
InstanceFailure[]

Decisions

Simulating the rules over the library, and applying or reverting the moves they decide.

GET/api/v1/decisionsThe decisions, a page at a time, scope: read

Parameters

instance_id
string · in the query
media_type
string · in the query
status
string · in the query
category
string · in the query
action
string · in the query
simulation_id
string · in the query
search
string · in the query
include_superseded
boolean · in the query
page
integer · in the query
per_page
integer · in the query

Answer 200Page_Decision

data
Decision[]
pagination
Pagination
POST/api/v1/decisions/applyApply chosen decisions, scope: operate

Parameters

Prefer
string? · header

Body

confirm
Confirmed
decision_ids
string[] · required
move_files
boolean

Answer 200ApplyReport

applied
integer
errors
ApplyError[]
failed
integer
moving
integer
requested
integer
skipped
integer
stopped
StopReason?
superseded
integer
POST/api/v1/decisions/apply-allApply everything a simulation proposed, scope: operate

Parameters

Prefer
string? · header

Body

confirm
Confirmed
move_files
boolean
simulation_id
string · required

Answer 200BatchApplyReport

applied
integer
batches_planned
integer
batches_run
integer
candidates
integer
errors
ApplyError[]
failed
integer
moving
integer
skipped
integer
stopped
StopReason?
stopped_early
boolean
superseded
integer
POST/api/v1/decisions/revertMove titles back, scope: operate

Parameters

Prefer
string? · header

Body

confirm
Confirmed
decision_ids
string[] · required
move_files
boolean

Answer 200ApplyReport

applied
integer
errors
ApplyError[]
failed
integer
moving
integer
requested
integer
skipped
integer
stopped
StopReason?
superseded
integer
POST/api/v1/simulateRun the rules over the library, scope: operate

Parameters

Prefer
string? · header

Body

instance_ids
string[]?
max_returned
integer?
media_type
string?
persist
boolean
persist_unchanged
boolean

Answer 200SimulationResult

already_correct
integer
capacity
CapacityForecast[]
decisions
Decision[]
elapsed_ms
integer
excluded_by_rule
integer
moves_required
integer
no_category_match
integer
overrides_applied
integer
returned
integer
simulation_id
string
skipped_unmapped
integer
total_media
integer

Exceptions

Titles whose category is forced by hand, which outrank every rule.

GET/api/v1/overridesThe exceptions, scope: read

Parameters

page
integer · in the query
per_page
integer · in the query

Answer 200Page_OverrideWithMedia

data
OverrideWithMedia[]
pagination
Pagination
POST/api/v1/overridesForce a title's category, scope: write

Body

media_id
string · required
reason
string?
target_category
string · required

Answer 201OverrideEntry

created_at
string
id
string
media_id
string
reason
string?
subject
string?
target_category
string
DELETE/api/v1/overrides/externalRemove a title's exception by the id another service gives it, scope: write

Parameters

type
string · in the query · required
tmdb
integer · in the query
tvdb
integer · in the query
imdb
string · in the query
instance
string · in the query

Answer 200Deleted

deleted
boolean
PUT/api/v1/overrides/externalForce a title's category by the id another service gives it, scope: write

Parameters

type
string · in the query · required
tmdb
integer · in the query
tvdb
integer · in the query
imdb
string · in the query
instance
string · in the query

Body

reason
string?
target_category
string · required

Answer 200OverrideEntry[]

created_at
string
id
string
media_id
string
reason
string?
subject
string?
target_category
string
DELETE/api/v1/overrides/{id}Remove an exception, scope: write

Parameters

id
string · in the path · required

Answer 200Deleted

deleted
boolean

Tasks

What ran in the background, and how it ended.

GET/api/v1/jobsThe tasks, newest first, scope: read

Parameters

status
string · in the query
kind
string · in the query
page
integer · in the query
per_page
integer · in the query
include
string · in the query

Answer 200Page_Job

data
Job[]
pagination
Pagination
GET/api/v1/jobs/{id}One task, scope: read

Parameters

id
string · in the path · required

Answer 200Job

detail
string?
error
string?
error_message
string?
finished_at
string?
id
string
instance_id
string?
kind
string
progress_current
integer
progress_total
integer
result
object
started_at
string
status
string
subject
string?
trigger
string
GET/api/v1/logsWhat every move did, a page at a time, scope: read

Parameters

instance_id
string · in the query
media_id
string · in the query
action
string · in the query
success
boolean · in the query
search
string · in the query
page
integer · in the query
per_page
integer · in the query

Answer 200Page_LogEntry

data
LogEntry[]
pagination
Pagination
GET/api/v1/logs/exportThe same log as a CSV file, scope: read

Parameters

instance_id
string · in the query
media_id
string · in the query
action
string · in the query
success
boolean · in the query
search
string · in the query

Answer 200

Instances

The Arrs Routarr reads, and reading them again.

GET/api/v1/instancesThe Arrs Routarr reads, scope: read

Takes nothing.

Answer 200InstanceResponse[]

api_key_encrypted
boolean
api_key_masked
string
api_key_set
boolean
base_url
string
created_at
string
enabled
boolean
id
string
instance_type
string
last_sync_at
string?
last_sync_attempt_at
string?
last_sync_status
string?
name
string
sync_interval_minutes
integer
updated_at
string
webhook_path
string?
webhook_token
string?
webhook_url
string?
POST/api/v1/instances/syncRead every enabled Arr again, scope: operate

Parameters

Prefer
string? · header

Answer 200SyncReport[]

error
string?
instance_id
string
instance_name
string
media
integer
removed
integer
root_folders
integer
GET/api/v1/instances/{id}One Arr, scope: read

Parameters

id
string · in the path · required

Answer 200InstanceResponse

api_key_encrypted
boolean
api_key_masked
string
api_key_set
boolean
base_url
string
created_at
string
enabled
boolean
id
string
instance_type
string
last_sync_at
string?
last_sync_attempt_at
string?
last_sync_status
string?
name
string
sync_interval_minutes
integer
updated_at
string
webhook_path
string?
webhook_token
string?
webhook_url
string?
POST/api/v1/instances/{id}/syncRead one Arr again, scope: operate

Parameters

id
string · in the path · required
Prefer
string? · header

Answer 200SyncReport

error
string?
instance_id
string
instance_name
string
media
integer
removed
integer
root_folders
integer

Rules

The rules in priority order, the conditions they may use, and the tests that pin what they decide.

GET/api/v1/rule-testsThe rule tests, scope: read

Parameters

page
integer · in the query
per_page
integer · in the query

Answer 200Page_RuleTest

data
RuleTest[]
pagination
Pagination
POST/api/v1/rule-testsPin what the rules decide for a title as a test, scope: configure

Body

expected_category
string?
media_id
string · required
name
string · required

Answer 201RuleTest

created_at
string
evaluated_at
string
expected_category
string
id
string
media_type
string
name
string
source_media_title
string?
POST/api/v1/rule-tests/runRun every rule test against the rules as they are, scope: operate

Takes nothing.

Answer 200RuleTestRun

failed
integer
passed
integer
results
RuleTestResult[]
total
integer
DELETE/api/v1/rule-tests/{id}Remove a rule test, scope: configure

Parameters

id
string · in the path · required

Answer 200Deleted

deleted
boolean
GET/api/v1/rulesThe rules, in priority order, scope: read

Takes nothing.

Answer 200Rule[]

conditions
Condition[]
created_at
string
description
string?
enabled
boolean
exclusions
Condition[]
id
string
instance_ids
string[]?
match_mode
MatchMode
media_type
string
name
string
priority
integer
target_category
string
updated_at
string
POST/api/v1/rulesCreate a rule, scope: configure

Body

conditions
Condition[] · required
description
string?
enabled
boolean
exclusions
Condition[]
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer?
target_category
string · required

Answer 201Rule

conditions
Condition[]
created_at
string
description
string?
enabled
boolean
exclusions
Condition[]
id
string
instance_ids
string[]?
match_mode
MatchMode
media_type
string
name
string
priority
integer
target_category
string
updated_at
string
GET/api/v1/rules/conditionsThe conditions a rule may use, scope: read

Takes nothing.

Answer 200ConditionCatalog

conditions
ConditionSpec[]
match_modes
string[]
GET/api/v1/rules/exportThe rules as a bundle, scope: read

Takes nothing.

Answer 200RuleBundle

categories
string[]
exported_at
string?
rules
BundledRule[]
version
integer
GET/api/v1/rules/healthWhat each rule decides, scope: read

Takes nothing.

Answer 200RuleHealthReport

rules
RuleHealth[]
total_media
integer
POST/api/v1/rules/importImport a bundle of rules, scope: configure

Body

bundle
RuleBundle · required
create_missing_categories
boolean
replace
boolean

Answer 200RuleImportReport

adjusted
string[]
imported
integer
replaced
boolean
skipped
string[]
POST/api/v1/rules/previewWhat a draft rule would move, storing nothing, scope: configure

Body

instance_ids
string[]?
rule
CreateRuleRequest · required
rule_id
string?
sample_size
integer

Answer 200PreviewResponse

after
PreviewSummary
before
PreviewSummary
changed
PreviewChange[]
changed_total
integer
issues
ValidationIssue[]
POST/api/v1/rules/reorderPut the rules in a new order, scope: configure

Body

rule_ids
string[] · required

Answer 200Reordered

reordered
integer
POST/api/v1/rules/validateJudge a draft rule, storing nothing, scope: configure

Body

conditions
Condition[] · required
description
string?
enabled
boolean
exclusions
Condition[]
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer?
target_category
string · required

Answer 200RuleVerdict

issues
ValidationIssue[]
valid
boolean
DELETE/api/v1/rules/{id}Remove a rule, scope: configure

Parameters

id
string · in the path · required

Answer 200Deleted

deleted
boolean
GET/api/v1/rules/{id}One rule, scope: read

Parameters

id
string · in the path · required

Answer 200Rule

conditions
Condition[]
created_at
string
description
string?
enabled
boolean
exclusions
Condition[]
id
string
instance_ids
string[]?
match_mode
MatchMode
media_type
string
name
string
priority
integer
target_category
string
updated_at
string
PUT/api/v1/rules/{id}Replace a rule, scope: configure

Parameters

id
string · in the path · required

Body

conditions
Condition[] · required
description
string?
enabled
boolean
exclusions
Condition[]
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer?
target_category
string · required

Answer 200Rule

conditions
Condition[]
created_at
string
description
string?
enabled
boolean
exclusions
Condition[]
id
string
instance_ids
string[]?
match_mode
MatchMode
media_type
string
name
string
priority
integer
target_category
string
updated_at
string
POST/api/v1/rules/{id}/duplicateCopy a rule, disabled, scope: configure

Parameters

id
string · in the path · required

Answer 201Rule

conditions
Condition[]
created_at
string
description
string?
enabled
boolean
exclusions
Condition[]
id
string
instance_ids
string[]?
match_mode
MatchMode
media_type
string
name
string
priority
integer
target_category
string
updated_at
string

Categories and folders

The categories, and the root folders that lead to each.

GET/api/v1/categoriesThe categories, with what uses each, scope: read

Takes nothing.

Answer 200CategoryWithUsage[]

created_at
string
description
string?
display_order
integer
id
string
is_default
boolean
name
string
root_folder_count
integer
rule_count
integer
POST/api/v1/categoriesCreate a category, scope: configure

Body

description
string?
display_order
integer
is_default
boolean
name
string · required

Answer 201Category

created_at
string
description
string?
display_order
integer
id
string
is_default
boolean
name
string
DELETE/api/v1/categories/{id}Remove a category, scope: configure

Parameters

id
string · in the path · required

Answer 200Deleted

deleted
boolean
PUT/api/v1/categories/{id}Rename a category, scope: configure

Parameters

id
string · in the path · required

Body

name
string · required

Answer 200Category

created_at
string
description
string?
display_order
integer
id
string
is_default
boolean
name
string
GET/api/v1/root-foldersThe root folders, and the category each leads to, scope: read

Takes nothing.

Answer 200RootFolderWithInstance[]

accessible
boolean
arr_id
integer?
category
string?
free_space
integer?
id
string
instance_id
string
last_accessible_at
string?
last_synced_at
string?
origin
string
path
string
instance_name
string
instance_type
string
POST/api/v1/root-foldersDeclare a destination the Arr does not list, scope: configure

Body

instance_id
string · required
path
string · required

Answer 201Declared

id
string
path
string
verified
boolean
GET/api/v1/root-folders/conflictsWhat the mappings leave unsaid, scope: read

Takes nothing.

Answer 200MappingConflict[]

category
string?
instance_name
string?
kind
string
message
string
severity
string
DELETE/api/v1/root-folders/{id}Remove a declared destination, scope: configure

Parameters

id
string · in the path · required

Answer 200Deleted

deleted
boolean
PUT/api/v1/root-folders/{id}/categoryLead a folder to a category, or to none, scope: configure

Parameters

id
string · in the path · required

Body

category
string? · required

Answer 200Mapped

category
string?
updated
boolean

Backups

The backups Routarr keeps, and taking one now.

GET/api/v1/backupsThe backups kept, scope: read

Takes nothing.

Answer 200BackupListResponse

backups
BackupFile[]
retention_count
integer
POST/api/v1/backupsTake a backup now, scope: operate

Parameters

Prefer
string? · header

Answer 200BackupFile

created_at
string
encrypted
boolean
name
string
size_bytes
integer

Types

Every shape the operations above take or answer. A type name opens its entry here.

AlternativeDecision
category
string · required
confidence
number
excluded_by
string?
reason
string · required
rule_name
string · required
ApplyAllRequest
confirm
Confirmed
move_files
boolean
simulation_id
string · required
ApplyDecisionsRequest
confirm
Confirmed
decision_ids
string[] · required
move_files
boolean
ApplyError
decision_id
string · required
media_title
string · required
message
string · required
ApplyReport
applied
integer · required
errors
ApplyError[] · required
failed
integer · required
moving
integer · required
requested
integer · required
skipped
integer · required
stopped
StopReason?
superseded
integer · required
AppStats
applied_decisions
integer · required
enabled_rules
integer · required
failed_decisions
integer · required
pending_decisions
integer · required
running_jobs
integer · required
total_instances
integer · required
total_media
integer · required
total_movies
integer · required
total_overrides
integer · required
total_rules
integer · required
total_series
integer · required
unmapped_categories
integer · required
BackupFile
created_at
string · required
encrypted
boolean · required
name
string · required
size_bytes
integer · required
BackupListResponse
backups
BackupFile[] · required
retention_count
integer · required
BatchApplyReport
applied
integer · required
batches_planned
integer · required
batches_run
integer · required
candidates
integer · required
errors
ApplyError[] · required
failed
integer · required
moving
integer · required
skipped
integer · required
stopped
StopReason?
stopped_early
boolean · required
superseded
integer · required
BundledRule
conditions
Condition[] · required
description
string?
enabled
boolean
exclusions
Condition[]
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer?
target_category
string · required
instance_names
string[]?
CapacityForecast
fits
boolean · required
free_bytes
integer · required
incoming_bytes
integer · required
instance_id
string · required
instance_name
string?
items
integer · required
path
string · required
same_filesystem_bytes
integer · required
Category
created_at
string · required
description
string?
display_order
integer · required
id
string · required
is_default
boolean · required
name
string · required
CategoryWithUsage
created_at
string · required
description
string?
display_order
integer · required
id
string · required
is_default
boolean · required
name
string · required
root_folder_count
integer · required
rule_count
integer · required
Condition

One of these shapes, told apart by type

genre_contains
value string[]
genre_contains_all
value string[]
genre_not_contains
value string[]
keyword_contains
value string[]
keyword_contains_all
value string[]
keyword_not_contains
value string[]
original_language
value string[]
original_language_not
value string[]
origin_country
value string[]
origin_country_all
value string[]
year_range
value object
tag_in
value string[]
tag_in_all
value string[]
series_type_is
value string[]
size_on_disk_over_gb
value integer
season_count_over
value integer
certification_in
value string[]
status_is
value string[]
current_root_folder
value string
current_root_folder_starts_with
value string
has_files
value boolean
title_contains
value string[]
tmdb_id_in
value integer[]
tvdb_id_in
value integer[]
imdb_id_in
value string[]
added_within_days
value integer
monitored
value boolean
has_metadata
value boolean
ConditionCatalog
conditions
ConditionSpec[] · required
match_modes
string[] · required
ConditionOutcome
expected
string
key
string · required
kind
string · required
matched
boolean · required
observed
string · required
params
object · required
source
string?
ConditionSpec
available
boolean · required
counterpart
string · required
label
string · required
label_key
string · required
media_types
string[] · required
metadata_field
string?
needs_metadata
boolean · required
quantifier
string · required
suggestions
string · required
type
string · required
value_type
string · required
Confirmed

A list of string

CreateCategoryRequest
description
string?
display_order
integer
is_default
boolean
name
string · required
CreateOverrideRequest
media_id
string · required
reason
string?
target_category
string · required
CreateRuleRequest
conditions
Condition[] · required
description
string?
enabled
boolean
exclusions
Condition[]
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer?
target_category
string · required
Decision
action
string · required
actor
string?
alternatives
AlternativeDecision[] · required
applied_at
string?
confidence
number
current_root_folder
string?
decided_at
string · required
error_message
string?
id
string · required
instance_id
string · required
instance_name
string?
is_override
boolean · required
matched_rule_id
string?
matched_rule_name
string?
media_id
string · required
media_title
string · required
media_type
string · required
reason_lines
ReasonLine[] · required
reasons
string[] · required
reverted_at
string?
revertible
boolean
simulation_id
string?
status
string · required
subject
string?
superseded
boolean
target_category
string · required
target_root_folder
string?
Declared
id
string · required
path
string · required
verified
boolean · required
DeclareRootFolder
instance_id
string · required
path
string · required
Deleted
deleted
boolean · required
Explanation
action
string · required
confidence
number · required
instance_enabled
boolean · required
media
MediaView · required
metadata
MediaMetadata?
override_category
string?
rule_traces
RuleTrace[] · required
rules_category
string · required
target_category
string · required
target_root_folder
string?
winning_rule
string?
Facet
count
integer · required
group
string?
label
string?
value
string · required
HealthResponse
database
string · required
instances
InstanceHealth[] · required
metadata
MetadataHealth · required
stats
AppStats · required
status
string · required
version
string · required
warnings
Warning[] · required
ImportRulesRequest
bundle
RuleBundle · required
create_missing_categories
boolean
replace
boolean
InstanceFailure
error
string · required
instance_id
string · required
instance_name
string · required
InstanceHealth
detail
string?
id
string · required
instance_type
string · required
last_sync
string?
last_sync_status
string?
mapped_root_folders
integer · required
media_count
integer · required
name
string · required
status
string · required
version
string?
InstanceResponse
api_key_encrypted
boolean · required
api_key_masked
string · required
api_key_set
boolean · required
base_url
string · required
created_at
string · required
enabled
boolean · required
id
string · required
instance_type
string · required
last_sync_at
string?
last_sync_attempt_at
string?
last_sync_status
string?
name
string · required
sync_interval_minutes
integer · required
updated_at
string · required
webhook_path
string?
webhook_token
string?
webhook_url
string?
Job
detail
string?
error
string?
error_message
string?
finished_at
string?
id
string · required
instance_id
string?
kind
string · required
progress_current
integer · required
progress_total
integer · required
result
object
started_at
string · required
status
string · required
subject
string?
trigger
string · required
LibraryFacets
certifications
Facet[] · required
genres
Facet[] · required
origin_countries
Facet[] · required
original_languages
Facet[] · required
root_folders
Facet[] · required
series_types
Facet[] · required
statuses
Facet[] · required
tags
Facet[] · required
total_media
integer · required
vocabularies
Vocabularies · required
without_metadata
integer · required
LogEntry
action
string · required
actor
string?
decision_id
string?
details
string?
error_message
string?
executed_at
string · required
id
string · required
instance_id
string?
media_id
string?
media_title
string?
subject
string?
success
boolean · required
Mapped
category
string?
updated
boolean · required
MappingConflict
category
string?
instance_name
string?
kind
string · required
message
string · required
severity
string · required
MatchMode

One of these values

  • all
  • any
Me
subject
string · required
Media
added_at
string?
arr_id
integer · required
certification
string?
current_path
string?
current_root_folder
string?
genres
string?
has_files
boolean · required
id
string · required
imdb_id
string?
instance_id
string · required
last_synced_at
string?
media_type
string · required
monitored
boolean · required
original_language
string?
season_count
integer?
series_type
string?
size_on_disk
integer?
sort_title
string?
status
string?
tags
string?
title
string · required
tmdb_id
integer?
tvdb_id
integer?
year
integer?
MediaDetail
instance_name
string?
media
MediaView · required
metadata
MediaMetadata?
override
PinnedCategory?
MediaListItem
arr_id
integer · required
computed_category
string?
current_root_folder
string?
has_files
boolean · required
has_metadata
boolean · required
id
string · required
imdb_id
string?
instance_id
string · required
instance_name
string · required
last_synced_at
string?
media_type
string · required
monitored
boolean · required
override_category
string?
status
string?
title
string · required
tmdb_id
integer?
tvdb_id
integer?
year
integer?
MediaMetadata
certification
string?
certification_scale
string?
field_sources
object
genres
string[]
keywords
string[]
origin_countries
string[]
original_language
string?
overview
string?
poster_path
string?
sources
string[]
status
string?
MediaView
added_at
string?
arr_id
integer · required
certification
string?
current_path
string?
current_root_folder
string?
genres
string?
has_files
boolean · required
id
string · required
imdb_id
string?
instance_id
string · required
last_synced_at
string?
media_type
string · required
monitored
boolean · required
original_language
string?
season_count
integer?
series_type
string?
size_on_disk
integer?
sort_title
string?
status
string?
tags
string?
title
string · required
tmdb_id
integer?
tvdb_id
integer?
year
integer?
genre_list
string[] · required
tag_list
string[] · required
MetadataHealth
cached_items
integer · required
media_missing_metadata
integer · required
providers
MetadataProviderHealth[] · required
MetadataProviderHealth
configured
boolean · required
connected
boolean?
display_name
string · required
id
string · required
needs_key
boolean · required
reason
string?
NewRuleTest
expected_category
string?
media_id
string · required
name
string · required
OverrideEntry
created_at
string · required
id
string · required
media_id
string · required
reason
string?
subject
string?
target_category
string · required
OverrideWithMedia
created_at
string · required
id
string · required
media_id
string · required
reason
string?
subject
string?
target_category
string · required
instance_name
string · required
media_title
string · required
media_type
string · required
Page_Decision
data
Decision[] · required
pagination
Pagination · required
Page_Job
data
Job[] · required
pagination
Pagination · required
Page_LogEntry
data
LogEntry[] · required
pagination
Pagination · required
Page_MediaListItem
data
MediaListItem[] · required
pagination
Pagination · required
Page_OverrideWithMedia
data
OverrideWithMedia[] · required
pagination
Pagination · required
Page_RuleTest
data
RuleTest[] · required
pagination
Pagination · required
Pagination
page
integer · required
per_page
integer · required
total
integer · required
total_pages
integer · required
PinnedCategory
reason
string?
target_category
string · required
PinRequest
reason
string?
target_category
string · required
Placement
answers
PlacementAnswer[] · required
errors
InstanceFailure[] · required
PlacementAnswer
action
string · required
category
string · required
confidence
number · required
current_root_folder
string?
instance_id
string · required
instance_name
string · required
is_override
boolean · required
media_id
string?
root_folder
PlacementFolder?
rule
string?
source
string · required
title
string · required
unanswered_fields
string[] · required
year
integer?
PlacementFolder
origin
string · required
path
string · required
Pong
status
string · required
PreviewChange
confidence
number · required
current_root_folder
string?
from_category
string · required
instance_name
string?
media_id
string · required
media_title
string · required
media_type
string · required
reasons
string[] · required
target_root_folder
string?
to_category
string · required
PreviewRequest
instance_ids
string[]?
rule
CreateRuleRequest · required
rule_id
string?
sample_size
integer
PreviewResponse
after
PreviewSummary · required
before
PreviewSummary · required
changed
PreviewChange[] · required
changed_total
integer · required
issues
ValidationIssue[] · required
PreviewSummary
already_correct
integer · required
excluded_by_rule
integer · required
moves_required
integer · required
no_category_match
integer · required
skipped_unmapped
integer · required
total_media
integer · required
ProviderDescription
configured
boolean · required
display_name
string · required
fetched
boolean · required
fields
string[] · required
id
string · required
key_env
string?
media_types
string[] · required
needs_key
boolean · required
website
string?
ProvidersResponse
order
string[] · required
providers
ProviderDescription[] · required
ReasonLine
matched
boolean?
text
string · required
RenameCategoryRequest
name
string · required
Reordered
reordered
integer · required
ReorderRulesRequest
rule_ids
string[] · required
RevertDecisionsRequest
confirm
Confirmed
decision_ids
string[] · required
move_files
boolean
RootFolder
accessible
boolean · required
arr_id
integer?
category
string?
free_space
integer?
id
string · required
instance_id
string · required
last_accessible_at
string?
last_synced_at
string?
origin
string · required
path
string · required
RootFolderWithInstance
accessible
boolean · required
arr_id
integer?
category
string?
free_space
integer?
id
string · required
instance_id
string · required
last_accessible_at
string?
last_synced_at
string?
origin
string · required
path
string · required
instance_name
string · required
instance_type
string · required
Rule
conditions
Condition[] · required
created_at
string · required
description
string?
enabled
boolean · required
exclusions
Condition[]
id
string · required
instance_ids
string[]?
match_mode
MatchMode
media_type
string · required
name
string · required
priority
integer · required
target_category
string · required
updated_at
string · required
RuleBundle
categories
string[]
exported_at
string?
rules
BundledRule[] · required
version
integer · required
RuleHealth
ambiguous_with
string?
duplicate_of
string?
enabled
boolean · required
matched_nothing
boolean · required
priority
integer · required
rule_id
string · required
rule_name
string · required
shadowed
integer · required
shadowed_by
string?
vetoed
integer · required
won
integer · required
RuleHealthReport
rules
RuleHealth[] · required
total_media
integer · required
RuleImportReport
adjusted
string[] · required
imported
integer · required
replaced
boolean · required
skipped
string[] · required
RuleTest
created_at
string · required
evaluated_at
string · required
expected_category
string · required
id
string · required
media_type
string · required
name
string · required
source_media_title
string?
RuleTestResult
actual_category
string?
error
string?
error_key
string?
expected_category
string · required
id
string · required
matched_rule
string?
name
string · required
passed
boolean · required
RuleTestRun
failed
integer · required
passed
integer · required
results
RuleTestResult[] · required
total
integer · required
RuleTrace
category
string · required
conditions
ConditionOutcome[] · required
excluded_by
string?
matched
boolean · required
outcome
string · required
priority
integer · required
rule_id
string · required
rule_name
string · required
RuleVerdict
issues
ValidationIssue[] · required
valid
boolean · required
SimulationRequest
instance_ids
string[]?
max_returned
integer?
media_type
string?
persist
boolean
persist_unchanged
boolean
SimulationResult
already_correct
integer · required
capacity
CapacityForecast[] · required
decisions
Decision[] · required
elapsed_ms
integer · required
excluded_by_rule
integer · required
moves_required
integer · required
no_category_match
integer · required
overrides_applied
integer · required
returned
integer · required
simulation_id
string · required
skipped_unmapped
integer · required
total_media
integer · required
StatusResponse
dry_run
boolean · required
failed_decisions
integer · required
pending_decisions
integer · required
running_jobs
integer · required
version
string · required
warnings
Warning[] · required
StopReason

One of these values

  • dry_run
  • cancelled
  • shutdown
SyncReport
error
string?
instance_id
string · required
instance_name
string · required
media
integer · required
removed
integer · required
root_folders
integer · required
UpdateRootFolderCategory
category
string? · required
ValidationIssue
field
string · required
key
string · required
message
string
params
object · required
severity
string · required
Vocabularies
origin_countries
Facet[] · required
original_languages
Facet[] · required
Warning
code
string · required
guide_step
string?
message
string · required
severity
string · required