Sonarr Release Push API
The ReleasePush API from Sonarr — 3 operation(s) for releasepush.
The ReleasePush API from Sonarr — 3 operation(s) for releasepush.
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-releasepush-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 Release Push API
license:
name: GPL-3.0
url: https://github.com/Sonarr/Sonarr/blob/develop/LICENSE
version: '1.0'
description: 'Operations tagged ReleasePush 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: ReleasePush
paths:
/api/v3/release/push:
post:
tags:
- ReleasePush
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseResource'
responses:
'200':
description: OK
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseResource'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseResource'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleaseResource'
summary: Create api release push
x-summary-source: derived
operationId: postApiV3ReleasePush
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/release/push:
post:
tags:
- ReleasePush
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReleasePushResource'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseResource_2'
'400':
description: Bad Request
summary: Create api release push
x-summary-source: derived
operationId: postApiV5ReleasePush
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
/api/v5/release/push/{id}:
get:
tags:
- ReleasePush
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReleasePushResource'
'404':
description: Not Found
summary: Get api release push by id
x-summary-source: derived
operationId: getApiV5ReleasePushById
x-operation-id-source: derived
servers:
- url: '{protocol}://{hostpath}'
variables:
protocol:
default: http
enum:
- http
- https
hostpath:
default: localhost:8989
components:
schemas:
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
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
Revision:
type: object
properties:
version:
type: integer
format: int32
real:
type: integer
format: int32
isRepack:
type: boolean
additionalProperties: false
QualityModel:
type: object
properties:
quality:
$ref: '#/components/schemas/Quality'
revision:
$ref: '#/components/schemas/Revision'
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
SelectOption:
type: object
properties:
value:
type: integer
format: int32
name:
type:
- string
- 'null'
order:
type: integer
format: int32
hint:
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
QualitySource:
enum:
- unknown
- television
- televisionRaw
- web
- webRip
- dvd
- bluray
- blurayRaw
type: string
DownloadProtocol:
enum:
- unknown
- usenet
- torrent
type: string
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
ReleaseEpisodeResource:
type: object
properties:
id:
type: integer
format: int32
seasonNumber:
type: integer
format: int32
episodeNumber:
type: integer
format: int32
absoluteEpisodeNumber:
type:
- integer
- 'null'
format: int32
title:
type:
- string
- 'null'
additionalProperties: false
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
ReleaseResource:
type: object
properties:
id:
type: integer
format: int32
guid:
type:
- string
- 'null'
quality:
$ref: '#/components/schemas/QualityModel'
qualityWeight:
type: integer
format: int32
age:
type: integer
format: int32
ageHours:
type: number
format: double
ageMinutes:
type: number
format: double
size:
type: integer
format: int64
indexerId:
type: integer
format: int32
indexer:
type:
- string
- 'null'
releaseGroup:
type:
- string
- 'null'
subGroup:
type:
- string
- 'null'
releaseHash:
type:
- string
- 'null'
title:
type:
- string
- 'null'
fullSeason:
type: boolean
sceneSource:
type: boolean
seasonNumber:
type: integer
format: int32
seasonNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
languages:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Language'
languageWeight:
type: integer
format: int32
airDate:
type:
- string
- 'null'
seriesTitle:
type:
- string
- 'null'
episodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
absoluteEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
mappedSeasonNumber:
type:
- integer
- 'null'
format: int32
mappedEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
mappedAbsoluteEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
mappedSeriesId:
type:
- integer
- 'null'
format: int32
mappedEpisodeInfo:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReleaseEpisodeResource'
approved:
type: boolean
temporarilyRejected:
type: boolean
rejected:
type: boolean
tvdbId:
type: integer
format: int32
tvRageId:
type: integer
format: int32
imdbId:
type:
- string
- 'null'
rejections:
type:
- array
- 'null'
items:
type: string
publishDate:
type: string
format: date-time
commentUrl:
type:
- string
- 'null'
downloadUrl:
type:
- string
- 'null'
infoUrl:
type:
- string
- 'null'
episodeRequested:
type: boolean
downloadAllowed:
type: boolean
releaseWeight:
type: integer
format: int32
customFormats:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatResource'
customFormatScore:
type: integer
format: int32
sceneMapping:
$ref: '#/components/schemas/AlternateTitleResource'
magnetUrl:
type:
- string
- 'null'
infoHash:
type:
- string
- 'null'
seeders:
type:
- integer
- 'null'
format: int32
leechers:
type:
- integer
- 'null'
format: int32
protocol:
$ref: '#/components/schemas/DownloadProtocol'
indexerFlags:
type: integer
format: int32
isDaily:
type: boolean
isAbsoluteNumbering:
type: boolean
isPossibleSpecialEpisode:
type: boolean
special:
type: boolean
seriesId:
type:
- integer
- 'null'
format: int32
episodeId:
type:
- integer
- 'null'
format: int32
episodeIds:
type:
- array
- 'null'
items:
type: integer
format: int32
downloadClientId:
type:
- integer
- 'null'
format: int32
downloadClient:
type:
- string
- 'null'
shouldOverride:
type:
- boolean
- 'null'
additionalProperties: false
ReleaseInfoResource:
type: object
properties:
guid:
type:
- string
- 'null'
age:
type: integer
format: int32
ageHours:
type: number
format: double
ageMinutes:
type: number
format: double
size:
type: integer
format: int64
indexerId:
type: integer
format: int32
indexer:
type:
- string
- 'null'
title:
type:
- string
- 'null'
tvdbId:
type: integer
format: int32
tvRageId:
type: integer
format: int32
imdbId:
type:
- string
- 'null'
publishDate:
type: string
format: date-time
commentUrl:
type:
- string
- 'null'
downloadUrl:
type:
- string
- 'null'
infoUrl:
type:
- string
- 'null'
magnetUrl:
type:
- string
- 'null'
infoHash:
type:
- string
- 'null'
seeders:
type:
- integer
- 'null'
format: int32
leechers:
type:
- integer
- 'null'
format: int32
protocol:
$ref: '#/components/schemas/DownloadProtocol'
indexerFlags:
type: integer
format: int32
additionalProperties: false
ReleaseHistoryResource:
type: object
properties:
grabbed:
type:
- string
- 'null'
format: date-time
failed:
type:
- string
- 'null'
format: date-time
additionalProperties: false
ReleasePushResource:
type: object
properties:
id:
type: integer
format: int32
guid:
type:
- string
- 'null'
size:
type: integer
format: int64
indexerId:
type: integer
format: int32
indexer:
type:
- string
- 'null'
title:
type:
- string
- 'null'
tvdbId:
type: integer
format: int32
tvRageId:
type: integer
format: int32
imdbId:
type:
- string
- 'null'
rejections:
type:
- array
- 'null'
items:
type: string
publishDate:
type: string
format: date-time
commentUrl:
type:
- string
- 'null'
downloadUrl:
type:
- string
- 'null'
infoUrl:
type:
- string
- 'null'
magnetUrl:
type:
- string
- 'null'
infoHash:
type:
- string
- 'null'
seeders:
type:
- integer
- 'null'
format: int32
leechers:
type:
- integer
- 'null'
format: int32
protocol:
$ref: '#/components/schemas/DownloadProtocol'
indexerFlags:
type: integer
format: int32
downloadClientId:
type:
- integer
- 'null'
format: int32
downloadClientName:
type:
- string
- 'null'
additionalProperties: false
DownloadRejectionResource:
type: object
properties:
message:
type:
- string
- 'null'
reason:
$ref: '#/components/schemas/DownloadRejectionReason'
type:
$ref: '#/components/schemas/RejectionType'
additionalProperties: false
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
DownloadRejectionReason:
enum:
- unknown
- unknownSeries
- unknownEpisode
- matchesAnotherSeries
- unableToParse
- error
- decisionError
- minimumAgeDelay
- minimumAgeDelayPushed
- seriesNotMonitored
- episodeNotMonitored
- historyRecentCutoffMet
- historyCdhDisabledCutoffMet
- historyHigherPreference
- historyHigherRevision
- historyCutoffMet
- historyCustomFormatCutoffMet
- historyCustomFormatScore
- historyCustomFormatScoreIncrement
- historyUpgradesNotAllowed
- noMatchingTag
- propersDisabled
- properForOldFile
- wrongEpisode
- wrongSeason
- wrongSeries
- fullSeason
- unknownRuntime
- belowMinimumSize
- aboveMaximumSize
- alreadyImportedSameHash
- alreadyImportedSameName
- unknownReleaseGroup
- releaseGroupDoesNotMatch
- indexerDisabled
- blocklisted
- customFormatMinimumScore
- minimumFreeSpace
- fullSeasonNotAired
- maximumSizeExceeded
- minimumAge
- maximumAge
- multiSeason
- sample
- protocolDisabled
- qualityNotWanted
- qualityUpgradesDisabled
- queueHigherPreference
- queueHigherRevision
- queueCutoffMet
- queueCustomFormatCutoffMet
- queueCustomFormatScore
- queueCustomFormatScoreIncrement
- queueUpgradesNotAllowed
- queuePropersDisabled
- raw
- mustContainMissing
- mustNotContainPresent
- repackDisabled
- repackUnknownReleaseGroup
- repackReleaseGroupDoesNotMatch
- existingFileHasMoreEpisodes
- ambiguousNumbering
- notSeasonPack
- splitEpisode
- minimumSeeders
- diskHigherPreference
- diskHigherRevision
- diskCutoffMet
- diskCustomFormatCutoffMet
- diskCustomFormatScore
- diskCustomFormatScoreIncrement
- diskUpgradesNotAllowed
- diskNotUpgrade
- beforeAirDate
type: string
ReleaseDecisionResource:
type: object
properties:
approved:
type: boolean
temporarilyRejected:
type: boolean
rejected:
type: boolean
rejections:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/DownloadRejectionResource'
additionalProperties: false
ParsedEpisodeInfoResource:
type: object
properties:
quality:
$ref: '#/components/schemas/QualityModel'
releaseGroup:
type:
- string
- 'null'
releaseHash:
type:
- string
- 'null'
fullSeason:
type: boolean
seasonNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
airDate:
type:
- string
- 'null'
seriesTitle:
type:
- string
- 'null'
episodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
absoluteEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
isDaily:
type: boolean
isAbsoluteNumbering:
type: boolean
isPossibleSpecialEpisode:
type: boolean
special:
type: boolean
additionalProperties: false
ReleaseResource_2:
type: object
properties:
id:
type: integer
format: int32
parsedInfo:
$ref: '#/components/schemas/ParsedEpisodeInfoResource'
release:
$ref: '#/components/schemas/ReleaseInfoResource'
decision:
$ref: '#/components/schemas/ReleaseDecisionResource'
history:
$ref: '#/components/schemas/ReleaseHistoryResource'
qualityWeight:
type: integer
format: int32
languages:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Language'
mappedSeasonNumber:
type:
- integer
- 'null'
format: int32
mappedEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
mappedAbsoluteEpisodeNumbers:
type:
- array
- 'null'
items:
type: integer
format: int32
mappedSeriesId:
type:
- integer
- 'null'
format: int32
mappedEpisodeInfo:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ReleaseEpisodeResource'
episodeRequested:
type: boolean
downloadAllowed:
type: boolean
releaseWeight:
type: integer
format: int32
customFormats:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CustomFormatResource'
customFormatScore:
type: integer
format: int32
sceneMapping:
$ref: '#/components/schemas/AlternateTitleResource'
additionalProperties: false
RejectionType:
enum:
- permanent
- temporary
type: string
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