openapi : '3.0.2'
info :
title : 'Overseerr API'
version : '1.0.0'
description : |
This is the documentation for the Overseerr API backend.
Two primary authentication methods are supported :
- **Cookie Authentication** : A valid sign-in to the `/auth/plex` or `/auth/local` will generate a valid authentication cookie.
- **API Key Authentication** : Sign-in is also possible by passing an `X-Api-Key` header along with a valid API Key generated by Overseerr.
tags :
- name : public
description : Public API endpoints requiring no authentication.
- name : settings
description : Endpoints related to Overseerr's settings and configuration.
- name : auth
description : Endpoints related to logging in or out, and the currently authenticated user.
- name : users
description : Endpoints related to user management.
- name : search
description : Endpoints related to search and discovery.
- name : request
description : Endpoints related to request management.
- name : movies
description : Endpoints related to retrieving movies and their details.
- name : tv
description : Endpoints related to retrieving TV series and their details.
- name : person
description : Endpoints related to retrieving person details.
- name : media
description : Endpoints related to media management.
- name : collection
description : Endpoints related to retrieving collection details.
- name : service
description : Endpoints related to getting service (Radarr/Sonarr) details.
servers :
- url : '{server}/api/v1'
variables :
server :
default : http://localhost:5055
components :
schemas :
User :
type : object
properties :
id :
type : integer
example : 1
readOnly : true
email :
type : string
example : 'hey@itsme.com'
readOnly : true
username :
type : string
plexToken :
type : string
readOnly : true
plexUsername :
type : string
readOnly : true
userType :
type : integer
example : 1
readOnly : true
permissions :
type : number
example : 0
avatar :
type : string
readOnly : true
createdAt :
type : string
example : '2020-09-02T05:02:23.000Z'
readOnly : true
updatedAt :
type : string
example : '2020-09-02T05:02:23.000Z'
readOnly : true
requestCount :
type : number
example : 5
readOnly : true
required :
- id
- email
- createdAt
- updatedAt
UserSettings :
type : object
properties :
locale :
type : string
region :
type : string
originalLanguage :
type : string
MainSettings :
type : object
properties :
apiKey :
type : string
readOnly : true
appLanguage :
type : string
example : en
applicationTitle :
type : string
example : Overseerr
applicationUrl :
type : string
example : https://os.example.com
trustProxy :
type : boolean
example : true
csrfProtection :
type : boolean
example : false
hideAvailable :
type : boolean
example : false
partialRequestsEnabled :
type : boolean
example : false
localLogin :
type : boolean
example : true
newPlexLogin :
type : boolean
example : true
defaultPermissions :
type : number
example : 32
PlexLibrary :
type : object
properties :
id :
type : string
name :
type : string
example : Movies
enabled :
type : boolean
example : false
required :
- id
- name
- enabled
PlexSettings :
type : object
properties :
name :
type : string
example : 'Main Server'
readOnly : true
machineId :
type : string
example : '1234123412341234'
readOnly : true
ip :
type : string
example : '127.0.0.1'
port :
type : number
example : 32400
useSsl :
type : boolean
nullable : true
libraries :
type : array
readOnly : true
items :
$ref : '#/components/schemas/PlexLibrary'
webAppUrl :
type : string
nullable : true
example : 'https://app.plex.tv/desktop'
required :
- name
- machineId
- ip
- port
PlexConnection :
type : object
properties :
protocol :
type : string
example : 'https'
address :
type : string
example : '127.0.0.1'
port :
type : number
example : 32400
uri :
type : string
example : 'https://127-0-0-1.2ab6ce1a093d465e910def96cf4e4799.plex.direct:32400'
local :
type : boolean
example : true
status :
type : number
example : 200
message :
type : string
example : 'OK'
required :
- protocol
- address
- port
- uri
- local
PlexDevice :
type : object
properties :
name :
type : string
example : 'My Plex Server'
product :
type : string
example : 'Plex Media Server'
productVersion :
type : string
example : '1.21'
platform :
type : string
example : 'Linux'
platformVersion :
type : string
example : 'default/linux/amd64/17.1/systemd'
device :
type : string
example : 'PC'
clientIdentifier :
type : string
example : '85a943ce-a0cc-4d2a-a4ec-f74f06e40feb'
createdAt :
type : string
example : '2021-01-01T00:00:00.000Z'
lastSeenAt :
type : string
example : '2021-01-01T00:00:00.000Z'
provides :
type : array
items :
type : string
example : 'server'
owned :
type : boolean
example : true
ownerID :
type : string
example : '12345'
home :
type : boolean
example : true
sourceTitle :
type : string
example : 'xyzabc'
accessToken :
type : string
example : 'supersecretaccesstoken'
publicAddress :
type : string
example : '127.0.0.1'
httpsRequired :
type : boolean
example : true
synced :
type : boolean
example : true
relay :
type : boolean
example : true
dnsRebindingProtection :
type : boolean
example : false
natLoopbackSupported :
type : boolean
example : false
publicAddressMatches :
type : boolean
example : false
presence :
type : boolean
example : true
connection :
type : array
items :
$ref : '#/components/schemas/PlexConnection'
required :
- name
- product
- productVersion
- platform
- device
- clientIdentifier
- createdAt
- lastSeenAt
- provides
- owned
- connection
TautulliSettings :
type : object
properties :
hostname :
type : string
nullable : true
example : 'tautulli.example.com'
port :
type : number
nullable : true
example : 8181
useSsl :
type : boolean
nullable : true
apiKey :
type : string
nullable : true
externalUrl :
type : string
nullable : true
RadarrSettings :
type : object
properties :
id :
type : number
example : 0
readOnly : true
name :
type : string
example : 'Radarr Main'
hostname :
type : string
example : '127.0.0.1'
port :
type : number
example : 7878
apiKey :
type : string
example : 'exampleapikey'
useSsl :
type : boolean
example : false
baseUrl :
type : string
activeProfileId :
type : number
example : 1
activeProfileName :
type : string
example : 720p/1080p
activeDirectory :
type : string
example : '/movies'
is4k :
type : boolean
example : false
minimumAvailability :
type : string
example : 'In Cinema'
isDefault :
type : boolean
example : false
externalUrl :
type : string
example : http://radarr.example.com
syncEnabled :
type : boolean
example : false
preventSearch :
type : boolean
example : false
required :
- name
- hostname
- port
- apiKey
- useSsl
- activeProfileId
- activeProfileName
- activeDirectory
- is4k
- minimumAvailability
- isDefault
SonarrSettings :
type : object
properties :
id :
type : number
example : 0
readOnly : true
name :
type : string
example : 'Sonarr Main'
hostname :
type : string
example : '127.0.0.1'
port :
type : number
example : 8989
apiKey :
type : string
example : 'exampleapikey'
useSsl :
type : boolean
example : false
baseUrl :
type : string
activeProfileId :
type : number
example : 1
activeProfileName :
type : string
example : 720p/1080p
activeDirectory :
type : string
example : '/tv/'
activeLanguageProfileId :
type : number
example : 1
activeAnimeProfileId :
type : number
nullable : true
activeAnimeLanguageProfileId :
type : number
nullable : true
activeAnimeProfileName :
type : string
example : 720p/1080p
nullable : true
activeAnimeDirectory :
type : string
nullable : true
is4k :
type : boolean
example : false
enableSeasonFolders :
type : boolean
example : false
isDefault :
type : boolean
example : false
externalUrl :
type : string
example : http://radarr.example.com
syncEnabled :
type : boolean
example : false
preventSearch :
type : boolean
example : false
required :
- name
- hostname
- port
- apiKey
- useSsl
- activeProfileId
- activeProfileName
- activeDirectory
- is4k
- enableSeasonFolders
- isDefault
ServarrTag :
type : object
properties :
id :
type : number
example : 1
label :
type : string
example : A Label
PublicSettings :
type : object
properties :
initialized :
type : boolean
example : false
MovieResult :
type : object
required :
- id
- mediaType
- title
properties :
id :
type : number
example : 1234
mediaType :
type : string
popularity :
type : number
example : 10
posterPath :
type : string
backdropPath :
type : string
voteCount :
type : number
voteAverage :
type : number
genreIds :
type : array
items :
type : number
overview :
type : string
example : 'Overview of the movie'
originalLanguage :
type : string
example : 'en'
title :
type : string
example : Movie Title
originalTitle :
type : string
example : Original Movie Title
releaseDate :
type : string
adult :
type : boolean
example : false
video :
type : boolean
example : false
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
TvResult :
type : object
properties :
id :
type : number
example : 1234
mediaType :
type : string
popularity :
type : number
example : 10
posterPath :
type : string
backdropPath :
type : string
voteCount :
type : number
voteAverage :
type : number
genreIds :
type : array
items :
type : number
overview :
type : string
example : 'Overview of the movie'
originalLanguage :
type : string
example : 'en'
name :
type : string
example : TV Show Name
originalName :
type : string
example : Original TV Show Name
originCountry :
type : array
items :
type : string
firstAirDate :
type : string
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
PersonResult :
type : object
properties :
id :
type : number
example : 12345
profilePath :
type : string
adult :
type : boolean
example : false
mediaType :
type : string
default : 'person'
knownFor :
type : array
items :
oneOf :
- $ref : '#/components/schemas/MovieResult'
- $ref : '#/components/schemas/TvResult'
Genre :
type : object
properties :
id :
type : number
example : 1
name :
type : string
example : Adventure
ProductionCompany :
type : object
properties :
id :
type : number
example : 1
logoPath :
type : string
nullable : true
originCountry :
type : string
name :
type : string
Network :
type : object
properties :
id :
type : number
example : 1
logoPath :
type : string
nullable : true
originCountry :
type : string
name :
type : string
RelatedVideo :
type : object
properties :
url :
type : string
example : https://www.youtube.com/watch?v=9qhL2_UxXM0/
key :
type : string
example : 9qhL2_UxXM0
name :
type : string
example : Trailer for some movie (1978)
size :
type : number
example : 1080
type :
type : string
example : Trailer
enum :
- Clip
- Teaser
- Trailer
- Featurette
- Opening Credits
- Behind the Scenes
- Bloopers
site :
type : string
enum :
- 'YouTube'
MovieDetails :
type : object
properties :
id :
type : number
example : 123
readOnly : true
imdbId :
type : string
example : 'tt123'
adult :
type : boolean
backdropPath :
type : string
posterPath :
type : string
budget :
type : number
example : 1000000
genres :
type : array
items :
$ref : '#/components/schemas/Genre'
homepage :
type : string
relatedVideos :
type : array
items :
$ref : '#/components/schemas/RelatedVideo'
originalLanguage :
type : string
originalTitle :
type : string
overview :
type : string
popularity :
type : number
productionCompanies :
type : array
items :
$ref : '#/components/schemas/ProductionCompany'
productionCountries :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
name :
type : string
releaseDate :
type : string
releases :
type : object
properties :
results :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
example : 'US'
rating :
type : string
nullable : true
release_dates :
type : array
items :
type : object
properties :
certification :
type : string
example : 'PG-13'
iso_639_1 :
type : string
nullable : true
note :
type : string
nullable : true
example : 'Blu ray'
release_date :
type : string
example : '2017-07-12T00:00:00.000Z'
type :
type : number
example : 1
revenue :
type : number
nullable : true
runtime :
type : number
spokenLanguages :
type : array
items :
$ref : '#/components/schemas/SpokenLanguage'
status :
type : string
tagline :
type : string
title :
type : string
video :
type : boolean
voteAverage :
type : number
voteCount :
type : number
credits :
type : object
properties :
cast :
type : array
items :
$ref : '#/components/schemas/Cast'
crew :
type : array
items :
$ref : '#/components/schemas/Crew'
collection :
type : object
properties :
id :
type : number
example : 1
name :
type : string
example : A collection
posterPath :
type : string
backdropPath :
type : string
externalIds :
$ref : '#/components/schemas/ExternalIds'
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
watchProviders :
type : array
items :
$ref : '#/components/schemas/WatchProviders'
Episode :
type : object
properties :
id :
type : number
name :
type : string
airDate :
type : string
nullable : true
episodeNumber :
type : number
overview :
type : string
productionCode :
type : string
seasonNumber :
type : number
showId :
type : number
stillPath :
type : string
nullable : true
voteAverage :
type : number
voteCount :
type : number
Season :
type : object
properties :
id :
type : number
airDate :
type : string
nullable : true
episodeCount :
type : number
name :
type : string
overview :
type : string
posterPath :
type : string
seasonNumber :
type : number
episodes :
type : array
items :
$ref : '#/components/schemas/Episode'
TvDetails :
type : object
properties :
id :
type : number
example : 123
backdropPath :
type : string
posterPath :
type : string
contentRatings :
type : object
properties :
results :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
example : 'US'
rating :
type : string
example : 'TV-14'
createdBy :
type : array
items :
type : object
properties :
id :
type : number
name :
type : string
gender :
type : number
profilePath :
type : string
nullable : true
episodeRunTime :
type : array
items :
type : number
firstAirDate :
type : string
genres :
type : array
items :
$ref : '#/components/schemas/Genre'
homepage :
type : string
inProduction :
type : boolean
languages :
type : array
items :
type : string
lastAirDate :
type : string
lastEpisodeToAir :
$ref : '#/components/schemas/Episode'
name :
type : string
nextEpisodeToAir :
$ref : '#/components/schemas/Episode'
networks :
type : array
items :
$ref : '#/components/schemas/ProductionCompany'
numberOfEpisodes :
type : number
numberOfSeason :
type : number
originCountry :
type : array
items :
type : string
originalLanguage :
type : string
originalName :
type : string
overview :
type : string
popularity :
type : number
productionCompanies :
type : array
items :
$ref : '#/components/schemas/ProductionCompany'
productionCountries :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
name :
type : string
spokenLanguages :
type : array
items :
$ref : '#/components/schemas/SpokenLanguage'
seasons :
type : array
items :
$ref : '#/components/schemas/Season'
status :
type : string
tagline :
type : string
type :
type : string
voteAverage :
type : number
voteCount :
type : number
credits :
type : object
properties :
cast :
type : array
items :
$ref : '#/components/schemas/Cast'
crew :
type : array
items :
$ref : '#/components/schemas/Crew'
externalIds :
$ref : '#/components/schemas/ExternalIds'
keywords :
type : array
items :
$ref : '#/components/schemas/Keyword'
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
watchProviders :
type : array
items :
$ref : '#/components/schemas/WatchProviders'
MediaRequest :
type : object
properties :
id :
type : number
example : 123
readOnly : true
status :
type : number
example : 0
description : Status of the request. 1 = PENDING APPROVAL, 2 = APPROVED, 3 = DECLINED
readOnly : true
media :
$ref : '#/components/schemas/MediaInfo'
createdAt :
type : string
example : '2020-09-12T10:00:27.000Z'
readOnly : true
updatedAt :
type : string
example : '2020-09-12T10:00:27.000Z'
readOnly : true
requestedBy :
$ref : '#/components/schemas/User'
modifiedBy :
anyOf :
- $ref : '#/components/schemas/User'
- type : string
nullable : true
is4k :
type : boolean
example : false
serverId :
type : number
profileId :
type : number
rootFolder :
type : string
required :
- id
- status
MediaInfo :
type : object
properties :
id :
type : number
readOnly : true
tmdbId :
type : number
readOnly : true
tvdbId :
type : number
readOnly : true
nullable : true
status :
type : number
requests :
type : array
readOnly : true
items :
$ref : '#/components/schemas/MediaRequest'
createdAt :
type : string
example : '2020-09-12T10:00:27.000Z'
readOnly : true
updatedAt :
type : string
example : '2020-09-12T10:00:27.000Z'
readOnly : true
Cast :
type : object
properties :
id :
type : number
example : 123
castId :
type : number
example : 1
character :
type : string
example : Some Character Name
creditId :
type : string
gender :
type : number
name :
type : string
example : Some Persons Name
order :
type : number
profilePath :
type : string
nullable : true
Crew :
type : object
properties :
id :
type : number
example : 123
creditId :
type : string
gender :
type : number
name :
type : string
example : Some Persons Name
job :
type : string
department :
type : string
profilePath :
type : string
nullable : true
ExternalIds :
type : object
properties :
facebookId :
type : string
nullable : true
freebaseId :
type : string
nullable : true
freebaseMid :
type : string
nullable : true
imdbId :
type : string
nullable : true
instagramId :
type : string
nullable : true
tvdbId :
type : number
nullable : true
tvrageId :
type : number
nullable : true
twitterId :
type : string
nullable : true
ServiceProfile :
type : object
properties :
id :
type : number
example : 1
name :
type : string
example : 720p/1080p
PageInfo :
type : object
properties :
page :
type : number
example : 1
pages :
type : number
example : 10
results :
type : number
example : 100
DiscordSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
botUsername :
type : string
botAvatarUrl :
type : string
webhookUrl :
type : string
enableMentions :
type : boolean
SlackSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
webhookUrl :
type : string
WebPushSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
WebhookSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
webhookUrl :
type : string
authHeader :
type : string
jsonPayload :
type : string
TelegramSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
botUsername :
type : string
botAPI :
type : string
chatId :
type : string
sendSilently :
type : boolean
PushbulletSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
accessToken :
type : string
channelTag :
type : string
nullable : true
PushoverSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
accessToken :
type : string
userToken :
type : string
feat(notif): add Gotify agent (#2196)
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat(notifications): gotify notifications fix
applies changes from #2077 in which Yup validation was failing for types
fix #2183
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat(notifications): gotify notifications fix
applies changes from #2077 in which Yup validation was failing for types
fix #2183
* feat(notifications): incorporate issue feature into gotify notifications
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat: add missing ts field
include notifyAdmin in test notification endpoint
* feat: apply formatting/line break items
add addition line break before conditional, change ordering of notifyAdmin/notifyUser in test
endpoint
* feat: remove duplicated endpoints
during rebase, notification endpoints were duplicated upon rebasing. remove duplicate routes
* feat: correct linting quirks
* feat: formatting improvements
* feat(gotify): refactor axios post to leverage 'getNotificationPayload'
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
3 years ago
GotifySettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
url :
type : string
token :
type : string
LunaSeaSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
webhookUrl :
type : string
profileName :
type : string
NotificationEmailSettings :
type : object
properties :
enabled :
type : boolean
example : false
types :
type : number
example : 2
options :
type : object
properties :
emailFrom :
type : string
example : no -reply@example.com
senderName :
type : string
example : Overseerr
smtpHost :
type : string
example : 127.0 .0 .1
smtpPort :
type : number
example : 465
secure :
type : boolean
example : false
ignoreTls :
type : boolean
example : false
requireTls :
type : boolean
example : false
authUser :
type : string
nullable : true
authPass :
type : string
nullable : true
allowSelfSigned :
type : boolean
example : false
Job :
type : object
properties :
id :
type : string
example : job-name
type :
type : string
enum : [ process, command]
interval :
type : string
enum : [ short, long, fixed]
name :
type : string
example : A Job Name
nextExecutionTime :
type : string
example : '2020-09-02T05:02:23.000Z'
running :
type : boolean
example : false
PersonDetails :
type : object
properties :
id :
type : number
example : 1
name :
type : string
deathday :
type : string
knownForDepartment :
type : string
alsoKnownAs :
type : array
items :
type : string
gender :
type : string
biography :
type : string
popularity :
type : string
placeOfBirth :
type : string
profilePath :
type : string
adult :
type : boolean
imdbId :
type : string
homepage :
type : string
CreditCast :
type : object
properties :
id :
type : number
example : 1
originalLanguage :
type : string
episodeCount :
type : number
overview :
type : string
originCountry :
type : array
items :
type : string
originalName :
type : string
voteCount :
type : number
name :
type : string
mediaType :
type : string
popularity :
type : number
creditId :
type : string
backdropPath :
type : string
firstAirDate :
type : string
voteAverage :
type : number
genreIds :
type : array
items :
type : number
posterPath :
type : string
originalTitle :
type : string
video :
type : boolean
title :
type : string
adult :
type : boolean
releaseDate :
type : string
character :
type : string
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
CreditCrew :
type : object
properties :
id :
type : number
example : 1
originalLanguage :
type : string
episodeCount :
type : number
overview :
type : string
originCountry :
type : array
items :
type : string
originalName :
type : string
voteCount :
type : number
name :
type : string
mediaType :
type : string
popularity :
type : number
creditId :
type : string
backdropPath :
type : string
firstAirDate :
type : string
voteAverage :
type : number
genreIds :
type : array
items :
type : number
posterPath :
type : string
originalTitle :
type : string
video :
type : boolean
title :
type : string
adult :
type : boolean
releaseDate :
type : string
department :
type : string
job :
type : string
mediaInfo :
$ref : '#/components/schemas/MediaInfo'
Keyword :
type : object
properties :
id :
type : number
example : 1
name :
type : string
example : 'anime'
SpokenLanguage :
type : object
properties :
englishName :
type : string
example : 'English'
nullable : true
iso_639_1 :
type : string
example : 'en'
name :
type : string
example : 'English'
Collection :
type : object
properties :
id :
type : number
example : 123
name :
type : string
example : A Movie Collection
overview :
type : string
example : Overview of collection
posterPath :
type : string
backdropPath :
type : string
parts :
type : array
items :
$ref : '#/components/schemas/MovieResult'
SonarrSeries :
type : object
properties :
title :
type : string
example : COVID-25
sortTitle :
type : string
example : covid 25
seasonCount :
type : number
example : 1
status :
type : string
example : upcoming
overview :
type : string
example : The thread is picked up again by Marianne Schmidt which ...
network :
type : string
example : CBS
airTime :
type : string
example : 02 : 15
images :
type : array
items :
type : object
properties :
coverType :
type : string
example : banner
url :
type : string
example : /sonarr/MediaCoverProxy/6467f05d9872726ad08cbf920e5fee4bf69198682260acab8eab5d3c2c958e92/5c8f116c6aa5c.jpg
remotePoster :
type : string
example : https://artworks.thetvdb.com/banners/posters/5c8f116129983.jpg
seasons :
type : array
items :
type : object
properties :
seasonNumber :
type : number
example : 1
monitored :
type : boolean
example : true
year :
type : number
example : 2015
path :
type : string
profileId :
type : number
languageProfileId :
type : number
seasonFolder :
type : boolean
monitored :
type : boolean
useSceneNumbering :
type : boolean
runtime :
type : number
tvdbId :
type : number
example : 12345
tvRageId :
type : number
tvMazeId :
type : number
firstAired :
type : string
lastInfoSync :
type : string
nullable : true
seriesType :
type : string
cleanTitle :
type : string
imdbId :
type : string
titleSlug :
type : string
certification :
type : string
genres :
type : array
items :
type : string
tags :
type : array
items :
type : string
added :
type : string
ratings :
type : array
items :
type : object
properties :
votes :
type : number
value :
type : number
qualityProfileId :
type : number
id :
type : number
nullable : true
rootFolderPath :
type : string
nullable : true
addOptions :
type : array
items :
type : object
properties :
ignoreEpisodesWithFiles :
type : boolean
nullable : true
ignoreEpisodesWithoutFiles :
type : boolean
nullable : true
searchForMissingEpisodes :
type : boolean
nullable : true
UserSettingsNotifications :
type : object
properties :
notificationTypes :
$ref : '#/components/schemas/NotificationAgentTypes'
emailEnabled :
type : boolean
pgpKey :
type : string
nullable : true
discordEnabled :
type : boolean
discordEnabledTypes :
type : number
nullable : true
discordId :
type : string
nullable : true
pushbulletAccessToken :
type : string
nullable : true
pushoverApplicationToken :
type : string
nullable : true
pushoverUserKey :
type : string
nullable : true
telegramEnabled :
type : boolean
telegramBotUsername :
type : string
nullable : true
telegramChatId :
type : string
nullable : true
telegramSendSilently :
type : boolean
nullable : true
NotificationAgentTypes :
type : object
properties :
discord :
type : number
email :
type : number
pushbullet :
type : number
pushover :
type : number
slack :
type : number
telegram :
type : number
webhook :
type : number
webpush :
type : number
WatchProviders :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
link :
type : string
buy :
type : array
items :
$ref : '#/components/schemas/WatchProviderDetails'
flatrate :
items :
$ref : '#/components/schemas/WatchProviderDetails'
WatchProviderDetails :
type : object
properties :
displayPriority :
type : number
logoPath :
type : string
id :
type : number
name :
type : string
Issue :
type : object
properties :
id :
type : number
example : 1
issueType :
type : number
example : 1
media :
$ref : '#/components/schemas/MediaInfo'
createdBy :
$ref : '#/components/schemas/User'
modifiedBy :
$ref : '#/components/schemas/User'
comments :
type : array
items :
$ref : '#/components/schemas/IssueComment'
IssueComment :
type : object
properties :
id :
type : number
example : 1
user :
$ref : '#/components/schemas/User'
message :
type : string
example : A comment
securitySchemes :
cookieAuth :
type : apiKey
name : connect.sid
in : cookie
apiKey :
type : apiKey
in : header
name : X-Api-Key
paths :
/status :
get :
summary : Get Overseerr status
description : Returns the current Overseerr status in a JSON object.
security : [ ]
tags :
- public
responses :
'200' :
description : Returned status
content :
application/json :
schema :
type : object
properties :
version :
type : string
example : 1.0 .0
commitTag :
type : string
updateAvailable :
type : boolean
commitsBehind :
type : number
restartRequired :
type : boolean
/status/appdata :
get :
summary : Get application data volume status
description : For Docker installs, returns whether or not the volume mount was configured properly. Always returns true for non-Docker installs.
security : [ ]
tags :
- public
responses :
'200' :
description : Application data volume status and path
content :
application/json :
schema :
type : object
properties :
appData :
type : boolean
example : true
appDataPath :
type : string
example : /app/config
/settings/main :
get :
summary : Get main settings
description : Retrieves all main settings in a JSON object.
tags :
- settings
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/MainSettings'
post :
summary : Update main settings
description : Updates main settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/MainSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/MainSettings'
/settings/main/regenerate :
post :
summary : Get main settings with newly-generated API key
description : Returns main settings in a JSON object, using the new API key.
tags :
- settings
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/MainSettings'
/settings/plex :
get :
summary : Get Plex settings
description : Retrieves current Plex settings.
tags :
- settings
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/PlexSettings'
post :
summary : Update Plex settings
description : Updates Plex settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/PlexSettings'
responses :
'200' :
description : 'Values were successfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/PlexSettings'
/settings/plex/library :
get :
summary : Get Plex libraries
description : Returns a list of Plex libraries in a JSON array.
tags :
- settings
parameters :
- in : query
name : sync
description : Syncs the current libraries with the current Plex server
schema :
type : string
nullable : true
- in : query
name : enable
explode : false
allowReserved : true
description : Comma separated list of libraries to enable. Any libraries not passed will be disabled!
schema :
type : string
nullable : true
responses :
'200' :
description : 'Plex libraries returned'
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/PlexLibrary'
/settings/plex/sync :
get :
summary : Get status of full Plex library scan
description : Returns scan progress in a JSON array.
tags :
- settings
responses :
'200' :
description : Status of Plex scan
content :
application/json :
schema :
type : object
properties :
running :
type : boolean
example : false
progress :
type : number
example : 0
total :
type : number
example : 100
currentLibrary :
$ref : '#/components/schemas/PlexLibrary'
libraries :
type : array
items :
$ref : '#/components/schemas/PlexLibrary'
post :
summary : Start full Plex library scan
description : Runs a full Plex library scan and returns the progress in a JSON array.
tags :
- settings
requestBody :
content :
application/json :
schema :
type : object
properties :
cancel :
type : boolean
example : false
start :
type : boolean
example : false
responses :
'200' :
description : Status of Plex scan
content :
application/json :
schema :
type : object
properties :
running :
type : boolean
example : false
progress :
type : number
example : 0
total :
type : number
example : 100
currentLibrary :
$ref : '#/components/schemas/PlexLibrary'
libraries :
type : array
items :
$ref : '#/components/schemas/PlexLibrary'
/settings/plex/devices/servers :
get :
summary : Gets the user's available Plex servers
description : Returns a list of available Plex servers and their connectivity state
tags :
- settings
responses :
'200' :
description : OK
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/PlexDevice'
/settings/plex/users :
get :
summary : Get Plex users
description : |
Returns a list of Plex users in a JSON array.
Requires the `MANAGE_USERS` permission.
tags :
- settings
- users
responses :
'200' :
description : Plex users
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : string
title :
type : string
username :
type : string
email :
type : string
thumb :
type : string
/settings/tautulli :
get :
summary : Get Tautulli settings
description : Retrieves current Tautulli settings.
tags :
- settings
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/TautulliSettings'
post :
summary : Update Tautulli settings
description : Updates Tautulli settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/TautulliSettings'
responses :
'200' :
description : 'Values were successfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/TautulliSettings'
/settings/radarr :
get :
summary : Get Radarr settings
description : Returns all Radarr settings in a JSON array.
tags :
- settings
responses :
'200' :
description : 'Values were returned'
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/RadarrSettings'
post :
summary : Create Radarr instance
description : Creates a new Radarr instance from the request body.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/RadarrSettings'
responses :
'201' :
description : 'New Radarr instance created'
content :
application/json :
schema :
$ref : '#/components/schemas/RadarrSettings'
/settings/radarr/test :
post :
summary : Test Radarr configuration
description : Tests if the Radarr configuration is valid. Returns profiles and root folders on success.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
hostname :
type : string
example : '127.0.0.1'
port :
type : number
example : 7878
apiKey :
type : string
example : yourapikey
useSsl :
type : boolean
example : false
baseUrl :
type : string
required :
- hostname
- port
- apiKey
- useSsl
responses :
'200' :
description : Succesfully connected to Radarr instance
content :
application/json :
schema :
type : object
properties :
profiles :
type : array
items :
$ref : '#/components/schemas/ServiceProfile'
/settings/radarr/{radarrId}:
put :
summary : Update Radarr instance
description : Updates an existing Radarr instance with the provided values.
tags :
- settings
parameters :
- in : path
name : radarrId
required : true
schema :
type : integer
description : Radarr instance ID
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/RadarrSettings'
responses :
'200' :
description : 'Radarr instance updated'
content :
application/json :
schema :
$ref : '#/components/schemas/RadarrSettings'
delete :
summary : Delete Radarr instance
description : Deletes an existing Radarr instance based on the radarrId parameter.
tags :
- settings
parameters :
- in : path
name : radarrId
required : true
schema :
type : integer
description : Radarr instance ID
responses :
'200' :
description : 'Radarr instance updated'
content :
application/json :
schema :
$ref : '#/components/schemas/RadarrSettings'
/settings/radarr/{radarrId}/profiles:
get :
summary : Get available Radarr profiles
description : Returns a list of profiles available on the Radarr server instance in a JSON array.
tags :
- settings
parameters :
- in : path
name : radarrId
required : true
schema :
type : integer
description : Radarr instance ID
responses :
'200' :
description : Returned list of profiles
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/ServiceProfile'
/settings/sonarr :
get :
summary : Get Sonarr settings
description : Returns all Sonarr settings in a JSON array.
tags :
- settings
responses :
'200' :
description : 'Values were returned'
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/SonarrSettings'
post :
summary : Create Sonarr instance
description : Creates a new Sonarr instance from the request body.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/SonarrSettings'
responses :
'201' :
description : 'New Sonarr instance created'
content :
application/json :
schema :
$ref : '#/components/schemas/SonarrSettings'
/settings/sonarr/test :
post :
summary : Test Sonarr configuration
description : Tests if the Sonarr configuration is valid. Returns profiles and root folders on success.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
hostname :
type : string
example : '127.0.0.1'
port :
type : number
example : 8989
apiKey :
type : string
example : yourapikey
useSsl :
type : boolean
example : false
baseUrl :
type : string
required :
- hostname
- port
- apiKey
- useSsl
responses :
'200' :
description : Succesfully connected to Sonarr instance
content :
application/json :
schema :
type : object
properties :
profiles :
type : array
items :
$ref : '#/components/schemas/ServiceProfile'
/settings/sonarr/{sonarrId}:
put :
summary : Update Sonarr instance
description : Updates an existing Sonarr instance with the provided values.
tags :
- settings
parameters :
- in : path
name : sonarrId
required : true
schema :
type : integer
description : Sonarr instance ID
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/SonarrSettings'
responses :
'200' :
description : 'Sonarr instance updated'
content :
application/json :
schema :
$ref : '#/components/schemas/SonarrSettings'
delete :
summary : Delete Sonarr instance
description : Deletes an existing Sonarr instance based on the sonarrId parameter.
tags :
- settings
parameters :
- in : path
name : sonarrId
required : true
schema :
type : integer
description : Sonarr instance ID
responses :
'200' :
description : 'Sonarr instance updated'
content :
application/json :
schema :
$ref : '#/components/schemas/SonarrSettings'
/settings/public :
get :
summary : Get public settings
security : [ ]
description : Returns settings that are not protected or sensitive. Mainly used to determine if the application has been configured for the first time.
tags :
- settings
responses :
'200' :
description : Public settings returned
content :
application/json :
schema :
$ref : '#/components/schemas/PublicSettings'
/settings/initialize :
post :
summary : Initialize application
description : Sets the app as initialized, allowing the user to navigate to pages other than the setup page.
tags :
- settings
responses :
'200' :
description : Public settings returned
content :
application/json :
schema :
$ref : '#/components/schemas/PublicSettings'
/settings/jobs :
get :
summary : Get scheduled jobs
description : Returns list of all scheduled jobs and details about their next execution time in a JSON array.
tags :
- settings
responses :
'200' :
description : Scheduled jobs returned
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/Job'
/settings/jobs/{jobId}/run:
post :
summary : Invoke a specific job
description : Invokes a specific job to run. Will return the new job status in JSON format.
tags :
- settings
parameters :
- in : path
name : jobId
required : true
schema :
type : string
responses :
'200' :
description : Invoked job returned
content :
application/json :
schema :
$ref : '#/components/schemas/Job'
/settings/jobs/{jobId}/cancel:
post :
summary : Cancel a specific job
description : Cancels a specific job. Will return the new job status in JSON format.
tags :
- settings
parameters :
- in : path
name : jobId
required : true
schema :
type : string
responses :
'200' :
description : Canceled job returned
content :
application/json :
schema :
$ref : '#/components/schemas/Job'
/settings/jobs/{jobId}/schedule:
post :
summary : Modify job schedule
description : Re-registers the job with the schedule specified. Will return the job in JSON format.
tags :
- settings
parameters :
- in : path
name : jobId
required : true
schema :
type : string
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
schedule :
type : string
example : '0 */5 * * * *'
responses :
'200' :
description : Rescheduled job
content :
application/json :
schema :
$ref : '#/components/schemas/Job'
/settings/cache :
get :
summary : Get a list of active caches
description : Retrieves a list of all active caches and their current stats.
tags :
- settings
responses :
'200' :
description : Caches returned
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : string
example : cache-id
name :
type : string
example : cache name
stats :
type : object
properties :
hits :
type : number
misses :
type : number
keys :
type : number
ksize :
type : number
vsize :
type : number
/settings/cache/{cacheId}/flush:
post :
summary : Flush a specific cache
description : Flushes all data from the cache ID provided
tags :
- settings
parameters :
- in : path
name : cacheId
required : true
schema :
type : string
responses :
'204' :
description : 'Flushed cache'
/settings/logs :
get :
summary : Returns logs
description : Returns list of all log items and details
tags :
- settings
parameters :
- in : query
name : take
schema :
type : number
nullable : true
example : 25
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
- in : query
name : filter
schema :
type : string
nullable : true
enum : [ debug, info, warn, error]
default : debug
responses :
'200' :
description : Server log returned
content :
application/json :
schema :
type : array
items :
type : object
properties :
label :
type : string
example : server
level :
type : string
example : info
message :
type : string
example : Server ready on port 5055
timestamp :
type : string
example : '2020-12-15T16:20:00.069Z'
/settings/notifications/email :
get :
summary : Get email notification settings
description : Returns current email notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned email settings
content :
application/json :
schema :
$ref : '#/components/schemas/NotificationEmailSettings'
post :
summary : Update email notification settings
description : Updates email notification settings with provided values
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/NotificationEmailSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/NotificationEmailSettings'
/settings/notifications/email/test :
post :
summary : Test email settings
description : Sends a test notification to the email agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/NotificationEmailSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/discord :
get :
summary : Get Discord notification settings
description : Returns current Discord notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned Discord settings
content :
application/json :
schema :
$ref : '#/components/schemas/DiscordSettings'
post :
summary : Update Discord notification settings
description : Updates Discord notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/DiscordSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/DiscordSettings'
/settings/notifications/discord/test :
post :
summary : Test Discord settings
description : Sends a test notification to the Discord agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/DiscordSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/lunasea :
get :
summary : Get LunaSea notification settings
description : Returns current LunaSea notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned LunaSea settings
content :
application/json :
schema :
$ref : '#/components/schemas/LunaSeaSettings'
post :
summary : Update LunaSea notification settings
description : Updates LunaSea notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/LunaSeaSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/LunaSeaSettings'
/settings/notifications/lunasea/test :
post :
summary : Test LunaSea settings
description : Sends a test notification to the LunaSea agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/LunaSeaSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/pushbullet :
get :
summary : Get Pushbullet notification settings
description : Returns current Pushbullet notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned Pushbullet settings
content :
application/json :
schema :
$ref : '#/components/schemas/PushbulletSettings'
post :
summary : Update Pushbullet notification settings
description : Update Pushbullet notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/PushbulletSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/PushbulletSettings'
/settings/notifications/pushbullet/test :
post :
summary : Test Pushbullet settings
description : Sends a test notification to the Pushbullet agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/PushbulletSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/pushover :
get :
summary : Get Pushover notification settings
description : Returns current Pushover notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned Pushover settings
content :
application/json :
schema :
$ref : '#/components/schemas/PushoverSettings'
post :
summary : Update Pushover notification settings
description : Update Pushover notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/PushoverSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/PushoverSettings'
/settings/notifications/pushover/test :
post :
summary : Test Pushover settings
description : Sends a test notification to the Pushover agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/PushoverSettings'
responses :
'204' :
description : Test notification attempted
feat(notif): add Gotify agent (#2196)
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat(notifications): gotify notifications fix
applies changes from #2077 in which Yup validation was failing for types
fix #2183
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat(notifications): gotify notifications fix
applies changes from #2077 in which Yup validation was failing for types
fix #2183
* feat(notifications): incorporate issue feature into gotify notifications
* feat(notifications): adds gotify notifications
adds new settings screen for gotify notifications including url, token and types settings
fix #2183
* feat(notif): add Gotify agent
addresses PR comments, runs i18n:extract
fix #2183
* reword validationTokenRequired
change wording to indicate presence, not validity
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
* feat: add missing ts field
include notifyAdmin in test notification endpoint
* feat: apply formatting/line break items
add addition line break before conditional, change ordering of notifyAdmin/notifyUser in test
endpoint
* feat: remove duplicated endpoints
during rebase, notification endpoints were duplicated upon rebasing. remove duplicate routes
* feat: correct linting quirks
* feat: formatting improvements
* feat(gotify): refactor axios post to leverage 'getNotificationPayload'
Co-authored-by: TheCatLady <52870424+TheCatLady@users.noreply.github.com>
3 years ago
/settings/notifications/gotify :
get :
summary : Get Gotify notification settings
description : Returns current Gotify notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned Gotify settings
content :
application/json :
schema :
$ref : '#/components/schemas/GotifySettings'
post :
summary : Update Gotify notification settings
description : Update Gotify notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/GotifySettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/GotifySettings'
/settings/notifications/gotify/test :
post :
summary : Test Gotify settings
description : Sends a test notification to the Gotify agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/GotifySettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/slack :
get :
summary : Get Slack notification settings
description : Returns current Slack notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned slack settings
content :
application/json :
schema :
$ref : '#/components/schemas/SlackSettings'
post :
summary : Update Slack notification settings
description : Updates Slack notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/SlackSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/SlackSettings'
/settings/notifications/slack/test :
post :
summary : Test Slack settings
description : Sends a test notification to the Slack agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/SlackSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/telegram :
get :
summary : Get Telegram notification settings
description : Returns current Telegram notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned Telegram settings
content :
application/json :
schema :
$ref : '#/components/schemas/TelegramSettings'
post :
summary : Update Telegram notification settings
description : Update Telegram notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/TelegramSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/TelegramSettings'
/settings/notifications/telegram/test :
post :
summary : Test Telegram settings
description : Sends a test notification to the Telegram agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/TelegramSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/webpush :
get :
summary : Get Web Push notification settings
description : Returns current Web Push notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned web push settings
content :
application/json :
schema :
$ref : '#/components/schemas/WebPushSettings'
post :
summary : Update Web Push notification settings
description : Updates Web Push notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/WebPushSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/WebPushSettings'
/settings/notifications/webpush/test :
post :
summary : Test Web Push settings
description : Sends a test notification to the Web Push agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/WebPushSettings'
responses :
'204' :
description : Test notification attempted
/settings/notifications/webhook :
get :
summary : Get webhook notification settings
description : Returns current webhook notification settings in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned webhook settings
content :
application/json :
schema :
$ref : '#/components/schemas/WebhookSettings'
post :
summary : Update webhook notification settings
description : Updates webhook notification settings with the provided values.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/WebhookSettings'
responses :
'200' :
description : 'Values were sucessfully updated'
content :
application/json :
schema :
$ref : '#/components/schemas/WebhookSettings'
/settings/notifications/webhook/test :
post :
summary : Test webhook settings
description : Sends a test notification to the webhook agent.
tags :
- settings
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/WebhookSettings'
responses :
'204' :
description : Test notification attempted
/settings/about :
get :
summary : Get server stats
description : Returns current server stats in a JSON object.
tags :
- settings
responses :
'200' :
description : Returned about settings
content :
application/json :
schema :
type : object
properties :
version :
type : string
example : '1.0.0'
totalRequests :
type : number
example : 100
totalMediaItems :
type : number
example : 100
tz :
type : string
nullable : true
example : Asia/Tokyo
appDataPath :
type : string
example : /app/config
/auth/me :
get :
summary : Get logged-in user
description : Returns the currently logged-in user.
tags :
- auth
- users
responses :
'200' :
description : Object containing the logged-in user in JSON
content :
application/json :
schema :
$ref : '#/components/schemas/User'
/auth/plex :
post :
summary : Sign in using a Plex token
description : Takes an `authToken` (Plex token) to log the user in. Generates a session cookie for use in further requests. If the user does not exist, and there are no other users, then a user will be created with full admin privileges. If a user logs in with access to the main Plex server, they will also have an account created, but without any permissions.
security : [ ]
tags :
- auth
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/User'
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
authToken :
type : string
required :
- authToken
/auth/local :
post :
summary : Sign in using a local account
description : Takes an `email` and a `password` to log the user in. Generates a session cookie for use in further requests.
security : [ ]
tags :
- auth
responses :
'200' :
description : OK
content :
application/json :
schema :
$ref : '#/components/schemas/User'
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
email :
type : string
password :
type : string
required :
- email
- password
/auth/logout :
post :
summary : Sign out and clear session cookie
description : Completely clear the session cookie and associated values, effectively signing the user out.
tags :
- auth
responses :
'200' :
description : OK
content :
application/json :
schema :
type : object
properties :
status :
type : string
example : 'ok'
/auth/reset-password :
post :
summary : Send a reset password email
description : Sends a reset password email to the email if the user exists
security : [ ]
tags :
- users
responses :
'200' :
description : OK
content :
application/json :
schema :
type : object
properties :
status :
type : string
example : 'ok'
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
email :
type : string
required :
- email
/auth/reset-password/{guid}:
post :
summary : Reset the password for a user
description : Resets the password for a user if the given guid is connected to a user
security : [ ]
tags :
- users
parameters :
- in : path
name : guid
required : true
schema :
type : string
example : '9afef5a7-ec89-4d5f-9397-261e96970b50'
responses :
'200' :
description : OK
content :
application/json :
schema :
type : object
properties :
status :
type : string
example : 'ok'
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
password :
type : string
required :
- password
/user :
get :
summary : Get all users
description : Returns all users in a JSON object.
tags :
- users
parameters :
- in : query
name : take
schema :
type : number
nullable : true
example : 20
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
- in : query
name : sort
schema :
type : string
enum : [ created, updated, requests, displayname]
default : created
responses :
'200' :
description : A JSON array of all users
content :
application/json :
schema :
type : object
properties :
pageInfo :
$ref : '#/components/schemas/PageInfo'
results :
type : array
items :
$ref : '#/components/schemas/User'
post :
summary : Create new user
description : |
Creates a new user. Requires the `MANAGE_USERS` permission.
tags :
- users
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
email :
type : string
example : 'hey@itsme.com'
username :
type : string
permissions :
type : number
responses :
'201' :
description : The created user
content :
application/json :
schema :
$ref : '#/components/schemas/User'
put :
summary : Update batch of users
description : |
Update users with given IDs with provided values in request `body.settings`. You cannot update users' Plex tokens through this request.
Requires the `MANAGE_USERS` permission.
tags :
- users
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
ids :
type : array
items :
type : integer
permissions :
type : integer
responses :
'200' :
description : Successfully updated user details
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/User'
/user/import-from-plex :
post :
summary : Import all users from Plex
description : |
Fetches and imports users from the Plex server. If a list of Plex IDs is provided in the request body, only the specified users will be imported. Otherwise, all users will be imported.
Requires the `MANAGE_USERS` permission.
tags :
- users
requestBody :
required : false
content :
application/json :
schema :
type : object
properties :
plexIds :
type : array
items :
type : string
responses :
'201' :
description : A list of the newly created users
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/User'
/user/registerPushSubscription :
post :
summary : Register a web push /user/registerPushSubscription
description : Registers a web push subscription for the logged-in user
tags :
- users
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
endpoint :
type : string
auth :
type : string
p256dh :
type : string
required :
- endpoint
- auth
- p256dh
responses :
'204' :
description : Successfully registered push subscription
/user/{userId}:
get :
summary : Get user by ID
description : |
Retrieves user details in a JSON object. Requires the `MANAGE_USERS` permission.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : Users details in JSON
content :
application/json :
schema :
$ref : '#/components/schemas/User'
put :
summary : Update a user by user ID
description : |
Update a user with the provided values. You cannot update a user's Plex token through this request.
Requires the `MANAGE_USERS` permission.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/User'
responses :
'200' :
description : Successfully updated user details
content :
application/json :
schema :
$ref : '#/components/schemas/User'
delete :
summary : Delete user by ID
description : Deletes the user with the provided userId. Requires the `MANAGE_USERS` permission.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User successfully deleted
content :
application/json :
schema :
$ref : '#/components/schemas/User'
/user/{userId}/requests:
get :
summary : Get user by ID
description : |
Retrieves a user's requests in a JSON object.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
- in : query
name : take
schema :
type : number
nullable : true
example : 20
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
responses :
'200' :
description : User's requests returned
content :
application/json :
schema :
type : object
properties :
pageInfo :
$ref : '#/components/schemas/PageInfo'
results :
type : array
items :
$ref : '#/components/schemas/MediaRequest'
/user/{userId}/quota:
get :
summary : Get quotas for a specific user
description : |
Returns quota details for a user in a JSON object. Requires `MANAGE_USERS` permission if viewing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User quota details in JSON
content :
application/json :
schema :
type : object
properties :
movie :
type : object
properties :
days :
type : number
example : 7
limit :
type : number
example : 10
used :
type : number
example : 6
remaining :
type : number
example : 4
restricted :
type : boolean
example : false
tv :
type : object
properties :
days :
type : number
example : 7
limit :
type : number
example : 10
used :
type : number
example : 6
remaining :
type : number
example : 4
restricted :
type : boolean
example : false
/user/{userId}/settings/main:
get :
summary : Get general settings for a user
description : Returns general settings for a specific user. Requires `MANAGE_USERS` permission if viewing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User general settings returned
content :
application/json :
schema :
type : object
properties :
username :
type : string
example : 'Mr User'
post :
summary : Update general settings for a user
description : Updates and returns general settings for a specific user. Requires `MANAGE_USERS` permission if editing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
username :
type : string
nullable : true
responses :
'200' :
description : Updated user general settings returned
content :
application/json :
schema :
type : object
properties :
username :
type : string
example : 'Mr User'
/user/{userId}/settings/password:
get :
summary : Get password page informatiom
description : Returns important data for the password page to function correctly. Requires `MANAGE_USERS` permission if viewing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User password page information returned
content :
application/json :
schema :
type : object
properties :
hasPassword :
type : boolean
example : true
post :
summary : Update password for a user
description : Updates a user's password. Requires `MANAGE_USERS` permission if editing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
currentPassword :
type : string
nullable : true
newPassword :
type : string
required :
- newPassword
responses :
'204' :
description : User password updated
/user/{userId}/settings/notifications:
get :
summary : Get notification settings for a user
description : Returns notification settings for a specific user. Requires `MANAGE_USERS` permission if viewing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User notification settings returned
content :
application/json :
schema :
$ref : '#/components/schemas/UserSettingsNotifications'
post :
summary : Update notification settings for a user
description : Updates and returns notification settings for a specific user. Requires `MANAGE_USERS` permission if editing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/UserSettingsNotifications'
responses :
'200' :
description : Updated user notification settings returned
content :
application/json :
schema :
$ref : '#/components/schemas/UserSettingsNotifications'
/user/{userId}/settings/permissions:
get :
summary : Get permission settings for a user
description : Returns permission settings for a specific user. Requires `MANAGE_USERS` permission if viewing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : User permission settings returned
content :
application/json :
schema :
type : object
properties :
permissions :
type : number
example : 2
post :
summary : Update permission settings for a user
description : Updates and returns permission settings for a specific user. Requires `MANAGE_USERS` permission if editing other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
permissions :
type : number
required :
- permissions
responses :
'200' :
description : Updated user general settings returned
content :
application/json :
schema :
type : object
properties :
permissions :
type : number
example : 2
/user/{userId}/watch_data:
get :
summary : Get watch data
description : |
Returns play count, play duration, and recently watched media.
Requires the `ADMIN` permission to fetch results for other users.
tags :
- users
parameters :
- in : path
name : userId
required : true
schema :
type : number
responses :
'200' :
description : Users
content :
application/json :
schema :
type : object
properties :
recentlyWatched :
type : array
items :
$ref : '#/components/schemas/MediaInfo'
playCount :
type : number
/search :
get :
summary : Search for movies, TV shows, or people
description : Returns a list of movies, TV shows, or people a JSON object.
tags :
- search
parameters :
- in : query
name : query
required : true
schema :
type : string
example : 'Mulan'
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
anyOf :
- $ref : '#/components/schemas/MovieResult'
- $ref : '#/components/schemas/TvResult'
- $ref : '#/components/schemas/PersonResult'
/discover/movies :
get :
summary : Discover movies
description : Returns a list of movies in a JSON object.
tags :
- search
parameters :
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
- in : query
name : genre
schema :
type : number
example : 18
- in : query
name : studio
schema :
type : number
example : 1
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/movies/genre/{genreId}:
get :
summary : Discover movies by genre
description : Returns a list of movies based on the provided genre ID in a JSON object.
tags :
- search
parameters :
- in : path
name : genreId
required : true
schema :
type : string
example : '1'
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
genre :
$ref : '#/components/schemas/Genre'
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/movies/language/{language}:
get :
summary : Discover movies by original language
description : Returns a list of movies based on the provided ISO 639-1 language code in a JSON object.
tags :
- search
parameters :
- in : path
name : language
required : true
schema :
type : string
example : en
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
language :
$ref : '#/components/schemas/SpokenLanguage'
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/movies/studio/{studioId}:
get :
summary : Discover movies by studio
description : Returns a list of movies based on the provided studio ID in a JSON object.
tags :
- search
parameters :
- in : path
name : studioId
required : true
schema :
type : string
example : '1'
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
studio :
$ref : '#/components/schemas/ProductionCompany'
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/movies/upcoming :
get :
summary : Upcoming movies
description : Returns a list of movies in a JSON object.
tags :
- search
parameters :
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/tv :
get :
summary : Discover TV shows
description : Returns a list of TV shows in a JSON object.
tags :
- search
parameters :
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
- in : query
name : genre
schema :
type : number
example : 18
- in : query
name : network
schema :
type : number
example : 1
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/discover/tv/language/{language}:
get :
summary : Discover TV shows by original language
description : Returns a list of TV shows based on the provided ISO 639-1 language code in a JSON object.
tags :
- search
parameters :
- in : path
name : language
required : true
schema :
type : string
example : en
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
language :
$ref : '#/components/schemas/SpokenLanguage'
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/discover/tv/genre/{genreId}:
get :
summary : Discover TV shows by genre
description : Returns a list of TV shows based on the provided genre ID in a JSON object.
tags :
- search
parameters :
- in : path
name : genreId
required : true
schema :
type : string
example : '1'
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
genre :
$ref : '#/components/schemas/Genre'
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/discover/tv/network/{networkId}:
get :
summary : Discover TV shows by network
description : Returns a list of TV shows based on the provided network ID in a JSON object.
tags :
- search
parameters :
- in : path
name : networkId
required : true
schema :
type : string
example : '1'
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
network :
$ref : '#/components/schemas/Network'
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/discover/tv/upcoming :
get :
summary : Discover Upcoming TV shows
description : Returns a list of upcoming TV shows in a JSON object.
tags :
- search
parameters :
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/discover/trending :
get :
summary : Trending movies and TV
description : Returns a list of movies and TV shows in a JSON object.
tags :
- search
parameters :
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
anyOf :
- $ref : '#/components/schemas/MovieResult'
- $ref : '#/components/schemas/TvResult'
- $ref : '#/components/schemas/PersonResult'
/discover/keyword/{keywordId}/movies:
get :
summary : Get movies from keyword
description : Returns list of movies based on the provided keyword ID a JSON object.
tags :
- search
parameters :
- in : path
name : keywordId
required : true
schema :
type : number
example : 207317
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : List of movies
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/discover/genreslider/movie :
get :
summary : Get genre slider data for movies
description : Returns a list of genres with backdrops attached
tags :
- search
parameters :
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Genre slider data returned
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : number
example : 1
backdrops :
type : array
items :
type : string
name :
type : string
example : Genre Name
/discover/genreslider/tv :
get :
summary : Get genre slider data for TV series
description : Returns a list of genres with backdrops attached
tags :
- search
parameters :
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Genre slider data returned
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : number
example : 1
backdrops :
type : array
items :
type : string
name :
type : string
example : Genre Name
/request :
get :
summary : Get all requests
description : |
Returns all requests if the user has the `ADMIN` or `MANAGE_REQUESTS` permissions. Otherwise, only the logged-in user's requests are returned.
If the `requestedBy` parameter is specified, only requests from that particular user ID will be returned.
tags :
- request
parameters :
- in : query
name : take
schema :
type : number
nullable : true
example : 20
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
- in : query
name : filter
schema :
type : string
nullable : true
enum :
[
all,
approved,
available,
pending,
processing,
unavailable,
failed,
]
- in : query
name : sort
schema :
type : string
enum : [ added, modified]
default : added
- in : query
name : requestedBy
schema :
type : number
nullable : true
example : 1
responses :
'200' :
description : Requests returned
content :
application/json :
schema :
type : object
properties :
pageInfo :
$ref : '#/components/schemas/PageInfo'
results :
type : array
items :
$ref : '#/components/schemas/MediaRequest'
post :
summary : Create new request
description : |
Creates a new request with the provided media ID and type. The `REQUEST` permission is required.
If the user has the `ADMIN` or `AUTO_APPROVE` permissions, their request will be auomatically approved.
tags :
- request
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
mediaType :
type : string
enum : [ movie, tv]
example : movie
mediaId :
type : number
example : 123
tvdbId :
type : number
example : 123
seasons :
type : array
items :
type : number
is4k :
type : boolean
example : false
serverId :
type : number
profileId :
type : number
rootFolder :
type : string
languageProfileId :
type : number
userId :
type : number
nullable : true
required :
- mediaType
- mediaId
responses :
'201' :
description : Succesfully created the request
content :
application/json :
schema :
$ref : '#/components/schemas/MediaRequest'
/request/count :
get :
summary : Gets request counts
description : |
Returns the number of pending and approved requests.
tags :
- request
responses :
'200' :
description : Request counts returned
content :
application/json :
schema :
type : object
properties :
total :
type : number
movie :
type : number
tv :
type : number
pending :
type : number
approved :
type : number
declined :
type : number
processing :
type : number
available :
type : number
/request/{requestId}:
get :
summary : Get MediaRequest
description : Returns a specific MediaRequest in a JSON object.
tags :
- request
parameters :
- in : path
name : requestId
description : Request ID
required : true
example : '1'
schema :
type : string
responses :
'200' :
description : Succesfully returns request
content :
application/json :
schema :
$ref : '#/components/schemas/MediaRequest'
put :
summary : Update MediaRequest
description : Updates a specific media request and returns the request in a JSON object.. Requires the `MANAGE_REQUESTS` permission.
tags :
- request
parameters :
- in : path
name : requestId
description : Request ID
required : true
example : '1'
schema :
type : string
responses :
'200' :
description : Succesfully updated request
content :
application/json :
schema :
$ref : '#/components/schemas/MediaRequest'
delete :
summary : Delete request
description : Removes a request. If the user has the `MANAGE_REQUESTS` permission, any request can be removed. Otherwise, only pending requests can be removed.
tags :
- request
parameters :
- in : path
name : requestId
description : Request ID
required : true
example : '1'
schema :
type : string
responses :
'204' :
description : Succesfully removed request
/request/{requestId}/retry:
post :
summary : Retry failed request
description : |
Retries a request by resending requests to Sonarr or Radarr.
Requires the `MANAGE_REQUESTS` permission or `ADMIN`.
tags :
- request
parameters :
- in : path
name : requestId
description : Request ID
required : true
schema :
type : string
example : '1'
responses :
'200' :
description : Retry triggered
content :
application/json :
schema :
$ref : '#/components/schemas/MediaRequest'
/request/{requestId}/{status}:
post :
summary : Update a request's status
description : |
Updates a request's status to approved or declined. Also returns the request in a JSON object.
Requires the `MANAGE_REQUESTS` permission or `ADMIN`.
tags :
- request
parameters :
- in : path
name : requestId
description : Request ID
required : true
schema :
type : string
example : '1'
- in : path
name : status
description : New status
required : true
schema :
type : string
enum : [ pending, approve, decline, available]
responses :
'200' :
description : Request status changed
content :
application/json :
schema :
$ref : '#/components/schemas/MediaRequest'
/movie/{movieId}:
get :
summary : Get movie details
description : Returns full movie details in a JSON object.
tags :
- movies
parameters :
- in : path
name : movieId
required : true
schema :
type : number
example : 337401
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Movie details
content :
application/json :
schema :
$ref : '#/components/schemas/MovieDetails'
/movie/{movieId}/recommendations:
get :
summary : Get recommended movies
description : Returns list of recommended movies based on provided movie ID in a JSON object.
tags :
- movies
parameters :
- in : path
name : movieId
required : true
schema :
type : number
example : 337401
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : List of movies
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/movie/{movieId}/similar:
get :
summary : Get similar movies
description : Returns list of similar movies based on the provided movieId in a JSON object.
tags :
- movies
parameters :
- in : path
name : movieId
required : true
schema :
type : number
example : 337401
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : List of movies
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/MovieResult'
/movie/{movieId}/ratings:
get :
summary : Get movie ratings
description : Returns ratings based on the provided movieId in a JSON object.
tags :
- movies
parameters :
- in : path
name : movieId
required : true
schema :
type : number
example : 337401
responses :
'200' :
description : Ratings returned
content :
application/json :
schema :
type : object
properties :
title :
type : string
example : Mulan
year :
type : number
example : 2020
url :
type : string
example : 'http://www.rottentomatoes.com/m/mulan_2020/'
criticsScore :
type : number
example : 85
criticsRating :
type : string
enum : [ 'Rotten' , 'Fresh' , 'Certified Fresh' ]
audienceScore :
type : number
example : 65
audienceRating :
type : string
enum : [ 'Spilled' , 'Upright' ]
/tv/{tvId}:
get :
summary : Get TV details
description : Returns full TV details in a JSON object.
tags :
- tv
parameters :
- in : path
name : tvId
required : true
schema :
type : number
example : 76479
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : TV details
content :
application/json :
schema :
$ref : '#/components/schemas/TvDetails'
/tv/{tvId}/season/{seasonId}:
get :
summary : Get season details and episode list
description : Returns season details with a list of episodes in a JSON object.
tags :
- tv
parameters :
- in : path
name : tvId
required : true
schema :
type : number
example : 76479
- in : path
name : seasonId
required : true
schema :
type : number
example : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : TV details
content :
application/json :
schema :
$ref : '#/components/schemas/Season'
/tv/{tvId}/recommendations:
get :
summary : Get recommended TV series
description : Returns list of recommended TV series based on the provided tvId in a JSON object.
tags :
- tv
parameters :
- in : path
name : tvId
required : true
schema :
type : number
example : 76479
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : List of TV series
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/tv/{tvId}/similar:
get :
summary : Get similar TV series
description : Returns list of similar TV series based on the provided tvId in a JSON object.
tags :
- tv
parameters :
- in : path
name : tvId
required : true
schema :
type : number
example : 76479
- in : query
name : page
schema :
type : number
example : 1
default : 1
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : List of TV series
content :
application/json :
schema :
type : object
properties :
page :
type : number
example : 1
totalPages :
type : number
example : 20
totalResults :
type : number
example : 200
results :
type : array
items :
$ref : '#/components/schemas/TvResult'
/tv/{tvId}/ratings:
get :
summary : Get TV ratings
description : Returns ratings based on provided tvId in a JSON object.
tags :
- tv
parameters :
- in : path
name : tvId
required : true
schema :
type : number
example : 76479
responses :
'200' :
description : Ratings returned
content :
application/json :
schema :
type : object
properties :
title :
type : string
example : The Boys
year :
type : number
example : 2019
url :
type : string
example : 'http://www.rottentomatoes.com/m/mulan_2020/'
criticsScore :
type : number
example : 85
criticsRating :
type : string
enum : [ 'Rotten' , 'Fresh' ]
/person/{personId}:
get :
summary : Get person details
description : Returns person details based on provided personId in a JSON object.
tags :
- person
parameters :
- in : path
name : personId
required : true
schema :
type : number
example : 287
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Returned person
content :
application/json :
schema :
$ref : '#/components/schemas/PersonDetails'
/person/{personId}/combined_credits:
get :
summary : Get combined credits
description : Returns the person's combined credits based on the provided personId in a JSON object.
tags :
- person
parameters :
- in : path
name : personId
required : true
schema :
type : number
example : 287
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Returned combined credits
content :
application/json :
schema :
type : object
properties :
cast :
type : array
items :
$ref : '#/components/schemas/CreditCast'
crew :
type : array
items :
$ref : '#/components/schemas/CreditCrew'
id :
type : number
/media :
get :
summary : Get media
description : Returns all media (can be filtered and limited) in a JSON object.
tags :
- media
parameters :
- in : query
name : take
schema :
type : number
nullable : true
example : 20
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
- in : query
name : filter
schema :
type : string
nullable : true
enum : [ all, available, partial, allavailable, processing, pending]
- in : query
name : sort
schema :
type : string
enum : [ added, modified, mediaAdded]
default : added
responses :
'200' :
description : Returned media
content :
application/json :
schema :
type : object
properties :
pageInfo :
$ref : '#/components/schemas/PageInfo'
results :
type : array
items :
$ref : '#/components/schemas/MediaInfo'
/media/{mediaId}:
delete :
summary : Delete media item
description : Removes a media item. The `MANAGE_REQUESTS` permission is required to perform this action.
tags :
- media
parameters :
- in : path
name : mediaId
description : Media ID
required : true
example : '1'
schema :
type : string
responses :
'204' :
description : Succesfully removed media item
/media/{mediaId}/{status}:
post :
summary : Update media status
description : Updates a media item's status and returns the media in JSON format
tags :
- media
parameters :
- in : path
name : mediaId
description : Media ID
required : true
example : '1'
schema :
type : string
- in : path
name : status
description : New status
required : true
example : available
schema :
type : string
enum : [ available, partial, processing, pending, unknown]
requestBody :
content :
application/json :
schema :
type : object
properties :
is4k :
type : boolean
example : false
responses :
'200' :
description : Returned media
content :
application/json :
schema :
$ref : '#/components/schemas/MediaInfo'
/media/{mediaId}/watch_data:
get :
summary : Get watch data
description : |
Returns play count, play duration, and users who have watched the media.
Requires the `ADMIN` permission.
tags :
- media
parameters :
- in : path
name : mediaId
description : Media ID
required : true
example : '1'
schema :
type : string
responses :
'200' :
description : Users
content :
application/json :
schema :
type : object
properties :
data :
type : object
properties :
playCount7Days :
type : number
playCount30Days :
type : number
playCount :
type : number
users :
type : array
items :
$ref : '#/components/schemas/User'
data4k :
type : object
properties :
playCount7Days :
type : number
playCount30Days :
type : number
playCount :
type : number
users :
type : array
items :
$ref : '#/components/schemas/User'
/collection/{collectionId}:
get :
summary : Get collection details
description : Returns full collection details in a JSON object.
tags :
- collection
parameters :
- in : path
name : collectionId
required : true
schema :
type : number
example : 537982
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Collection details
content :
application/json :
schema :
$ref : '#/components/schemas/Collection'
/service/radarr :
get :
summary : Get non-sensitive Radarr server list
description : Returns a list of Radarr server IDs and names in a JSON object.
tags :
- service
responses :
'200' :
description : Request successful
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/RadarrSettings'
/service/radarr/{radarrId}:
get :
summary : Get Radarr server quality profiles and root folders
description : Returns a Radarr server's quality profile and root folder details in a JSON object.
tags :
- service
parameters :
- in : path
name : radarrId
required : true
schema :
type : number
example : 0
responses :
'200' :
description : Request successful
content :
application/json :
schema :
type : object
properties :
server :
$ref : '#/components/schemas/RadarrSettings'
profiles :
$ref : '#/components/schemas/ServiceProfile'
/service/sonarr :
get :
summary : Get non-sensitive Sonarr server list
description : Returns a list of Sonarr server IDs and names in a JSON object.
tags :
- service
responses :
'200' :
description : Request successful
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/SonarrSettings'
/service/sonarr/{sonarrId}:
get :
summary : Get Sonarr server quality profiles and root folders
description : Returns a Sonarr server's quality profile and root folder details in a JSON object.
tags :
- service
parameters :
- in : path
name : sonarrId
required : true
schema :
type : number
example : 0
responses :
'200' :
description : Request successful
content :
application/json :
schema :
type : object
properties :
server :
$ref : '#/components/schemas/SonarrSettings'
profiles :
$ref : '#/components/schemas/ServiceProfile'
/service/sonarr/lookup/{tmdbId}:
get :
summary : Get series from Sonarr
description : Returns a list of series returned by searching for the name in Sonarr.
tags :
- service
parameters :
- in : path
name : tmdbId
required : true
schema :
type : number
example : 0
responses :
'200' :
description : Request successful
content :
application/json :
schema :
type : array
items :
$ref : '#/components/schemas/SonarrSeries'
/regions :
get :
summary : Regions supported by TMDb
description : Returns a list of regions in a JSON object.
tags :
- tmdb
responses :
'200' :
description : Results
content :
application/json :
schema :
type : array
items :
type : object
properties :
iso_3166_1 :
type : string
example : US
english_name :
type : string
example : United States of America
/languages :
get :
summary : Languages supported by TMDb
description : Returns a list of languages in a JSON object.
tags :
- tmdb
responses :
'200' :
description : Results
content :
application/json :
schema :
type : array
items :
type : object
properties :
iso_639_1 :
type : string
example : en
english_name :
type : string
example : English
name :
type : string
example : English
/studio/{studioId}:
get :
summary : Get movie studio details
description : Returns movie studio details in a JSON object.
tags :
- tmdb
parameters :
- in : path
name : studioId
required : true
schema :
type : number
example : 2
responses :
'200' :
description : Movie studio details
content :
application/json :
schema :
$ref : '#/components/schemas/ProductionCompany'
/network/{networkId}:
get :
summary : Get TV network details
description : Returns TV network details in a JSON object.
tags :
- tmdb
parameters :
- in : path
name : networkId
required : true
schema :
type : number
example : 1
responses :
'200' :
description : TV network details
content :
application/json :
schema :
$ref : '#/components/schemas/ProductionCompany'
/genres/movie :
get :
summary : Get list of official TMDb movie genres
description : Returns a list of genres in a JSON array.
tags :
- tmdb
parameters :
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : number
example : 10751
name :
type : string
example : Family
/genres/tv :
get :
summary : Get list of official TMDb movie genres
description : Returns a list of genres in a JSON array.
tags :
- tmdb
parameters :
- in : query
name : language
schema :
type : string
example : en
responses :
'200' :
description : Results
content :
application/json :
schema :
type : array
items :
type : object
properties :
id :
type : number
example : 18
name :
type : string
example : Drama
/backdrops :
get :
summary : Get backdrops of trending items
description : Returns a list of backdrop image paths in a JSON array.
security : [ ]
tags :
- tmdb
responses :
'200' :
description : Results
content :
application/json :
schema :
type : array
items :
type : string
/issue :
get :
summary : Get all issues
description : |
Returns a list of issues in JSON format.
tags :
- issue
parameters :
- in : query
name : take
schema :
type : number
nullable : true
example : 20
- in : query
name : skip
schema :
type : number
nullable : true
example : 0
- in : query
name : sort
schema :
type : string
enum : [ added, modified]
default : added
- in : query
name : filter
schema :
type : string
enum : [ all, open, resolved]
default : open
- in : query
name : requestedBy
schema :
type : number
nullable : true
example : 1
responses :
'200' :
description : Issues returned
content :
application/json :
schema :
type : object
properties :
pageInfo :
$ref : '#/components/schemas/PageInfo'
results :
type : array
items :
$ref : '#/components/schemas/Issue'
post :
summary : Create new issue
description : |
Creates a new issue
tags :
- issue
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
issueType :
type : number
message :
type : string
mediaId :
type : number
responses :
'201' :
description : Succesfully created the issue
content :
application/json :
schema :
$ref : '#/components/schemas/Issue'
/issue/count :
get :
summary : Gets issue counts
description : |
Returns the number of open and closed issues, as well as the number of issues of each type.
tags :
- issue
responses :
'200' :
description : Issue counts returned
content :
application/json :
schema :
type : object
properties :
total :
type : number
video :
type : number
audio :
type : number
subtitles :
type : number
others :
type : number
open :
type : number
closed :
type : number
/issue/{issueId}:
get :
summary : Get issue
description : |
Returns a single issue in JSON format.
tags :
- issue
parameters :
- in : path
name : issueId
required : true
schema :
type : number
example : 1
responses :
'200' :
description : Issues returned
content :
application/json :
schema :
$ref : '#/components/schemas/Issue'
delete :
summary : Delete issue
description : Removes an issue. If the user has the `MANAGE_ISSUES` permission, any issue can be removed. Otherwise, only a users own issues can be removed.
tags :
- issue
parameters :
- in : path
name : issueId
description : Issue ID
required : true
example : '1'
schema :
type : string
responses :
'204' :
description : Succesfully removed issue
/issue/{issueId}/comment:
post :
summary : Create a comment
description : |
Creates a comment and returns associated issue in JSON format.
tags :
- issue
parameters :
- in : path
name : issueId
required : true
schema :
type : number
example : 1
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
message :
type : string
required :
- message
responses :
'200' :
description : Issue returned with new comment
content :
application/json :
schema :
$ref : '#/components/schemas/Issue'
/issueComment/{commentId}:
get :
summary : Get issue comment
description : |
Returns a single issue comment in JSON format.
tags :
- issue
parameters :
- in : path
name : commentId
required : true
schema :
type : string
example : 1
responses :
'200' :
description : Comment returned
content :
application/json :
schema :
$ref : '#/components/schemas/IssueComment'
put :
summary : Update issue comment
description : |
Updates and returns a single issue comment in JSON format.
tags :
- issue
parameters :
- in : path
name : commentId
required : true
schema :
type : string
example : 1
requestBody :
required : true
content :
application/json :
schema :
type : object
properties :
message :
type : string
responses :
'200' :
description : Comment updated
content :
application/json :
schema :
$ref : '#/components/schemas/IssueComment'
delete :
summary : Delete issue comment
description : |
Deletes an issue comment. Only users with `MANAGE_ISSUES` or the user who created the comment can perform this action.
tags :
- issue
parameters :
- in : path
name : commentId
description : Issue Comment ID
required : true
example : '1'
schema :
type : string
responses :
'204' :
description : Succesfully removed issue comment
/issue/{issueId}/{status}:
post :
summary : Update an issue's status
description : |
Updates an issue's status to approved or declined. Also returns the issue in a JSON object.
Requires the `MANAGE_ISSUES` permission or `ADMIN`.
tags :
- issue
parameters :
- in : path
name : issueId
description : Issue ID
required : true
schema :
type : string
example : '1'
- in : path
name : status
description : New status
required : true
schema :
type : string
enum : [ open, resolved]
responses :
'200' :
description : Issue status changed
content :
application/json :
schema :
$ref : '#/components/schemas/Issue'
security :
- cookieAuth : [ ]
- apiKey : [ ]