Sonarr Blocklist API
The Blocklist API from Sonarr — 6 operation(s) for blocklist.
The Blocklist API from Sonarr — 6 operation(s) for blocklist.
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-blocklist-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 Blocklist API
license:
name: GPL-3.0
url: https://github.com/Sonarr/Sonarr/blob/develop/LICENSE
version: '1.0'
description: 'Operations tagged Blocklist 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: Blocklist
paths:
/api/v3/blocklist:
get:
tags:
- Blocklist
parameters:
- name: page
in: query
schema:
type: integer
format: int32
default: 1
- name: pageSize
in: query
schema:
type: integer
format: int32
default: 10
- name: sortKey
in: query
schema:
type: string
- name: sortDirection
in: query
schema:
$ref: '#/components/schemas/SortDirection'
- name: seriesIds
in: query
schema:
type: array
items:
type: integer
format: int32
- name: protocols
in: query
schema:
type: array
items:
$ref: '#/components/schemas/DownloadProtocol'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BlocklistResourcePagingResource'
summary: Get api blocklist
x-summary-source: derived
operationId: getApiV3Blocklist
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v3/blocklist/{id}:
delete:
tags:
- Blocklist
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
summary: Delete api blocklist by id
x-summary-source: derived
operationId: deleteApiV3BlocklistById
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v3/blocklist/bulk:
delete:
tags:
- Blocklist
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BlocklistBulkResource'
text/json:
schema:
$ref: '#/components/schemas/BlocklistBulkResource'
application/*+json:
schema:
$ref: '#/components/schemas/BlocklistBulkResource'
responses:
'200':
description: OK
summary: Delete api blocklist bulk
x-summary-source: derived
operationId: deleteApiV3BlocklistBulk
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/blocklist:
get:
tags:
- Blocklist
parameters:
- name: page
in: query
schema:
type: integer
format: int32
default: 1
- name: pageSize
in: query
schema:
type: integer
format: int32
default: 10
- name: sortKey
in: query
schema:
type: string
- name: sortDirection
in: query
schema:
$ref: '#/components/schemas/SortDirection'
- name: seriesIds
in: query
schema:
type: array
items:
type: integer
format: int32
- name: protocols
in: query
schema:
type: array
items:
$ref: '#/components/schemas/DownloadProtocol'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BlocklistResourcePagingResource'
summary: Get api blocklist
x-summary-source: derived
operationId: getApiV5Blocklist
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/blocklist/{id}:
delete:
tags:
- Blocklist
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'204':
description: No Content
summary: Delete api blocklist by id
x-summary-source: derived
operationId: deleteApiV5BlocklistById
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/blocklist/bulk:
delete:
tags:
- Blocklist
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BlocklistBulkResource_2'
responses:
'204':
description: No Content
summary: Delete api blocklist bulk
x-summary-source: derived
operationId: deleteApiV5BlocklistBulk
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
components:
schemas:
SeriesStatisticsResource:
type: object
properties:
seasonCount:
type: integer
format: int32
episodeFileCount:
type: integer
format: int32
episodeCount:
type: integer
format: int32
totalEpisodeCount:
type: integer
format: int32
sizeOnDisk:
type: integer
format: int64
releaseGroups:
type:
- array
- 'null'
items:
type: string
percentOfEpisodes:
type: number
format: double
readOnly: true
additionalProperties: false
SeriesTypes:
enum:
- standard
- daily
- anime
type: string
MediaCoverTypes:
enum:
- unknown
- poster
- banner
- fanart
- screenshot
- headshot
- clearlogo
type: string
BlocklistResource:
type: object
properties:
id:
type: integer
format: int32
seriesId:
type: integer
format: int32
episodeIds:
type:
- array
- 'null'
items:
type: integer
format: int32
sourceTitle:
type:
- string
- 'null'
languages:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Language'
quality:
$ref: '#/components/schemas/QualityModel'
customFormats:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatResource'
date:
type: string
format: date-time
protocol:
$ref: '#/components/schemas/DownloadProtocol'
indexer:
type:
- string
- 'null'
message:
type:
- string
- 'null'
series:
$ref: '#/components/schemas/SeriesResource'
additionalProperties: false
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
sizeOnDisk:
type: integer
format: int64
releaseGroups:
type:
- array
- 'null'
items:
type: string
percentOfEpisodes:
type: number
format: double
readOnly: true
additionalProperties: false
NewItemMonitorTypes:
enum:
- all
- none
type: string
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
BlocklistResourcePagingResource:
type: object
properties:
page:
type: integer
format: int32
pageSize:
type: integer
format: int32
sortKey:
type:
- string
- 'null'
sortDirection:
$ref: '#/components/schemas/SortDirection'
totalRecords:
type: integer
format: int32
records:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/BlocklistResource'
additionalProperties: false
PrivacyLevel:
enum:
- normal
- password
- apiKey
- userName
type: string
Language:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
additionalProperties: false
CustomFormatSpecificationSchema:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
implementation:
type:
- string
- 'null'
implementationName:
type:
- string
- 'null'
infoLink:
type:
- string
- 'null'
negate:
type: boolean
required:
type: boolean
fields:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Field'
presets:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatSpecificationSchema'
additionalProperties: false
Revision:
type: object
properties:
version:
type: integer
format: int32
real:
type: integer
format: int32
isRepack:
type: boolean
additionalProperties: false
SeriesStatusType:
enum:
- continuing
- ended
- upcoming
- deleted
type: string
DownloadProtocol:
enum:
- unknown
- usenet
- torrent
type: string
CustomFormatResource:
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
includeCustomFormatWhenRenaming:
type:
- boolean
- 'null'
specifications:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatSpecificationSchema'
additionalProperties: false
SortDirection:
enum:
- default
- ascending
- descending
type: string
SeriesTranslationResource:
type: object
properties:
language:
$ref: '#/components/schemas/Language'
title:
type:
- string
- 'null'
overview:
type:
- string
- 'null'
additionalProperties: false
BlocklistBulkResource:
type: object
properties:
ids:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
SeriesFolderResource:
type: object
properties:
language:
$ref: '#/components/schemas/Language'
folder:
type:
- string
- 'null'
additionalProperties: false
QualityModel:
type: object
properties:
quality:
$ref: '#/components/schemas/Quality'
revision:
$ref: '#/components/schemas/Revision'
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
SelectOption:
type: object
properties:
value:
type: integer
format: int32
name:
type:
- string
- 'null'
order:
type: integer
format: int32
hint:
type:
- string
- 'null'
additionalProperties: false
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
firstAired:
type:
- string
- 'null'
format: date-time
lastAired:
type:
- string
- 'null'
format: date-time
seriesType:
$ref: '#/components/schemas/SeriesTypes'
cleanTitle:
type:
- string
- 'null'
originalTitle:
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
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'
languageProfileId:
type: integer
format: int32
readOnly: true
deprecated: true
additionalProperties: false
Field:
type: object
properties:
order:
type: integer
format: int32
name:
type:
- string
- 'null'
label:
type:
- string
- 'null'
unit:
type:
- string
- 'null'
helpText:
type:
- string
- 'null'
helpTextWarning:
type:
- string
- 'null'
helpLink:
type:
- string
- 'null'
value: {}
type:
type:
- string
- 'null'
advanced:
type: boolean
selectOptions:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/SelectOption'
selectOptionsProviderAction:
type:
- string
- 'null'
section:
type:
- string
- 'null'
hidden:
type:
- string
- 'null'
privacy:
$ref: '#/components/schemas/PrivacyLevel'
placeholder:
type:
- string
- 'null'
isFloat:
type: boolean
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
SeriesStatisticsResource_2:
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
BlocklistResource_2:
required:
- customFormats
- episodeIds
- languages
- quality
- series
- sourceTitle
type: object
properties:
id:
type: integer
format: int32
seriesId:
type: integer
format: int32
episodeIds:
type:
- array
- 'null'
items:
type: integer
format: int32
sourceTitle:
type:
- string
- 'null'
languages:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Language'
quality:
$ref: '#/components/schemas/QualityModel'
customFormats:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatResource'
date:
type: string
format: date-time
protocol:
$ref: '#/components/schemas/DownloadProtocol'
indexer:
type:
- string
- 'null'
message:
type:
- string
- 'null'
source:
type:
- string
- 'null'
series:
$ref: '#/components/schemas/SeriesResource_2'
additionalProperties: false
SeasonStatisticsResource_2:
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
ReleaseType:
enum:
- unknown
- singleEpisode
- multiEpisode
- seasonPack
type: string
CustomFormatSpecificationSchema_2:
required:
- fields
- implementation
- implementationName
- infoLink
- name
type: object
properties:
id:
type: integer
format: int32
name:
type:
- string
- 'null'
implementation:
type:
- string
- 'null'
implementationName:
type:
- string
- 'null'
infoLink:
type:
- string
- 'null'
negate:
type: boolean
required:
type: boolean
fields:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Field'
presets:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatSpecificationSchema_2'
additionalProperties: false
BlocklistBulkResource_2:
required:
- ids
type: object
properties:
ids:
type:
- array
- 'null'
items:
type: integer
format: int32
additionalProperties: false
SeriesFolderResource_2:
required:
- folder
- language
type: object
properties:
language:
$ref: '#/components/schemas/Language'
folder:
type:
- string
- 'null'
additionalProperties: false
SeriesResource_2:
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_2'
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_2'
episodesChanged:
type:
- boolean
- 'null'
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:
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/sonarr/openapi/sonarr-blocklist-api-openapi.yml