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.
- 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
operateto apply orwriteto pin a title, is granted only where needed: the reference below names the one each operation takes. Routarr shows the key once, andAuthorization: Bearercarries it too. - 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.
- 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.
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}'{
"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.
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
GET/api/v1/healthReach every Arr and source, and report, scope: operate
Parameters
probeboolean· in the queryfreshboolean· in the query
Answer 200HealthResponse
databasestringinstancesInstanceHealth[]metadataMetadataHealthstatsAppStatsstatusstringversionstringwarningsWarning[]
GET/api/v1/metadata/providersThe metadata sources, and what each can answer, scope: read
GET/api/v1/metricsPrometheus metrics, scope: read
Takes nothing.
Answer 200
GET/api/v1/pingWhether Routarr is up, scope: no key
GET/api/v1/statusWhat needs attention, scope: read
Takes nothing.
Answer 200StatusResponse
dry_runbooleanfailed_decisionsintegerpending_decisionsintegerrunning_jobsintegerversionstringwarningsWarning[]
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_idstring· in the querymedia_typestring· in the querycategorystring· in the querysearchstring· in the querytmdb_idinteger· in the querytvdb_idinteger· in the queryimdb_idstring· in the queryunmatchedboolean· in the querypageinteger· in the queryper_pageinteger· in the query
Answer 200Page_MediaListItem
dataMediaListItem[]paginationPagination
GET/api/v1/media/facetsThe values the library holds, for each condition, scope: read
Takes nothing.
Answer 200LibraryFacets
GET/api/v1/media/{id}One title, scope: read
Parameters
idstring· in the path · required
Answer 200MediaDetail
instance_namestring?mediaMediaViewmetadataMediaMetadata?overridePinnedCategory?
GET/api/v1/media/{id}/explainWhere a title goes, and why, scope: read
Parameters
idstring· in the path · required
Answer 200Explanation
actionstringconfidencenumberinstance_enabledbooleanmediaMediaViewmetadataMediaMetadata?override_categorystring?rule_tracesRuleTrace[]rules_categorystringtarget_categorystringtarget_root_folderstring?winning_rulestring?
GET/api/v1/routeWhere a title another service names would go, scope: read
Parameters
typestring· in the query · requiredtmdbinteger· in the querytvdbinteger· in the queryimdbstring· in the queryinstancestring· in the querytagsstring· in the queryseries_typestring· in the querymonitoredboolean· in the queryenrichboolean· in the query
Answer 200Placement
answersPlacementAnswer[]errorsInstanceFailure[]
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_idstring· in the querymedia_typestring· in the querystatusstring· in the querycategorystring· in the queryactionstring· in the querysimulation_idstring· in the querysearchstring· in the queryinclude_supersededboolean· in the querypageinteger· in the queryper_pageinteger· in the query
Answer 200Page_Decision
dataDecision[]paginationPagination
POST/api/v1/decisions/applyApply chosen decisions, scope: operate
Parameters
Preferstring?· header
Body
confirmConfirmeddecision_idsstring[]· requiredmove_filesboolean
Answer 200ApplyReport
appliedintegererrorsApplyError[]failedintegermovingintegerrequestedintegerskippedintegerstoppedStopReason?supersededinteger
POST/api/v1/decisions/apply-allApply everything a simulation proposed, scope: operate
Parameters
Preferstring?· header
Body
confirmConfirmedmove_filesbooleansimulation_idstring· required
Answer 200BatchApplyReport
appliedintegerbatches_plannedintegerbatches_runintegercandidatesintegererrorsApplyError[]failedintegermovingintegerskippedintegerstoppedStopReason?stopped_earlybooleansupersededinteger
POST/api/v1/decisions/revertMove titles back, scope: operate
Parameters
Preferstring?· header
Body
confirmConfirmeddecision_idsstring[]· requiredmove_filesboolean
Answer 200ApplyReport
appliedintegererrorsApplyError[]failedintegermovingintegerrequestedintegerskippedintegerstoppedStopReason?supersededinteger
POST/api/v1/simulateRun the rules over the library, scope: operate
Parameters
Preferstring?· header
Body
instance_idsstring[]?max_returnedinteger?media_typestring?persistbooleanpersist_unchangedboolean
Answer 200SimulationResult
already_correctintegercapacityCapacityForecast[]decisionsDecision[]elapsed_msintegerexcluded_by_ruleintegermoves_requiredintegerno_category_matchintegeroverrides_appliedintegerreturnedintegersimulation_idstringskipped_unmappedintegertotal_mediainteger
Exceptions
Titles whose category is forced by hand, which outrank every rule.
GET/api/v1/overridesThe exceptions, scope: read
Parameters
pageinteger· in the queryper_pageinteger· in the query
Answer 200Page_OverrideWithMedia
dataOverrideWithMedia[]paginationPagination
POST/api/v1/overridesForce a title's category, scope: write
Body
media_idstring· requiredreasonstring?target_categorystring· required
Answer 201OverrideEntry
created_atstringidstringmedia_idstringreasonstring?subjectstring?target_categorystring
DELETE/api/v1/overrides/externalRemove a title's exception by the id another service gives it, scope: write
Parameters
typestring· in the query · requiredtmdbinteger· in the querytvdbinteger· in the queryimdbstring· in the queryinstancestring· in the query
Answer 200Deleted
deletedboolean
PUT/api/v1/overrides/externalForce a title's category by the id another service gives it, scope: write
Parameters
typestring· in the query · requiredtmdbinteger· in the querytvdbinteger· in the queryimdbstring· in the queryinstancestring· in the query
Body
reasonstring?target_categorystring· required
Answer 200OverrideEntry[]
created_atstringidstringmedia_idstringreasonstring?subjectstring?target_categorystring
DELETE/api/v1/overrides/{id}Remove an exception, scope: write
Tasks
What ran in the background, and how it ended.
GET/api/v1/jobsThe tasks, newest first, scope: read
Parameters
statusstring· in the querykindstring· in the querypageinteger· in the queryper_pageinteger· in the queryincludestring· in the query
Answer 200Page_Job
dataJob[]paginationPagination
GET/api/v1/jobs/{id}One task, scope: read
Parameters
idstring· in the path · required
Answer 200Job
detailstring?errorstring?error_messagestring?finished_atstring?idstringinstance_idstring?kindstringprogress_currentintegerprogress_totalintegerresultobjectstarted_atstringstatusstringsubjectstring?triggerstring
GET/api/v1/logsWhat every move did, a page at a time, scope: read
Parameters
instance_idstring· in the querymedia_idstring· in the queryactionstring· in the querysuccessboolean· in the querysearchstring· in the querypageinteger· in the queryper_pageinteger· in the query
Answer 200Page_LogEntry
dataLogEntry[]paginationPagination
GET/api/v1/logs/exportThe same log as a CSV file, scope: read
Parameters
instance_idstring· in the querymedia_idstring· in the queryactionstring· in the querysuccessboolean· in the querysearchstring· 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_encryptedbooleanapi_key_maskedstringapi_key_setbooleanbase_urlstringcreated_atstringenabledbooleanidstringinstance_typestringlast_sync_atstring?last_sync_attempt_atstring?last_sync_statusstring?namestringsync_interval_minutesintegerupdated_atstringwebhook_pathstring?webhook_tokenstring?webhook_urlstring?
POST/api/v1/instances/syncRead every enabled Arr again, scope: operate
Parameters
Preferstring?· header
Answer 200SyncReport[]
errorstring?instance_idstringinstance_namestringmediaintegerremovedintegerroot_foldersinteger
GET/api/v1/instances/{id}One Arr, scope: read
Parameters
idstring· in the path · required
Answer 200InstanceResponse
api_key_encryptedbooleanapi_key_maskedstringapi_key_setbooleanbase_urlstringcreated_atstringenabledbooleanidstringinstance_typestringlast_sync_atstring?last_sync_attempt_atstring?last_sync_statusstring?namestringsync_interval_minutesintegerupdated_atstringwebhook_pathstring?webhook_tokenstring?webhook_urlstring?
POST/api/v1/instances/{id}/syncRead one Arr again, scope: operate
Parameters
idstring· in the path · requiredPreferstring?· header
Answer 200SyncReport
errorstring?instance_idstringinstance_namestringmediaintegerremovedintegerroot_foldersinteger
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
pageinteger· in the queryper_pageinteger· in the query
Answer 200Page_RuleTest
dataRuleTest[]paginationPagination
POST/api/v1/rule-testsPin what the rules decide for a title as a test, scope: configure
Body
expected_categorystring?media_idstring· requirednamestring· required
Answer 201RuleTest
created_atstringevaluated_atstringexpected_categorystringidstringmedia_typestringnamestringsource_media_titlestring?
POST/api/v1/rule-tests/runRun every rule test against the rules as they are, scope: operate
DELETE/api/v1/rule-tests/{id}Remove a rule test, scope: configure
GET/api/v1/rulesThe rules, in priority order, scope: read
POST/api/v1/rulesCreate a rule, scope: configure
GET/api/v1/rules/conditionsThe conditions a rule may use, scope: read
GET/api/v1/rules/exportThe rules as a bundle, scope: read
Takes nothing.
Answer 200RuleBundle
categoriesstring[]exported_atstring?rulesBundledRule[]versioninteger
GET/api/v1/rules/healthWhat each rule decides, scope: read
POST/api/v1/rules/importImport a bundle of rules, scope: configure
Body
bundleRuleBundle· requiredcreate_missing_categoriesbooleanreplaceboolean
Answer 200RuleImportReport
adjustedstring[]importedintegerreplacedbooleanskippedstring[]
POST/api/v1/rules/previewWhat a draft rule would move, storing nothing, scope: configure
Body
instance_idsstring[]?ruleCreateRuleRequest· requiredrule_idstring?sample_sizeinteger
Answer 200PreviewResponse
afterPreviewSummarybeforePreviewSummarychangedPreviewChange[]changed_totalintegerissuesValidationIssue[]
POST/api/v1/rules/reorderPut the rules in a new order, scope: configure
POST/api/v1/rules/validateJudge a draft rule, storing nothing, scope: configure
Body
conditionsCondition[]· requireddescriptionstring?enabledbooleanexclusionsCondition[]instance_idsstring[]?match_modeMatchModemedia_typestring· requirednamestring· requiredpriorityinteger?target_categorystring· required
Answer 200RuleVerdict
issuesValidationIssue[]validboolean
DELETE/api/v1/rules/{id}Remove a rule, scope: configure
GET/api/v1/rules/{id}One rule, scope: read
PUT/api/v1/rules/{id}Replace a rule, scope: configure
POST/api/v1/rules/{id}/duplicateCopy a rule, disabled, scope: configure
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_atstringdescriptionstring?display_orderintegeridstringis_defaultbooleannamestringroot_folder_countintegerrule_countinteger
POST/api/v1/categoriesCreate a category, scope: configure
Body
descriptionstring?display_orderintegeris_defaultbooleannamestring· required
Answer 201Category
created_atstringdescriptionstring?display_orderintegeridstringis_defaultbooleannamestring
DELETE/api/v1/categories/{id}Remove a category, scope: configure
PUT/api/v1/categories/{id}Rename a category, scope: configure
Parameters
idstring· in the path · required
Body
namestring· required
Answer 200Category
created_atstringdescriptionstring?display_orderintegeridstringis_defaultbooleannamestring
GET/api/v1/root-foldersThe root folders, and the category each leads to, scope: read
Takes nothing.
Answer 200RootFolderWithInstance[]
accessiblebooleanarr_idinteger?categorystring?free_spaceinteger?idstringinstance_idstringlast_accessible_atstring?last_synced_atstring?originstringpathstringinstance_namestringinstance_typestring
POST/api/v1/root-foldersDeclare a destination the Arr does not list, scope: configure
Body
instance_idstring· requiredpathstring· required
Answer 201Declared
idstringpathstringverifiedboolean
GET/api/v1/root-folders/conflictsWhat the mappings leave unsaid, scope: read
Takes nothing.
Answer 200MappingConflict[]
categorystring?instance_namestring?kindstringmessagestringseveritystring
DELETE/api/v1/root-folders/{id}Remove a declared destination, scope: configure
PUT/api/v1/root-folders/{id}/categoryLead a folder to a category, or to none, scope: configure
Parameters
idstring· in the path · required
Body
categorystring?· required
Answer 200Mapped
categorystring?updatedboolean
Backups
The backups Routarr keeps, and taking one now.
GET/api/v1/backupsThe backups kept, scope: read
POST/api/v1/backupsTake a backup now, scope: operate
Parameters
Preferstring?· header
Answer 200BackupFile
created_atstringencryptedbooleannamestringsize_bytesinteger
Types
Every shape the operations above take or answer. A type name opens its entry here.
AlternativeDecision
categorystring· requiredconfidencenumberexcluded_bystring?reasonstring· requiredrule_namestring· required
ApplyAllRequest
confirmConfirmedmove_filesbooleansimulation_idstring· required
ApplyDecisionsRequest
confirmConfirmeddecision_idsstring[]· requiredmove_filesboolean
ApplyError
decision_idstring· requiredmedia_titlestring· requiredmessagestring· required
ApplyReport
appliedinteger· requirederrorsApplyError[]· requiredfailedinteger· requiredmovinginteger· requiredrequestedinteger· requiredskippedinteger· requiredstoppedStopReason?supersededinteger· required
AppStats
applied_decisionsinteger· requiredenabled_rulesinteger· requiredfailed_decisionsinteger· requiredpending_decisionsinteger· requiredrunning_jobsinteger· requiredtotal_instancesinteger· requiredtotal_mediainteger· requiredtotal_moviesinteger· requiredtotal_overridesinteger· requiredtotal_rulesinteger· requiredtotal_seriesinteger· requiredunmapped_categoriesinteger· required
BackupFile
created_atstring· requiredencryptedboolean· requirednamestring· requiredsize_bytesinteger· required
BackupListResponse
backupsBackupFile[]· requiredretention_countinteger· required
BatchApplyReport
appliedinteger· requiredbatches_plannedinteger· requiredbatches_runinteger· requiredcandidatesinteger· requirederrorsApplyError[]· requiredfailedinteger· requiredmovinginteger· requiredskippedinteger· requiredstoppedStopReason?stopped_earlyboolean· requiredsupersededinteger· required
BundledRule
CapacityForecast
fitsboolean· requiredfree_bytesinteger· requiredincoming_bytesinteger· requiredinstance_idstring· requiredinstance_namestring?itemsinteger· requiredpathstring· requiredsame_filesystem_bytesinteger· required
Category
created_atstring· requireddescriptionstring?display_orderinteger· requiredidstring· requiredis_defaultboolean· requirednamestring· required
CategoryWithUsage
created_atstring· requireddescriptionstring?display_orderinteger· requiredidstring· requiredis_defaultboolean· requirednamestring· requiredroot_folder_countinteger· requiredrule_countinteger· required
Condition
One of these shapes, told apart by type
genre_containsvaluestring[]genre_contains_allvaluestring[]genre_not_containsvaluestring[]keyword_containsvaluestring[]keyword_contains_allvaluestring[]keyword_not_containsvaluestring[]original_languagevaluestring[]original_language_notvaluestring[]origin_countryvaluestring[]origin_country_allvaluestring[]year_rangevalueobjecttag_invaluestring[]tag_in_allvaluestring[]series_type_isvaluestring[]size_on_disk_over_gbvalueintegerseason_count_overvalueintegercertification_invaluestring[]status_isvaluestring[]current_root_foldervaluestringcurrent_root_folder_starts_withvaluestringhas_filesvaluebooleantitle_containsvaluestring[]tmdb_id_invalueinteger[]tvdb_id_invalueinteger[]imdb_id_invaluestring[]added_within_daysvalueintegermonitoredvaluebooleanhas_metadatavalueboolean
ConditionCatalog
conditionsConditionSpec[]· requiredmatch_modesstring[]· required
ConditionOutcome
expectedstringkeystring· requiredkindstring· requiredmatchedboolean· requiredobservedstring· requiredparamsobject· requiredsourcestring?
ConditionSpec
availableboolean· requiredcounterpartstring· requiredlabelstring· requiredlabel_keystring· requiredmedia_typesstring[]· requiredmetadata_fieldstring?needs_metadataboolean· requiredquantifierstring· requiredsuggestionsstring· requiredtypestring· requiredvalue_typestring· required
Confirmed
A list of string
CreateCategoryRequest
descriptionstring?display_orderintegeris_defaultbooleannamestring· required
CreateOverrideRequest
media_idstring· requiredreasonstring?target_categorystring· required
CreateRuleRequest
Decision
actionstring· requiredactorstring?alternativesAlternativeDecision[]· requiredapplied_atstring?confidencenumbercurrent_root_folderstring?decided_atstring· requirederror_messagestring?idstring· requiredinstance_idstring· requiredinstance_namestring?is_overrideboolean· requiredmatched_rule_idstring?matched_rule_namestring?media_idstring· requiredmedia_titlestring· requiredmedia_typestring· requiredreason_linesReasonLine[]· requiredreasonsstring[]· requiredreverted_atstring?revertiblebooleansimulation_idstring?statusstring· requiredsubjectstring?supersededbooleantarget_categorystring· requiredtarget_root_folderstring?
Declared
idstring· requiredpathstring· requiredverifiedboolean· required
DeclareRootFolder
instance_idstring· requiredpathstring· required
Deleted
deletedboolean· required
Explanation
actionstring· requiredconfidencenumber· requiredinstance_enabledboolean· requiredmediaMediaView· requiredmetadataMediaMetadata?override_categorystring?rule_tracesRuleTrace[]· requiredrules_categorystring· requiredtarget_categorystring· requiredtarget_root_folderstring?winning_rulestring?
Facet
countinteger· requiredgroupstring?labelstring?valuestring· required
HealthResponse
databasestring· requiredinstancesInstanceHealth[]· requiredmetadataMetadataHealth· requiredstatsAppStats· requiredstatusstring· requiredversionstring· requiredwarningsWarning[]· required
ImportRulesRequest
bundleRuleBundle· requiredcreate_missing_categoriesbooleanreplaceboolean
InstanceFailure
errorstring· requiredinstance_idstring· requiredinstance_namestring· required
InstanceHealth
detailstring?idstring· requiredinstance_typestring· requiredlast_syncstring?last_sync_statusstring?mapped_root_foldersinteger· requiredmedia_countinteger· requirednamestring· requiredstatusstring· requiredversionstring?
InstanceResponse
api_key_encryptedboolean· requiredapi_key_maskedstring· requiredapi_key_setboolean· requiredbase_urlstring· requiredcreated_atstring· requiredenabledboolean· requiredidstring· requiredinstance_typestring· requiredlast_sync_atstring?last_sync_attempt_atstring?last_sync_statusstring?namestring· requiredsync_interval_minutesinteger· requiredupdated_atstring· requiredwebhook_pathstring?webhook_tokenstring?webhook_urlstring?
Job
detailstring?errorstring?error_messagestring?finished_atstring?idstring· requiredinstance_idstring?kindstring· requiredprogress_currentinteger· requiredprogress_totalinteger· requiredresultobjectstarted_atstring· requiredstatusstring· requiredsubjectstring?triggerstring· required
LibraryFacets
certificationsFacet[]· requiredgenresFacet[]· requiredorigin_countriesFacet[]· requiredoriginal_languagesFacet[]· requiredroot_foldersFacet[]· requiredseries_typesFacet[]· requiredstatusesFacet[]· requiredtagsFacet[]· requiredtotal_mediainteger· requiredvocabulariesVocabularies· requiredwithout_metadatainteger· required
LogEntry
actionstring· requiredactorstring?decision_idstring?detailsstring?error_messagestring?executed_atstring· requiredidstring· requiredinstance_idstring?media_idstring?media_titlestring?subjectstring?successboolean· required
Mapped
categorystring?updatedboolean· required
MappingConflict
categorystring?instance_namestring?kindstring· requiredmessagestring· requiredseveritystring· required
MatchMode
One of these values
allany
Me
subjectstring· required
Media
added_atstring?arr_idinteger· requiredcertificationstring?current_pathstring?current_root_folderstring?genresstring?has_filesboolean· requiredidstring· requiredimdb_idstring?instance_idstring· requiredlast_synced_atstring?media_typestring· requiredmonitoredboolean· requiredoriginal_languagestring?season_countinteger?series_typestring?size_on_diskinteger?sort_titlestring?statusstring?tagsstring?titlestring· requiredtmdb_idinteger?tvdb_idinteger?yearinteger?
MediaDetail
instance_namestring?mediaMediaView· requiredmetadataMediaMetadata?overridePinnedCategory?
MediaListItem
arr_idinteger· requiredcomputed_categorystring?current_root_folderstring?has_filesboolean· requiredhas_metadataboolean· requiredidstring· requiredimdb_idstring?instance_idstring· requiredinstance_namestring· requiredlast_synced_atstring?media_typestring· requiredmonitoredboolean· requiredoverride_categorystring?statusstring?titlestring· requiredtmdb_idinteger?tvdb_idinteger?yearinteger?
MediaMetadata
certificationstring?certification_scalestring?field_sourcesobjectgenresstring[]keywordsstring[]origin_countriesstring[]original_languagestring?overviewstring?poster_pathstring?sourcesstring[]statusstring?
MediaView
added_atstring?arr_idinteger· requiredcertificationstring?current_pathstring?current_root_folderstring?genresstring?has_filesboolean· requiredidstring· requiredimdb_idstring?instance_idstring· requiredlast_synced_atstring?media_typestring· requiredmonitoredboolean· requiredoriginal_languagestring?season_countinteger?series_typestring?size_on_diskinteger?sort_titlestring?statusstring?tagsstring?titlestring· requiredtmdb_idinteger?tvdb_idinteger?yearinteger?genre_liststring[]· requiredtag_liststring[]· required
MetadataHealth
cached_itemsinteger· requiredmedia_missing_metadatainteger· requiredprovidersMetadataProviderHealth[]· required
MetadataProviderHealth
configuredboolean· requiredconnectedboolean?display_namestring· requiredidstring· requiredneeds_keyboolean· requiredreasonstring?
NewRuleTest
expected_categorystring?media_idstring· requirednamestring· required
OverrideEntry
created_atstring· requiredidstring· requiredmedia_idstring· requiredreasonstring?subjectstring?target_categorystring· required
OverrideWithMedia
created_atstring· requiredidstring· requiredmedia_idstring· requiredreasonstring?subjectstring?target_categorystring· requiredinstance_namestring· requiredmedia_titlestring· requiredmedia_typestring· required
Page_Decision
dataDecision[]· requiredpaginationPagination· required
Page_Job
dataJob[]· requiredpaginationPagination· required
Page_LogEntry
dataLogEntry[]· requiredpaginationPagination· required
Page_MediaListItem
dataMediaListItem[]· requiredpaginationPagination· required
Page_OverrideWithMedia
dataOverrideWithMedia[]· requiredpaginationPagination· required
Page_RuleTest
dataRuleTest[]· requiredpaginationPagination· required
Pagination
pageinteger· requiredper_pageinteger· requiredtotalinteger· requiredtotal_pagesinteger· required
PinnedCategory
reasonstring?target_categorystring· required
PinRequest
reasonstring?target_categorystring· required
Placement
answersPlacementAnswer[]· requirederrorsInstanceFailure[]· required
PlacementAnswer
actionstring· requiredcategorystring· requiredconfidencenumber· requiredcurrent_root_folderstring?instance_idstring· requiredinstance_namestring· requiredis_overrideboolean· requiredmedia_idstring?root_folderPlacementFolder?rulestring?sourcestring· requiredtitlestring· requiredunanswered_fieldsstring[]· requiredyearinteger?
PlacementFolder
originstring· requiredpathstring· required
Pong
statusstring· required
PreviewChange
confidencenumber· requiredcurrent_root_folderstring?from_categorystring· requiredinstance_namestring?media_idstring· requiredmedia_titlestring· requiredmedia_typestring· requiredreasonsstring[]· requiredtarget_root_folderstring?to_categorystring· required
PreviewRequest
instance_idsstring[]?ruleCreateRuleRequest· requiredrule_idstring?sample_sizeinteger
PreviewResponse
afterPreviewSummary· requiredbeforePreviewSummary· requiredchangedPreviewChange[]· requiredchanged_totalinteger· requiredissuesValidationIssue[]· required
PreviewSummary
already_correctinteger· requiredexcluded_by_ruleinteger· requiredmoves_requiredinteger· requiredno_category_matchinteger· requiredskipped_unmappedinteger· requiredtotal_mediainteger· required
ProviderDescription
configuredboolean· requireddisplay_namestring· requiredfetchedboolean· requiredfieldsstring[]· requiredidstring· requiredkey_envstring?media_typesstring[]· requiredneeds_keyboolean· requiredwebsitestring?
ProvidersResponse
orderstring[]· requiredprovidersProviderDescription[]· required
ReasonLine
matchedboolean?textstring· required
RenameCategoryRequest
namestring· required
Reordered
reorderedinteger· required
ReorderRulesRequest
rule_idsstring[]· required
RevertDecisionsRequest
confirmConfirmeddecision_idsstring[]· requiredmove_filesboolean
RootFolder
accessibleboolean· requiredarr_idinteger?categorystring?free_spaceinteger?idstring· requiredinstance_idstring· requiredlast_accessible_atstring?last_synced_atstring?originstring· requiredpathstring· required
RootFolderWithInstance
accessibleboolean· requiredarr_idinteger?categorystring?free_spaceinteger?idstring· requiredinstance_idstring· requiredlast_accessible_atstring?last_synced_atstring?originstring· requiredpathstring· requiredinstance_namestring· requiredinstance_typestring· required
Rule
conditionsCondition[]· requiredcreated_atstring· requireddescriptionstring?enabledboolean· requiredexclusionsCondition[]idstring· requiredinstance_idsstring[]?match_modeMatchModemedia_typestring· requirednamestring· requiredpriorityinteger· requiredtarget_categorystring· requiredupdated_atstring· required
RuleBundle
categoriesstring[]exported_atstring?rulesBundledRule[]· requiredversioninteger· required
RuleHealth
ambiguous_withstring?duplicate_ofstring?enabledboolean· requiredmatched_nothingboolean· requiredpriorityinteger· requiredrule_idstring· requiredrule_namestring· requiredshadowedinteger· requiredshadowed_bystring?vetoedinteger· requiredwoninteger· required
RuleHealthReport
rulesRuleHealth[]· requiredtotal_mediainteger· required
RuleImportReport
adjustedstring[]· requiredimportedinteger· requiredreplacedboolean· requiredskippedstring[]· required
RuleTest
created_atstring· requiredevaluated_atstring· requiredexpected_categorystring· requiredidstring· requiredmedia_typestring· requirednamestring· requiredsource_media_titlestring?
RuleTestResult
actual_categorystring?errorstring?error_keystring?expected_categorystring· requiredidstring· requiredmatched_rulestring?namestring· requiredpassedboolean· required
RuleTestRun
failedinteger· requiredpassedinteger· requiredresultsRuleTestResult[]· requiredtotalinteger· required
RuleTrace
categorystring· requiredconditionsConditionOutcome[]· requiredexcluded_bystring?matchedboolean· requiredoutcomestring· requiredpriorityinteger· requiredrule_idstring· requiredrule_namestring· required
RuleVerdict
issuesValidationIssue[]· requiredvalidboolean· required
SimulationRequest
instance_idsstring[]?max_returnedinteger?media_typestring?persistbooleanpersist_unchangedboolean
SimulationResult
already_correctinteger· requiredcapacityCapacityForecast[]· requireddecisionsDecision[]· requiredelapsed_msinteger· requiredexcluded_by_ruleinteger· requiredmoves_requiredinteger· requiredno_category_matchinteger· requiredoverrides_appliedinteger· requiredreturnedinteger· requiredsimulation_idstring· requiredskipped_unmappedinteger· requiredtotal_mediainteger· required
StatusResponse
dry_runboolean· requiredfailed_decisionsinteger· requiredpending_decisionsinteger· requiredrunning_jobsinteger· requiredversionstring· requiredwarningsWarning[]· required
StopReason
One of these values
dry_runcancelledshutdown
SyncReport
errorstring?instance_idstring· requiredinstance_namestring· requiredmediainteger· requiredremovedinteger· requiredroot_foldersinteger· required
UpdateRootFolderCategory
categorystring?· required
ValidationIssue
fieldstring· requiredkeystring· requiredmessagestringparamsobject· requiredseveritystring· required
Warning
codestring· requiredguide_stepstring?messagestring· requiredseveritystring· required