Sonarr Series Editor API
The SeriesEditor API from Sonarr — 2 operation(s) for serieseditor.
The SeriesEditor API from Sonarr — 2 operation(s) for serieseditor.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/sonarr:sonarr-serieseditor-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sonarr Series Editor API
license:
name: GPL-3.0
url: https://github.com/Sonarr/Sonarr/blob/develop/LICENSE
version: '1.0'
description: 'Operations tagged SeriesEditor across 2 of this provider''s published API definitions: openapi_v3.json, openapi_v5.json. Each path carries the servers of the definition it was published in.'
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
security:
- X-Api-Key: []
- apikey: []
tags:
- name: SeriesEditor
paths:
/api/v3/series/editor:
put:
tags:
- SeriesEditor
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
text/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
application/*+json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
responses:
'200':
description: OK
summary: Replace api series editor
x-summary-source: derived
operationId: putApiV3SeriesEditor
x-operation-id-source: derived
delete:
tags:
- SeriesEditor
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
text/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
application/*+json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
responses:
'200':
description: OK
summary: Delete api series editor
x-summary-source: derived
operationId: deleteApiV3SeriesEditor
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/series/editor:
put:
tags:
- SeriesEditor
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SeriesResource'
'400':
description: Bad Request
summary: Replace api series editor
x-summary-source: derived
operationId: putApiV5SeriesEditor
x-operation-id-source: derived
delete:
tags:
- SeriesEditor
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SeriesEditorResource'
responses:
'204':
description: No Content
summary: Delete api series editor
x-summary-source: derived
operationId: deleteApiV5SeriesEditor
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
components:
schemas:
NewItemMonitorTypes:
enum:
- all
- none
type: string
SeriesTypes:
enum:
- standard
- daily
- anime
type: string
Language:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
additionalProperties: false
SeriesEditorResource:
type: object
properties:
seriesIds:
type:
- array
- 'null'
items:
type: integer
format: int32
monitored:
type:
- boolean
- 'null'
monitorNewItems:
$ref: '#/components/schemas/NewItemMonitorTypes'
qualityProfileId:
type:
- integer
- 'null'
format: int32
language:
$ref: '#/components/schemas/Language'
seriesType:
$ref: '#/components/schemas/SeriesTypes'
seasonFolder:
type:
- boolean
- 'null'
rootFolderPath:
type:
- string
- 'null'
tags:
type:
- array
- 'null'
items:
type: integer
format: int32
applyTags:
$ref: '#/components/schemas/ApplyTags'
moveFiles:
type: boolean
deleteFiles:
type: boolean
addImportListExclusion:
type: boolean
additionalProperties: false
ApplyTags:
enum:
- add
- remove
- replace
type: string
SeriesStatisticsResource:
type: object
properties:
seasonCount:
type: integer
format: int32
episodeFileCount:
type: integer
format: int32
episodeCount:
type: integer
format: int32
totalEpisodeCount:
type: integer
format: int32
monitoredEpisodeCount:
type: integer
format: int32
sizeOnDisk:
type: integer
format: int64
releaseGroups:
type:
- array
- 'null'
items:
type: string
releaseTypes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReleaseType'
episodeFileQualities:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Quality'
percentOfEpisodes:
type: number
format: double
readOnly: true
additionalProperties: false
MediaCoverTypes:
enum:
- unknown
- poster
- banner
- fanart
- screenshot
- headshot
- clearlogo
type: string
QualitySource:
enum:
- unknown
- television
- televisionRaw
- web
- webRip
- dvd
- bluray
- blurayRaw
type: string
AlternateTitleResource:
type: object
properties:
title:
type:
- string
- 'null'
seasonNumber:
type:
- integer
- 'null'
format: int32
sceneSeasonNumber:
type:
- integer
- 'null'
format: int32
sceneOrigin:
type:
- string
- 'null'
comment:
type:
- string
- 'null'
additionalProperties: false
SeasonStatisticsResource:
type: object
properties:
nextAiring:
type:
- string
- 'null'
format: date-time
previousAiring:
type:
- string
- 'null'
format: date-time
episodeFileCount:
type: integer
format: int32
episodeCount:
type: integer
format: int32
totalEpisodeCount:
type: integer
format: int32
monitoredEpisodeCount:
type: integer
format: int32
sizeOnDisk:
type: integer
format: int64
releaseGroups:
type:
- array
- 'null'
items:
type: string
releaseTypes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReleaseType'
episodeFileQualities:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Quality'
percentOfEpisodes:
type: number
format: double
readOnly: true
additionalProperties: false
Quality:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
source:
$ref: '#/components/schemas/QualitySource'
resolution:
type: integer
format: int32
additionalProperties: false
AddSeriesOptions:
type: object
properties:
ignoreEpisodesWithFiles:
type: boolean
ignoreEpisodesWithoutFiles:
type: boolean
monitor:
$ref: '#/components/schemas/MonitorTypes'
searchForMissingEpisodes:
type: boolean
searchForCutoffUnmetEpisodes:
type: boolean
additionalProperties: false
ReleaseType:
enum:
- unknown
- singleEpisode
- multiEpisode
- seasonPack
type: string
SeriesStatusType:
enum:
- continuing
- ended
- upcoming
- deleted
type: string
SeriesTranslationResource:
type: object
properties:
language:
$ref: '#/components/schemas/Language'
title:
type:
- string
- 'null'
overview:
type:
- string
- 'null'
additionalProperties: false
SeriesFolderResource:
required:
- folder
- language
type: object
properties:
language:
$ref: '#/components/schemas/Language'
folder:
type:
- string
- 'null'
additionalProperties: false
SeasonResource:
type: object
properties:
seasonNumber:
type: integer
format: int32
monitored:
type: boolean
title:
type:
- string
- 'null'
statistics:
$ref: '#/components/schemas/SeasonStatisticsResource'
images:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MediaCover'
additionalProperties: false
MediaCover:
type: object
properties:
coverType:
$ref: '#/components/schemas/MediaCoverTypes'
url:
type:
- string
- 'null'
remoteUrl:
type:
- string
- 'null'
additionalProperties: false
MonitorTypes:
enum:
- unknown
- all
- future
- missing
- existing
- firstSeason
- lastSeason
- latestSeason
- pilot
- recent
- monitorSpecials
- unmonitorSpecials
- none
- skip
type: string
SeriesResource:
type: object
properties:
id:
type: integer
format: int32
title:
type:
- string
- 'null'
alternateTitles:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/AlternateTitleResource'
sortTitle:
type:
- string
- 'null'
status:
$ref: '#/components/schemas/SeriesStatusType'
ended:
type: boolean
readOnly: true
profileName:
type:
- string
- 'null'
overview:
type:
- string
- 'null'
nextAiring:
type:
- string
- 'null'
format: date-time
previousAiring:
type:
- string
- 'null'
format: date-time
network:
type:
- string
- 'null'
airTime:
type:
- string
- 'null'
images:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MediaCover'
language:
$ref: '#/components/schemas/Language'
originalLanguage:
$ref: '#/components/schemas/Language'
remotePoster:
type:
- string
- 'null'
seasonType:
type:
- string
- 'null'
seasons:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SeasonResource'
seasonTypes:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SeasonTypeResource'
translations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SeriesTranslationResource'
year:
type: integer
format: int32
path:
type:
- string
- 'null'
pendingPath:
type:
- string
- 'null'
qualityProfileId:
type: integer
format: int32
seasonFolder:
type: boolean
monitored:
type: boolean
monitorNewItems:
$ref: '#/components/schemas/NewItemMonitorTypes'
useSceneNumbering:
type: boolean
runtime:
type: integer
format: int32
tvdbId:
type: integer
format: int32
tvRageId:
type: integer
format: int32
tvMazeId:
type: integer
format: int32
tmdbId:
type: integer
format: int32
malIds:
uniqueItems: true
type:
- array
- 'null'
items:
type: integer
format: int32
aniListIds:
uniqueItems: true
type:
- array
- 'null'
items:
type: integer
format: int32
firstAired:
type:
- string
- 'null'
format: date-time
lastAired:
type:
- string
- 'null'
format: date-time
seriesType:
$ref: '#/components/schemas/SeriesTypes'
originalTitle:
type:
- string
- 'null'
cleanTitle:
type:
- string
- 'null'
cleanOriginalTitle:
type:
- string
- 'null'
imdbId:
type:
- string
- 'null'
titleSlug:
type:
- string
- 'null'
rootFolderPath:
type:
- string
- 'null'
folder:
type:
- string
- 'null'
folders:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SeriesFolderResource'
certification:
type:
- string
- 'null'
genres:
type:
- array
- 'null'
items:
type: string
originalCountry:
type:
- string
- 'null'
tags:
uniqueItems: true
type:
- array
- 'null'
items:
type: integer
format: int32
added:
type: string
format: date-time
addOptions:
$ref: '#/components/schemas/AddSeriesOptions'
ratings:
$ref: '#/components/schemas/Ratings'
statistics:
$ref: '#/components/schemas/SeriesStatisticsResource'
episodesChanged:
type:
- boolean
- 'null'
additionalProperties: false
Ratings:
type: object
properties:
votes:
type: integer
format: int32
value:
type: number
format: double
additionalProperties: false
SeasonTypeResource:
type: object
properties:
name:
type:
- string
- 'null'
type:
type:
- string
- 'null'
seasonNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
episodeCount:
type: integer
format: int32
additionalProperties: false
securitySchemes:
X-Api-Key:
type: apiKey
description: Apikey passed as header
name: X-Api-Key
in: header
apikey:
type: apiKey
description: Apikey passed as query parameter
name: apikey
in: query
x-refined-from:
- openapi_v3.json
- openapi_v5.json