Files
qobuz-qt/openapi.json
joren 3346b424b3
Some checks failed
Build for Windows / build-windows (push) Has been cancelled
refactor: resync with qbqt baseline and restore genre browser
2026-03-30 22:36:39 +02:00

7365 lines
238 KiB
JSON

{
"openapi": "3.1.0",
"info": {
"title": "Qobuz API",
"description": "Unofficial Qobuz API documentation based on observed endpoints",
"version": "0.2.0"
},
"servers": [
{
"url": "https://www.qobuz.com/api.json/0.2",
"description": "Production API server"
}
],
"paths": {
"/album/get": {
"get": {
"summary": "Get album details",
"description": "Retrieve detailed information about a specific album",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "album_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Album ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Album"
},
"example": {
"id": "0000000000",
"title": "Album Title",
"artist": {
"id": "0000000",
"name": "Artist Name"
},
"image": {
"small": "https://static.qobuz.com/images/covers/..._small.jpg",
"medium": "https://static.qobuz.com/images/covers/..._medium.jpg",
"large": "https://static.qobuz.com/images/covers/..._large.jpg",
"extralarge": "https://static.qobuz.com/images/covers/..._extralarge.jpg"
},
"release_date": "2023-01-01",
"duration": 3600,
"tracks_count": 12,
"media_count": 1,
"genre": {
"id": "000",
"name": "Rock"
},
"label": {
"id": "00000",
"name": "Label Name"
},
"copyright": "© 2023 Label Name",
"is_preorderable": false,
"is_streamable": true,
"is_purchasable": true,
"is_super_high_res": false,
"is_high_res": true,
"is_lossless": true,
"is_mp3": true
}
}
}
}
}
}
},
"/album/search": {
"get": {
"summary": "Search albums",
"description": "Search for albums by query with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50,
"maximum": 500
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlbumSearchResult"
}
}
}
}
]
},
"example": {
"has_more": false,
"items": [
{
"id": "0000000000",
"title": "Album Title",
"artist": {
"id": "0000000",
"name": "Artist Name"
},
"image": {
"small": "https://static.qobuz.com/images/covers/..._small.jpg"
},
"release_date": "2023-01-01",
"streamable": true,
"duration": 3600,
"tracks_count": 12
}
],
"total": 1,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/album/story": {
"get": {
"summary": "Get album story",
"description": "Retrieve story or editorial content for an album",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "album_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Album ID"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResponse"
},
"example": {
"has_more": false,
"items": [],
"total": 0,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/album/suggest": {
"get": {
"summary": "Get album suggestions",
"description": "Get suggested albums based on a seed album",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "album_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Seed album ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AlbumSuggestion"
},
"example": {
"algorithm": "similar_albums",
"albums": [
{
"id": "0000000000",
"title": "Suggested Album",
"artist": {
"id": "0000000",
"name": "Artist Name"
},
"image": {
"small": "https://static.qobuz.com/images/covers/..._small.jpg",
"medium": "https://static.qobuz.com/images/covers/..._medium.jpg",
"large": "https://static.qobuz.com/images/covers/..._large.jpg",
"extralarge": "https://static.qobuz.com/images/covers/..._extralarge.jpg"
},
"release_date": "2023-01-01",
"duration": 3600,
"tracks_count": 12,
"media_count": 1,
"genre": {
"id": "000",
"name": "Rock"
},
"label": {
"id": "00000",
"name": "Label Name"
},
"copyright": "© 2023 Label Name",
"is_preorderable": false,
"is_streamable": true,
"is_purchasable": true,
"is_super_high_res": false,
"is_high_res": true,
"is_lossless": true,
"is_mp3": true
}
]
}
}
}
}
}
}
},
"/artist/getImage": {
"post": {
"summary": "Get artist images",
"description": "Retrieve image metadata for one or more artists",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArtistImageRequest"
},
"example": {
"artist_ids": ["0000000", "0000001", "0000002"]
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ArtistImage"
}
},
"example": [
{
"artist_id": "0000000",
"image_url": "https://static.qobuz.com/images/artists/...jpg",
"width": 500,
"height": 500,
"format": "jpg"
}
]
}
}
}
}
}
},
"/artist/getReleasesList": {
"get": {
"summary": "Get artist releases list",
"description": "Retrieve paginated list of releases (albums, singles, EPs) for an artist",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "artist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Artist ID"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50,
"maximum": 500
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "release_type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["album", "single", "ep"]
},
"description": "Filter by release type"
},
{
"name": "sort",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["release_date", "popularity", "title"]
},
"description": "Sort field"
},
{
"name": "order",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["desc", "asc"]
},
"description": "Sort order"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Release"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": "o4qk5j2xzuvlb",
"title": "All Stand Together",
"version": "Deluxe",
"tracks_count": 12,
"artist": {
"id": 1863897,
"name": {
"display": "Lost Frequencies"
}
},
"artists": [
{
"id": 1863897,
"name": "Lost Frequencies",
"roles": ["main-artist"]
}
],
"image": {
"small": "https://static.qobuz.com/images/covers/lb/uv/o4qk5j2xzuvlb_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/lb/uv/o4qk5j2xzuvlb_50.jpg",
"large": "https://static.qobuz.com/images/covers/lb/uv/o4qk5j2xzuvlb_600.jpg"
},
"label": {
"id": 85930,
"name": "Epic Amsterdam"
},
"genre": {
"id": 117,
"name": "Pop",
"path": [112, 117]
},
"release_type": "album",
"release_tags": ["deluxe"],
"duration": 2947,
"dates": {
"download": "2023-11-10",
"original": "2023-11-10",
"stream": "2023-11-10"
},
"parental_warning": false,
"audio_info": {
"maximum_bit_depth": 24,
"maximum_channel_count": 2,
"maximum_sampling_rate": 44.1
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
},
"awards": [],
"tracks": {
"has_more": true,
"items": []
}
}
],
"total": 100,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/artist/getSimilarArtists": {
"get": {
"summary": "Get similar artists",
"description": "Retrieve artists similar to a given artist with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "artist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Artist ID"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 15,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SimilarArtistsResponse"
},
"example": {
"artists": {
"limit": 15,
"offset": 0,
"total": 48,
"items": [
{
"id": 1280691,
"name": "Klingande",
"slug": "klingande",
"albums_count": 228,
"picture": "https://static.qobuz.com/images/artists/covers/large/2bdf046c757ab6a976e62406f175b910.jpg",
"image": {
"small": "https://static.qobuz.com/images/artists/covers/small/2bdf046c757ab6a976e62406f175b910.jpg",
"medium": "https://static.qobuz.com/images/artists/covers/medium/2bdf046c757ab6a976e62406f175b910.jpg",
"large": "https://static.qobuz.com/images/artists/covers/large/2bdf046c757ab6a976e62406f175b910.jpg",
"extralarge": "https://static.qobuz.com/images/artists/covers/large/2bdf046c757ab6a976e62406f175b910.jpg",
"mega": "https://static.qobuz.com/images/artists/covers/large/2bdf046c757ab6a976e62406f175b910.jpg"
}
}
]
}
}
}
}
}
}
}
},
"/artist/page": {
"get": {
"summary": "Get artist page",
"description": "Retrieve detailed artist page including biography, similar artists, and top tracks",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "artist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Artist ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArtistPage"
},
"example": {
"id": 1863897,
"name": {
"display": "Lost Frequencies"
},
"artist_category": "performer",
"biography": {
"content": "Belgian producer Lost Frequencies has achieved massive international success...",
"source": null,
"language": "en"
},
"images": {
"portrait": {
"hash": "77817762dd3688191f752509901e4338",
"format": "jpg"
}
},
"similar_artists": {
"has_more": true,
"items": [
{
"id": 1280691,
"name": {
"display": "Klingande"
},
"images": {
"portrait": {
"hash": "2bdf046c757ab6a976e62406f175b910",
"format": "jpg"
}
}
}
]
},
"top_tracks": [
{
"id": 256172621,
"isrc": "BEHP42400010",
"title": "No Limit",
"artist": {
"id": 1863897,
"name": {
"display": "Lost Frequencies"
}
},
"album": {
"id": "o4qk5j2xzuvlb",
"title": "All Stand Together",
"image": {
"small": "https://static.qobuz.com/images/covers/lb/uv/o4qk5j2xzuvlb_230.jpg"
}
}
}
]
}
}
}
}
}
}
},
"/artist/search": {
"get": {
"summary": "Search artists",
"description": "Search for artists by query with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 8,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArtistSearchResponse"
},
"example": {
"query": "lost frequencies",
"artists": {
"limit": 8,
"offset": 0,
"analytics": {
"search_external_id": "2ee9f2c093a393cb875db77518c52fbe"
},
"total": 6,
"items": [
{
"picture": "https://static.qobuz.com/images/artists/covers/small/77817762dd3688191f752509901e4338.jpg",
"image": {
"small": "https://static.qobuz.com/images/artists/covers/small/77817762dd3688191f752509901e4338.jpg",
"medium": "https://static.qobuz.com/images/artists/covers/medium/77817762dd3688191f752509901e4338.jpg",
"large": "https://static.qobuz.com/images/artists/covers/large/77817762dd3688191f752509901e4338.jpg",
"extralarge": "https://static.qobuz.com/images/artists/covers/large/77817762dd3688191f752509901e4338.jpg",
"mega": "https://static.qobuz.com/images/artists/covers/large/77817762dd3688191f752509901e4338.jpg"
},
"name": "Lost Frequencies",
"slug": "lost-frequencies",
"albums_count": 990,
"id": 1863897
}
]
}
}
}
}
}
}
}
},
"/artist/story": {
"get": {
"summary": "Get artist story",
"description": "Retrieve story or editorial content for an artist",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "artist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Artist ID"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 5
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResponse"
},
"example": {
"has_more": false,
"items": [],
"total": 0,
"limit": 5,
"offset": 0
}
}
}
}
}
}
},
"/award/getAlbums": {
"get": {
"summary": "Get albums by award",
"description": "Retrieve albums that have received a specific award with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "award_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Award ID"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 25,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": "0060252772410",
"title": "Lungs",
"version": "Deluxe Version",
"track_count": 20,
"duration": 4066,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/10/24/0060252772410_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/10/24/0060252772410_50.jpg",
"large": "https://static.qobuz.com/images/covers/10/24/0060252772410_600.jpg"
},
"artists": [
{
"id": 112890,
"name": "Florence + The Machine",
"roles": ["main-artist"]
}
],
"label": {
"id": 17426,
"name": "Universal-Island Records Ltd."
},
"genre": {
"id": 113,
"name": "Alternativa & Indie",
"path": [112, 119, 113]
},
"dates": {
"download": "2009-07-06",
"original": "2009-07-06",
"purchase": "2009-07-06",
"stream": "2009-07-06"
},
"awards": [
{
"id": 70,
"name": "Discoteca Ideal Qobuz",
"awarded_at": "2026-02-03"
}
],
"audio_info": {
"maximum_sampling_rate": 44.1,
"maximum_bit_depth": 16,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": false,
"hires_purchasable": false
}
}
],
"total": 100,
"limit": 25,
"offset": 0
}
}
}
}
}
}
},
"/discover/index": {
"get": {
"summary": "Get discover index",
"description": "Retrieve discover page content including banners and new releases",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "genre_ids",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Comma-separated genre IDs to filter by"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DiscoverContainer"
},
"example": {
"containers": {
"banners": {
"id": "banners",
"data": {
"has_more": false,
"items": []
}
},
"new_releases": {
"id": "newReleases",
"data": {
"has_more": true,
"items": [
{
"id": "xxc24b1r0wt8q",
"title": "i-330",
"version": null,
"track_count": 12,
"duration": 2764,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_50.jpg",
"large": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_600.jpg"
},
"artists": [
{
"id": 28885011,
"name": "Flore Benguigui & The Sensible Notes",
"roles": ["main-artist"]
}
],
"label": {
"id": 108875,
"name": "Universal Music Division Decca Records France"
},
"genre": {
"id": 89,
"name": "Jazz vocal",
"path": [80, 89]
},
"dates": {
"download": "2026-03-13",
"original": "2026-03-13",
"purchase": "2026-03-13",
"stream": "2026-03-13"
},
"awards": [
{
"id": 88,
"name": "Qobuzissime",
"awarded_at": "2026-03-20"
}
],
"audio_info": {
"maximum_sampling_rate": 48,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 100,
"limit": 50,
"offset": 0
}
}
}
}
}
}
}
}
}
},
"/discover/mostStreamed": {
"get": {
"summary": "Get most streamed albums",
"description": "Retrieve most streamed albums with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": "x165phie4qqlc",
"title": "For Mary",
"version": null,
"track_count": 12,
"duration": 2764,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/lc/qq/x165phie4qqlc_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/lc/qq/x165phie4qqlc_50.jpg",
"large": "https://static.qobuz.com/images/covers/lc/qq/x165phie4qqlc_600.jpg"
},
"artists": [
{
"id": 18377461,
"name": "Olive Jones",
"roles": ["main-artist"]
}
],
"label": {
"id": 2367808,
"name": "Nettwerk Music Group"
},
"genre": {
"id": 134,
"name": "Soul",
"path": [127, 134]
},
"dates": {
"download": "2026-03-13",
"original": "2026-03-13",
"purchase": "2026-03-13",
"stream": "2026-03-13"
},
"awards": [
{
"id": 88,
"name": "Qobuzissime",
"awarded_at": "2026-03-13"
}
],
"audio_info": {
"maximum_sampling_rate": 44.1,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 100,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/discover/newReleases": {
"get": {
"summary": "Get new releases",
"description": "Retrieve newly released albums with pagination, optionally filtered by genre",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "genre_ids",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Comma-separated genre IDs to filter by"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": "xxc24b1r0wt8q",
"title": "i-330",
"version": null,
"track_count": 12,
"duration": 2764,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_50.jpg",
"large": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_600.jpg"
},
"artists": [
{
"id": 28885011,
"name": "Flore Benguigui & The Sensible Notes",
"roles": ["main-artist"]
}
],
"label": {
"id": 108875,
"name": "Universal Music Division Decca Records France"
},
"genre": {
"id": 89,
"name": "Jazz vocal",
"path": [80, 89]
},
"dates": {
"download": "2026-03-13",
"original": "2026-03-13",
"purchase": "2026-03-13",
"stream": "2026-03-13"
},
"awards": [
{
"id": 88,
"name": "Qobuzissime",
"awarded_at": "2026-03-20"
}
],
"audio_info": {
"maximum_sampling_rate": 48,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 100,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/discover/playlists": {
"get": {
"summary": "Get discover playlists",
"description": "Retrieve curated playlists for discovery, optionally filtered by genre or tags",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "genre_ids",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Comma-separated genre IDs to filter by"
},
{
"name": "tags",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Tags to filter by (e.g., 'hi-res')"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 25,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Playlist"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": 7801943,
"name": "Lo último en Rock",
"owner": {
"id": 1752421,
"name": "Qobuz Latinoamérica"
},
"image": {
"rectangle": "https://static.qobuz.com/images/playlists/7801943_cb084b9bc2b9e578e26ed41384465fe7_rectangle.jpg",
"covers": [
"https://static.qobuz.com/images/covers/98/g5/e644dwd1dg598_300.jpg",
"https://static.qobuz.com/images/covers/nf/p6/nbbgfku1fp6nf_300.jpg",
"https://static.qobuz.com/images/covers/70/o9/ywkqfaouyo970_300.jpg",
"https://static.qobuz.com/images/covers/17/kc/cxdas1z89kc17_300.jpg"
]
},
"description": "Con Muse, Foo Fighters, Peter Frampton, The Black Keys, Angine de Poitrine, Dropkick Murphys, The Afghan Whigs, Tedeschi Trucks Band, The Black Crowes, Glen Hansard, DOGSTAR, The Lemon Twigs, The Pretty Reckless, Violet Grohl, Iceage, Yonaka, The Warning, Oasis, The Sleeveens, Talking Heads, Queen, Black Stone Cherry, Mclusky, Pacific Avenue, Social Distorsion...\n\nÚltima actualización el 23 de marzo de 2026\n\nFoto: The Black Crowes © Ross Halfin",
"duration": 17779,
"tracks_count": 80,
"genres": [
{
"id": 112,
"name": "Pop/Rock",
"path": [112]
}
],
"tags": [
{
"id": 19,
"slug": "new",
"name": "Novedades"
}
]
}
],
"total": 100,
"limit": 25,
"offset": 0
}
}
}
}
}
}
},
"/discover/pressAward": {
"get": {
"summary": "Get press award albums",
"description": "Retrieve albums that have received press awards (e.g., Pitchfork: Best New Music) with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 25,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": "xxc24b1r0wt8q",
"title": "i-330",
"version": null,
"track_count": 12,
"duration": 2764,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_50.jpg",
"large": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_600.jpg"
},
"artists": [
{
"id": 28885011,
"name": "Flore Benguigui & The Sensible Notes",
"roles": ["main-artist"]
}
],
"label": {
"id": 108875,
"name": "Universal Music Division Decca Records France"
},
"genre": {
"id": 89,
"name": "Jazz vocal",
"path": [80, 89]
},
"dates": {
"download": "2026-03-13",
"original": "2026-03-13",
"purchase": "2026-03-13",
"stream": "2026-03-13"
},
"awards": [
{
"id": 89,
"name": "Pitchfork: Best New Music",
"awarded_at": "2026-03-20"
}
],
"audio_info": {
"maximum_sampling_rate": 48,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 100,
"limit": 25,
"offset": 0
}
}
}
}
}
}
},
"/dynamic/suggest": {
"post": {
"summary": "Get dynamic track suggestions",
"description": "Generate track recommendations based on listening history",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["tracks"],
"properties": {
"tracks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Track ID"
},
"play_count": {
"type": "integer",
"description": "Number of times track was played"
},
"last_played": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp of last play"
}
},
"required": ["id"]
},
"description": "List of recently played tracks"
}
}
},
"example": {
"tracks": [
{
"id": "256172621",
"play_count": 5,
"last_played": "2026-03-25T12:00:00Z"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"tracks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Track ID"
},
"title": {
"type": "string",
"description": "Track title"
},
"artist": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"album": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
}
}
}
}
},
"duration": {
"type": "integer",
"description": "Duration in seconds"
},
"isrc": {
"type": "string",
"description": "ISRC code"
},
"preview_url": {
"type": "string",
"format": "uri",
"description": "URL to track preview"
}
}
},
"description": "Recommended tracks"
}
}
},
"example": {
"tracks": [
{
"id": "256172622",
"title": "No Limit",
"artist": {
"id": 1863897,
"name": "Lost Frequencies"
},
"album": {
"id": "o4qk5j2xzuvlb",
"title": "All Stand Together",
"image": {
"small": "https://static.qobuz.com/images/covers/lb/uv/o4qk5j2xzuvlb_230.jpg"
}
},
"duration": 214,
"isrc": "BEHP42400010",
"preview_url": "https://preview.qobuz.com/track/256172622"
}
]
}
}
}
}
}
}
},
"/event/reportTrackContext": {
"post": {
"summary": "Report track context event",
"description": "Send analytics event for track playback context (e.g., playlist, album, radio)",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["track_id", "context"],
"properties": {
"track_id": {
"type": "string",
"description": "Track ID"
},
"context": {
"type": "string",
"description": "Context where track was played (e.g., 'playlist', 'album', 'radio', 'search')"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Event timestamp (ISO 8601)"
},
"event_type": {
"type": "string",
"enum": ["play", "pause", "skip", "complete"],
"description": "Type of playback event"
}
}
},
"example": {
"track_id": "256172621",
"context": "playlist",
"timestamp": "2026-03-25T12:00:00Z",
"event_type": "play"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
},
"example": {
"success": true
}
}
}
}
}
}
},
"/favorite/create": {
"post": {
"summary": "Create favorite",
"description": "Add an item (track, album, artist, playlist) to user's favorites",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["type", "id"],
"properties": {
"type": {
"type": "string",
"enum": ["track", "album", "artist", "playlist"],
"description": "Type of item to favorite"
},
"id": {
"type": "string",
"description": "ID of the item"
}
}
},
"example": {
"type": "track",
"id": "256172621"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
},
"example": {
"success": true
}
}
}
}
}
}
},
"/favorite/delete": {
"post": {
"summary": "Delete favorite",
"description": "Remove an item from user's favorites",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["type", "id"],
"properties": {
"type": {
"type": "string",
"enum": ["track", "album", "artist", "playlist"],
"description": "Type of item to unfavorite"
},
"id": {
"type": "string",
"description": "ID of the item"
}
}
},
"example": {
"type": "track",
"id": "256172621"
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean"
}
}
},
"example": {
"success": true
}
}
}
}
}
}
},
"/favorite/getNewReleases": {
"get": {
"summary": "Get new releases from favorites",
"description": "Retrieve new releases from favorite artists, albums, or tracks with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["artists", "albums", "tracks"],
"default": "artists"
},
"description": "Type of favorites to get new releases for"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 25,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
},
"example": {
"has_more": false,
"items": [
{
"id": "b9iimunju35gy",
"title": "So Much Beauty (Around Us)",
"version": null,
"track_count": 1,
"duration": 154,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/gy/35/b9iimunju35gy_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/gy/35/b9iimunju35gy_50.jpg",
"large": "https://static.qobuz.com/images/covers/gy/35/b9iimunju35gy_600.jpg"
},
"artists": [
{
"id": 1863897,
"name": "Lost Frequencies",
"roles": ["main-artist"]
},
{
"id": 613922,
"name": "Nathan Nicholson",
"roles": ["main-artist"]
}
],
"label": {
"id": 85930,
"name": "Epic Amsterdam"
},
"genre": {
"id": 68,
"name": "House",
"path": [64, 68]
},
"dates": {
"download": "2026-03-20",
"original": "2026-03-20",
"purchase": "2026-03-20",
"stream": "2026-03-20"
},
"awards": [],
"audio_info": {
"maximum_sampling_rate": 44.1,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 1,
"limit": 25,
"offset": 0
}
}
}
}
}
}
},
"/favorite/getUserFavoriteIds": {
"get": {
"summary": "Get user favorite IDs",
"description": "Retrieve IDs of user's favorite items by type (albums, artists, tracks, etc.)",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"albums": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of favorite album IDs"
},
"articles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of favorite article IDs"
},
"artists": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of favorite artist IDs"
},
"awards": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of favorite award IDs"
},
"tracks": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of favorite track IDs"
},
"labels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of favorite label IDs"
}
}
},
"example": {
"albums": ["ftpnmecvoyiac", "xxc24b1r0wt8q", "byz76ojp231db"],
"articles": [],
"artists": [1863897, 2458997, 3722442, 267547],
"awards": [],
"tracks": [35883373, 350020, 246342230, 123287900, 129183843],
"labels": []
}
}
}
}
}
}
},
"/file": {
"get": {
"summary": "Get audio file",
"description": "Stream audio file segment (used internally by streaming URLs)",
"parameters": [
{
"name": "uid",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "eid",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "fmt",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "fid",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "profile",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "s",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "app_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "cid",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "etsp",
"in": "query",
"required": true,
"schema": {
"type": "integer"
}
},
{
"name": "hmac",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Audio file segment",
"content": {
"audio/*": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
}
}
}
},
"/file/url": {
"get": {
"summary": "Get file URL",
"description": "Retrieve streaming URL and metadata for a track",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "track_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Track ID"
},
{
"name": "format_id",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"enum": [5, 6, 7, 27]
},
"description": "Audio format ID (5=MP3 320, 6=Lossless, 7=Hi-Res, 27=Hi-Res 2)"
},
{
"name": "intent",
"in": "query",
"required": true,
"schema": {
"type": "string",
"enum": ["stream", "import", "download"]
},
"description": "Intended use of the file"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"file_type": {
"type": "string",
"enum": ["full", "preview"]
},
"track_id": {
"type": "integer"
},
"format_id": {
"type": "integer"
},
"audio_file_id": {
"type": "integer"
},
"sampling_rate": {
"type": "integer"
},
"bits_depth": {
"type": "integer"
},
"n_channels": {
"type": "integer"
},
"duration": {
"type": "number"
},
"n_samples": {
"type": "integer"
},
"mime_type": {
"type": "string"
},
"url_template": {
"type": "string",
"format": "uri"
},
"n_segments": {
"type": "integer"
},
"key_id": {
"type": "string"
},
"key": {
"type": "string"
},
"restrictions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
}
}
}
},
"blob": {
"type": "string"
}
}
},
"example": {
"file_type": "full",
"track_id": 378123655,
"format_id": 7,
"audio_file_id": 329231102,
"sampling_rate": 48000,
"bits_depth": 24,
"n_channels": 2,
"duration": 52.693333333333335,
"n_samples": 2529280,
"mime_type": "audio/mp4; codecs=\"flac\"",
"url_template": "https://streaming-qobuz-sec.akamaized.net/file?uid=8029441&eid=378123655&fmt=7&fid=329231102&profile=sec-1&s=$SEGMENT$&app_id=312369995&cid=3261622&etsp=1774634583&hmac=ieIWGzt2mjgwTA7jjycdZUVgI78",
"n_segments": 6,
"key_id": "f9596d1d-d4ff-b84b-255b-37768aa62f25",
"key": "qbz-1.wi1Dfv-w70hjD9jLn4goT58s1_WkSzae2GW4u4cwwi8.DamdSDikJiPWBeVLoFimHQ",
"blob": "100000.Bxl-2gCMtO5WmHFoHsVzzMSK2DkupYrYWI9YoJS-uhfcFZO_rQcSUMSOkgJLulBP.rdDUaxiiyKAs1t-4J_dFYn5sjlk"
}
}
}
}
}
}
},
"/genre/list": {
"get": {
"summary": "Get genre list",
"description": "Retrieve list of music genres with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 25,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"genres": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Genre ID"
},
"color": {
"type": "string",
"description": "Hex color code"
},
"name": {
"type": "string",
"description": "Genre name"
},
"path": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Hierarchical path of genre IDs"
},
"slug": {
"type": "string",
"description": "URL slug"
}
}
}
}
}
}
}
},
"example": {
"genres": {
"limit": 25,
"offset": 0,
"total": 13,
"items": [
{
"id": 112,
"color": "#5eabc1",
"name": "Pop/Rock",
"path": [112],
"slug": "pop-rock"
}
]
}
}
}
}
}
}
}
},
"/label/explore": {
"get": {
"summary": "Explore labels",
"description": "Browse music labels with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 12,
"maximum": 100
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Label ID"
},
"name": {
"type": "string",
"description": "Label name"
},
"image": {
"type": "string",
"description": "URL to label background image"
},
"description": {
"type": "string",
"description": "Label description"
}
}
}
}
}
}
]
},
"example": {
"has_more": true,
"items": [
{
"id": 322,
"name": "Naxos",
"image": "https://static.qobuz.com/images/labels/backgrounds/naxos.jpg",
"description": null
},
{
"id": 1630797,
"name": "Young",
"image": "https://static.qobuz.com/images/labels/backgrounds/young-8.jpg",
"description": null
}
],
"total": 100,
"limit": 12,
"offset": 0
}
}
}
}
}
}
},
"/label/getList": {
"post": {
"summary": "Get labels by IDs",
"description": "Retrieve label details for multiple label IDs",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["labels_id"],
"properties": {
"labels_id": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of label IDs"
}
}
},
"example": {
"labels_id": ["7402", "108875", "4592", "16469"]
}
}
}
},
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"labels": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total number of labels returned"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Label ID"
},
"name": {
"type": "string",
"description": "Label name"
},
"image": {
"type": "string",
"description": "URL to label background image"
},
"description": {
"type": "string",
"description": "Label description"
}
}
}
}
}
}
}
},
"example": {
"labels": {
"total": 12,
"items": [
{
"id": 7402,
"name": "WM Germany",
"image": "https://static.qobuz.com/images/labels/backgrounds/wm-germany.jpg",
"description": null
},
{
"id": 108875,
"name": "Universal Music Division Decca Records France",
"image": null,
"description": null
}
]
}
}
}
}
}
}
}
},
"/label/page": {
"get": {
"summary": "Get label page",
"description": "Retrieve detailed label information including releases",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "label_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Label ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Label ID"
},
"name": {
"type": "string",
"description": "Label name"
},
"description": {
"type": "string",
"description": "Label description"
},
"image": {
"type": "string",
"description": "URL to label background image"
},
"releases": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": ["nextReleases", "awardedReleases", "all"],
"description": "Release category ID"
},
"data": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AwardAlbum"
}
}
}
}
]
}
}
}
}
}
},
"example": {
"id": 190680,
"name": "Spinnin' Records",
"description": null,
"image": null,
"releases": [
{
"id": "nextReleases",
"data": {
"has_more": false,
"items": []
}
},
{
"id": "awardedReleases",
"data": {
"has_more": false,
"items": []
}
},
{
"id": "all",
"data": {
"has_more": true,
"items": [
{
"id": "clipr8m31i43l",
"title": "Last Night On Earth",
"version": null,
"track_count": 1,
"duration": 177,
"parental_warning": false,
"image": {
"small": "https://static.qobuz.com/images/covers/3l/i4/clipr8m31i43l_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/3l/i4/clipr8m31i43l_50.jpg",
"large": "https://static.qobuz.com/images/covers/3l/i4/clipr8m31i43l_600.jpg"
},
"artists": [
{
"id": 2335767,
"name": "Cheat Codes",
"roles": ["main-artist"]
},
{
"id": 1312712,
"name": "Jonita Gandhi",
"roles": ["main-artist"]
}
],
"label": {
"id": 190680,
"name": "Spinnin' Records"
},
"genre": {
"id": 129,
"name": "Dance",
"path": [64, 129]
},
"dates": {
"download": "2026-03-20",
"original": "2026-03-20",
"purchase": "2026-03-20",
"stream": "2026-03-20"
},
"awards": [],
"audio_info": {
"maximum_sampling_rate": 48,
"maximum_bit_depth": 24,
"maximum_channel_count": 2
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"hires_streamable": true,
"hires_purchasable": true
}
}
],
"total": 100,
"limit": 50,
"offset": 0
}
}
]
}
}
}
}
}
}
},
"/label/story": {
"get": {
"summary": "Get label story",
"description": "Retrieve story or editorial content for a label",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "label_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Label ID"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResponse"
},
"example": {
"has_more": false,
"items": [],
"total": 0,
"limit": 4,
"offset": 0
}
}
}
}
}
}
},
"/most-popular/get": {
"get": {
"summary": "Get most popular search results",
"description": "Retrieve most popular artists, albums, and tracks matching a search query",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 30
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"most_popular": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"analytics": {
"type": "object",
"properties": {
"search_external_id": {
"type": "string"
}
}
},
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["artists", "albums", "tracks"]
},
"content": {
"type": "object"
}
}
}
}
}
}
}
},
"example": {
"query": "l",
"most_popular": {
"limit": 30,
"offset": 0,
"analytics": {
"search_external_id": "b5661a82f499def0d095a88f9f77a50b"
},
"total": 1000,
"items": [
{
"type": "artists",
"content": {
"type": "artists",
"picture": "https://static.qobuz.com/images/artists/covers/small/cccf75ebc101b321a2951112acec4f6b.jpg",
"image": {
"small": "https://static.qobuz.com/images/artists/covers/small/cccf75ebc101b321a2951112acec4f6b.jpg",
"medium": "https://static.qobuz.com/images/artists/covers/medium/cccf75ebc101b321a2951112acec4f6b.jpg",
"large": "https://static.qobuz.com/images/artists/covers/large/cccf75ebc101b321a2951112acec4f6b.jpg",
"extralarge": "https://static.qobuz.com/images/artists/covers/large/cccf75ebc101b321a2951112acec4f6b.jpg",
"mega": "https://static.qobuz.com/images/artists/covers/large/cccf75ebc101b321a2951112acec4f6b.jpg"
},
"name": "Lady Gaga",
"slug": "lady-gaga",
"albums_count": 1061,
"id": 61585
}
}
]
}
}
}
}
}
}
}
},
"/oauth2/login": {
"get": {
"summary": "User login",
"description": "Authenticate user with username and password (password must be MD5 hashed). Returns user details and OAuth2 tokens.",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "username",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "User email or login"
},
{
"name": "password",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "MD5 hash of the user's raw password"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Authentication successful",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"publicId": {
"type": "string"
},
"email": {
"type": "string"
},
"login": {
"type": "string"
},
"firstname": {
"type": "string",
"nullable": true
},
"lastname": {
"type": "string",
"nullable": true
},
"display_name": {
"type": "string"
},
"country_code": {
"type": "string"
},
"language_code": {
"type": "string"
},
"zone": {
"type": "string"
},
"store": {
"type": "string"
},
"country": {
"type": "string"
},
"avatar": {
"type": "string"
},
"genre": {
"type": "string"
},
"age": {
"type": "integer"
},
"birthdate": {
"type": "string",
"format": "date"
},
"creation_date": {
"type": "string",
"format": "date"
},
"zipcode": {
"type": "string",
"nullable": true
},
"subscription": {
"type": "object",
"properties": {
"offer": {
"type": "string"
},
"periodicity": {
"type": "string"
},
"start_date": {
"type": "string",
"format": "date"
},
"end_date": {
"type": "string",
"format": "date"
},
"is_canceled": {
"type": "boolean"
},
"household_size_max": {
"type": "integer"
}
}
},
"credential": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"parameters": {
"type": "object",
"properties": {
"lossy_streaming": {
"type": "boolean"
},
"lossless_streaming": {
"type": "boolean"
},
"hires_streaming": {
"type": "boolean"
},
"hires_purchases_streaming": {
"type": "boolean"
},
"mobile_streaming": {
"type": "boolean"
},
"offline_streaming": {
"type": "boolean"
},
"hfp_purchase": {
"type": "boolean"
},
"included_format_group_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"color_scheme": {
"type": "object",
"properties": {
"logo": {
"type": "string"
}
}
},
"label": {
"type": "string"
},
"short_label": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
}
},
"last_update": {
"type": "object",
"properties": {
"favorite": {
"type": "integer"
},
"favorite_album": {
"type": "integer"
},
"favorite_artist": {
"type": "integer"
},
"favorite_track": {
"type": "integer"
},
"favorite_label": {
"type": "integer"
},
"favorite_award": {
"type": "integer"
},
"playlist": {
"type": "integer"
},
"purchase": {
"type": "integer"
}
}
},
"store_features": {
"type": "object",
"properties": {
"download": {
"type": "boolean"
},
"streaming": {
"type": "boolean"
},
"editorial": {
"type": "boolean"
},
"club": {
"type": "boolean"
},
"wallet": {
"type": "boolean"
},
"weeklyq": {
"type": "boolean"
},
"autoplay": {
"type": "boolean"
},
"inapp_purchase_subscripton": {
"type": "boolean"
},
"opt_in": {
"type": "boolean"
},
"pre_register_opt_in": {
"type": "boolean"
},
"pre_register_zipcode": {
"type": "boolean"
},
"music_import": {
"type": "boolean"
},
"radio": {
"type": "boolean"
},
"stream_purchase": {
"type": "boolean"
},
"lyrics": {
"type": "boolean"
}
}
},
"player_settings": {
"type": "object",
"properties": {
"sonos_audio_format": {
"type": "integer"
}
}
},
"externals": {
"type": "object"
}
}
},
"oauth2": {
"type": "object",
"properties": {
"token_type": {
"type": "string"
},
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
}
}
}
}
},
"example": {
"user": {
"id": 8029441,
"publicId": "qobuz:user:X9vX4tZykliwm",
"email": "joren@directme.in",
"login": "joren@directme.in",
"firstname": null,
"lastname": null,
"display_name": "Joren",
"country_code": "AR",
"language_code": "es",
"zone": "AR",
"store": "AR-es",
"country": "AR",
"avatar": "https://www.gravatar.com/avatar/6f693544cde79a30762dd7274ae2add6?s=50&d=mm",
"genre": "male",
"age": 22,
"birthdate": "2004-02-05",
"creation_date": "2025-10-23",
"zipcode": null,
"subscription": {
"offer": "studio",
"periodicity": "monthly",
"start_date": "2025-10-23",
"end_date": "2026-04-22",
"is_canceled": false,
"household_size_max": 1
},
"credential": {
"id": 3261622,
"label": "streaming-studio",
"description": "Suscriptor Qobuz Studio",
"parameters": {
"lossy_streaming": true,
"lossless_streaming": true,
"hires_streaming": true,
"hires_purchases_streaming": true,
"mobile_streaming": true,
"offline_streaming": true,
"hfp_purchase": false,
"included_format_group_ids": [1,2,3,4],
"color_scheme": { "logo": "#B8D729" },
"label": "Qobuz Studio",
"short_label": "Studio",
"source": "subscription"
}
},
"last_update": {
"favorite": 1774542127,
"favorite_album": 1774484091,
"favorite_artist": 1774459997,
"favorite_track": 1774542127,
"favorite_label": 1761211040,
"favorite_award": 1761211040,
"playlist": 1774388881,
"purchase": 1761211287
},
"store_features": {
"download": false,
"streaming": true,
"editorial": true,
"club": false,
"wallet": false,
"weeklyq": true,
"autoplay": true,
"inapp_purchase_subscripton": true,
"opt_in": true,
"pre_register_opt_in": true,
"pre_register_zipcode": false,
"music_import": true,
"radio": true,
"stream_purchase": true,
"lyrics": true
},
"player_settings": { "sonos_audio_format": 7 },
"externals": {}
},
"oauth2": {
"token_type": "bearer",
"access_token": "8MCZhiPj5sARMaiPddypQYJw6ga55ZoF",
"refresh_token": "0B1Dt2BXl1L2XBxTDhxLUou3iBFkv57V",
"expires_in": 1382400
}
}
}
}
}
}
}
},
"/oauth2/token": {
"post": {
"summary": "Refresh OAuth2 token",
"description": "Exchange a refresh token for a new access token using client credentials",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
},
"refresh_token": {
"type": "string"
},
"grant_type": {
"type": "string",
"enum": ["refresh_token"]
}
},
"required": ["client_id", "client_secret", "refresh_token", "grant_type"]
},
"example": {
"client_id": "312369995",
"client_secret": "828193befd12dc579e9cc1d402d3be1e",
"refresh_token": "k9ZRLBs8DiqBy2KCENd9K9zujfSmcCWW",
"grant_type": "refresh_token"
}
}
}
},
"responses": {
"200": {
"description": "Token refresh successful",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
}
},
"example": {
"access_token": "sQW4A0Eg4XXripGbbXgVsZMhICodAr2z",
"refresh_token": "FRBKKYury9psGm8WxfEmtLL6CISs3Bd7",
"expires_in": 1382400,
"token_type": "bearer"
}
}
}
}
}
}
},
"/playlist/addTracks": {
"post": {
"summary": "Add tracks to playlist",
"description": "Add one or more tracks to a playlist. If no_duplicate is true, duplicates will be rejected with 409 error.",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"playlist_id": {
"type": "integer"
},
"track_ids": {
"type": "string",
"description": "Comma-separated list of track IDs"
},
"no_duplicate": {
"type": "boolean",
"default": true
}
},
"required": ["playlist_id", "track_ids"]
},
"example": {
"playlist_id": 47576025,
"track_ids": "35883373",
"no_duplicate": true
}
}
}
},
"responses": {
"200": {
"description": "Tracks added successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Playlist"
},
"example": {
"id": 47576025,
"name": "assorted_genres.bin",
"description": "This has ended up being a playlist for songs that don't fit in other playlists",
"tracks_count": 727,
"users_count": 0,
"duration": 146293,
"public_at": 1764889200,
"created_at": 1764937232,
"updated_at": 1774548274,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 8029441,
"name": "Joren"
}
}
}
}
},
"409": {
"description": "Duplicate tracks found and no_duplicate is true",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"code": {
"type": "integer"
},
"message": {
"type": "string"
},
"data": {
"type": "object",
"properties": {
"playlist_id": {
"type": "integer"
},
"duplicate_track_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"example": {
"status": "error",
"code": 409,
"message": "Duplicate track(s) found - no track(s) added to playlist",
"data": {
"playlist_id": 47576025,
"duplicate_track_ids": ["35883373"]
}
}
}
}
}
}
}
},
"/playlist/create": {
"post": {
"summary": "Create a new playlist",
"description": "Create a playlist with optional initial tracks and visibility settings",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Playlist name"
},
"description": {
"type": "string",
"default": ""
},
"track_ids": {
"type": "string",
"description": "Optional comma-separated list of track IDs to add initially"
},
"is_public": {
"type": "boolean",
"default": false
},
"is_collaborative": {
"type": "boolean",
"default": false
}
},
"required": ["name"]
},
"example": {
"name": "New playlist [9]",
"description": "",
"track_ids": "",
"is_public": false,
"is_collaborative": false
}
}
}
},
"responses": {
"200": {
"description": "Playlist created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Playlist"
},
"example": {
"id": 61150456,
"name": "New playlist [9]",
"description": "",
"tracks_count": 0,
"users_count": 0,
"duration": 0,
"public_at": false,
"created_at": 1774548375,
"updated_at": 1774548375,
"is_public": false,
"is_collaborative": false,
"owner": {
"id": 8029441,
"name": "Joren"
}
}
}
}
}
}
}
},
"/playlist/delete": {
"get": {
"summary": "Delete a playlist",
"description": "Delete a playlist by ID",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "playlist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Playlist ID to delete"
}
],
"responses": {
"200": {
"description": "Playlist deleted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
},
"example": {
"status": "success"
}
}
}
}
}
}
},
"/playlist/deleteTracks": {
"post": {
"summary": "Delete tracks from playlist",
"description": "Remove specific tracks from a playlist by playlist_track_ids (internal playlist-specific track IDs)",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"playlist_id": {
"type": "integer"
},
"playlist_track_ids": {
"type": "string",
"description": "Comma-separated list of playlist-specific track IDs"
}
},
"required": ["playlist_id", "playlist_track_ids"]
},
"example": {
"playlist_id": 61150456,
"playlist_track_ids": "11141882120"
}
}
}
},
"responses": {
"200": {
"description": "Tracks deleted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"tracks_count": {
"type": "integer"
},
"users_count": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"public_at": {
"oneOf": [
{ "type": "boolean" },
{ "type": "integer" }
]
},
"created_at": {
"type": "integer"
},
"updated_at": {
"type": "integer"
},
"is_public": {
"type": "boolean"
},
"is_collaborative": {
"type": "boolean"
},
"owner": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
}
}
},
"example": {
"status": "success",
"id": 61150456,
"name": "New playlist [9]",
"description": "",
"tracks_count": 0,
"users_count": 0,
"duration": 0,
"public_at": 1774548380,
"created_at": 1774548375,
"updated_at": 1774548398,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 8029441,
"name": "Joren"
}
}
}
}
}
}
}
},
"/playlist/get": {
"get": {
"summary": "Get playlist details",
"description": "Retrieve playlist metadata and optionally include tracks or track IDs",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "playlist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Playlist ID"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 350
},
"description": "Maximum number of tracks to return (when extra=tracks)"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for track pagination (when extra=tracks)"
},
{
"name": "extra",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["tracks", "track_ids"]
},
"description": "Include additional data: 'tracks' for full track objects, 'track_ids' for IDs only"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{ "$ref": "#/components/schemas/Playlist" },
{
"type": "object",
"properties": {
"tracks": {
"$ref": "#/components/schemas/PaginatedResponse"
},
"track_ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
]
},
"example": {
"id": 47576025,
"name": "assorted_genres.bin",
"description": "This has ended up being a playlist for songs that don't fit in other playlists",
"tracks_count": 727,
"users_count": 0,
"duration": 146293,
"public_at": 1764889200,
"created_at": 1764937232,
"updated_at": 1774548274,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 8029441,
"name": "Joren"
},
"slug": "just-somewhat-similar-genre-songs-dd",
"genres": [],
"images": [
"https://static.qobuz.com/images/covers/92/62/0072064246292_50.jpg",
"https://static.qobuz.com/images/covers/fc/8u/zct90v1sc8ufc_50.jpg",
"https://static.qobuz.com/images/covers/lc/ct/g5dklnsixctlc_50.jpg",
"https://static.qobuz.com/images/covers/21/97/0828765549721_50.jpg"
],
"is_featured": false,
"published_from": null,
"published_to": null,
"images150": [
"https://static.qobuz.com/images/covers/92/62/0072064246292_150.jpg",
"https://static.qobuz.com/images/covers/fc/8u/zct90v1sc8ufc_150.jpg",
"https://static.qobuz.com/images/covers/lc/ct/g5dklnsixctlc_150.jpg",
"https://static.qobuz.com/images/covers/21/97/0828765549721_150.jpg"
],
"images300": [
"https://static.qobuz.com/images/covers/92/62/0072064246292_300.jpg",
"https://static.qobuz.com/images/covers/fc/8u/zct90v1sc8ufc_300.jpg",
"https://static.qobuz.com/images/covers/lc/ct/g5dklnsixctlc_300.jpg",
"https://static.qobuz.com/images/covers/21/97/0828765549721_300.jpg"
]
}
}
}
}
}
}
},
"/playlist/getFeatured": {
"get": {
"summary": "Get featured playlists",
"description": "Retrieve curated featured playlists by type and genre",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["last-created", "most-popular", "editorial"]
},
"description": "Type of featured playlists"
},
{
"name": "genre_ids",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Comma-separated genre IDs to filter by"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 6
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"playlists": {
"$ref": "#/components/schemas/PaginatedResponse"
}
}
},
"example": {
"playlists": {
"offset": 0,
"limit": 6,
"total": 1429,
"items": [
{
"owner": {
"name": "Qobuz Latinoamérica",
"id": 1752421
},
"image_rectangle_mini": ["https://static.qobuz.com/images/playlists/7801943_cb084b9bc2b9e578e26ed41384465fe7_rectangle_mini.jpg"],
"users_count": 461,
"images150": ["https://static.qobuz.com/images/covers/98/g5/e644dwd1dg598_150.jpg"],
"images": ["https://static.qobuz.com/images/covers/98/g5/e644dwd1dg598_50.jpg"],
"featured_artists": [],
"is_collaborative": false,
"stores": ["AR-es", "CL-es", "CO-es", "MX-es"],
"description": "Con Muse, Foo Fighters, Peter Frampton, The Black Keys...",
"created_at": 1639742591,
"images300": ["https://static.qobuz.com/images/covers/98/g5/e644dwd1dg598_300.jpg"],
"tags": [
{
"is_discover": true,
"featured_tag_id": "19",
"name_json": "{\"fr\":\"Nouveautés\",\"en\":\"New Releases\",\"de\":\"Neuheiten\",\"it\":\"Novità\",\"nl\":\"New releases\",\"es\":\"Novedades\",\"pt\":\"Novidades\",\"ja\":\"ニューリリース\"}",
"slug": "new",
"genre_tag": null,
"color": ""
}
],
"duration": 17779,
"updated_at": 1774542959,
"genres": [
{
"path": [112],
"name": "Pop/Rock",
"id": 112,
"slug": "pop-rock",
"color": "#0070ef",
"percent": 50
}
],
"image_rectangle": ["https://static.qobuz.com/images/playlists/7801943_cb084b9bc2b9e578e26ed41384465fe7_rectangle.jpg"],
"tracks_count": 80,
"public_at": 1639695600,
"name": "Lo último en Rock",
"is_public": true,
"id": 7801943,
"slug": "la-seleccion-rock",
"is_featured": true
}
]
}
}
}
}
}
}
}
},
"/playlist/getUserPlaylistIds": {
"get": {
"summary": "Get user's playlist IDs",
"description": "Retrieve list of playlist IDs owned or subscribed by the authenticated user",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"playlists": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"example": {
"playlists": [
12435784,
18423515,
18424267,
18432337,
18477367,
18479109,
31294453,
42090404,
43929926,
47575596,
47575665,
47575711,
47575765,
47576025,
47576101,
60727909,
61150571
]
}
}
}
}
}
}
},
"/playlist/getUserPlaylists": {
"get": {
"summary": "Get user's playlists",
"description": "Retrieve detailed playlists owned or subscribed by the authenticated user",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "filter",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": ["owner", "subscriber", "owner,subscriber"]
},
"description": "Filter by ownership/subscription"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 350
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"login": {
"type": "string"
}
}
},
"playlists": {
"$ref": "#/components/schemas/PaginatedResponse"
}
}
},
"example": {
"user": {
"id": 8029441,
"login": "joren@directme.in"
},
"playlists": {
"offset": 0,
"limit": 350,
"total": 16,
"items": [
{
"id": 18479109,
"name": "italian cosmic disco classics [ rare & forgotten synth-heavy dance compilation • 70s & early 80s ]",
"description": "// cosmic disco describes various forms of synthesizer - heavy afro influenced - dance music that were originally developed and promoted by a small number of djs in certain discothèques of northern italy / decade: late '70s • early '80s / style: post-ita",
"tracks_count": 81,
"users_count": 1,
"duration": 29620,
"public_at": 1702249200,
"created_at": 1702291884,
"updated_at": 1774548305,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 2671414,
"name": "Theodore Kapa"
},
"indexed_at": 1774548306,
"slug": "italian-cosmic-disco-classics-rare-forgotten-synth-heavy-dance-compilation-70s-early-80s",
"genres": [],
"images": [
"https://static.qobuz.com/images/covers/06/73/3700593707306_50.jpg",
"https://static.qobuz.com/images/covers/25/02/5060281610225_50.jpg",
"https://static.qobuz.com/images/covers/04/06/0060255710604_50.jpg",
"https://static.qobuz.com/images/covers/za/ju/m0fe5nqy8juza_50.jpg"
],
"is_published": false,
"is_featured": false,
"published_from": null,
"published_to": null,
"images150": [
"https://static.qobuz.com/images/covers/06/73/3700593707306_150.jpg",
"https://static.qobuz.com/images/covers/25/02/5060281610225_150.jpg",
"https://static.qobuz.com/images/covers/04/06/0060255710604_150.jpg",
"https://static.qobuz.com/images/covers/za/ju/m0fe5nqy8juza_150.jpg"
],
"images300": [
"https://static.qobuz.com/images/covers/06/73/3700593707306_300.jpg",
"https://static.qobuz.com/images/covers/25/02/5060281610225_300.jpg",
"https://static.qobuz.com/images/covers/04/06/0060255710604_300.jpg",
"https://static.qobuz.com/images/covers/za/ju/m0fe5nqy8juza_300.jpg"
],
"position": 0,
"subscribed_at": 1774548305
}
]
}
}
}
}
}
}
}
},
"/playlist/search": {
"get": {
"summary": "Search playlists",
"description": "Search public playlists by query",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 8
},
"description": "Maximum number of results"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"playlists": {
"$ref": "#/components/schemas/PaginatedResponse"
}
}
},
"example": {
"query": "lost frequencies",
"playlists": {
"limit": 8,
"offset": 0,
"analytics": {
"search_external_id": "1579d3e5c4e0c6537de128b4645d5a21"
},
"total": 15,
"items": [
{
"id": 20123657,
"name": "Lost Frequencies (The lost Anthems of Tomorrowland 2024) - The golden Decade Edition",
"description": "The official Road to Tomorrowland 2024 Playlist with DJ's like Hardwell, Alok, Afrojack, W&W, Armin van Buuren, The Chainsmokers, Martin Garrix, Dimitri Vegas & Like Mike, Steve Aoki, Don Diablo, Alan Walker, Lost Frequencies, Zedd and many more ...",
"tracks_count": 959,
"users_count": 1,
"duration": 231651,
"public_at": 1709852400,
"created_at": 1709906752,
"updated_at": 1767985405,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 2958507,
"name": "Maximiliano Sanchez"
},
"indexed_at": 1767985406,
"slug": "lost-frequencies-the-lost-anthems-of-tomorrowland-2024-the-golden-decade-edition",
"genres": [],
"images": [
"https://static.qobuz.com/images/covers/kb/g0/f4tp7vu5ag0kb_50.jpg",
"https://static.qobuz.com/images/covers/5b/yz/uryux54z3yz5b_50.jpg",
"https://static.qobuz.com/images/covers/11/80/0886443418011_50.jpg",
"https://static.qobuz.com/images/covers/pb/n2/j840ltdidn2pb_50.jpg"
],
"is_published": false,
"is_featured": false,
"published_from": null,
"published_to": null,
"images150": [
"https://static.qobuz.com/images/covers/kb/g0/f4tp7vu5ag0kb_150.jpg",
"https://static.qobuz.com/images/covers/5b/yz/uryux54z3yz5b_150.jpg",
"https://static.qobuz.com/images/covers/11/80/0886443418011_150.jpg",
"https://static.qobuz.com/images/covers/pb/n2/j840ltdidn2pb_150.jpg"
],
"images300": [
"https://static.qobuz.com/images/covers/kb/g0/f4tp7vu5ag0kb_300.jpg",
"https://static.qobuz.com/images/covers/5b/yz/uryux54z3yz5b_300.jpg",
"https://static.qobuz.com/images/covers/11/80/0886443418011_300.jpg",
"https://static.qobuz.com/images/covers/pb/n2/j840ltdidn2pb_300.jpg"
]
}
]
}
}
}
}
}
}
}
},
"/playlist/story": {
"get": {
"summary": "Get playlist story",
"description": "Retrieve story or editorial content for a playlist",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "playlist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Playlist ID"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 50
},
"description": "Maximum number of results"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaginatedResponse"
},
"example": {
"has_more": false,
"items": [],
"total": 0,
"limit": 4,
"offset": 0
}
}
}
}
}
}
},
"/playlist/subscribe": {
"get": {
"summary": "Subscribe to playlist",
"description": "Subscribe to a public playlist to add it to user's library",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "playlist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Playlist ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful subscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["success"]
}
},
"required": ["status"]
},
"example": {
"status": "success"
}
}
}
}
}
}
},
"/playlist/unsubscribe": {
"get": {
"summary": "Unsubscribe from playlist",
"description": "Remove playlist subscription from user's library",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "playlist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Playlist ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful unsubscription",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["success"]
}
},
"required": ["status"]
},
"example": {
"status": "success"
}
}
}
}
}
}
},
"/playlist/update": {
"post": {
"summary": "Update playlist metadata",
"description": "Modify playlist title, description, visibility, and collaboration settings",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"playlist_id": {
"type": "integer",
"description": "Playlist ID"
},
"name": {
"type": "string",
"description": "Playlist name"
},
"description": {
"type": "string",
"description": "Playlist description (optional)"
},
"is_public": {
"type": "boolean",
"description": "Whether playlist is publicly visible"
},
"is_collaborative": {
"type": "boolean",
"description": "Whether playlist allows collaborative editing"
}
},
"required": ["playlist_id", "name", "is_public", "is_collaborative"]
},
"example": {
"playlist_id": 61150456,
"name": "New playlist [9]",
"description": "",
"is_public": true,
"is_collaborative": false
}
}
}
},
"responses": {
"200": {
"description": "Playlist updated successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Playlist"
},
"example": {
"id": 61150456,
"name": "New playlist [9]",
"description": "",
"tracks_count": 0,
"users_count": 0,
"duration": 0,
"public_at": 1774548380,
"created_at": 1774548375,
"updated_at": 1774548380,
"is_public": true,
"is_collaborative": false,
"owner": {
"id": 8029441,
"name": "Joren"
}
}
}
}
}
}
}
},
"/qws/createToken": {
"post": {
"summary": "Create QWS token",
"description": "Generate a JWT token for Qobuz WebSocket (QWS) real-time streaming",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"jwt": {
"type": "string",
"enum": ["jwt_qws"],
"description": "Must be 'jwt_qws'"
}
},
"required": ["jwt"]
},
"example": {
"jwt": "jwt_qws"
}
}
}
},
"responses": {
"200": {
"description": "QWS token created successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"jwt_qws": {
"type": "object",
"properties": {
"exp": {
"type": "integer",
"description": "Token expiration timestamp"
},
"jwt": {
"type": "string",
"description": "JWT token for WebSocket authentication"
},
"endpoint": {
"type": "string",
"description": "WebSocket endpoint URL"
}
},
"required": ["exp", "jwt", "endpoint"]
}
},
"required": ["jwt_qws"]
},
"example": {
"jwt_qws": {
"exp": 1774551781,
"jwt": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE3NzQ1NDgxODEsImV4cCI6MTc3NDU1MTc4MSwiaXNzIjoiUW9idXogQVBJIiwicXVpZCI6ODAyOTQ0MSwicWFpZCI6IjMxMjM2OTk5NSJ9.iponghxT2cRFWvFvT9t91QVpQjh4ZEA19flU4lNHMuM",
"endpoint": "wss://qws-us-prod.qobuz.com/ws"
}
}
}
}
},
"401": {
"description": "Authentication required",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"code": {
"type": "integer"
},
"status": {
"type": "string",
"enum": ["error"]
}
},
"required": ["message", "code", "status"]
},
"example": {
"message": "User authentication is required. (Root=1-69c57907-7b414aff302c26850b7a3780)",
"code": 401,
"status": "error"
}
}
}
}
}
}
},
"/radio/artist": {
"get": {
"summary": "Generate artist radio",
"description": "Create a radio station based on an artist's musical style",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "artist_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Artist ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Radio station generated successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"enum": ["radio-artist"],
"description": "Radio algorithm type"
},
"type": {
"type": "string",
"enum": ["radio-artist"],
"description": "Radio type"
},
"title": {
"type": "string",
"description": "Radio station title (artist name)"
},
"images": {
"type": "object",
"properties": {
"small": {
"type": "string",
"format": "uri",
"description": "Small cover image URL"
},
"large": {
"type": "string",
"format": "uri",
"description": "Large cover image URL"
}
},
"required": ["small", "large"]
},
"duration": {
"type": "integer",
"description": "Total duration of all tracks in seconds"
},
"track_count": {
"type": "integer",
"description": "Number of tracks in radio station"
},
"tracks": {
"$ref": "#/components/schemas/PaginatedResponse"
}
},
"required": ["algorithm", "type", "title", "images", "duration", "track_count", "tracks"]
},
"example": {
"algorithm": "radio-artist",
"type": "radio-artist",
"title": "Lost Frequencies",
"images": {
"small": "https://static.qobuz.com/images/artists/covers/small/77817762dd3688191f752509901e4338.jpg",
"large": "https://static.qobuz.com/images/artists/covers/large/77817762dd3688191f752509901e4338.jpg"
},
"duration": 5410,
"track_count": 30,
"tracks": {
"limit": 30,
"items": [
{
"id": 47299759,
"title": "You Don't Have To Like It",
"version": null,
"work": null,
"isrc": "NLZ541800093",
"duration": 177,
"parental_warning": false,
"physical_support": {
"media_number": 1,
"track_number": 1
},
"audio_info": {
"maximum_bit_depth": 16,
"maximum_channel_count": 2,
"maximum_sampling_rate": 44.1
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"sampleable": true,
"hires_streamable": false,
"hires_purchasable": false
},
"artists": [
{
"id": 955835,
"name": "Lucas & Steve",
"roles": ["main-artist"]
}
],
"composer": {
"id": 3251389,
"name": "Alon Dreesde"
},
"album": {
"id": "iom5qw9m24gbb",
"title": "You Don't Have To Like It",
"version": null,
"image": {
"small": "https://static.qobuz.com/images/covers/bb/4g/iom5qw9m24gbb_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/bb/4g/iom5qw9m24gbb_50.jpg",
"large": "https://static.qobuz.com/images/covers/bb/4g/iom5qw9m24gbb_600.jpg"
},
"label": {
"id": 190680,
"name": "Spinnin' Records"
},
"genre": {
"id": 129,
"name": "Dance",
"path": [64, 129]
}
},
"copyright": "© 2018 SpinninRecords.com ℗ 2018 SpinninRecords.com"
}
]
}
}
}
}
}
}
}
},
"/radio/track": {
"get": {
"summary": "Generate track radio",
"description": "Create a radio station based on a specific track's musical style",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "track_id",
"in": "query",
"required": true,
"schema": {
"type": "integer"
},
"description": "Track ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Radio station generated successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"enum": ["radio-track"],
"description": "Radio algorithm type"
},
"type": {
"type": "string",
"enum": ["radio-track"],
"description": "Radio type"
},
"title": {
"type": "string",
"description": "Radio station title (track name)"
},
"images": {
"type": "object",
"properties": {
"small": {
"type": "string",
"format": "uri",
"description": "Small cover image URL"
},
"large": {
"type": "string",
"format": "uri",
"description": "Large cover image URL"
}
},
"required": ["small", "large"]
},
"duration": {
"type": "integer",
"description": "Total duration of all tracks in seconds"
},
"track_count": {
"type": "integer",
"description": "Number of tracks in radio station"
},
"tracks": {
"$ref": "#/components/schemas/PaginatedResponse"
}
},
"required": ["algorithm", "type", "title", "images", "duration", "track_count", "tracks"]
},
"example": {
"algorithm": "radio-track",
"type": "radio-track",
"title": "Big in Japan ",
"images": {
"small": "https://static.qobuz.com/images/covers/db/31/byz76ojp231db_230.jpg",
"large": "https://static.qobuz.com/images/covers/db/31/byz76ojp231db_600.jpg"
},
"duration": 7586,
"track_count": 29,
"tracks": {
"limit": 29,
"items": [
{
"id": 57635339,
"title": "Big in Japan ",
"version": "2019 Remaster",
"work": null,
"isrc": "DEA621800673",
"duration": 284,
"parental_warning": false,
"physical_support": {
"media_number": 1,
"track_number": 3
},
"audio_info": {
"maximum_bit_depth": 24,
"maximum_channel_count": 2,
"maximum_sampling_rate": 44.1
},
"rights": {
"purchasable": false,
"streamable": true,
"downloadable": false,
"sampleable": true,
"hires_streamable": true,
"hires_purchasable": true
},
"artists": [
{
"id": 372772,
"name": "Alphaville",
"roles": ["main-artist"]
}
],
"composer": null,
"album": {
"id": "byz76ojp231db",
"title": "Forever Young ",
"version": "Super Deluxe Edition; 2019 Remaster",
"image": {
"small": "https://static.qobuz.com/images/covers/db/31/byz76ojp231db_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/db/31/byz76ojp231db_50.jpg",
"large": "https://static.qobuz.com/images/covers/db/31/byz76ojp231db_600.jpg"
},
"label": {
"id": 7402,
"name": "WM Germany"
},
"genre": {
"id": 117,
"name": "Pop",
"path": [112, 117]
}
},
"copyright": "© 1984, 2019 WEA / Warner Music Group Germany Holding GmbH / A Warner Music Group Company ℗ 2019, 1984 WEA / Warner Music Group Germany Holding GmbH / A Warner Music Group Company"
}
]
}
}
}
}
}
}
}
},
"/search/report": {
"post": {
"summary": "Report search interactions",
"description": "Send search analytics events for tracking user interactions",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Event schema version",
"example": "01.00"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "integer",
"description": "Event timestamp in milliseconds"
},
"search": {
"type": "string",
"description": "Search query text"
},
"type": {
"type": "string",
"enum": ["artist", "album", "track", "playlist", "label"],
"description": "Type of search result clicked"
},
"position": {
"type": "string",
"description": "Position of result in search results (1-indexed)"
},
"id_client": {
"type": "integer",
"description": "User ID"
},
"queryid": {
"type": "string",
"description": "Unique query identifier"
},
"objectid": {
"type": "string",
"description": "ID of clicked object (artist ID, album ID, etc.)"
}
},
"required": ["date", "search", "type", "position", "id_client", "queryid", "objectid"]
}
}
},
"required": ["version", "events"]
},
"example": {
"version": "01.00",
"events": [
{
"date": 1774548475714,
"search": "lost frequencies",
"type": "artist",
"position": "1",
"id_client": 8029441,
"queryid": "ddc1f5f1871c38feabd9ac82416c1c6f",
"objectid": "1863897"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Search event reported successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["success"]
}
},
"required": ["status"]
},
"example": {
"status": "success"
}
}
}
}
}
}
},
"/session/start": {
"post": {
"summary": "Start a playback session",
"description": "Initialize a streaming session for audio playback",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"enum": ["qbz-1"],
"description": "Playback profile identifier"
}
},
"required": ["profile"]
},
"example": {
"profile": "qbz-1"
}
}
}
},
"responses": {
"200": {
"description": "Session started successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"session_id": {
"type": "string",
"description": "Unique session identifier"
},
"profile": {
"type": "string",
"description": "Playback profile used"
},
"infos": {
"type": "string",
"description": "Base64-encoded session information"
},
"expires_at": {
"type": "integer",
"description": "Session expiration timestamp"
}
},
"required": ["session_id", "profile", "infos", "expires_at"]
},
"example": {
"session_id": "qmG7v51zldj5lYJbsAbPpA",
"profile": "qbz-1",
"infos": "aG0ZxY81ApaRIQLxRuguEw.bm9uZQ",
"expires_at": 1774551783
}
}
}
}
}
}
},
"/story/search": {
"get": {
"summary": "Search stories",
"description": "Search for editorial stories by query with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 8,
"maximum": 50
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The original search query"
},
"stories": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"analytics": {
"type": "object",
"properties": {
"search_external_id": {
"type": "string"
}
}
},
"facets": {
"type": "object",
"nullable": true
}
}
}
]
}
}
},
"example": {
"query": "lost frequencies",
"stories": {
"limit": 8,
"offset": 0,
"analytics": {
"search_external_id": "6504486f17c71b4cdbaf55961d1bebc2"
},
"total": 0,
"items": [],
"facets": null
}
}
}
}
}
}
}
},
"/track/get": {
"get": {
"summary": "Get track details",
"description": "Retrieve detailed information about a specific track",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "track_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Track ID"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Track"
},
"example": {
"maximum_bit_depth": 24,
"copyright": "(P) 2026 Universal Music Division Decca Records France",
"performers": "Flore Benguigui & The Sensible Notes, MainArtist",
"audio_info": {
"replaygain_track_peak": 0.977264,
"replaygain_track_gain": -8.68
},
"performer": {
"name": "Flore Benguigui & The Sensible Notes",
"id": 28885011
},
"album": {
"maximum_bit_depth": 24,
"image": {
"small": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_50.jpg",
"large": "https://static.qobuz.com/images/covers/8q/wt/xxc24b1r0wt8q_600.jpg"
},
"media_count": 1,
"artist": {
"image": null,
"name": "Flore Benguigui & The Sensible Notes",
"id": 28885011,
"albums_count": 6,
"slug": "flore-benguigui--the-sensible-notes",
"picture": null
},
"upc": "0602488154758",
"released_at": 1773356400,
"label": {
"name": "Universal Music Division Decca Records France",
"id": 108875,
"albums_count": 3607,
"supplier_id": 1,
"slug": "universal-music-division-decca-records-france"
},
"title": "i-330",
"qobuz_id": 378123654,
"version": null,
"duration": 2764,
"parental_warning": false,
"tracks_count": 12,
"genre": {
"path": [80, 89],
"color": "#0070ef",
"name": "Jazz vocal",
"id": 89,
"slug": "jazz-vocal"
},
"maximum_channel_count": 2,
"id": "xxc24b1r0wt8q",
"maximum_sampling_rate": 48,
"previewable": true,
"sampleable": true,
"displayable": true,
"streamable": true,
"streamable_at": 1774494000,
"downloadable": false,
"purchasable_at": null,
"purchasable": false,
"release_date_original": "2026-03-13",
"release_date_download": "2026-03-13",
"release_date_stream": "2026-03-13",
"hires": true,
"hires_streamable": true,
"awards": [
{
"name": "Qobuzissime",
"slug": "qobuz",
"award_slug": "qobuzissime",
"awarded_at": 1773961200,
"award_id": "88",
"publication_id": "2",
"publication_name": "Qobuz",
"publication_slug": "qobuz"
}
]
},
"work": null,
"composer": {
"name": "Flore Benguigui",
"id": 28885012
},
"isrc": "FR6V82600001",
"title": "i-330",
"version": null,
"duration": 2764,
"parental_warning": false,
"track_number": 1,
"maximum_channel_count": 2,
"id": 378123655,
"media_number": 1,
"maximum_sampling_rate": 48,
"release_date_original": "2026-03-13",
"release_date_download": "2026-03-13",
"release_date_stream": "2026-03-13",
"purchasable": false,
"streamable": true,
"previewable": true,
"sampleable": true,
"downloadable": false,
"displayable": true,
"purchasable_at": null,
"streamable_at": 1774494000,
"hires": true,
"hires_streamable": true
}
}
}
}
}
}
},
"/track/search": {
"get": {
"summary": "Search tracks",
"description": "Search for tracks by query with pagination",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"name": "query",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Search query"
},
{
"name": "offset",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 0
},
"description": "Offset for pagination"
},
{
"name": "limit",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"default": 8,
"maximum": 50
},
"description": "Maximum number of results"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The original search query"
},
"tracks": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"analytics": {
"type": "object",
"properties": {
"search_external_id": {
"type": "string"
}
}
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Track"
}
}
}
}
]
}
}
},
"example": {
"query": "lost frequencies",
"tracks": {
"limit": 8,
"offset": 0,
"analytics": {
"search_external_id": "40c98535a47ce6cc224d05e0fd5427c2"
},
"total": 1000,
"items": [
{
"maximum_bit_depth": 24,
"copyright": "(P) 2021 Lost & Cie Music SPRL exclusively licensed to Epic Amsterdam, with courtesy of Sony Music Entertainment Belgium NV/SA",
"performers": "Sebastian Arman, Composer, Lyricist - Michael Patrick Kelly, Composer, Lyricist - Joacim Bo Persson, Composer, Lyricist - Lorna Blackwood, Vocal Producer - Lost Frequencies, Producer, MainArtist, AssociatedPerformer - Felix de Laet, Composer, Lyricist - Dag Lundberg, Composer, Lyricist - Calum Scott, MainArtist, AssociatedPerformer, Vocal - Lost Frequencies, Calum Scott, AssociatedPerformer",
"audio_info": {
"replaygain_track_peak": 0.977264,
"replaygain_track_gain": -8.68
},
"performer": {
"name": "Lost Frequencies",
"id": 1863897
},
"album": {
"maximum_bit_depth": 24,
"image": {
"small": "https://static.qobuz.com/images/covers/jb/jb/qofj8ace3jbjb_230.jpg",
"thumbnail": "https://static.qobuz.com/images/covers/jb/jb/qofj8ace3jbjb_50.jpg",
"large": "https://static.qobuz.com/images/covers/jb/jb/qofj8ace3jbjb_600.jpg"
},
"media_count": 1,
"artist": {
"image": null,
"name": "Lost Frequencies",
"id": 1863897,
"albums_count": 990,
"slug": "lost-frequencies",
"picture": null
},
"upc": "0886449449668",
"released_at": 1627596000,
"label": {
"name": "Epic Amsterdam",
"id": 85930,
"albums_count": 405,
"supplier_id": 23,
"slug": "epic-amsterdam"
},
"title": "Where Are You Now",
"qobuz_id": 127415449,
"version": null,
"duration": 148,
"parental_warning": false,
"tracks_count": 1,
"genre": {
"path": [64, 68],
"name": "House",
"id": 68,
"slug": "house"
},
"maximum_channel_count": 2,
"id": "qofj8ace3jbjb",
"maximum_sampling_rate": 44.1,
"previewable": true,
"sampleable": true,
"displayable": true,
"streamable": true,
"streamable_at": 1750129200,
"downloadable": false,
"purchasable_at": null,
"purchasable": false,
"release_date_original": "2021-07-30",
"release_date_download": "2021-07-30",
"release_date_stream": "2021-07-30",
"release_date_purchase": "2021-07-30",
"hires": true,
"hires_streamable": true
},
"work": null,
"composer": {
"name": "Felix de Laet",
"id": 1964137
},
"isrc": "BEHP42100067",
"title": "Where Are You Now",
"version": null,
"duration": 148,
"parental_warning": false,
"track_number": 1,
"maximum_channel_count": 2,
"id": 127415450,
"media_number": 1,
"maximum_sampling_rate": 44.1,
"release_date_original": "2021-07-30",
"release_date_download": "2021-07-30",
"release_date_stream": "2021-07-30",
"release_date_purchase": "2021-07-30",
"purchasable": false,
"streamable": true,
"previewable": true,
"sampleable": true,
"downloadable": false,
"displayable": true,
"purchasable_at": null,
"streamable_at": 1750129200,
"hires": true,
"hires_streamable": true
}
]
}
}
}
}
}
}
}
},
"/user/get": {
"get": {
"summary": "Get user profile",
"description": "Retrieve current user's profile information",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/User"
},
"example": {
"id": 8029441,
"publicId": "qobuz:user:X9vX4tZykliwm",
"email": "joren@directme.in",
"login": "joren@directme.in",
"firstname": null,
"lastname": null,
"display_name": "Joren",
"country_code": "AR",
"language_code": "es",
"zone": "AR",
"store": "AR-es",
"country": "AR",
"avatar": "https://www.gravatar.com/avatar/6f693544cde79a30762dd7274ae2add6?s=50&d=mm",
"genre": "male",
"age": 22,
"birthdate": "2004-02-05",
"creation_date": "2025-10-23",
"zipcode": null,
"subscription": {
"offer": "studio",
"periodicity": "monthly",
"start_date": "2025-10-23",
"end_date": "2026-04-22",
"is_canceled": false,
"household_size_max": 1
},
"credential": {
"id": 3261622,
"label": "streaming-studio",
"description": "Suscriptor Qobuz Studio",
"parameters": {
"lossy_streaming": true,
"lossless_streaming": true,
"hires_streaming": true,
"hires_purchases_streaming": true,
"mobile_streaming": true,
"offline_streaming": true,
"hfp_purchase": false,
"included_format_group_ids": [1, 2, 3, 4],
"color_scheme": {
"logo": "#B8D729"
},
"label": "Qobuz Studio",
"short_label": "Studio",
"source": "subscription"
}
},
"last_update": {
"favorite": 1774542127,
"favorite_album": 1774484091,
"favorite_artist": 1774459997,
"favorite_track": 1774542127,
"favorite_label": 1761211040,
"favorite_award": 1761211040,
"playlist": 1774388881,
"purchase": 1761211287
},
"store_features": {
"download": false,
"streaming": true,
"editorial": true,
"club": false,
"wallet": false,
"weeklyq": true,
"autoplay": true,
"inapp_purchase_subscripton": true,
"opt_in": true,
"pre_register_opt_in": true,
"pre_register_zipcode": false,
"music_import": true,
"radio": true,
"stream_purchase": true,
"lyrics": true
}
}
}
}
}
}
}
},
"/user/plan": {
"get": {
"summary": "Get user subscription plans",
"description": "Retrieve current user's subscription plan details",
"security": [
{
"UserToken": []
}
],
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"responses": {
"200": {
"description": "Successful response",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedResponse"
},
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"source": {
"type": "string",
"enum": ["qobuz", "partner"]
},
"end_date": {
"type": "string",
"format": "date"
},
"price": {
"type": "number"
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3
},
"offer": {
"type": "string",
"enum": ["studio", "sublime", "premier", "family"]
},
"formula": {
"type": "string",
"enum": ["student", "regular", "family"]
},
"periodicity": {
"type": "string",
"enum": ["monthly", "annual", "quarterly"]
},
"trial": {
"type": "boolean"
},
"household_size_max": {
"type": "integer"
},
"household_owner": {
"type": "string",
"nullable": true
}
}
}
}
}
}
]
},
"example": {
"has_more": false,
"items": [
{
"source": "qobuz",
"end_date": "2026-04-22",
"price": 1.99,
"currency": "USD",
"offer": "studio",
"formula": "student",
"periodicity": "monthly",
"trial": false,
"household_size_max": 1,
"household_owner": null
}
],
"total": 1,
"limit": 50,
"offset": 0
}
}
}
}
}
}
},
"/user/registerCheck": {
"post": {
"summary": "Check email registration availability",
"description": "Check if an email address can be used for registration",
"parameters": [
{
"$ref": "#/components/parameters/app_id"
},
{
"$ref": "#/components/parameters/request_ts"
},
{
"$ref": "#/components/parameters/request_sig"
}
],
"requestBody": {
"required": true,
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Email address to check"
},
"language_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Language code for error messages",
"default": "en"
}
},
"required": ["email"]
},
"example": {
"email": "joren@directme.in",
"language_code": "en"
}
}
}
},
"responses": {
"200": {
"description": "Registration check result",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["failed", "success"],
"description": "Check status"
},
"errors": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Error message for email field"
}
},
"nullable": true
}
}
},
"example": {
"status": "failed",
"errors": {
"email": "email [This email address is already being used.]"
}
}
}
}
}
}
}
}
},
"components": {
"parameters": {
"app_id": {
"name": "app_id",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Application ID"
},
"request_ts": {
"name": "request_ts",
"in": "query",
"required": false,
"schema": {
"type": "integer"
},
"description": "Request timestamp"
},
"request_sig": {
"name": "request_sig",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"description": "Cryptographic Signature (Required)\n\nQobuz requires a custom MD5 signature for almost all API calls. Standard Swagger UI cannot compute MD5 hashes dynamically, so you will need to calculate this manually or use a Pre-request Script in tools like Postman.\nThe Algorithm\n\n Method Name: Take the endpoint path without slashes (e.g., /oauth2/login becomes oauth2login).\n\n Parameters: Collect all query parameters except app_id, request_ts, and request_sig. Sort them alphabetically by key. Concatenate the keys and values without spaces (e.g., password[md5_hash]username[email]).\n\n Timestamp: Add the request_ts (Unix Epoch).\n\n App Secret: Append the hardcoded App Secret.\n\n Hash: Generate an MD5 hash of the final concatenated string.\n\nVerified Android Credentials\n\n App ID: 312369995 (Pass this in the X-App-Id header and app_id query)\n\n App Secret: e79f8b9be485692b0e5f9dd895826368\n\nReference Implementation (Python)\nPython\n\nimport hashlib\n\ndef generate_qobuz_sig(method, params_dict, request_ts, app_secret):\n # 1. Filter out standard params\n filtered = {k: v for k, v in params_dict.items() if k not in ['app_id', 'request_ts', 'request_sig']}\n # 2. Sort alphabetically by key and concatenate\n sorted_params = \"\".join(f\"{k}{v}\" for k, v in sorted(filtered.items()))\n # 3. Concatenate all parts\n raw_string = f\"{method}{sorted_params}{request_ts}{app_secret}\"\n # 4. Return MD5 Hash\n return hashlib.md5(raw_string.encode('utf-8')).hexdigest()"
}
},
"securitySchemes": {
"UserToken": {
"type": "apiKey",
"in": "header",
"name": "X-User-Auth-Token",
"description": "The session token returned by /oauth2/login. Required for all user-specific endpoints."
}
},
"schemas": {
"Album": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Album ID"
},
"title": {
"type": "string",
"description": "Album title"
},
"artist": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
},
"medium": {
"type": "string"
},
"large": {
"type": "string"
},
"extralarge": {
"type": "string"
}
}
},
"release_date": {
"type": "string",
"format": "date"
},
"duration": {
"type": "integer",
"description": "Duration in seconds"
},
"tracks_count": {
"type": "integer"
},
"media_count": {
"type": "integer"
},
"genre": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"label": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"copyright": {
"type": "string"
},
"is_preorderable": {
"type": "boolean"
},
"is_streamable": {
"type": "boolean"
},
"is_purchasable": {
"type": "boolean"
},
"is_super_high_res": {
"type": "boolean"
},
"is_high_res": {
"type": "boolean"
},
"is_lossless": {
"type": "boolean"
},
"is_mp3": {
"type": "boolean"
}
}
},
"PaginatedResponse": {
"type": "object",
"properties": {
"has_more": {
"type": "boolean",
"description": "Whether more items are available"
},
"items": {
"type": "array",
"description": "Array of items"
},
"total": {
"type": "integer",
"description": "Total number of items available"
},
"limit": {
"type": "integer",
"description": "Maximum number of items returned"
},
"offset": {
"type": "integer",
"description": "Offset of the first item returned"
}
}
},
"ArtistImage": {
"type": "object",
"properties": {
"artist_id": {
"type": "string"
},
"image_url": {
"type": "string"
},
"width": {
"type": "integer"
},
"height": {
"type": "integer"
},
"format": {
"type": "string"
}
}
},
"ArtistImageRequest": {
"type": "object",
"required": ["artist_ids"],
"properties": {
"artist_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of artist IDs to fetch images for"
}
}
},
"AlbumSearchResult": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"artist": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
}
}
},
"release_date": {
"type": "string"
},
"streamable": {
"type": "boolean"
},
"duration": {
"type": "integer"
},
"tracks_count": {
"type": "integer"
}
}
},
"AlbumSuggestion": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Algorithm used for suggestions"
},
"albums": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Album"
},
"description": "Suggested albums"
}
}
},
"Release": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"version": {
"type": "string"
},
"tracks_count": {
"type": "integer"
},
"artist": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "object",
"properties": {
"display": {
"type": "string"
}
}
}
}
},
"artists": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"large": {
"type": "string"
}
}
},
"label": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"genre": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"path": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"release_type": {
"type": "string",
"enum": ["album", "single", "ep"]
},
"release_tags": {
"type": "array",
"items": {
"type": "string"
}
},
"duration": {
"type": "integer"
},
"dates": {
"type": "object",
"properties": {
"download": {
"type": "string",
"format": "date"
},
"original": {
"type": "string",
"format": "date"
},
"stream": {
"type": "string",
"format": "date"
}
}
},
"parental_warning": {
"type": "boolean"
},
"audio_info": {
"type": "object",
"properties": {
"maximum_bit_depth": {
"type": "integer"
},
"maximum_channel_count": {
"type": "integer"
},
"maximum_sampling_rate": {
"type": "number"
}
}
},
"rights": {
"type": "object",
"properties": {
"purchasable": {
"type": "boolean"
},
"streamable": {
"type": "boolean"
},
"downloadable": {
"type": "boolean"
},
"hires_streamable": {
"type": "boolean"
},
"hires_purchasable": {
"type": "boolean"
}
}
},
"awards": {
"type": "array",
"items": {}
},
"tracks": {
"type": "object",
"properties": {
"has_more": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
},
"SimilarArtistsResponse": {
"type": "object",
"properties": {
"artists": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Artist"
}
}
}
}
}
},
"Artist": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"albums_count": {
"type": "integer"
},
"picture": {
"type": "string"
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
},
"medium": {
"type": "string"
},
"large": {
"type": "string"
},
"extralarge": {
"type": "string"
},
"mega": {
"type": "string"
}
}
}
}
},
"ArtistPage": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "object",
"properties": {
"display": {
"type": "string"
}
}
},
"artist_category": {
"type": "string"
},
"biography": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"source": {
"type": "string"
},
"language": {
"type": "string"
}
}
},
"images": {
"type": "object",
"properties": {
"portrait": {
"type": "object",
"properties": {
"hash": {
"type": "string"
},
"format": {
"type": "string"
}
}
}
}
},
"similar_artists": {
"type": "object",
"properties": {
"has_more": {
"type": "boolean"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Artist"
}
}
}
},
"top_tracks": {
"type": "array",
"items": {
"type": "object"
}
}
}
},
"ArtistSearchResponse": {
"type": "object",
"properties": {
"query": {
"type": "string"
},
"artists": {
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"analytics": {
"type": "object",
"properties": {
"search_external_id": {
"type": "string"
}
}
},
"total": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Artist"
}
}
}
}
}
},
"AwardAlbum": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"version": {
"type": "string"
},
"track_count": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"parental_warning": {
"type": "boolean"
},
"image": {
"type": "object",
"properties": {
"small": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"large": {
"type": "string"
}
}
},
"artists": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"label": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"genre": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"path": {
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"dates": {
"type": "object",
"properties": {
"download": {
"type": "string",
"format": "date"
},
"original": {
"type": "string",
"format": "date"
},
"purchase": {
"type": "string",
"format": "date"
},
"stream": {
"type": "string",
"format": "date"
}
}
},
"awards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"awarded_at": {
"type": "string",
"format": "date"
}
}
}
},
"audio_info": {
"type": "object",
"properties": {
"maximum_sampling_rate": {
"type": "number"
},
"maximum_bit_depth": {
"type": "integer"
},
"maximum_channel_count": {
"type": "integer"
}
}
},
"rights": {
"type": "object",
"properties": {
"purchasable": {
"type": "boolean"
},
"streamable": {
"type": "boolean"
},
"downloadable": {
"type": "boolean"
},
"hires_streamable": {
"type": "boolean"
},
"hires_purchasable": {
"type": "boolean"
}
}
}
}
},
"DiscoverContainer": {
"type": "object",
"properties": {
"banners": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"data": {
"$ref": "#/components/schemas/PaginatedResponse"
}
}
},
"new_releases": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"data": {
"$ref": "#/components/schemas/PaginatedResponse"
}
}
}
}
},
"Track": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Track ID"
},
"title": {
"type": "string",
"description": "Track title"
},
"version": {
"type": "string",
"nullable": true,
"description": "Track version (e.g., 'Remix', 'Live')"
},
"duration": {
"type": "integer",
"description": "Duration in seconds"
},
"track_number": {
"type": "integer",
"description": "Track number on album"
},
"media_number": {
"type": "integer",
"description": "Media number (disc number)"
},
"parental_warning": {
"type": "boolean",
"description": "Whether track has explicit content"
},
"maximum_bit_depth": {
"type": "integer",
"description": "Maximum bit depth available"
},
"maximum_sampling_rate": {
"type": "number",
"description": "Maximum sampling rate in kHz"
},
"maximum_channel_count": {
"type": "integer",
"description": "Maximum channel count (e.g., 2 for stereo)"
},
"copyright": {
"type": "string",
"description": "Copyright information"
},
"isrc": {
"type": "string",
"description": "ISRC code"
},
"performers": {
"type": "string",
"description": "Performer credits"
},
"performer": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"composer": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"work": {
"type": "object",
"nullable": true
},
"audio_info": {
"type": "object",
"properties": {
"replaygain_track_peak": {
"type": "number"
},
"replaygain_track_gain": {
"type": "number"
}
}
},
"album": {
"$ref": "#/components/schemas/Album"
},
"release_date_original": {
"type": "string",
"format": "date"
},
"release_date_download": {
"type": "string",
"format": "date"
},
"release_date_stream": {
"type": "string",
"format": "date"
},
"release_date_purchase": {
"type": "string",
"format": "date"
},
"purchasable": {
"type": "boolean"
},
"streamable": {
"type": "boolean"
},
"previewable": {
"type": "boolean"
},
"sampleable": {
"type": "boolean"
},
"downloadable": {
"type": "boolean"
},
"displayable": {
"type": "boolean"
},
"purchasable_at": {
"type": "integer",
"nullable": true
},
"streamable_at": {
"type": "integer"
},
"hires": {
"type": "boolean"
},
"hires_streamable": {
"type": "boolean"
}
}
},
"User": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "User ID"
},
"publicId": {
"type": "string",
"description": "Public user identifier"
},
"email": {
"type": "string",
"format": "email"
},
"login": {
"type": "string"
},
"firstname": {
"type": "string",
"nullable": true
},
"lastname": {
"type": "string",
"nullable": true
},
"display_name": {
"type": "string"
},
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"language_code": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"zone": {
"type": "string"
},
"store": {
"type": "string"
},
"country": {
"type": "string"
},
"avatar": {
"type": "string",
"format": "uri"
},
"genre": {
"type": "string",
"enum": ["male", "female", "other"]
},
"age": {
"type": "integer"
},
"birthdate": {
"type": "string",
"format": "date"
},
"creation_date": {
"type": "string",
"format": "date"
},
"zipcode": {
"type": "string",
"nullable": true
},
"subscription": {
"type": "object",
"properties": {
"offer": {
"type": "string",
"enum": ["studio", "sublime", "premier", "family"]
},
"periodicity": {
"type": "string",
"enum": ["monthly", "annual", "quarterly"]
},
"start_date": {
"type": "string",
"format": "date"
},
"end_date": {
"type": "string",
"format": "date"
},
"is_canceled": {
"type": "boolean"
},
"household_size_max": {
"type": "integer"
}
}
},
"credential": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"label": {
"type": "string"
},
"description": {
"type": "string"
},
"parameters": {
"type": "object",
"properties": {
"lossy_streaming": {
"type": "boolean"
},
"lossless_streaming": {
"type": "boolean"
},
"hires_streaming": {
"type": "boolean"
},
"hires_purchases_streaming": {
"type": "boolean"
},
"mobile_streaming": {
"type": "boolean"
},
"offline_streaming": {
"type": "boolean"
},
"hfp_purchase": {
"type": "boolean"
},
"included_format_group_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"color_scheme": {
"type": "object",
"properties": {
"logo": {
"type": "string"
}
}
},
"label": {
"type": "string"
},
"short_label": {
"type": "string"
},
"source": {
"type": "string"
}
}
}
}
},
"last_update": {
"type": "object",
"properties": {
"favorite": {
"type": "integer"
},
"favorite_album": {
"type": "integer"
},
"favorite_artist": {
"type": "integer"
},
"favorite_track": {
"type": "integer"
},
"favorite_label": {
"type": "integer"
},
"favorite_award": {
"type": "integer"
},
"playlist": {
"type": "integer"
},
"purchase": {
"type": "integer"
}
}
},
"store_features": {
"type": "object",
"properties": {
"download": {
"type": "boolean"
},
"streaming": {
"type": "boolean"
},
"editorial": {
"type": "boolean"
},
"club": {
"type": "boolean"
},
"wallet": {
"type": "boolean"
},
"weeklyq": {
"type": "boolean"
},
"autoplay": {
"type": "boolean"
},
"inapp_purchase_subscripton": {
"type": "boolean"
},
"opt_in": {
"type": "boolean"
},
"pre_register_opt_in": {
"type": "boolean"
},
"pre_register_zipcode": {
"type": "boolean"
},
"music_import": {
"type": "boolean"
},
"radio": {
"type": "boolean"
},
"stream_purchase": {
"type": "boolean"
},
"lyrics": {
"type": "boolean"
}
}
}
}
},
"Playlist": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"owner": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
}
},
"image": {
"type": "object",
"properties": {
"rectangle": {
"type": "string"
},
"covers": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": {
"type": "string"
},
"duration": {
"type": "integer"
},
"tracks_count": {
"type": "integer"
},
"genres": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"path": {
"type": "array",
"items": {
"type": "integer"
}
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
}
}
}
}
}
}
}
}