Skip to content

Instantly share code, notes, and snippets.

@kmcquade
Created November 16, 2023 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kmcquade/be7a19b5ee320a11e81078758c171261 to your computer and use it in GitHub Desktop.
Save kmcquade/be7a19b5ee320a11e81078758c171261 to your computer and use it in GitHub Desktop.
11/16/2023 download of Jellyfin's Swagger doc. https://api.jellyfin.org/openapi/jellyfin-openapi-stable.json
This file has been truncated, but you can view the full file.
{
"openapi": "3.0.1",
"info": {
"title": "Jellyfin API",
"version": "10.8.12",
"x-jellyfin-version": "10.8.12"
},
"servers": [
{
"url": "http://localhost"
}
],
"paths": {
"/System/ActivityLog/Entries": {
"get": {
"tags": [
"ActivityLog"
],
"summary": "Gets activity log entries.",
"operationId": "GetLogEntries",
"parameters": [
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minDate",
"in": "query",
"description": "Optional. The minimum date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "hasUserId",
"in": "query",
"description": "Optional. Filter log entries if it has user id, or not.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Activity log returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActivityLogEntryQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ActivityLogEntryQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ActivityLogEntryQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Auth/Keys": {
"get": {
"tags": [
"ApiKey"
],
"summary": "Get all keys.",
"operationId": "GetKeys",
"responses": {
"200": {
"description": "Api keys retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthenticationInfoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/AuthenticationInfoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/AuthenticationInfoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"post": {
"tags": [
"ApiKey"
],
"summary": "Create a new api key.",
"operationId": "CreateKey",
"parameters": [
{
"name": "app",
"in": "query",
"description": "Name of the app using the authentication key.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Api key created."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Auth/Keys/{key}": {
"delete": {
"tags": [
"ApiKey"
],
"summary": "Remove an api key.",
"operationId": "RevokeKey",
"parameters": [
{
"name": "key",
"in": "path",
"description": "The access token to delete.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Api key deleted."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Artists": {
"get": {
"tags": [
"Artists"
],
"summary": "Gets all artists from a given item, folder, or the entire library.",
"operationId": "GetArtists",
"parameters": [
{
"name": "minCommunityRating",
"in": "query",
"description": "Optional filter by minimum community rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "Optional. Search term.",
"schema": {
"type": "string"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "genres",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "officialRatings",
"in": "query",
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "tags",
"in": "query",
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "years",
"in": "query",
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional, include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "person",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
"schema": {
"type": "string"
}
},
{
"name": "personIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "personTypes",
"in": "query",
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studios",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studioIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Artists returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/{name}": {
"get": {
"tags": [
"Artists"
],
"summary": "Gets an artist by name.",
"operationId": "GetArtistByName",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Studio name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Artist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/AlbumArtists": {
"get": {
"tags": [
"Artists"
],
"summary": "Gets all album artists from a given item, folder, or the entire library.",
"operationId": "GetAlbumArtists",
"parameters": [
{
"name": "minCommunityRating",
"in": "query",
"description": "Optional filter by minimum community rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "Optional. Search term.",
"schema": {
"type": "string"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "genres",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "officialRatings",
"in": "query",
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "tags",
"in": "query",
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "years",
"in": "query",
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional, include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "person",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
"schema": {
"type": "string"
}
},
{
"name": "personIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "personTypes",
"in": "query",
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studios",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studioIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Album artists returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Audio/{itemId}/stream": {
"get": {
"tags": [
"Audio"
],
"summary": "Gets an audio stream.",
"operationId": "GetAudioStream",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "container",
"in": "query",
"description": "The audio container.",
"schema": {
"type": "string"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"head": {
"tags": [
"Audio"
],
"summary": "Gets an audio stream.",
"operationId": "HeadAudioStream",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "container",
"in": "query",
"description": "The audio container.",
"schema": {
"type": "string"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/Audio/{itemId}/stream.{container}": {
"get": {
"tags": [
"Audio"
],
"summary": "Gets an audio stream.",
"operationId": "GetAudioStreamByContainer",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "container",
"in": "path",
"description": "The audio container.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment lenght.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamporphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"head": {
"tags": [
"Audio"
],
"summary": "Gets an audio stream.",
"operationId": "HeadAudioStreamByContainer",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "container",
"in": "path",
"description": "The audio container.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment lenght.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamporphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/Branding/Configuration": {
"get": {
"tags": [
"Branding"
],
"summary": "Gets branding configuration.",
"operationId": "GetBrandingOptions",
"responses": {
"200": {
"description": "Branding configuration returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BrandingOptions"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BrandingOptions"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BrandingOptions"
}
}
}
}
}
}
},
"/Branding/Css": {
"get": {
"tags": [
"Branding"
],
"summary": "Gets branding css.",
"operationId": "GetBrandingCss",
"responses": {
"200": {
"description": "Branding css returned.",
"content": {
"text/css": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "string"
}
}
}
},
"204": {
"description": "No branding css configured."
}
}
}
},
"/Branding/Css.css": {
"get": {
"tags": [
"Branding"
],
"summary": "Gets branding css.",
"operationId": "GetBrandingCss_2",
"responses": {
"200": {
"description": "Branding css returned.",
"content": {
"text/css": {
"schema": {
"type": "string"
}
},
"application/json": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "string"
}
}
}
},
"204": {
"description": "No branding css configured."
}
}
}
},
"/Channels": {
"get": {
"tags": [
"Channels"
],
"summary": "Gets available channels.",
"operationId": "GetChannels",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "User Id to filter by. Use System.Guid.Empty to not filter by user.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "supportsLatestItems",
"in": "query",
"description": "Optional. Filter by channels that support getting latest items.",
"schema": {
"type": "boolean"
}
},
{
"name": "supportsMediaDeletion",
"in": "query",
"description": "Optional. Filter by channels that support media deletion.",
"schema": {
"type": "boolean"
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional. Filter by channels that are favorite.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Channels returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Channels/{channelId}/Features": {
"get": {
"tags": [
"Channels"
],
"summary": "Get channel features.",
"operationId": "GetChannelFeatures",
"parameters": [
{
"name": "channelId",
"in": "path",
"description": "Channel id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Channel features returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelFeatures"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ChannelFeatures"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ChannelFeatures"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Channels/{channelId}/Items": {
"get": {
"tags": [
"Channels"
],
"summary": "Get channel items.",
"operationId": "GetChannelItems",
"parameters": [
{
"name": "channelId",
"in": "path",
"description": "Channel Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "folderId",
"in": "query",
"description": "Optional. Folder Id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. User Id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Optional. Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Channel items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Channels/Features": {
"get": {
"tags": [
"Channels"
],
"summary": "Get all channel features.",
"operationId": "GetAllChannelFeatures",
"responses": {
"200": {
"description": "All channel features returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelFeatures"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelFeatures"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelFeatures"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Channels/Items/Latest": {
"get": {
"tags": [
"Channels"
],
"summary": "Gets latest channel items.",
"operationId": "GetLatestChannelItems",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. User Id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "channelIds",
"in": "query",
"description": "Optional. Specify one or more channel id's, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
],
"responses": {
"200": {
"description": "Latest channel items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/ClientLog/Document": {
"post": {
"tags": [
"ClientLog"
],
"summary": "Upload a document.",
"operationId": "LogFile",
"requestBody": {
"content": {
"text/plain": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"200": {
"description": "Document saved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClientLogDocumentResponseDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ClientLogDocumentResponseDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ClientLogDocumentResponseDto"
}
}
}
},
"403": {
"description": "Event logging disabled.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"413": {
"description": "Upload size too large.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Collections": {
"post": {
"tags": [
"Collection"
],
"summary": "Creates a new collection.",
"operationId": "CreateCollection",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the collection.",
"schema": {
"type": "string"
}
},
{
"name": "ids",
"in": "query",
"description": "Item Ids to add to the collection.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "parentId",
"in": "query",
"description": "Optional. Create the collection within a specific folder.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "isLocked",
"in": "query",
"description": "Whether or not to lock the new collection.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Collection created.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionCreationResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/CollectionCreationResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/CollectionCreationResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Collections/{collectionId}/Items": {
"post": {
"tags": [
"Collection"
],
"summary": "Adds items to a collection.",
"operationId": "AddToCollection",
"parameters": [
{
"name": "collectionId",
"in": "path",
"description": "The collection id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "ids",
"in": "query",
"description": "Item ids, comma delimited.",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
],
"responses": {
"204": {
"description": "Items added to collection."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Collection"
],
"summary": "Removes items from a collection.",
"operationId": "RemoveFromCollection",
"parameters": [
{
"name": "collectionId",
"in": "path",
"description": "The collection id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "ids",
"in": "query",
"description": "Item ids, comma delimited.",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
],
"responses": {
"204": {
"description": "Items removed from collection."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/System/Configuration": {
"get": {
"tags": [
"Configuration"
],
"summary": "Gets application configuration.",
"operationId": "GetConfiguration",
"responses": {
"200": {
"description": "Application configuration returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerConfiguration"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ServerConfiguration"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ServerConfiguration"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"post": {
"tags": [
"Configuration"
],
"summary": "Updates application configuration.",
"operationId": "UpdateConfiguration",
"requestBody": {
"description": "Configuration.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ServerConfiguration"
}
],
"description": "Represents the server configuration."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ServerConfiguration"
}
],
"description": "Represents the server configuration."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ServerConfiguration"
}
],
"description": "Represents the server configuration."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Configuration updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/System/Configuration/{key}": {
"get": {
"tags": [
"Configuration"
],
"summary": "Gets a named configuration.",
"operationId": "GetNamedConfiguration",
"parameters": [
{
"name": "key",
"in": "path",
"description": "Configuration key.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Configuration returned.",
"content": {
"application/json": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"post": {
"tags": [
"Configuration"
],
"summary": "Updates named configuration.",
"operationId": "UpdateNamedConfiguration",
"parameters": [
{
"name": "key",
"in": "path",
"description": "Configuration key.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Configuration.",
"content": {
"application/json": {
"schema": { }
},
"text/json": {
"schema": { }
},
"application/*+json": {
"schema": { }
}
},
"required": true
},
"responses": {
"204": {
"description": "Named configuration updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/System/Configuration/MetadataOptions/Default": {
"get": {
"tags": [
"Configuration"
],
"summary": "Gets a default MetadataOptions object.",
"operationId": "GetDefaultMetadataOptions",
"responses": {
"200": {
"description": "Metadata options returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetadataOptions"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/MetadataOptions"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/MetadataOptions"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/System/MediaEncoder/Path": {
"post": {
"tags": [
"Configuration"
],
"summary": "Updates the path to the media encoder.",
"operationId": "UpdateMediaEncoderPath",
"requestBody": {
"description": "Media encoder path form body.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaEncoderPathDto"
}
],
"description": "Media Encoder Path Dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaEncoderPathDto"
}
],
"description": "Media Encoder Path Dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaEncoderPathDto"
}
],
"description": "Media Encoder Path Dto."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Media encoder path updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated",
"DefaultAuthorization"
]
}
]
}
},
"/web/ConfigurationPage": {
"get": {
"tags": [
"Dashboard"
],
"summary": "Gets a dashboard configuration page.",
"operationId": "GetDashboardConfigurationPage",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the page.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "ConfigurationPage returned.",
"content": {
"text/html": {
"schema": {
"type": "string",
"format": "binary"
}
},
"application/x-javascript": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Plugin configuration page not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/web/ConfigurationPages": {
"get": {
"tags": [
"Dashboard"
],
"summary": "Gets the configuration pages.",
"operationId": "GetConfigurationPages",
"parameters": [
{
"name": "enableInMainMenu",
"in": "query",
"description": "Whether to enable in the main menu.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "ConfigurationPages returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConfigurationPageInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConfigurationPageInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ConfigurationPageInfo"
}
}
}
}
},
"404": {
"description": "Server still loading.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Devices": {
"get": {
"tags": [
"Devices"
],
"summary": "Get Devices.",
"operationId": "GetDevices",
"parameters": [
{
"name": "supportsSync",
"in": "query",
"description": "Gets or sets a value indicating whether [supports synchronize].",
"schema": {
"type": "boolean"
}
},
{
"name": "userId",
"in": "query",
"description": "Gets or sets the user identifier.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Devices retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceInfoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceInfoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceInfoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"delete": {
"tags": [
"Devices"
],
"summary": "Deletes a device.",
"operationId": "DeleteDevice",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Device Id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Device deleted."
},
"404": {
"description": "Device not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Devices/Info": {
"get": {
"tags": [
"Devices"
],
"summary": "Get info for a device.",
"operationId": "GetDeviceInfo",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Device Id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Device info retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceInfo"
}
}
}
},
"404": {
"description": "Device not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Devices/Options": {
"get": {
"tags": [
"Devices"
],
"summary": "Get options for a device.",
"operationId": "GetDeviceOptions",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Device Id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Device options retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceOptions"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceOptions"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceOptions"
}
}
}
},
"404": {
"description": "Device not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"post": {
"tags": [
"Devices"
],
"summary": "Update device options.",
"operationId": "UpdateDeviceOptions",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Device Id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Device Options.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceOptionsDto"
}
],
"description": "A dto representing custom options for a device."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceOptionsDto"
}
],
"description": "A dto representing custom options for a device."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceOptionsDto"
}
],
"description": "A dto representing custom options for a device."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Device options updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/DisplayPreferences/{displayPreferencesId}": {
"get": {
"tags": [
"DisplayPreferences"
],
"summary": "Get Display Preferences.",
"operationId": "GetDisplayPreferences",
"parameters": [
{
"name": "displayPreferencesId",
"in": "path",
"description": "Display preferences id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "client",
"in": "query",
"description": "Client.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Display preferences retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"post": {
"tags": [
"DisplayPreferences"
],
"summary": "Update Display Preferences.",
"operationId": "UpdateDisplayPreferences",
"parameters": [
{
"name": "displayPreferencesId",
"in": "path",
"description": "Display preferences id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "User Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "client",
"in": "query",
"description": "Client.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "New Display Preferences object.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
],
"description": "Defines the display preferences for any item that supports them (usually Folders)."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
],
"description": "Defines the display preferences for any item that supports them (usually Folders)."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DisplayPreferencesDto"
}
],
"description": "Defines the display preferences for any item that supports them (usually Folders)."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Display preferences updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Dlna/ProfileInfos": {
"get": {
"tags": [
"Dlna"
],
"summary": "Get profile infos.",
"operationId": "GetProfileInfos",
"responses": {
"200": {
"description": "Device profile infos returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeviceProfileInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeviceProfileInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DeviceProfileInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Dlna/Profiles": {
"post": {
"tags": [
"Dlna"
],
"summary": "Creates a profile.",
"operationId": "CreateProfile",
"requestBody": {
"description": "Device profile.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
}
}
},
"responses": {
"204": {
"description": "Device profile created."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Dlna/Profiles/{profileId}": {
"get": {
"tags": [
"Dlna"
],
"summary": "Gets a single profile.",
"operationId": "GetProfile",
"parameters": [
{
"name": "profileId",
"in": "path",
"description": "Profile Id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Device profile returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
}
}
},
"404": {
"description": "Device profile not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"delete": {
"tags": [
"Dlna"
],
"summary": "Deletes a profile.",
"operationId": "DeleteProfile",
"parameters": [
{
"name": "profileId",
"in": "path",
"description": "Profile id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Device profile deleted."
},
"404": {
"description": "Device profile not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"post": {
"tags": [
"Dlna"
],
"summary": "Updates a profile.",
"operationId": "UpdateProfile",
"parameters": [
{
"name": "profileId",
"in": "path",
"description": "Profile id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Device profile.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceProfile"
}
],
"description": "A MediaBrowser.Model.Dlna.DeviceProfile represents a set of metadata which determines which content a certain device is able to play.\r\n<br />\r\nSpecifically, it defines the supported <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.ContainerProfiles\">containers</see> and\r\n<see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.CodecProfiles\">codecs</see> (video and/or audio, including codec profiles and levels)\r\nthe device is able to direct play (without transcoding or remuxing),\r\nas well as which <see cref=\"P:MediaBrowser.Model.Dlna.DeviceProfile.TranscodingProfiles\">containers/codecs to transcode to</see> in case it isn't."
}
}
}
},
"responses": {
"204": {
"description": "Device profile updated."
},
"404": {
"description": "Device profile not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Dlna/Profiles/Default": {
"get": {
"tags": [
"Dlna"
],
"summary": "Gets the default profile.",
"operationId": "GetDefaultProfile",
"responses": {
"200": {
"description": "Default device profile returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DeviceProfile"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Dlna/{serverId}/ConnectionManager": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetConnectionManager",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ConnectionManager/ConnectionManager": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetConnectionManager_2",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ConnectionManager/ConnectionManager.xml": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetConnectionManager_3",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ConnectionManager/Control": {
"post": {
"tags": [
"DlnaServer"
],
"summary": "Process a connection manager control request.",
"operationId": "ProcessConnectionManagerControlRequest",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Request processed.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ContentDirectory": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna content directory xml.",
"operationId": "GetContentDirectory",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna content directory returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ContentDirectory/ContentDirectory": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna content directory xml.",
"operationId": "GetContentDirectory_2",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna content directory returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ContentDirectory/ContentDirectory.xml": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna content directory xml.",
"operationId": "GetContentDirectory_3",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna content directory returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/ContentDirectory/Control": {
"post": {
"tags": [
"DlnaServer"
],
"summary": "Process a content directory control request.",
"operationId": "ProcessContentDirectoryControlRequest",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Request processed.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/description": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Get Description Xml.",
"operationId": "GetDescriptionXml",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Description xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/description.xml": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Get Description Xml.",
"operationId": "GetDescriptionXml_2",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Description xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/icons/{fileName}": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets a server icon.",
"operationId": "GetIconId",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "fileName",
"in": "path",
"description": "The icon filename.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Request processed.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Not Found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/MediaReceiverRegistrar": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetMediaReceiverRegistrar",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/MediaReceiverRegistrar/Control": {
"post": {
"tags": [
"DlnaServer"
],
"summary": "Process a media receiver registrar control request.",
"operationId": "ProcessMediaReceiverRegistrarControlRequest",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Request processed.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetMediaReceiverRegistrar_2",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/{serverId}/MediaReceiverRegistrar/MediaReceiverRegistrar.xml": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets Dlna media receiver registrar xml.",
"operationId": "GetMediaReceiverRegistrar_3",
"parameters": [
{
"name": "serverId",
"in": "path",
"description": "Server UUID.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Dlna media receiver registrar xml returned.",
"content": {
"text/xml": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Dlna/icons/{fileName}": {
"get": {
"tags": [
"DlnaServer"
],
"summary": "Gets a server icon.",
"operationId": "GetIcon",
"parameters": [
{
"name": "fileName",
"in": "path",
"description": "The icon filename.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Request processed.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Not Found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "DLNA is disabled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"AnonymousLanAccessPolicy"
]
}
]
}
},
"/Audio/{itemId}/hls1/{playlistId}/{segmentId}.{container}": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets a video stream using HTTP live streaming.",
"operationId": "GetHlsAudioSegment",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentId",
"in": "path",
"description": "The segment id.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "container",
"in": "path",
"description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "runtimeTicks",
"in": "query",
"description": "The position of the requested segment in ticks.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "actualSegmentLengthTicks",
"in": "query",
"description": "The length of the requested segment in ticks.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "Optional. The maximum streaming bitrate.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Video stream returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Audio/{itemId}/main.m3u8": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets an audio stream using HTTP live streaming.",
"operationId": "GetVariantHlsAudioPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "Optional. The maximum streaming bitrate.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vpx, wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Audio/{itemId}/master.m3u8": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets an audio hls playlist stream.",
"operationId": "GetMasterHlsAudioPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "Optional. The maximum streaming bitrate.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
},
{
"name": "enableAdaptiveBitrateStreaming",
"in": "query",
"description": "Enable adaptive bitrate streaming.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"head": {
"tags": [
"DynamicHls"
],
"summary": "Gets an audio hls playlist stream.",
"operationId": "HeadMasterHlsAudioPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "Optional. The maximum streaming bitrate.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
},
{
"name": "enableAdaptiveBitrateStreaming",
"in": "query",
"description": "Enable adaptive bitrate streaming.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Audio stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Videos/{itemId}/hls1/{playlistId}/{segmentId}.{container}": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets a video stream using HTTP live streaming.",
"operationId": "GetHlsVideoSegment",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentId",
"in": "path",
"description": "The segment id.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "container",
"in": "path",
"description": "The video container. Possible values are: ts, webm, asf, wmv, ogv, mp4, m4v, mkv, mpeg, mpg, avi, 3gp, wmv, wtv, m2ts, mov, iso, flv.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "runtimeTicks",
"in": "query",
"description": "The position of the requested segment in ticks.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "actualSegmentLengthTicks",
"in": "query",
"description": "The length of the requested segment in ticks.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The desired segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. The maximum horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. The maximum vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Video stream returned.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Videos/{itemId}/live.m3u8": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets a hls live stream.",
"operationId": "GetLiveHlsStream",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "container",
"in": "query",
"description": "The audio container.",
"schema": {
"type": "string"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment lenght.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. The max width.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. The max height.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableSubtitlesInManifest",
"in": "query",
"description": "Optional. Whether to enable subtitles in the manifest.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Hls live stream retrieved.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Videos/{itemId}/main.m3u8": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets a video stream using HTTP live streaming.",
"operationId": "GetVariantHlsVideoPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. The maximum horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. The maximum vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
}
],
"responses": {
"200": {
"description": "Video stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Videos/{itemId}/master.m3u8": {
"get": {
"tags": [
"DynamicHls"
],
"summary": "Gets a video hls playlist stream.",
"operationId": "GetMasterHlsVideoPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. The maximum horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. The maximum vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
},
{
"name": "enableAdaptiveBitrateStreaming",
"in": "query",
"description": "Enable adaptive bitrate streaming.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Video stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"head": {
"tags": [
"DynamicHls"
],
"summary": "Gets a video hls playlist stream.",
"operationId": "HeadMasterHlsVideoPlaylist",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "static",
"in": "query",
"description": "Optional. If true, the original file will be streamed statically without any encoding. Use either no url extension or the original file extension. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "params",
"in": "query",
"description": "The streaming parameters.",
"schema": {
"type": "string"
}
},
{
"name": "tag",
"in": "query",
"description": "The tag.",
"schema": {
"type": "string"
}
},
{
"name": "deviceProfileId",
"in": "query",
"description": "Optional. The dlna device profile id to utilize.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "query",
"description": "The segment container.",
"schema": {
"type": "string"
}
},
{
"name": "segmentLength",
"in": "query",
"description": "The segment length.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minSegments",
"in": "query",
"description": "The minimum number of segments.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media version id, if playing an alternate version.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"schema": {
"type": "string"
}
},
{
"name": "audioCodec",
"in": "query",
"description": "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.",
"schema": {
"type": "string"
}
},
{
"name": "enableAutoStreamCopy",
"in": "query",
"description": "Whether or not to allow automatic stream copy if requested values match the original source. Defaults to true.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the video stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether or not to allow copying of the audio stream url.",
"schema": {
"type": "boolean"
}
},
{
"name": "breakOnNonKeyFrames",
"in": "query",
"description": "Optional. Whether to break on non key frames.",
"schema": {
"type": "boolean"
}
},
{
"name": "audioSampleRate",
"in": "query",
"description": "Optional. Specify a specific audio sample rate, e.g. 44100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioBitDepth",
"in": "query",
"description": "Optional. The maximum audio bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioBitRate",
"in": "query",
"description": "Optional. Specify an audio bitrate to encode to, e.g. 128000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "audioChannels",
"in": "query",
"description": "Optional. Specify a specific number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "Optional. Specify a maximum number of audio channels to encode to, e.g. 2.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "profile",
"in": "query",
"description": "Optional. Specify a specific an encoder profile (varies by encoder), e.g. main, baseline, high.",
"schema": {
"type": "string"
}
},
{
"name": "level",
"in": "query",
"description": "Optional. Specify a level for the encoder profile (varies by encoder), e.g. 3, 3.1.",
"schema": {
"type": "string"
}
},
{
"name": "framerate",
"in": "query",
"description": "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "maxFramerate",
"in": "query",
"description": "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.",
"schema": {
"type": "number",
"format": "float"
}
},
{
"name": "copyTimestamps",
"in": "query",
"description": "Whether or not to copy timestamps when transcoding with an offset. Defaults to false.",
"schema": {
"type": "boolean"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "Optional. Specify a starting offset, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "width",
"in": "query",
"description": "Optional. The fixed horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "Optional. The fixed vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. The maximum horizontal resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. The maximum vertical resolution of the encoded video.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoBitRate",
"in": "query",
"description": "Optional. Specify a video bitrate to encode to, e.g. 500000. If omitted this will be left to encoder defaults.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "Optional. The index of the subtitle stream to use. If omitted no subtitles will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleMethod",
"in": "query",
"description": "Optional. Specify the subtitle delivery method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SubtitleDeliveryMethod"
}
]
}
},
{
"name": "maxRefFrames",
"in": "query",
"description": "Optional.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxVideoBitDepth",
"in": "query",
"description": "Optional. The maximum video bit depth.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "requireAvc",
"in": "query",
"description": "Optional. Whether to require avc.",
"schema": {
"type": "boolean"
}
},
{
"name": "deInterlace",
"in": "query",
"description": "Optional. Whether to deinterlace the video.",
"schema": {
"type": "boolean"
}
},
{
"name": "requireNonAnamorphic",
"in": "query",
"description": "Optional. Whether to require a non anamorphic stream.",
"schema": {
"type": "boolean"
}
},
{
"name": "transcodingMaxAudioChannels",
"in": "query",
"description": "Optional. The maximum number of audio channels to transcode.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cpuCoreLimit",
"in": "query",
"description": "Optional. The limit of how many cpu cores to use.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "enableMpegtsM2TsMode",
"in": "query",
"description": "Optional. Whether to enable the MpegtsM2Ts mode.",
"schema": {
"type": "boolean"
}
},
{
"name": "videoCodec",
"in": "query",
"description": "Optional. Specify a video codec to encode to, e.g. h264. If omitted the server will auto-select using the url's extension. Options: h265, h264, mpeg4, theora, vp8, vp9, vpx (deprecated), wmv.",
"schema": {
"type": "string"
}
},
{
"name": "subtitleCodec",
"in": "query",
"description": "Optional. Specify a subtitle codec to encode to.",
"schema": {
"type": "string"
}
},
{
"name": "transcodeReasons",
"in": "query",
"description": "Optional. The transcoding reason.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "Optional. The index of the audio stream to use. If omitted the first audio stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "videoStreamIndex",
"in": "query",
"description": "Optional. The index of the video stream to use. If omitted the first video stream will be used.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "context",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Dlna.EncodingContext.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EncodingContext"
}
]
}
},
{
"name": "streamOptions",
"in": "query",
"description": "Optional. The streaming options.",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
}
}
},
{
"name": "enableAdaptiveBitrateStreaming",
"in": "query",
"description": "Enable adaptive bitrate streaming.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Video stream returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Environment/DefaultDirectoryBrowser": {
"get": {
"tags": [
"Environment"
],
"summary": "Get Default directory browser.",
"operationId": "GetDefaultDirectoryBrowser",
"responses": {
"200": {
"description": "Default directory browser returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/DefaultDirectoryBrowserInfoDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Environment/DirectoryContents": {
"get": {
"tags": [
"Environment"
],
"summary": "Gets the contents of a given directory in the file system.",
"operationId": "GetDirectoryContents",
"parameters": [
{
"name": "path",
"in": "query",
"description": "The path.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "includeFiles",
"in": "query",
"description": "An optional filter to include or exclude files from the results. true/false.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "includeDirectories",
"in": "query",
"description": "An optional filter to include or exclude folders from the results. true/false.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Directory contents returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Environment/Drives": {
"get": {
"tags": [
"Environment"
],
"summary": "Gets available drives from the server's file system.",
"operationId": "GetDrives",
"responses": {
"200": {
"description": "List of entries returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Environment/NetworkShares": {
"get": {
"tags": [
"Environment"
],
"summary": "Gets network paths.",
"operationId": "GetNetworkShares",
"responses": {
"200": {
"description": "Empty array returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileSystemEntryInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Environment/ParentPath": {
"get": {
"tags": [
"Environment"
],
"summary": "Gets the parent path of a given path.",
"operationId": "GetParentPath",
"parameters": [
{
"name": "path",
"in": "query",
"description": "The path.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "string"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "string"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Environment/ValidatePath": {
"post": {
"tags": [
"Environment"
],
"summary": "Validates path.",
"operationId": "ValidatePath",
"requestBody": {
"description": "Validate request object.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ValidatePathDto"
}
],
"description": "Validate path object."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ValidatePathDto"
}
],
"description": "Validate path object."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ValidatePathDto"
}
],
"description": "Validate path object."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Path validated."
},
"404": {
"description": "Path not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Items/Filters": {
"get": {
"tags": [
"Filter"
],
"summary": "Gets legacy query filters.",
"operationId": "GetQueryFiltersLegacy",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "parentId",
"in": "query",
"description": "Optional. Parent id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"200": {
"description": "Legacy filters retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueryFiltersLegacy"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/QueryFiltersLegacy"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/QueryFiltersLegacy"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/Filters2": {
"get": {
"tags": [
"Filter"
],
"summary": "Gets query filters.",
"operationId": "GetQueryFilters",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "parentId",
"in": "query",
"description": "Optional. Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "isAiring",
"in": "query",
"description": "Optional. Is item airing.",
"schema": {
"type": "boolean"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional. Is item movie.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional. Is item sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional. Is item kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional. Is item news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional. Is item series.",
"schema": {
"type": "boolean"
}
},
{
"name": "recursive",
"in": "query",
"description": "Optional. Search recursive.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Filters retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/QueryFilters"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/QueryFilters"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/QueryFilters"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Genres": {
"get": {
"tags": [
"Genres"
],
"summary": "Gets all genres from a given item, folder, or the entire library.",
"operationId": "GetGenres",
"parameters": [
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "The search term.",
"schema": {
"type": "string"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Include total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Genres returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Genres/{genreName}": {
"get": {
"tags": [
"Genres"
],
"summary": "Gets a genre, by name.",
"operationId": "GetGenre",
"parameters": [
{
"name": "genreName",
"in": "path",
"description": "The genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "The user id.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Genres returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Audio/{itemId}/hls/{segmentId}/stream.aac": {
"get": {
"tags": [
"HlsSegment"
],
"summary": "Gets the specified audio segment for an audio item.",
"operationId": "GetHlsAudioSegmentLegacyAac",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentId",
"in": "path",
"description": "The segment id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Hls audio segment returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/Audio/{itemId}/hls/{segmentId}/stream.mp3": {
"get": {
"tags": [
"HlsSegment"
],
"summary": "Gets the specified audio segment for an audio item.",
"operationId": "GetHlsAudioSegmentLegacyMp3",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentId",
"in": "path",
"description": "The segment id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Hls audio segment returned.",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/Videos/{itemId}/hls/{playlistId}/{segmentId}.{segmentContainer}": {
"get": {
"tags": [
"HlsSegment"
],
"summary": "Gets a hls video segment.",
"operationId": "GetHlsVideoSegmentLegacy",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentId",
"in": "path",
"description": "The segment id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "segmentContainer",
"in": "path",
"description": "The segment container.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Hls video segment returned.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Hls segment not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Videos/{itemId}/hls/{playlistId}/stream.m3u8": {
"get": {
"tags": [
"HlsSegment"
],
"summary": "Gets a hls video playlist.",
"operationId": "GetHlsPlaylistLegacy",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The video id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Hls video playlist returned.",
"content": {
"application/x-mpegURL": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Videos/ActiveEncodings": {
"delete": {
"tags": [
"HlsSegment"
],
"summary": "Stops an active encoding.",
"operationId": "StopEncodingProcess",
"parameters": [
{
"name": "deviceId",
"in": "query",
"description": "The device id of the client requesting. Used to stop encoding processes when needed.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Encoding stopped successfully."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/{name}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get artist image by name.",
"operationId": "GetArtistImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Artist name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get artist image by name.",
"operationId": "HeadArtistImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Artist name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Branding/Splashscreen": {
"get": {
"tags": [
"Image"
],
"summary": "Generates or gets the splashscreen.",
"operationId": "GetSplashscreen",
"parameters": [
{
"name": "tag",
"in": "query",
"description": "Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "quality",
"in": "query",
"description": "Quality setting, from 0-100.",
"schema": {
"maximum": 100,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 90
}
}
],
"responses": {
"200": {
"description": "Splashscreen returned successfully.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"post": {
"tags": [
"Image"
],
"summary": "Uploads a custom splashscreen.\r\nThe body is expected to the image contents base64 encoded.",
"operationId": "UploadCustomSplashscreen",
"requestBody": {
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"204": {
"description": "Successfully uploaded new splashscreen."
},
"400": {
"description": "Error reading MimeType from uploaded image.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "User does not have permission to upload splashscreen..",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"delete": {
"tags": [
"Image"
],
"summary": "Delete a custom splashscreen.",
"operationId": "DeleteCustomSplashscreen",
"responses": {
"204": {
"description": "Successfully deleted the custom splashscreen."
},
"403": {
"description": "User does not have permission to delete splashscreen.."
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Genres/{name}/Images/{imageType}": {
"get": {
"tags": [
"Image"
],
"summary": "Get genre image by name.",
"operationId": "GetGenreImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get genre image by name.",
"operationId": "HeadGenreImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Genres/{name}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get genre image by name.",
"operationId": "GetGenreImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get genre image by name.",
"operationId": "HeadGenreImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Items/{itemId}/Images": {
"get": {
"tags": [
"Image"
],
"summary": "Get item image infos.",
"operationId": "GetItemImageInfos",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Item images returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageInfo"
}
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/Images/{imageType}": {
"delete": {
"tags": [
"Image"
],
"summary": "Delete an item's image.",
"operationId": "DeleteItemImage",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "query",
"description": "The image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Image deleted."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"post": {
"tags": [
"Image"
],
"summary": "Set item image.",
"operationId": "SetItemImage",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
}
],
"requestBody": {
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"204": {
"description": "Image saved."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"get": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "GetItemImage",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "HeadItemImage",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Items/{itemId}/Images/{imageType}/{imageIndex}": {
"delete": {
"tags": [
"Image"
],
"summary": "Delete an item's image.",
"operationId": "DeleteItemImageByIndex",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "The image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Image deleted."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"post": {
"tags": [
"Image"
],
"summary": "Set item image.",
"operationId": "SetItemImageByIndex",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "(Unused) Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"204": {
"description": "Image saved."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"get": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "GetItemImageByIndex",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "HeadItemImageByIndex",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "query",
"description": "Optional. The MediaBrowser.Model.Drawing.ImageFormat of the returned image.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Items/{itemId}/Images/{imageType}/{imageIndex}/{tag}/{format}/{maxWidth}/{maxHeight}/{percentPlayed}/{unplayedCount}": {
"get": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "GetItemImage2",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "maxWidth",
"in": "path",
"description": "The maximum image width to return.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "path",
"description": "The maximum image height to return.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "path",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "path",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
],
"description": "Enum ImageOutputFormat."
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "path",
"description": "Optional. Percent to render for the percent played overlay.",
"required": true,
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "path",
"description": "Optional. Unplayed count overlay to render.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Gets the item's image.",
"operationId": "HeadItemImage2",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "maxWidth",
"in": "path",
"description": "The maximum image width to return.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "path",
"description": "The maximum image height to return.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "path",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "format",
"in": "path",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
],
"description": "Enum ImageOutputFormat."
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "percentPlayed",
"in": "path",
"description": "Optional. Percent to render for the percent played overlay.",
"required": true,
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "path",
"description": "Optional. Unplayed count overlay to render.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Items/{itemId}/Images/{imageType}/{imageIndex}/Index": {
"post": {
"tags": [
"Image"
],
"summary": "Updates the index for an item image.",
"operationId": "UpdateItemImageIndex",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Old image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "newIndex",
"in": "query",
"description": "New image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Image index updated."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/MusicGenres/{name}/Images/{imageType}": {
"get": {
"tags": [
"Image"
],
"summary": "Get music genre image by name.",
"operationId": "GetMusicGenreImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Music genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get music genre image by name.",
"operationId": "HeadMusicGenreImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Music genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/MusicGenres/{name}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get music genre image by name.",
"operationId": "GetMusicGenreImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Music genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get music genre image by name.",
"operationId": "HeadMusicGenreImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Music genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Persons/{name}/Images/{imageType}": {
"get": {
"tags": [
"Image"
],
"summary": "Get person image by name.",
"operationId": "GetPersonImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Person name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get person image by name.",
"operationId": "HeadPersonImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Person name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Persons/{name}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get person image by name.",
"operationId": "GetPersonImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Person name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get person image by name.",
"operationId": "HeadPersonImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Person name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Studios/{name}/Images/{imageType}": {
"get": {
"tags": [
"Image"
],
"summary": "Get studio image by name.",
"operationId": "GetStudioImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Studio name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get studio image by name.",
"operationId": "HeadStudioImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Studio name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Studios/{name}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get studio image by name.",
"operationId": "GetStudioImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Studio name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get studio image by name.",
"operationId": "HeadStudioImageByIndex",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Studio name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Users/{userId}/Images/{imageType}": {
"post": {
"tags": [
"Image"
],
"summary": "Sets the user image.",
"operationId": "PostUserImage",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "(Unused) Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "index",
"in": "query",
"description": "(Unused) Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"204": {
"description": "Image updated."
},
"403": {
"description": "User does not have permission to delete the image.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Image"
],
"summary": "Delete the user's image.",
"operationId": "DeleteUserImage",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "(Unused) Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "index",
"in": "query",
"description": "(Unused) Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Image deleted."
},
"403": {
"description": "User does not have permission to delete the image.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"get": {
"tags": [
"Image"
],
"summary": "Get user profile image.",
"operationId": "GetUserImage",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get user profile image.",
"operationId": "HeadUserImage",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
},
{
"name": "imageIndex",
"in": "query",
"description": "Image index.",
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Users/{userId}/Images/{imageType}/{imageIndex}": {
"get": {
"tags": [
"Image"
],
"summary": "Get user profile image.",
"operationId": "GetUserImageByIndex",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"head": {
"tags": [
"Image"
],
"summary": "Get user profile image.",
"operationId": "HeadUserImageByIndex",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "imageIndex",
"in": "path",
"description": "Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "tag",
"in": "query",
"description": "Optional. Supply the cache tag from the item object to receive strong caching headers.",
"schema": {
"type": "string"
}
},
{
"name": "format",
"in": "query",
"description": "Determines the output format of the image - original,gif,jpg,png.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageFormat"
}
]
}
},
{
"name": "maxWidth",
"in": "query",
"description": "The maximum image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "The maximum image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "percentPlayed",
"in": "query",
"description": "Optional. Percent to render for the percent played overlay.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "unplayedCount",
"in": "query",
"description": "Optional. Unplayed count overlay to render.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "width",
"in": "query",
"description": "The fixed image width to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "height",
"in": "query",
"description": "The fixed image height to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "quality",
"in": "query",
"description": "Optional. Quality setting, from 0-100. Defaults to 90 and should suffice in most cases.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillWidth",
"in": "query",
"description": "Width of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fillHeight",
"in": "query",
"description": "Height of box to fill.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "cropWhitespace",
"in": "query",
"description": "Optional. Specify if whitespace should be cropped out of the image. True/False. If unspecified, whitespace will be cropped from logos and clear art.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "addPlayedIndicator",
"in": "query",
"description": "Optional. Add a played indicator.",
"schema": {
"type": "boolean"
}
},
{
"name": "blur",
"in": "query",
"description": "Optional. Blur image.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "backgroundColor",
"in": "query",
"description": "Optional. Apply a background color for transparent images.",
"schema": {
"type": "string"
}
},
{
"name": "foregroundLayer",
"in": "query",
"description": "Optional. Apply a foreground layer on top of the image.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream returned.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Users/{userId}/Images/{imageType}/{index}": {
"post": {
"tags": [
"Image"
],
"summary": "Sets the user image.",
"operationId": "PostUserImageByIndex",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "(Unused) Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "index",
"in": "path",
"description": "(Unused) Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"responses": {
"204": {
"description": "Image updated."
},
"403": {
"description": "User does not have permission to delete the image.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Image"
],
"summary": "Delete the user's image.",
"operationId": "DeleteUserImageByIndex",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "imageType",
"in": "path",
"description": "(Unused) Image type.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ImageType"
}
],
"description": "Enum ImageType."
}
},
{
"name": "index",
"in": "path",
"description": "(Unused) Image index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Image deleted."
},
"403": {
"description": "User does not have permission to delete the image.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Images/General": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get all general images.",
"operationId": "GetGeneralImages",
"responses": {
"200": {
"description": "Retrieved list of images.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Images/General/{name}/{type}": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get General Image.",
"operationId": "GetGeneralImage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "The name of the image.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "path",
"description": "Image Type (primary, backdrop, logo, etc).",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream retrieved.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Image not found.",
"content": {
"application/octet-stream": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Images/MediaInfo": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get all media info images.",
"operationId": "GetMediaInfoImages",
"responses": {
"200": {
"description": "Image list retrieved.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Images/MediaInfo/{theme}/{name}": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get media info image.",
"operationId": "GetMediaInfoImage",
"parameters": [
{
"name": "theme",
"in": "path",
"description": "The theme to get the image from.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"description": "The name of the image.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream retrieved.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Image not found.",
"content": {
"application/octet-stream": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Images/Ratings": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get all general images.",
"operationId": "GetRatingImages",
"responses": {
"200": {
"description": "Retrieved list of images.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageByNameInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Images/Ratings/{theme}/{name}": {
"get": {
"tags": [
"ImageByName"
],
"summary": "Get rating image.",
"operationId": "GetRatingImage",
"parameters": [
{
"name": "theme",
"in": "path",
"description": "The theme to get the image from.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "name",
"in": "path",
"description": "The name of the image.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Image stream retrieved.",
"content": {
"image/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Image not found.",
"content": {
"application/octet-stream": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/Albums/{id}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given album.",
"operationId": "GetInstantMixFromAlbum",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/{id}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given artist.",
"operationId": "GetInstantMixFromArtists",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given artist.",
"operationId": "GetInstantMixFromArtists2",
"parameters": [
{
"name": "id",
"in": "query",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{id}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given item.",
"operationId": "GetInstantMixFromItem",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/MusicGenres/{name}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given genre.",
"operationId": "GetInstantMixFromMusicGenreByName",
"parameters": [
{
"name": "name",
"in": "path",
"description": "The genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/MusicGenres/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given genre.",
"operationId": "GetInstantMixFromMusicGenreById",
"parameters": [
{
"name": "id",
"in": "query",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Playlists/{id}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given playlist.",
"operationId": "GetInstantMixFromPlaylist",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Songs/{id}/InstantMix": {
"get": {
"tags": [
"InstantMix"
],
"summary": "Creates an instant playlist based on a given song.",
"operationId": "GetInstantMixFromSong",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Instant playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/ExternalIdInfos": {
"get": {
"tags": [
"ItemLookup"
],
"summary": "Get the item's external id info.",
"operationId": "GetExternalIdInfos",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "External id info retrieved.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalIdInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalIdInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ExternalIdInfo"
}
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Apply/{itemId}": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Applies search criteria to an item and refreshes metadata.",
"operationId": "ApplySearchCriteria",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "replaceAllImages",
"in": "query",
"description": "Optional. Whether or not to replace all images. Default: True.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"requestBody": {
"description": "The remote search result.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RemoteSearchResult"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RemoteSearchResult"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RemoteSearchResult"
}
]
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Item metadata refreshed."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Book": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get book remote search.",
"operationId": "GetBookRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BookInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Book remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/BoxSet": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get box set remote search.",
"operationId": "GetBoxSetRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BoxSetInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Box set remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Movie": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get movie remote search.",
"operationId": "GetMovieRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MovieInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Movie remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/MusicAlbum": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get music album remote search.",
"operationId": "GetMusicAlbumRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AlbumInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Music album remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/MusicArtist": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get music artist remote search.",
"operationId": "GetMusicArtistRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ArtistInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Music artist remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/MusicVideo": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get music video remote search.",
"operationId": "GetMusicVideoRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MusicVideoInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Music video remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Person": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get person remote search.",
"operationId": "GetPersonRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PersonLookupInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Person remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Series": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get series remote search.",
"operationId": "GetSeriesRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Series remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/RemoteSearch/Trailer": {
"post": {
"tags": [
"ItemLookup"
],
"summary": "Get trailer remote search.",
"operationId": "GetTrailerRemoteSearchResults",
"requestBody": {
"description": "Remote search query.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TrailerInfoRemoteSearchQuery"
}
]
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Trailer remote search executed.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteSearchResult"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/Refresh": {
"post": {
"tags": [
"ItemRefresh"
],
"summary": "Refreshes metadata for an item.",
"operationId": "RefreshItem",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "metadataRefreshMode",
"in": "query",
"description": "(Optional) Specifies the metadata refresh mode.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MetadataRefreshMode"
}
],
"default": "None"
}
},
{
"name": "imageRefreshMode",
"in": "query",
"description": "(Optional) Specifies the image refresh mode.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MetadataRefreshMode"
}
],
"default": "None"
}
},
{
"name": "replaceAllMetadata",
"in": "query",
"description": "(Optional) Determines if metadata should be replaced. Only applicable if mode is FullRefresh.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "replaceAllImages",
"in": "query",
"description": "(Optional) Determines if images should be replaced. Only applicable if mode is FullRefresh.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Item metadata refresh queued."
},
"404": {
"description": "Item to refresh not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Items": {
"get": {
"tags": [
"Items"
],
"summary": "Gets items based on a query.",
"operationId": "GetItems",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "The user id supplied as query parameter.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "maxOfficialRating",
"in": "query",
"description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
"schema": {
"type": "string"
}
},
{
"name": "hasThemeSong",
"in": "query",
"description": "Optional filter by items with theme songs.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasThemeVideo",
"in": "query",
"description": "Optional filter by items with theme videos.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasSubtitles",
"in": "query",
"description": "Optional filter by items with subtitles.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasSpecialFeature",
"in": "query",
"description": "Optional filter by items with special features.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTrailer",
"in": "query",
"description": "Optional filter by items with trailers.",
"schema": {
"type": "boolean"
}
},
{
"name": "adjacentTo",
"in": "query",
"description": "Optional. Return items that are siblings of a supplied item.",
"schema": {
"type": "string"
}
},
{
"name": "parentIndexNumber",
"in": "query",
"description": "Optional filter by parent index number.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "hasParentalRating",
"in": "query",
"description": "Optional filter by items that have or do not have a parental rating.",
"schema": {
"type": "boolean"
}
},
{
"name": "isHd",
"in": "query",
"description": "Optional filter by items that are HD or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "is4K",
"in": "query",
"description": "Optional filter by items that are 4K or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "locationTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocationType"
}
}
},
{
"name": "excludeLocationTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocationType"
}
}
},
{
"name": "isMissing",
"in": "query",
"description": "Optional filter by items that are missing episodes or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isUnaired",
"in": "query",
"description": "Optional filter by items that are unaired episodes or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "minCommunityRating",
"in": "query",
"description": "Optional filter by minimum community rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "minCriticRating",
"in": "query",
"description": "Optional filter by minimum critic rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "minPremiereDate",
"in": "query",
"description": "Optional. The minimum premiere date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "minDateLastSaved",
"in": "query",
"description": "Optional. The minimum last saved date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "minDateLastSavedForUser",
"in": "query",
"description": "Optional. The minimum last saved date for the current user. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "maxPremiereDate",
"in": "query",
"description": "Optional. The maximum premiere date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "hasOverview",
"in": "query",
"description": "Optional filter by items that have an overview or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasImdbId",
"in": "query",
"description": "Optional filter by items that have an imdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTmdbId",
"in": "query",
"description": "Optional filter by items that have a tmdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTvdbId",
"in": "query",
"description": "Optional filter by items that have a tvdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional filter for live tv movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional filter for live tv series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional filter for live tv news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional filter for live tv kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional filter for live tv sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "excludeItemIds",
"in": "query",
"description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "recursive",
"in": "query",
"description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "Optional. Filter based on a search term.",
"schema": {
"type": "string"
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "imageTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "isPlayed",
"in": "query",
"description": "Optional filter by items that are played, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "genres",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "officialRatings",
"in": "query",
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "tags",
"in": "query",
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "years",
"in": "query",
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional, include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "person",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
"schema": {
"type": "string"
}
},
{
"name": "personIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "personTypes",
"in": "query",
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studios",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "artists",
"in": "query",
"description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "artistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "albumArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "contributingArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "albums",
"in": "query",
"description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "albumIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "ids",
"in": "query",
"description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "videoTypes",
"in": "query",
"description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VideoType"
}
}
},
{
"name": "minOfficialRating",
"in": "query",
"description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
"schema": {
"type": "string"
}
},
{
"name": "isLocked",
"in": "query",
"description": "Optional filter by items that are locked.",
"schema": {
"type": "boolean"
}
},
{
"name": "isPlaceHolder",
"in": "query",
"description": "Optional filter by items that are placeholders.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasOfficialRating",
"in": "query",
"description": "Optional filter by items that have official ratings.",
"schema": {
"type": "boolean"
}
},
{
"name": "collapseBoxSetItems",
"in": "query",
"description": "Whether or not to hide items behind their boxsets.",
"schema": {
"type": "boolean"
}
},
{
"name": "minWidth",
"in": "query",
"description": "Optional. Filter by the minimum width of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minHeight",
"in": "query",
"description": "Optional. Filter by the minimum height of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. Filter by the maximum width of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. Filter by the maximum height of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "is3D",
"in": "query",
"description": "Optional filter by items that are 3D, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "seriesStatus",
"in": "query",
"description": "Optional filter by Series Status. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SeriesStatus"
}
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "studioIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Enable the total record count.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Library"
],
"summary": "Deletes items from the library and filesystem.",
"operationId": "DeleteItems",
"parameters": [
{
"name": "ids",
"in": "query",
"description": "The item ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
],
"responses": {
"204": {
"description": "Items deleted."
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Users/{userId}/Items": {
"get": {
"tags": [
"Items"
],
"summary": "Gets items based on a query.",
"operationId": "GetItemsByUserId",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "The user id supplied as query parameter.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "maxOfficialRating",
"in": "query",
"description": "Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).",
"schema": {
"type": "string"
}
},
{
"name": "hasThemeSong",
"in": "query",
"description": "Optional filter by items with theme songs.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasThemeVideo",
"in": "query",
"description": "Optional filter by items with theme videos.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasSubtitles",
"in": "query",
"description": "Optional filter by items with subtitles.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasSpecialFeature",
"in": "query",
"description": "Optional filter by items with special features.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTrailer",
"in": "query",
"description": "Optional filter by items with trailers.",
"schema": {
"type": "boolean"
}
},
{
"name": "adjacentTo",
"in": "query",
"description": "Optional. Return items that are siblings of a supplied item.",
"schema": {
"type": "string"
}
},
{
"name": "parentIndexNumber",
"in": "query",
"description": "Optional filter by parent index number.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "hasParentalRating",
"in": "query",
"description": "Optional filter by items that have or do not have a parental rating.",
"schema": {
"type": "boolean"
}
},
{
"name": "isHd",
"in": "query",
"description": "Optional filter by items that are HD or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "is4K",
"in": "query",
"description": "Optional filter by items that are 4K or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "locationTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on LocationType. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocationType"
}
}
},
{
"name": "excludeLocationTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on the LocationType. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocationType"
}
}
},
{
"name": "isMissing",
"in": "query",
"description": "Optional filter by items that are missing episodes or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isUnaired",
"in": "query",
"description": "Optional filter by items that are unaired episodes or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "minCommunityRating",
"in": "query",
"description": "Optional filter by minimum community rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "minCriticRating",
"in": "query",
"description": "Optional filter by minimum critic rating.",
"schema": {
"type": "number",
"format": "double"
}
},
{
"name": "minPremiereDate",
"in": "query",
"description": "Optional. The minimum premiere date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "minDateLastSaved",
"in": "query",
"description": "Optional. The minimum last saved date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "minDateLastSavedForUser",
"in": "query",
"description": "Optional. The minimum last saved date for the current user. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "maxPremiereDate",
"in": "query",
"description": "Optional. The maximum premiere date. Format = ISO.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "hasOverview",
"in": "query",
"description": "Optional filter by items that have an overview or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasImdbId",
"in": "query",
"description": "Optional filter by items that have an imdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTmdbId",
"in": "query",
"description": "Optional filter by items that have a tmdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasTvdbId",
"in": "query",
"description": "Optional filter by items that have a tvdb id or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional filter for live tv movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional filter for live tv series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional filter for live tv news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional filter for live tv kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional filter for live tv sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "excludeItemIds",
"in": "query",
"description": "Optional. If specified, results will be filtered by excluding item ids. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "recursive",
"in": "query",
"description": "When searching within folders, this determines whether or not the search will be recursive. true/false.",
"schema": {
"type": "boolean"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "Optional. Filter based on a search term.",
"schema": {
"type": "string"
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply. This allows multiple, comma delimited. Options: IsFolder, IsNotFolder, IsUnplayed, IsPlayed, IsFavorite, IsResumable, Likes, Dislikes.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "imageTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on those containing image types. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Album, AlbumArtist, Artist, Budget, CommunityRating, CriticRating, DateCreated, DatePlayed, PlayCount, PremiereDate, ProductionYear, SortName, Random, Revenue, Runtime.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "isPlayed",
"in": "query",
"description": "Optional filter by items that are played, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "genres",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "officialRatings",
"in": "query",
"description": "Optional. If specified, results will be filtered based on OfficialRating. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "tags",
"in": "query",
"description": "Optional. If specified, results will be filtered based on tag. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "years",
"in": "query",
"description": "Optional. If specified, results will be filtered based on production year. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional, include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "person",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person.",
"schema": {
"type": "string"
}
},
{
"name": "personIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified person id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "personTypes",
"in": "query",
"description": "Optional. If specified, along with Person, results will be filtered to include only those containing the specified person and PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "studios",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "artists",
"in": "query",
"description": "Optional. If specified, results will be filtered based on artists. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on artist id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "artistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "albumArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified album artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "contributingArtistIds",
"in": "query",
"description": "Optional. If specified, results will be filtered to include only those containing the specified contributing artist id.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "albums",
"in": "query",
"description": "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "albumIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on album id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "ids",
"in": "query",
"description": "Optional. If specific items are needed, specify a list of item id's to retrieve. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "videoTypes",
"in": "query",
"description": "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VideoType"
}
}
},
{
"name": "minOfficialRating",
"in": "query",
"description": "Optional filter by minimum official rating (PG, PG-13, TV-MA, etc).",
"schema": {
"type": "string"
}
},
{
"name": "isLocked",
"in": "query",
"description": "Optional filter by items that are locked.",
"schema": {
"type": "boolean"
}
},
{
"name": "isPlaceHolder",
"in": "query",
"description": "Optional filter by items that are placeholders.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasOfficialRating",
"in": "query",
"description": "Optional filter by items that have official ratings.",
"schema": {
"type": "boolean"
}
},
{
"name": "collapseBoxSetItems",
"in": "query",
"description": "Whether or not to hide items behind their boxsets.",
"schema": {
"type": "boolean"
}
},
{
"name": "minWidth",
"in": "query",
"description": "Optional. Filter by the minimum width of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "minHeight",
"in": "query",
"description": "Optional. Filter by the minimum height of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxWidth",
"in": "query",
"description": "Optional. Filter by the maximum width of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxHeight",
"in": "query",
"description": "Optional. Filter by the maximum height of the item.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "is3D",
"in": "query",
"description": "Optional filter by items that are 3D, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "seriesStatus",
"in": "query",
"description": "Optional filter by Series Status. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SeriesStatus"
}
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "studioIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on studio id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "Optional. If specified, results will be filtered based on genre id. This allows multiple, pipe delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Enable the total record count.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Users/{userId}/Items/Resume": {
"get": {
"tags": [
"Items"
],
"summary": "Gets items based on a query.",
"operationId": "GetResumeItems",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "The user id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "The start index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "The item limit.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "The search term.",
"schema": {
"type": "string"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "mediaTypes",
"in": "query",
"description": "Optional. Filter by MediaType. Allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Enable the total record count.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "excludeActiveSessions",
"in": "query",
"description": "Optional. Whether to exclude the currently active sessions.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}": {
"post": {
"tags": [
"ItemUpdate"
],
"summary": "Updates an item.",
"operationId": "UpdateItem",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The new item properties.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BaseItemDto"
}
],
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BaseItemDto"
}
],
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BaseItemDto"
}
],
"description": "This is strictly used as a data transfer object from the api layer.\r\nThis holds information about a BaseItem in a format that is convenient for the client."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Item updated."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
},
"delete": {
"tags": [
"Library"
],
"summary": "Deletes an item from the library and filesystem.",
"operationId": "DeleteItem",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Item deleted."
},
"401": {
"description": "Unauthorized access.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/ContentType": {
"post": {
"tags": [
"ItemUpdate"
],
"summary": "Updates an item's content type.",
"operationId": "UpdateItemContentType",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "contentType",
"in": "query",
"description": "The content type of the item.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Item content type updated."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Items/{itemId}/MetadataEditor": {
"get": {
"tags": [
"ItemUpdate"
],
"summary": "Gets metadata editor info for an item.",
"operationId": "GetMetadataEditorInfo",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Item metadata editor returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetadataEditorInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/MetadataEditorInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/MetadataEditorInfo"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Albums/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarAlbums",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Artists/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarArtists",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/Ancestors": {
"get": {
"tags": [
"Library"
],
"summary": "Gets all parents of an item.",
"operationId": "GetAncestors",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Item parents returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/CriticReviews": {
"get": {
"tags": [
"Library"
],
"summary": "Gets critic review for an item.",
"operationId": "GetCriticReviews",
"parameters": [
{
"name": "itemId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Critic reviews returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/Download": {
"get": {
"tags": [
"Library"
],
"summary": "Downloads item media.",
"operationId": "GetDownload",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Media downloaded.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
},
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"Download"
]
}
]
}
},
"/Items/{itemId}/File": {
"get": {
"tags": [
"Library"
],
"summary": "Get the original file of an item.",
"operationId": "GetFile",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "File stream returned.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
},
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarItems",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/ThemeMedia": {
"get": {
"tags": [
"Library"
],
"summary": "Get theme songs and videos for an item.",
"operationId": "GetThemeMedia",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "inheritFromParent",
"in": "query",
"description": "Optional. Determines whether or not parent items should be searched for theme media.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Theme songs and videos returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AllThemeMediaResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/AllThemeMediaResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/AllThemeMediaResult"
}
}
}
},
"404": {
"description": "Item not found."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/ThemeSongs": {
"get": {
"tags": [
"Library"
],
"summary": "Get theme songs for an item.",
"operationId": "GetThemeSongs",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "inheritFromParent",
"in": "query",
"description": "Optional. Determines whether or not parent items should be searched for theme media.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Theme songs returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/{itemId}/ThemeVideos": {
"get": {
"tags": [
"Library"
],
"summary": "Get theme videos for an item.",
"operationId": "GetThemeVideos",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "inheritFromParent",
"in": "query",
"description": "Optional. Determines whether or not parent items should be searched for theme media.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Theme videos returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ThemeMediaResult"
}
}
}
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Items/Counts": {
"get": {
"tags": [
"Library"
],
"summary": "Get item counts.",
"operationId": "GetItemCounts",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. Get counts from a specific user's library.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional. Get counts of favorite items.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Item counts returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ItemCounts"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ItemCounts"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ItemCounts"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Libraries/AvailableOptions": {
"get": {
"tags": [
"Library"
],
"summary": "Gets the library options info.",
"operationId": "GetLibraryOptionsInfo",
"parameters": [
{
"name": "libraryContentType",
"in": "query",
"description": "Library content type.",
"schema": {
"type": "string"
}
},
{
"name": "isNewLibrary",
"in": "query",
"description": "Whether this is a new library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Library options info returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibraryOptionsResultDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/LibraryOptionsResultDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/LibraryOptionsResultDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrDefault"
]
}
]
}
},
"/Library/Media/Updated": {
"post": {
"tags": [
"Library"
],
"summary": "Reports that new movies have been added by an external source.",
"operationId": "PostUpdatedMedia",
"requestBody": {
"description": "The update paths.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaUpdateInfoDto"
}
],
"description": "Media Update Info Dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaUpdateInfoDto"
}
],
"description": "Media Update Info Dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaUpdateInfoDto"
}
],
"description": "Media Update Info Dto."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Report success."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Library/MediaFolders": {
"get": {
"tags": [
"Library"
],
"summary": "Gets all user media folders.",
"operationId": "GetMediaFolders",
"parameters": [
{
"name": "isHidden",
"in": "query",
"description": "Optional. Filter by folders that are marked hidden, or not.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Media folders returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Library/Movies/Added": {
"post": {
"tags": [
"Library"
],
"summary": "Reports that new movies have been added by an external source.",
"operationId": "PostAddedMovies",
"parameters": [
{
"name": "tmdbId",
"in": "query",
"description": "The tmdbId.",
"schema": {
"type": "string"
}
},
{
"name": "imdbId",
"in": "query",
"description": "The imdbId.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Report success."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Library/Movies/Updated": {
"post": {
"tags": [
"Library"
],
"summary": "Reports that new movies have been added by an external source.",
"operationId": "PostUpdatedMovies",
"parameters": [
{
"name": "tmdbId",
"in": "query",
"description": "The tmdbId.",
"schema": {
"type": "string"
}
},
{
"name": "imdbId",
"in": "query",
"description": "The imdbId.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Report success."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Library/PhysicalPaths": {
"get": {
"tags": [
"Library"
],
"summary": "Gets a list of physical paths from virtual folders.",
"operationId": "GetPhysicalPaths",
"responses": {
"200": {
"description": "Physical paths returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Library/Refresh": {
"post": {
"tags": [
"Library"
],
"summary": "Starts a library scan.",
"operationId": "RefreshLibrary",
"responses": {
"204": {
"description": "Library scan started."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation"
]
}
]
}
},
"/Library/Series/Added": {
"post": {
"tags": [
"Library"
],
"summary": "Reports that new episodes of a series have been added by an external source.",
"operationId": "PostAddedSeries",
"parameters": [
{
"name": "tvdbId",
"in": "query",
"description": "The tvdbId.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Report success."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Library/Series/Updated": {
"post": {
"tags": [
"Library"
],
"summary": "Reports that new episodes of a series have been added by an external source.",
"operationId": "PostUpdatedSeries",
"parameters": [
{
"name": "tvdbId",
"in": "query",
"description": "The tvdbId.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Report success."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Movies/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarMovies",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Shows/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarShows",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Trailers/{itemId}/Similar": {
"get": {
"tags": [
"Library"
],
"summary": "Gets similar items.",
"operationId": "GetSimilarTrailers",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "excludeArtistIds",
"in": "query",
"description": "Exclude artist ids.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output. This allows multiple, comma delimited. Options: Budget, Chapters, DateCreated, Genres, HomePageUrl, IndexOptions, MediaStreams, Overview, ParentId, Path, People, ProviderIds, PrimaryImageAspectRatio, Revenue, SortName, Studios, Taglines, TrailerUrls.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
}
],
"responses": {
"200": {
"description": "Similar items returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Library/VirtualFolders": {
"get": {
"tags": [
"LibraryStructure"
],
"summary": "Gets all virtual folders.",
"operationId": "GetVirtualFolders",
"responses": {
"200": {
"description": "Virtual folders retrieved.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualFolderInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualFolderInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualFolderInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
},
"post": {
"tags": [
"LibraryStructure"
],
"summary": "Adds a virtual folder.",
"operationId": "AddVirtualFolder",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the virtual folder.",
"schema": {
"type": "string"
}
},
{
"name": "collectionType",
"in": "query",
"description": "The type of the collection.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CollectionTypeOptions"
}
]
}
},
{
"name": "paths",
"in": "query",
"description": "The paths of the virtual folder.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "refreshLibrary",
"in": "query",
"description": "Whether to refresh the library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
"description": "The library options.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AddVirtualFolderDto"
}
],
"description": "Add virtual folder dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AddVirtualFolderDto"
}
],
"description": "Add virtual folder dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AddVirtualFolderDto"
}
],
"description": "Add virtual folder dto."
}
}
}
},
"responses": {
"204": {
"description": "Folder added."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
},
"delete": {
"tags": [
"LibraryStructure"
],
"summary": "Removes a virtual folder.",
"operationId": "RemoveVirtualFolder",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the folder.",
"schema": {
"type": "string"
}
},
{
"name": "refreshLibrary",
"in": "query",
"description": "Whether to refresh the library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Folder removed."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Library/VirtualFolders/LibraryOptions": {
"post": {
"tags": [
"LibraryStructure"
],
"summary": "Update library options.",
"operationId": "UpdateLibraryOptions",
"requestBody": {
"description": "The library name and options.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateLibraryOptionsDto"
}
],
"description": "Update library options dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateLibraryOptionsDto"
}
],
"description": "Update library options dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateLibraryOptionsDto"
}
],
"description": "Update library options dto."
}
}
}
},
"responses": {
"204": {
"description": "Library updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Library/VirtualFolders/Name": {
"post": {
"tags": [
"LibraryStructure"
],
"summary": "Renames a virtual folder.",
"operationId": "RenameVirtualFolder",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the virtual folder.",
"schema": {
"type": "string"
}
},
{
"name": "newName",
"in": "query",
"description": "The new name.",
"schema": {
"type": "string"
}
},
{
"name": "refreshLibrary",
"in": "query",
"description": "Whether to refresh the library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Folder renamed."
},
"404": {
"description": "Library doesn't exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"409": {
"description": "Library already exists.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Library/VirtualFolders/Paths": {
"post": {
"tags": [
"LibraryStructure"
],
"summary": "Add a media path to a library.",
"operationId": "AddMediaPath",
"parameters": [
{
"name": "refreshLibrary",
"in": "query",
"description": "Whether to refresh the library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
"description": "The media path dto.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaPathDto"
}
],
"description": "Media Path dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaPathDto"
}
],
"description": "Media Path dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MediaPathDto"
}
],
"description": "Media Path dto."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Media path added."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
},
"delete": {
"tags": [
"LibraryStructure"
],
"summary": "Remove a media path.",
"operationId": "RemoveMediaPath",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The name of the library.",
"schema": {
"type": "string"
}
},
{
"name": "path",
"in": "query",
"description": "The path to remove.",
"schema": {
"type": "string"
}
},
{
"name": "refreshLibrary",
"in": "query",
"description": "Whether to refresh the library.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Media path removed."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/Library/VirtualFolders/Paths/Update": {
"post": {
"tags": [
"LibraryStructure"
],
"summary": "Updates a media path.",
"operationId": "UpdateMediaPath",
"requestBody": {
"description": "The name of the library and path infos.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateMediaPathRequestDto"
}
],
"description": "Update library options dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateMediaPathRequestDto"
}
],
"description": "Update library options dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateMediaPathRequestDto"
}
],
"description": "Update library options dto."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Media path updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrElevated"
]
}
]
}
},
"/LiveTv/ChannelMappingOptions": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Get channel mapping options.",
"operationId": "GetChannelMappingOptions",
"parameters": [
{
"name": "providerId",
"in": "query",
"description": "Provider id.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Channel mapping options returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelMappingOptionsDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ChannelMappingOptionsDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ChannelMappingOptionsDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/ChannelMappings": {
"post": {
"tags": [
"LiveTv"
],
"summary": "Set channel mappings.",
"operationId": "SetChannelMapping",
"requestBody": {
"description": "The set channel mapping dto.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SetChannelMappingDto"
}
],
"description": "Set channel mapping dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SetChannelMappingDto"
}
],
"description": "Set channel mapping dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SetChannelMappingDto"
}
],
"description": "Set channel mapping dto."
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Created channel mapping returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TunerChannelMapping"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/TunerChannelMapping"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/TunerChannelMapping"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Channels": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets available live tv channels.",
"operationId": "GetLiveTvChannels",
"parameters": [
{
"name": "type",
"in": "query",
"description": "Optional. Filter by channel type.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ChannelType"
}
]
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional. Filter for movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional. Filter for series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional. Filter for news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional. Filter for kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional. Filter for sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional. Filter by channels that are favorites, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isLiked",
"in": "query",
"description": "Optional. Filter by channels that are liked, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isDisliked",
"in": "query",
"description": "Optional. Filter by channels that are disliked, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "\"Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Key to sort by.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Optional. Sort order.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortOrder"
}
]
}
},
{
"name": "enableFavoriteSorting",
"in": "query",
"description": "Optional. Incorporate favorite and like status into channel sorting.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "addCurrentProgram",
"in": "query",
"description": "Optional. Adds current program info to each channel.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Available live tv channels returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Channels/{channelId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv channel.",
"operationId": "GetChannel",
"parameters": [
{
"name": "channelId",
"in": "path",
"description": "Channel id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Live tv channel returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/GuideInfo": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Get guid info.",
"operationId": "GetGuideInfo",
"responses": {
"200": {
"description": "Guid info returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GuideInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/GuideInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/GuideInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Info": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets available live tv services.",
"operationId": "GetLiveTvInfo",
"responses": {
"200": {
"description": "Available live tv services returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveTvInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/LiveTvInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/LiveTvInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/ListingProviders": {
"post": {
"tags": [
"LiveTv"
],
"summary": "Adds a listings provider.",
"operationId": "AddListingProvider",
"parameters": [
{
"name": "pw",
"in": "query",
"description": "Password.",
"schema": {
"type": "string"
}
},
{
"name": "validateListings",
"in": "query",
"description": "Validate listings.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "validateLogin",
"in": "query",
"description": "Validate login.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"requestBody": {
"description": "New listings info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ListingsProviderInfo"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ListingsProviderInfo"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ListingsProviderInfo"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Created listings provider returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
},
"delete": {
"tags": [
"LiveTv"
],
"summary": "Delete listing provider.",
"operationId": "DeleteListingProvider",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Listing provider id.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Listing provider deleted."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/ListingProviders/Default": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets default listings provider info.",
"operationId": "GetDefaultListingProvider",
"responses": {
"200": {
"description": "Default listings provider info returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ListingsProviderInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/ListingProviders/Lineups": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets available lineups.",
"operationId": "GetLineups",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Provider id.",
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "query",
"description": "Provider type.",
"schema": {
"type": "string"
}
},
{
"name": "location",
"in": "query",
"description": "Location.",
"schema": {
"type": "string"
}
},
{
"name": "country",
"in": "query",
"description": "Country.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Available lineups returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/ListingProviders/SchedulesDirect/Countries": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets available countries.",
"operationId": "GetSchedulesDirectCountries",
"responses": {
"200": {
"description": "Available countries returned.",
"content": {
"application/json": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/LiveRecordings/{recordingId}/stream": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv recording stream.",
"operationId": "GetLiveRecordingFile",
"parameters": [
{
"name": "recordingId",
"in": "path",
"description": "Recording id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Recording stream returned.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Recording not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/LiveTv/LiveStreamFiles/{streamId}/stream.{container}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv channel stream.",
"operationId": "GetLiveStreamFile",
"parameters": [
{
"name": "streamId",
"in": "path",
"description": "Stream id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "container",
"in": "path",
"description": "Container type.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Stream returned.",
"content": {
"video/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"404": {
"description": "Stream not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/LiveTv/Programs": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets available live tv epgs.",
"operationId": "GetLiveTvPrograms",
"parameters": [
{
"name": "channelIds",
"in": "query",
"description": "The channels to return guide information for.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "minStartDate",
"in": "query",
"description": "Optional. The minimum premiere start date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "hasAired",
"in": "query",
"description": "Optional. Filter by programs that have completed airing, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isAiring",
"in": "query",
"description": "Optional. Filter by programs that are currently airing, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "maxStartDate",
"in": "query",
"description": "Optional. The maximum premiere start date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "minEndDate",
"in": "query",
"description": "Optional. The minimum premiere end date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "maxEndDate",
"in": "query",
"description": "Optional. The maximum premiere end date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional. Filter for movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional. Filter for series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional. Filter for news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional. Filter for kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional. Filter for sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited. Options: Name, StartDate.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "genres",
"in": "query",
"description": "The genres to return guide information for.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "The genre ids to return guide information for.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "seriesTimerId",
"in": "query",
"description": "Optional. Filter by series timer id.",
"schema": {
"type": "string"
}
},
{
"name": "librarySeriesId",
"in": "query",
"description": "Optional. Filter by library series id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Retrieve total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Live tv epgs returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"post": {
"tags": [
"LiveTv"
],
"summary": "Gets available live tv epgs.",
"operationId": "GetPrograms",
"requestBody": {
"description": "Request body.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/GetProgramsDto"
}
],
"description": "Get programs dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/GetProgramsDto"
}
],
"description": "Get programs dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/GetProgramsDto"
}
],
"description": "Get programs dto."
}
}
}
},
"responses": {
"200": {
"description": "Live tv epgs returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Programs/{programId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv program.",
"operationId": "GetProgram",
"parameters": [
{
"name": "programId",
"in": "path",
"description": "Program id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Program returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Programs/Recommended": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets recommended live tv epgs.",
"operationId": "GetRecommendedPrograms",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. filter by user id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "isAiring",
"in": "query",
"description": "Optional. Filter by programs that are currently airing, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "hasAired",
"in": "query",
"description": "Optional. Filter by programs that have completed airing, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional. Filter for series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional. Filter for movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional. Filter for news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional. Filter for kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional. Filter for sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "genreIds",
"in": "query",
"description": "The genres to return guide information for.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Retrieve total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Recommended epgs returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Recordings": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets live tv recordings.",
"operationId": "GetRecordings",
"parameters": [
{
"name": "channelId",
"in": "query",
"description": "Optional. Filter by channel id.",
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "status",
"in": "query",
"description": "Optional. Filter by recording status.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RecordingStatus"
}
]
}
},
{
"name": "isInProgress",
"in": "query",
"description": "Optional. Filter by recordings that are in progress, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "seriesTimerId",
"in": "query",
"description": "Optional. Filter by recordings belonging to a series timer.",
"schema": {
"type": "string"
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "isMovie",
"in": "query",
"description": "Optional. Filter for movies.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSeries",
"in": "query",
"description": "Optional. Filter for series.",
"schema": {
"type": "boolean"
}
},
{
"name": "isKids",
"in": "query",
"description": "Optional. Filter for kids.",
"schema": {
"type": "boolean"
}
},
{
"name": "isSports",
"in": "query",
"description": "Optional. Filter for sports.",
"schema": {
"type": "boolean"
}
},
{
"name": "isNews",
"in": "query",
"description": "Optional. Filter for news.",
"schema": {
"type": "boolean"
}
},
{
"name": "isLibraryItem",
"in": "query",
"description": "Optional. Filter for is library item.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Return total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Live tv recordings returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Recordings/{recordingId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv recording.",
"operationId": "GetRecording",
"parameters": [
{
"name": "recordingId",
"in": "path",
"description": "Recording id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Recording returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"delete": {
"tags": [
"LiveTv"
],
"summary": "Deletes a live tv recording.",
"operationId": "DeleteRecording",
"parameters": [
{
"name": "recordingId",
"in": "path",
"description": "Recording id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Recording deleted."
},
"404": {
"description": "Item not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Recordings/Folders": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets recording folders.",
"operationId": "GetRecordingFolders",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Recording folders returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Recordings/Groups": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets live tv recording groups.",
"operationId": "GetRecordingGroups",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Recording groups returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Recordings/Groups/{groupId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Get recording group.",
"operationId": "GetRecordingGroup",
"parameters": [
{
"name": "groupId",
"in": "path",
"description": "Group id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"404": {
"description": "Not Found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Recordings/Series": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets live tv recording series.",
"operationId": "GetRecordingsSeries",
"parameters": [
{
"name": "channelId",
"in": "query",
"description": "Optional. Filter by channel id.",
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "groupId",
"in": "query",
"description": "Optional. Filter by recording group.",
"schema": {
"type": "string"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "status",
"in": "query",
"description": "Optional. Filter by recording status.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RecordingStatus"
}
]
}
},
{
"name": "isInProgress",
"in": "query",
"description": "Optional. Filter by recordings that are in progress, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "seriesTimerId",
"in": "query",
"description": "Optional. Filter by recordings belonging to a series timer.",
"schema": {
"type": "string"
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Return total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Live tv recordings returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/SeriesTimers": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets live tv series timers.",
"operationId": "GetSeriesTimers",
"parameters": [
{
"name": "sortBy",
"in": "query",
"description": "Optional. Sort by SortName or Priority.",
"schema": {
"type": "string"
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Optional. Sort in Ascending or Descending order.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortOrder"
}
]
}
}
],
"responses": {
"200": {
"description": "Timers returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"post": {
"tags": [
"LiveTv"
],
"summary": "Creates a live tv series timer.",
"operationId": "CreateSeriesTimer",
"requestBody": {
"description": "New series timer info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
}
}
},
"responses": {
"204": {
"description": "Series timer info created."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/SeriesTimers/{timerId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a live tv series timer.",
"operationId": "GetSeriesTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Series timer returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
}
}
},
"404": {
"description": "Series timer not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"delete": {
"tags": [
"LiveTv"
],
"summary": "Cancels a live tv series timer.",
"operationId": "CancelSeriesTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Timer cancelled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
},
"post": {
"tags": [
"LiveTv"
],
"summary": "Updates a live tv series timer.",
"operationId": "UpdateSeriesTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "New series timer info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
],
"description": "Class SeriesTimerInfoDto."
}
}
}
},
"responses": {
"204": {
"description": "Series timer updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Timers": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets the live tv timers.",
"operationId": "GetTimers",
"parameters": [
{
"name": "channelId",
"in": "query",
"description": "Optional. Filter by channel id.",
"schema": {
"type": "string"
}
},
{
"name": "seriesTimerId",
"in": "query",
"description": "Optional. Filter by timers belonging to a series timer.",
"schema": {
"type": "string"
}
},
{
"name": "isActive",
"in": "query",
"description": "Optional. Filter by timers that are active.",
"schema": {
"type": "boolean"
}
},
{
"name": "isScheduled",
"in": "query",
"description": "Optional. Filter by timers that are scheduled.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"post": {
"tags": [
"LiveTv"
],
"summary": "Creates a live tv timer.",
"operationId": "CreateTimer",
"requestBody": {
"description": "New timer info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
}
}
},
"responses": {
"204": {
"description": "Timer created."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Timers/{timerId}": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets a timer.",
"operationId": "GetTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Timer returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/TimerInfoDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
},
"delete": {
"tags": [
"LiveTv"
],
"summary": "Cancels a live tv timer.",
"operationId": "CancelTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Timer deleted."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
},
"post": {
"tags": [
"LiveTv"
],
"summary": "Updates a live tv timer.",
"operationId": "UpdateTimer",
"parameters": [
{
"name": "timerId",
"in": "path",
"description": "Timer id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "New timer info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TimerInfoDto"
}
]
}
}
}
},
"responses": {
"204": {
"description": "Timer updated."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Timers/Defaults": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Gets the default values for a new timer.",
"operationId": "GetDefaultTimer",
"parameters": [
{
"name": "programId",
"in": "query",
"description": "Optional. To attach default values based on a program.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Default values returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/SeriesTimerInfoDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/TunerHosts": {
"post": {
"tags": [
"LiveTv"
],
"summary": "Adds a tuner host.",
"operationId": "AddTunerHost",
"requestBody": {
"description": "New tuner host.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TunerHostInfo"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TunerHostInfo"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/TunerHostInfo"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Created tuner host returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TunerHostInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/TunerHostInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
},
"delete": {
"tags": [
"LiveTv"
],
"summary": "Deletes a tuner host.",
"operationId": "DeleteTunerHost",
"parameters": [
{
"name": "id",
"in": "query",
"description": "Tuner host id.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Tuner host deleted."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/TunerHosts/Types": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Get tuner host types.",
"operationId": "GetTunerHostTypes",
"responses": {
"200": {
"description": "Tuner host types returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvAccess"
]
}
]
}
},
"/LiveTv/Tuners/{tunerId}/Reset": {
"post": {
"tags": [
"LiveTv"
],
"summary": "Resets a tv tuner.",
"operationId": "ResetTuner",
"parameters": [
{
"name": "tunerId",
"in": "path",
"description": "Tuner id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Tuner reset."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Tuners/Discover": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Discover tuners.",
"operationId": "DiscoverTuners",
"parameters": [
{
"name": "newDevicesOnly",
"in": "query",
"description": "Only discover new tuners.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Tuners returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/LiveTv/Tuners/Discvover": {
"get": {
"tags": [
"LiveTv"
],
"summary": "Discover tuners.",
"operationId": "DiscvoverTuners",
"parameters": [
{
"name": "newDevicesOnly",
"in": "query",
"description": "Only discover new tuners.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "Tuners returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TunerHostInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"LiveTvManagement"
]
}
]
}
},
"/Localization/Countries": {
"get": {
"tags": [
"Localization"
],
"summary": "Gets known countries.",
"operationId": "GetCountries",
"responses": {
"200": {
"description": "Known countries returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CountryInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CountryInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CountryInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrDefault"
]
}
]
}
},
"/Localization/Cultures": {
"get": {
"tags": [
"Localization"
],
"summary": "Gets known cultures.",
"operationId": "GetCultures",
"responses": {
"200": {
"description": "Known cultures returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CultureDto"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CultureDto"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CultureDto"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrDefault"
]
}
]
}
},
"/Localization/Options": {
"get": {
"tags": [
"Localization"
],
"summary": "Gets localization options.",
"operationId": "GetLocalizationOptions",
"responses": {
"200": {
"description": "Localization options returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocalizationOption"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocalizationOption"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocalizationOption"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrDefault"
]
}
]
}
},
"/Localization/ParentalRatings": {
"get": {
"tags": [
"Localization"
],
"summary": "Gets known parental ratings.",
"operationId": "GetParentalRatings",
"responses": {
"200": {
"description": "Known parental ratings returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParentalRating"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParentalRating"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParentalRating"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"FirstTimeSetupOrDefault"
]
}
]
}
},
"/Items/{itemId}/PlaybackInfo": {
"get": {
"tags": [
"MediaInfo"
],
"summary": "Gets live playback media info for an item.",
"operationId": "GetPlaybackInfo",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "The user id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Playback info returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"post": {
"tags": [
"MediaInfo"
],
"summary": "Gets live playback media info for an item.",
"description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.",
"operationId": "GetPostedPlaybackInfo",
"parameters": [
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "The user id.",
"deprecated": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "The maximum streaming bitrate.",
"deprecated": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "The start time in ticks.",
"deprecated": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "The audio stream index.",
"deprecated": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "The subtitle stream index.",
"deprecated": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "The maximum number of audio channels.",
"deprecated": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The media source id.",
"deprecated": true,
"schema": {
"type": "string"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The livestream id.",
"deprecated": true,
"schema": {
"type": "string"
}
},
{
"name": "autoOpenLiveStream",
"in": "query",
"description": "Whether to auto open the livestream.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "enableDirectPlay",
"in": "query",
"description": "Whether to enable direct play. Default: true.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "enableDirectStream",
"in": "query",
"description": "Whether to enable direct stream. Default: true.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "enableTranscoding",
"in": "query",
"description": "Whether to enable transcoding. Default: true.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "allowVideoStreamCopy",
"in": "query",
"description": "Whether to allow to copy the video stream. Default: true.",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "allowAudioStreamCopy",
"in": "query",
"description": "Whether to allow to copy the audio stream. Default: true.",
"deprecated": true,
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"description": "The playback info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackInfoDto"
}
],
"description": "Plabyback info dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackInfoDto"
}
],
"description": "Plabyback info dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackInfoDto"
}
],
"description": "Plabyback info dto."
}
}
}
},
"responses": {
"200": {
"description": "Playback info returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaybackInfoResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/LiveStreams/Close": {
"post": {
"tags": [
"MediaInfo"
],
"summary": "Closes a media source.",
"operationId": "CloseLiveStream",
"parameters": [
{
"name": "liveStreamId",
"in": "query",
"description": "The livestream id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Livestream closed."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/LiveStreams/Open": {
"post": {
"tags": [
"MediaInfo"
],
"summary": "Opens a media source.",
"operationId": "OpenLiveStream",
"parameters": [
{
"name": "openToken",
"in": "query",
"description": "The open token.",
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "The user id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "maxStreamingBitrate",
"in": "query",
"description": "The maximum streaming bitrate.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "startTimeTicks",
"in": "query",
"description": "The start time in ticks.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "The audio stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "The subtitle stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "maxAudioChannels",
"in": "query",
"description": "The maximum number of audio channels.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "itemId",
"in": "query",
"description": "The item id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "enableDirectPlay",
"in": "query",
"description": "Whether to enable direct play. Default: true.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableDirectStream",
"in": "query",
"description": "Whether to enable direct stream. Default: true.",
"schema": {
"type": "boolean"
}
}
],
"requestBody": {
"description": "The open live stream dto.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/OpenLiveStreamDto"
}
],
"description": "Open live stream dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/OpenLiveStreamDto"
}
],
"description": "Open live stream dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/OpenLiveStreamDto"
}
],
"description": "Open live stream dto."
}
}
}
},
"responses": {
"200": {
"description": "Media source opened.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LiveStreamResponse"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/LiveStreamResponse"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/LiveStreamResponse"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Playback/BitrateTest": {
"get": {
"tags": [
"MediaInfo"
],
"summary": "Tests the network with a request with the size of the bitrate.",
"operationId": "GetBitrateTestBytes",
"parameters": [
{
"name": "size",
"in": "query",
"description": "The bitrate. Defaults to 102400.",
"schema": {
"maximum": 100000000,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 102400
}
}
],
"responses": {
"200": {
"description": "Test buffer returned.",
"content": {
"application/octet-stream": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Movies/Recommendations": {
"get": {
"tags": [
"Movies"
],
"summary": "Gets movie recommendations.",
"operationId": "GetMovieRecommendations",
"parameters": [
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. The fields to return.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "categoryLimit",
"in": "query",
"description": "The max number of categories to return.",
"schema": {
"type": "integer",
"format": "int32",
"default": 5
}
},
{
"name": "itemLimit",
"in": "query",
"description": "The max number of items to return per category.",
"schema": {
"type": "integer",
"format": "int32",
"default": 8
}
}
],
"responses": {
"200": {
"description": "Movie recommendations returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecommendationDto"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecommendationDto"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RecommendationDto"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/MusicGenres": {
"get": {
"tags": [
"MusicGenres"
],
"summary": "Gets all music genres from a given item, folder, or the entire library.",
"operationId": "GetMusicGenres",
"parameters": [
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "The search term.",
"schema": {
"type": "string"
}
},
{
"name": "parentId",
"in": "query",
"description": "Specify this to localize the search to a specific item or folder. Omit to use the root.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "excludeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "includeItemTypes",
"in": "query",
"description": "Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseItemKind"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "nameStartsWithOrGreater",
"in": "query",
"description": "Optional filter by items whose name is sorted equally or greater than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameStartsWith",
"in": "query",
"description": "Optional filter by items whose name is sorted equally than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "nameLessThan",
"in": "query",
"description": "Optional filter by items whose name is equally or lesser than a given input string.",
"schema": {
"type": "string"
}
},
{
"name": "sortBy",
"in": "query",
"description": "Optional. Specify one or more sort orders, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "sortOrder",
"in": "query",
"description": "Sort Order - Ascending,Descending.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SortOrder"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "enableTotalRecordCount",
"in": "query",
"description": "Optional. Include total record count.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Music genres returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"deprecated": true,
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/MusicGenres/{genreName}": {
"get": {
"tags": [
"MusicGenres"
],
"summary": "Gets a music genre, by name.",
"operationId": "GetMusicGenre",
"parameters": [
{
"name": "genreName",
"in": "path",
"description": "The genre name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/{userId}": {
"get": {
"tags": [
"Notifications"
],
"summary": "Gets a user's notifications.",
"operationId": "GetNotifications",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Notifications returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationResultDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/NotificationResultDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/NotificationResultDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/{userId}/Read": {
"post": {
"tags": [
"Notifications"
],
"summary": "Sets notifications as read.",
"operationId": "SetRead",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Notifications set as read."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/{userId}/Summary": {
"get": {
"tags": [
"Notifications"
],
"summary": "Gets a user's notification summary.",
"operationId": "GetNotificationsSummary",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Summary of user's notifications returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationsSummaryDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/NotificationsSummaryDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/NotificationsSummaryDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/{userId}/Unread": {
"post": {
"tags": [
"Notifications"
],
"summary": "Sets notifications as unread.",
"operationId": "SetUnread",
"parameters": [
{
"name": "userId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Notifications set as unread."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/Admin": {
"post": {
"tags": [
"Notifications"
],
"summary": "Sends a notification to all admins.",
"operationId": "CreateAdminNotification",
"requestBody": {
"description": "The notification request.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AdminNotificationDto"
}
],
"description": "The admin notification dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AdminNotificationDto"
}
],
"description": "The admin notification dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AdminNotificationDto"
}
],
"description": "The admin notification dto."
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Notification sent."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/Services": {
"get": {
"tags": [
"Notifications"
],
"summary": "Gets notification services.",
"operationId": "GetNotificationServices",
"responses": {
"200": {
"description": "All notification services returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NameIdPair"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Notifications/Types": {
"get": {
"tags": [
"Notifications"
],
"summary": "Gets notification types.",
"operationId": "GetNotificationTypes",
"responses": {
"200": {
"description": "All notification types returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationTypeInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationTypeInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationTypeInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Packages": {
"get": {
"tags": [
"Package"
],
"summary": "Gets available packages.",
"operationId": "GetPackages",
"responses": {
"200": {
"description": "Available packages returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PackageInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PackageInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PackageInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Packages/{name}": {
"get": {
"tags": [
"Package"
],
"summary": "Gets a package by name or assembly GUID.",
"operationId": "GetPackageInfo",
"parameters": [
{
"name": "name",
"in": "path",
"description": "The name of the package.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "assemblyGuid",
"in": "query",
"description": "The GUID of the associated assembly.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Package retrieved.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PackageInfo"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/PackageInfo"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/PackageInfo"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Packages/Installed/{name}": {
"post": {
"tags": [
"Package"
],
"summary": "Installs a package.",
"operationId": "InstallPackage",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Package name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "assemblyGuid",
"in": "query",
"description": "GUID of the associated assembly.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "version",
"in": "query",
"description": "Optional version. Defaults to latest version.",
"schema": {
"type": "string"
}
},
{
"name": "repositoryUrl",
"in": "query",
"description": "Optional. Specify the repository to install from.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Package found."
},
"404": {
"description": "Package not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Packages/Installing/{packageId}": {
"delete": {
"tags": [
"Package"
],
"summary": "Cancels a package installation.",
"operationId": "CancelPackageInstallation",
"parameters": [
{
"name": "packageId",
"in": "path",
"description": "Installation Id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Installation cancelled."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Repositories": {
"get": {
"tags": [
"Package"
],
"summary": "Gets all package repositories.",
"operationId": "GetRepositories",
"responses": {
"200": {
"description": "Package repositories returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"post": {
"tags": [
"Package"
],
"summary": "Sets the enabled and existing package repositories.",
"operationId": "SetRepositories",
"requestBody": {
"description": "The list of package repositories.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
},
"application/*+json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryInfo"
}
}
}
},
"required": true
},
"responses": {
"204": {
"description": "Package repositories saved."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"RequiresElevation",
"DefaultAuthorization"
]
}
]
}
},
"/Persons": {
"get": {
"tags": [
"Persons"
],
"summary": "Gets all persons.",
"operationId": "GetPersons",
"parameters": [
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "searchTerm",
"in": "query",
"description": "The search term.",
"schema": {
"type": "string"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "filters",
"in": "query",
"description": "Optional. Specify additional filters to apply.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFilter"
}
}
},
{
"name": "isFavorite",
"in": "query",
"description": "Optional filter by items that are marked as favorite, or not. userId is required.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional, include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional, the max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
},
{
"name": "excludePersonTypes",
"in": "query",
"description": "Optional. If specified results will be filtered to exclude those containing the specified PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "personTypes",
"in": "query",
"description": "Optional. If specified results will be filtered to include only those containing the specified PersonType. Allows multiple, comma-delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "appearsInItemId",
"in": "query",
"description": "Optional. If specified, person results will be filtered on items related to said persons.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional, include image information in output.",
"schema": {
"type": "boolean",
"default": true
}
}
],
"responses": {
"200": {
"description": "Persons returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Persons/{name}": {
"get": {
"tags": [
"Persons"
],
"summary": "Get person by name.",
"operationId": "GetPerson",
"parameters": [
{
"name": "name",
"in": "path",
"description": "Person name.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "Optional. Filter by user id, and attach user data.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Person returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDto"
}
}
}
},
"404": {
"description": "Person not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Playlists": {
"post": {
"tags": [
"Playlists"
],
"summary": "Creates a new playlist.",
"description": "For backwards compatibility parameters can be sent via Query or Body, with Query having higher precedence.\r\nQuery parameters are obsolete.",
"operationId": "CreatePlaylist",
"parameters": [
{
"name": "name",
"in": "query",
"description": "The playlist name.",
"deprecated": true,
"schema": {
"type": "string"
}
},
{
"name": "ids",
"in": "query",
"description": "The item ids.",
"deprecated": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "The user id.",
"deprecated": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "mediaType",
"in": "query",
"description": "The media type.",
"deprecated": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "The create playlist payload.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreatePlaylistDto"
}
],
"description": "Create new playlist dto."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreatePlaylistDto"
}
],
"description": "Create new playlist dto."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreatePlaylistDto"
}
],
"description": "Create new playlist dto."
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlaylistCreationResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaylistCreationResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/PlaylistCreationResult"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Playlists/{playlistId}/Items": {
"post": {
"tags": [
"Playlists"
],
"summary": "Adds items to a playlist.",
"operationId": "AddToPlaylist",
"parameters": [
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "ids",
"in": "query",
"description": "Item id, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
{
"name": "userId",
"in": "query",
"description": "The userId.",
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Items added to playlist."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Playlists"
],
"summary": "Removes items from a playlist.",
"operationId": "RemoveFromPlaylist",
"parameters": [
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "entryIds",
"in": "query",
"description": "The item ids, comma delimited.",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
],
"responses": {
"204": {
"description": "Items removed."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"get": {
"tags": [
"Playlists"
],
"summary": "Gets the original items of a playlist.",
"operationId": "GetPlaylistItems",
"parameters": [
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "userId",
"in": "query",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "startIndex",
"in": "query",
"description": "Optional. The record index to start at. All items with a lower index will be dropped from the results.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "limit",
"in": "query",
"description": "Optional. The maximum number of records to return.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "fields",
"in": "query",
"description": "Optional. Specify additional fields of information to return in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemFields"
}
}
},
{
"name": "enableImages",
"in": "query",
"description": "Optional. Include image information in output.",
"schema": {
"type": "boolean"
}
},
{
"name": "enableUserData",
"in": "query",
"description": "Optional. Include user data.",
"schema": {
"type": "boolean"
}
},
{
"name": "imageTypeLimit",
"in": "query",
"description": "Optional. The max number of images to return, per image type.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "enableImageTypes",
"in": "query",
"description": "Optional. The image types to include in the output.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImageType"
}
}
}
],
"responses": {
"200": {
"description": "Original playlist returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/BaseItemDtoQueryResult"
}
}
}
},
"404": {
"description": "Playlist not found."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Playlists/{playlistId}/Items/{itemId}/Move/{newIndex}": {
"post": {
"tags": [
"Playlists"
],
"summary": "Moves a playlist item.",
"operationId": "MoveItem",
"parameters": [
{
"name": "playlistId",
"in": "path",
"description": "The playlist id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "itemId",
"in": "path",
"description": "The item id.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "newIndex",
"in": "path",
"description": "The new index.",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "Item moved to new index."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Sessions/Playing": {
"post": {
"tags": [
"Playstate"
],
"summary": "Reports playback has started within a session.",
"operationId": "ReportPlaybackStart",
"requestBody": {
"description": "The playback start info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStartInfo"
}
],
"description": "Class PlaybackStartInfo."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStartInfo"
}
],
"description": "Class PlaybackStartInfo."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStartInfo"
}
],
"description": "Class PlaybackStartInfo."
}
}
}
},
"responses": {
"204": {
"description": "Playback start recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Sessions/Playing/Ping": {
"post": {
"tags": [
"Playstate"
],
"summary": "Pings a playback session.",
"operationId": "PingPlaybackSession",
"parameters": [
{
"name": "playSessionId",
"in": "query",
"description": "Playback session id.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Playback session pinged."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Sessions/Playing/Progress": {
"post": {
"tags": [
"Playstate"
],
"summary": "Reports playback progress within a session.",
"operationId": "ReportPlaybackProgress",
"requestBody": {
"description": "The playback progress info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackProgressInfo"
}
],
"description": "Class PlaybackProgressInfo."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackProgressInfo"
}
],
"description": "Class PlaybackProgressInfo."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackProgressInfo"
}
],
"description": "Class PlaybackProgressInfo."
}
}
}
},
"responses": {
"204": {
"description": "Playback progress recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Sessions/Playing/Stopped": {
"post": {
"tags": [
"Playstate"
],
"summary": "Reports playback has stopped within a session.",
"operationId": "ReportPlaybackStopped",
"requestBody": {
"description": "The playback stop info.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStopInfo"
}
],
"description": "Class PlaybackStopInfo."
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStopInfo"
}
],
"description": "Class PlaybackStopInfo."
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlaybackStopInfo"
}
],
"description": "Class PlaybackStopInfo."
}
}
}
},
"responses": {
"204": {
"description": "Playback stop recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Users/{userId}/PlayedItems/{itemId}": {
"post": {
"tags": [
"Playstate"
],
"summary": "Marks an item as played for user.",
"operationId": "MarkPlayedItem",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "datePlayed",
"in": "query",
"description": "Optional. The date the item was played.",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "Item marked as played.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Playstate"
],
"summary": "Marks an item as unplayed for user.",
"operationId": "MarkUnplayedItem",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Item marked as unplayed.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/UserItemDataDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Users/{userId}/PlayingItems/{itemId}": {
"post": {
"tags": [
"Playstate"
],
"summary": "Reports that a user has begun playing an item.",
"operationId": "OnPlaybackStart",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The id of the MediaSource.",
"schema": {
"type": "string"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "The audio stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "The subtitle stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "playMethod",
"in": "query",
"description": "The play method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlayMethod"
}
]
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "canSeek",
"in": "query",
"description": "Indicates if the client can seek.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Play start recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
},
"delete": {
"tags": [
"Playstate"
],
"summary": "Reports that a user has stopped playing an item.",
"operationId": "OnPlaybackStopped",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The id of the MediaSource.",
"schema": {
"type": "string"
}
},
{
"name": "nextMediaType",
"in": "query",
"description": "The next media type that will play.",
"schema": {
"type": "string"
}
},
{
"name": "positionTicks",
"in": "query",
"description": "Optional. The position, in ticks, where playback stopped. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Playback stop recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Users/{userId}/PlayingItems/{itemId}/Progress": {
"post": {
"tags": [
"Playstate"
],
"summary": "Reports a user's playback progress.",
"operationId": "OnPlaybackProgress",
"parameters": [
{
"name": "userId",
"in": "path",
"description": "User id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "path",
"description": "Item id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "mediaSourceId",
"in": "query",
"description": "The id of the MediaSource.",
"schema": {
"type": "string"
}
},
{
"name": "positionTicks",
"in": "query",
"description": "Optional. The current position, in ticks. 1 tick = 10000 ms.",
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "audioStreamIndex",
"in": "query",
"description": "The audio stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "subtitleStreamIndex",
"in": "query",
"description": "The subtitle stream index.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "volumeLevel",
"in": "query",
"description": "Scale of 0-100.",
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "playMethod",
"in": "query",
"description": "The play method.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PlayMethod"
}
]
}
},
{
"name": "liveStreamId",
"in": "query",
"description": "The live stream id.",
"schema": {
"type": "string"
}
},
{
"name": "playSessionId",
"in": "query",
"description": "The play session id.",
"schema": {
"type": "string"
}
},
{
"name": "repeatMode",
"in": "query",
"description": "The repeat mode.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/RepeatMode"
}
]
}
},
{
"name": "isPaused",
"in": "query",
"description": "Indicates if the player is paused.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "isMuted",
"in": "query",
"description": "Indicates if the player is muted.",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"204": {
"description": "Play progress recorded."
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Plugins": {
"get": {
"tags": [
"Plugins"
],
"summary": "Gets a list of currently installed plugins.",
"operationId": "GetPlugins",
"responses": {
"200": {
"description": "Installed plugins returned.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PluginInfo"
}
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PluginInfo"
}
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PluginInfo"
}
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
"security": [
{
"CustomAuthentication": [
"DefaultAuthorization"
]
}
]
}
},
"/Plugins/{pluginId}": {
"delete": {
"tags": [
"Plugins"
],
"summary": "Uninstalls a plugin.",
"operationId": "UninstallPlugin",
"parameters": [
{
"name": "pluginId",
"in": "path",
"description": "Plugin id.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"204": {
"description": "Plugin uninstalled."
},
"404": {
"description": "Plugin not found.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"CamelCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; profile=\"PascalCase\"": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"403": {
"description": "Forbidden"
}
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment