mirror of
https://github.com/Dictionarry-Hub/profilarr.git
synced 2026-04-18 21:08:05 -04:00
272 lines
8.1 KiB
YAML
272 lines
8.1 KiB
YAML
instances:
|
|
get:
|
|
operationId: listArrInstances
|
|
summary: List Arr Instances
|
|
description: |
|
|
Returns all Arr instances (Radarr/Sonarr) with secrets stripped.
|
|
|
|
**Use cases:**
|
|
- Dashboard widgets showing connected instances
|
|
- Automation scripts checking instance state
|
|
- Prerequisite checks (e.g. onboarding)
|
|
|
|
**Behavior:**
|
|
- Returns an empty array if no instances are connected
|
|
- The `api_key` field is never included
|
|
tags:
|
|
- Arr
|
|
responses:
|
|
'200':
|
|
description: List of Arr instances
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '../schemas/arr.yaml#/ArrInstance'
|
|
'401':
|
|
description: Not authenticated
|
|
|
|
library:
|
|
get:
|
|
operationId: getLibrary
|
|
summary: Get Arr instance library
|
|
description: |
|
|
Fetches the full movie or series library from an Arr instance with quality profile,
|
|
score, and progress information.
|
|
|
|
- For Radarr: Returns movies with file quality, custom format scores, and cutoff progress
|
|
- For Sonarr: Returns series with season summaries and episode statistics
|
|
|
|
Results include Profilarr profile matching to indicate which items use managed profiles.
|
|
Responses are cached server-side for 5 minutes.
|
|
tags:
|
|
- Arr
|
|
parameters:
|
|
- name: instanceId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Arr instance ID
|
|
responses:
|
|
'200':
|
|
description: Library items with quality and score data
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/LibraryResponse'
|
|
'400':
|
|
description: Invalid or missing instanceId
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'404':
|
|
description: Instance not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'500':
|
|
description: Failed to fetch library
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
delete:
|
|
operationId: invalidateLibraryCache
|
|
summary: Invalidate library cache
|
|
description: |
|
|
Clears the server-side cache for an Arr instance's library data.
|
|
The next GET request will fetch fresh data from the Arr instance.
|
|
tags:
|
|
- Arr
|
|
parameters:
|
|
- name: instanceId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Arr instance ID
|
|
responses:
|
|
'200':
|
|
description: Cache invalidated
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/CacheInvalidatedResponse'
|
|
'400':
|
|
description: Invalid or missing instanceId
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
|
|
episodes:
|
|
get:
|
|
operationId: getLibraryEpisodes
|
|
summary: Get episode details for a Sonarr series
|
|
description: |
|
|
Lazy-loads episode-level data for a specific series in a Sonarr instance.
|
|
Returns episodes with quality, custom format scores, and cutoff progress.
|
|
|
|
This endpoint is designed for on-demand loading when a series row is expanded
|
|
in the library view. Sonarr instances only.
|
|
|
|
Results are cached server-side for 5 minutes per series.
|
|
tags:
|
|
- Arr
|
|
parameters:
|
|
- name: instanceId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Arr instance ID (must be a Sonarr instance)
|
|
- name: seriesId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Sonarr series ID
|
|
responses:
|
|
'200':
|
|
description: Episode details with quality and score data
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/EpisodesResponse'
|
|
'400':
|
|
description: Invalid parameters or not a Sonarr instance
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'404':
|
|
description: Instance not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'500':
|
|
description: Failed to fetch episode details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
|
|
releases:
|
|
get:
|
|
operationId: getReleases
|
|
summary: Search for releases
|
|
description: |
|
|
Triggers an interactive search on an Arr instance and returns grouped/deduplicated results.
|
|
|
|
For Radarr: Searches for releases for the specified movie.
|
|
For Sonarr: Searches for season pack releases for the specified series and season.
|
|
|
|
Results are grouped by title, combining information from multiple indexers.
|
|
tags:
|
|
- Arr
|
|
parameters:
|
|
- name: instanceId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Arr instance ID
|
|
- name: itemId
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
description: Movie ID (Radarr) or Series ID (Sonarr)
|
|
- name: season
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
description: Season number for Sonarr searches (defaults to 1)
|
|
responses:
|
|
'200':
|
|
description: Release search results
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ReleasesResponse'
|
|
'400':
|
|
description: Invalid or missing parameters
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'404':
|
|
description: Instance not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'500':
|
|
description: Failed to fetch releases
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
|
|
sync-entity:
|
|
post:
|
|
operationId: syncEntity
|
|
summary: Sync a single entity to an Arr instance
|
|
description: |
|
|
Pushes a single entity to an Arr instance. Runs inline and returns when complete.
|
|
|
|
Entity types are grouped into sync sections that share cooldown and status tracking:
|
|
- **qualityProfiles**: qualityProfile, customFormat, regularExpression
|
|
- **delayProfiles**: delayProfile
|
|
- **mediaManagement**: naming, qualityDefinitions, mediaSettings
|
|
|
|
The section is derived automatically from the entity type. A 5-second cooldown
|
|
is enforced per section per instance — entity types within the same section share
|
|
the cooldown. Returns 409 if a sync is already in progress or the cooldown is active.
|
|
tags:
|
|
- Arr
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/SyncEntityRequest'
|
|
responses:
|
|
'200':
|
|
description: Entity synced successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/SyncEntitySuccessResponse'
|
|
'400':
|
|
description: Invalid request parameters
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'404':
|
|
description: Instance not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|
|
'409':
|
|
description: Cooldown active or sync in progress
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/SyncEntityCooldownResponse'
|
|
'500':
|
|
description: Sync failed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/arr.yaml#/ErrorResponse'
|