├── .github ├── dependabot.yml └── workflows │ └── update-swagger.yml ├── .gitignore ├── CNAME ├── LICENSE ├── README.md ├── dist ├── favicon-16x16.png ├── favicon-32x32.png ├── index.css ├── oauth2-redirect.html ├── swagger-initializer.js ├── swagger-ui-bundle.js ├── swagger-ui-es-bundle-core.js ├── swagger-ui-es-bundle.js ├── swagger-ui-standalone-preset.js ├── swagger-ui.css └── swagger-ui.js ├── index.html ├── openapi.yaml ├── screenshots └── swagger-github-pages.png └── swagger-ui.version /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | labels: 8 | - "dependencies" 9 | -------------------------------------------------------------------------------- /.github/workflows/update-swagger.yml: -------------------------------------------------------------------------------- 1 | name: Update Swagger UI 2 | on: 3 | schedule: 4 | - cron: "0 10 * * *" 5 | workflow_dispatch: 6 | 7 | jobs: 8 | updateSwagger: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - name: Get Latest Swagger UI Release 13 | id: swagger-ui 14 | run: | 15 | release_tag=$(curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | jq -r ".tag_name") 16 | echo "release_tag=$release_tag" >> $GITHUB_OUTPUT 17 | current_tag=$(> $GITHUB_OUTPUT 19 | - name: Update Swagger UI 20 | if: steps.swagger-ui.outputs.current_tag != steps.swagger-ui.outputs.release_tag 21 | env: 22 | RELEASE_TAG: ${{ steps.swagger-ui.outputs.release_tag }} 23 | SWAGGER_YAML: "openapi.yaml" 24 | run: | 25 | # Delete the dist directory and index.html 26 | rm -fr dist index.html 27 | # Download the release 28 | curl -sL -o $RELEASE_TAG https://api.github.com/repos/swagger-api/swagger-ui/tarball/$RELEASE_TAG 29 | # Extract the dist directory 30 | tar -xzf $RELEASE_TAG --strip-components=1 $(tar -tzf $RELEASE_TAG | head -1 | cut -f1 -d"/")/dist 31 | rm $RELEASE_TAG 32 | # Move index.html to the root 33 | mv dist/index.html . 34 | # Fix references in dist/swagger-initializer and index.html 35 | sed -i "s|https://petstore.swagger.io/v2/swagger.json|$SWAGGER_YAML|g" dist/swagger-initializer.js 36 | sed -i "s|href=\"./|href=\"dist/|g" index.html 37 | sed -i "s|src=\"./|src=\"dist/|g" index.html 38 | sed -i "s|href=\"index|href=\"dist/index|g" index.html 39 | # Update current release 40 | echo ${{ steps.swagger-ui.outputs.release_tag }} > swagger-ui.version 41 | - name: Create Pull Request 42 | uses: peter-evans/create-pull-request@v7 43 | with: 44 | commit-message: Update swagger-ui to ${{ steps.swagger-ui.outputs.release_tag }} 45 | title: Update SwaggerUI to ${{ steps.swagger-ui.outputs.release_tag }} 46 | body: | 47 | Updates [swagger-ui][1] to ${{ steps.swagger-ui.outputs.release_tag }} 48 | 49 | Auto-generated by [create-pull-request][2] 50 | 51 | [1]: https://github.com/swagger-api/swagger-ui 52 | [2]: https://github.com/peter-evans/create-pull-request 53 | labels: dependencies, automated pr 54 | branch: swagger-ui-updates 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | applemusicapi.obrhoff.de -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Dennis Oberhoff 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unofficial Apple Music OpenAPI Specification 2 | 3 | This repository contains an **unofficial OpenAPI (Swagger)** specification for the [Apple Music API](https://developer.apple.com/documentation/applemusicapi). It allows developers to easily explore, understand, and integrate Apple Music features into their applications using standardized API tooling. 4 | 5 | > ⚠️ **Disclaimer:** This project is not affiliated with or endorsed by Apple Inc. It is an unofficial community-maintained specification. 6 | 7 | ## 🔍 What is this? 8 | 9 | This project provides an OpenAPI 3.0 specification for the Apple Music API. While Apple offers official documentation, this spec enables developers to: 10 | 11 | - Use interactive API documentation 12 | - Generate client SDKs 13 | - Test and mock API calls 14 | - Integrate with tools like Swagger UI, Postman, and Insomnia 15 | 16 | ## 🚀 Try it out 17 | 18 | Check out the live interactive docs here: 19 | 👉 [https://applemusicapi.obrhoff.de/](https://applemusicapi.obrhoff.de/) 20 | 21 | This Swagger UI interface allows you to explore endpoints and make authenticated requests. 22 | 23 | ## 🛠️ How to Use 24 | 25 | 1. Clone this repository or download `openapi.yaml` 26 | 2. Import the file into your preferred API tool 27 | 3. Add your Apple Music developer token to authenticate requests 28 | 29 | ## 💡 Notes 30 | 31 | - This is a work in progress and may not include every endpoint or parameter. 32 | - Contributions and improvements are welcome. 33 | - Always adhere to Apple’s [Terms of Use](https://developer.apple.com/terms/) when using the API. 34 | 35 | ## 🤝 Contributing 36 | 37 | Found a bug or missing feature? Feel free to open an issue or submit a pull request! 38 | 39 | --- 40 | 41 | 📄 Licensed under MIT -------------------------------------------------------------------------------- /dist/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obrhoff/AppleMusicAPI/4c8a9890586db51855d4ff873f0605ae11ed1852/dist/favicon-16x16.png -------------------------------------------------------------------------------- /dist/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obrhoff/AppleMusicAPI/4c8a9890586db51855d4ff873f0605ae11ed1852/dist/favicon-32x32.png -------------------------------------------------------------------------------- /dist/index.css: -------------------------------------------------------------------------------- 1 | html { 2 | box-sizing: border-box; 3 | overflow: -moz-scrollbars-vertical; 4 | overflow-y: scroll; 5 | } 6 | 7 | *, 8 | *:before, 9 | *:after { 10 | box-sizing: inherit; 11 | } 12 | 13 | body { 14 | margin: 0; 15 | background: #fafafa; 16 | } 17 | -------------------------------------------------------------------------------- /dist/oauth2-redirect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Swagger UI: OAuth2 Redirect 5 | 6 | 7 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /dist/swagger-initializer.js: -------------------------------------------------------------------------------- 1 | window.onload = function() { 2 | // 3 | 4 | // the following lines will be replaced by docker/configurator, when it runs in a docker-container 5 | window.ui = SwaggerUIBundle({ 6 | url: "openapi.yaml", 7 | dom_id: '#swagger-ui', 8 | deepLinking: true, 9 | presets: [ 10 | SwaggerUIBundle.presets.apis, 11 | SwaggerUIStandalonePreset 12 | ], 13 | plugins: [ 14 | SwaggerUIBundle.plugins.DownloadUrl 15 | ], 16 | layout: "StandaloneLayout" 17 | }); 18 | 19 | // 20 | }; 21 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Swagger UI 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /openapi.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.3 2 | info: 3 | title: Apple Music API 4 | version: 1.0.0 5 | description: Comprehensive OpenAPI specification for interacting with Apple Music's catalog and user library. 6 | contact: 7 | email: dennis@obrhoff.de 8 | url: https://obrhoff.de 9 | externalDocs: 10 | description: GitHub Repository 11 | url: https://github.com/obrhoff/AppleMusicAPI 12 | 13 | servers: 14 | - url: https://api.music.apple.com/v1 15 | 16 | paths: 17 | /catalog/{storefront}/search: 18 | get: 19 | tags: [Search] 20 | summary: Search the Apple Music catalog 21 | description: Search for various content types in the Apple Music catalog including songs, albums, artists, and playlists. 22 | security: 23 | - BearerAuth: [] 24 | parameters: 25 | - $ref: "#/components/parameters/Storefront" 26 | - name: term 27 | in: query 28 | required: true 29 | description: The search term to query the catalog (e.g., "Kiesza"). 30 | schema: 31 | type: string 32 | example: "Kiesza" 33 | - name: types 34 | in: query 35 | required: true 36 | description: Types of resources to include in the search. 37 | style: form 38 | explode: false 39 | schema: 40 | type: array 41 | items: 42 | $ref: "#/components/schemas/CatalogSearchType" 43 | example: ["songs", "albums"] 44 | - name: with 45 | in: query 46 | required: false 47 | description: Additional data to include in the response. 48 | style: form 49 | explode: false 50 | schema: 51 | type: array 52 | items: 53 | type: string 54 | enum: [topResults] 55 | example: ["topResults"] 56 | - $ref: "#/components/parameters/Language" 57 | - $ref: "#/components/parameters/Limit" 58 | - $ref: "#/components/parameters/Offset" 59 | responses: 60 | "200": { $ref: "#/components/responses/SearchResponse" } 61 | "401": { $ref: "#/components/responses/Unauthorized" } 62 | 63 | /catalog/us/search/hints: 64 | get: 65 | tags: [Search] 66 | summary: Provides search term hints for the catalog 67 | description: Get search term suggestions based on partial input. 68 | security: 69 | - BearerAuth: [] 70 | parameters: 71 | - name: term 72 | in: query 73 | required: true 74 | description: The partial search term to get hints for. 75 | schema: 76 | type: string 77 | example: "Kie" 78 | - $ref: "#/components/parameters/Language" 79 | responses: 80 | "200": { $ref: "#/components/responses/SearchHintsResponse" } 81 | "401": { $ref: "#/components/responses/Unauthorized" } 82 | 83 | /catalog/{storefront}/artists/{artist_id}: 84 | get: 85 | tags: [Catalog Artist] 86 | summary: Get a catalog artist 87 | description: Fetch detailed information about a specific artist from the Apple Music catalog. 88 | security: 89 | - BearerAuth: [] 90 | parameters: 91 | - name: artist_id 92 | in: path 93 | required: true 94 | description: The identifier of the catalog artist. 95 | schema: 96 | type: string 97 | example: "329523476" 98 | - $ref: "#/components/parameters/Storefront" 99 | - $ref: "#/components/parameters/Language" 100 | - $ref: "#/components/parameters/Include" 101 | - $ref: "#/components/parameters/Extend" 102 | - name: views 103 | in: query 104 | required: false 105 | description: Comma-separated list of views to include in the response. 106 | schema: 107 | type: array 108 | items: 109 | type: string 110 | enum: 111 | - appears-on-albums 112 | - compilation-albums 113 | - featured-albums 114 | - featured-music-videos 115 | - featured-playlists 116 | - full-albums 117 | - latest-release 118 | - live-albums 119 | - similar-artists 120 | - singles 121 | - top-music-videos 122 | - top-songs 123 | style: form 124 | explode: false 125 | responses: 126 | "200": 127 | description: Catalog artist retrieved successfully 128 | content: 129 | application/json: 130 | schema: 131 | $ref: "#/components/schemas/ArtistRelationship" 132 | "default": { $ref: "#/components/responses/Error" } 133 | 134 | /catalog/{storefront}/artists/{artist_id}/albums: 135 | get: 136 | tags: [Catalog Artist] 137 | summary: Get albums by a catalog artist 138 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 139 | security: 140 | - BearerAuth: [] 141 | parameters: 142 | - name: artist_id 143 | in: path 144 | required: true 145 | description: The identifier of the catalog artist. 146 | schema: 147 | type: string 148 | example: "329523476" 149 | - $ref: "#/components/parameters/Storefront" 150 | - $ref: "#/components/parameters/Language" 151 | - $ref: "#/components/parameters/Include" 152 | - $ref: "#/components/parameters/Extend" 153 | responses: 154 | "200": 155 | description: Artist albums retrieved successfully 156 | content: 157 | application/json: 158 | schema: 159 | $ref: "#/components/schemas/AlbumRelationship" 160 | "default": { $ref: "#/components/responses/Error" } 161 | 162 | /catalog/{storefront}/artists/{artist_id}/playlists: 163 | get: 164 | tags: [Catalog Artist] 165 | summary: Get playlists featuring a catalog artist 166 | description: Fetch playlists that feature a specific artist from the Apple Music catalog. 167 | security: 168 | - BearerAuth: [] 169 | parameters: 170 | - name: artist_id 171 | in: path 172 | required: true 173 | description: The identifier of the catalog artist. 174 | schema: 175 | type: string 176 | example: "329523476" 177 | - $ref: "#/components/parameters/Storefront" 178 | - $ref: "#/components/parameters/Language" 179 | - $ref: "#/components/parameters/Include" 180 | - $ref: "#/components/parameters/Extend" 181 | responses: 182 | "200": 183 | description: Artist playlists retrieved successfully 184 | content: 185 | application/json: 186 | schema: 187 | $ref: "#/components/schemas/PlaylistRelationship" 188 | "default": { $ref: "#/components/responses/Error" } 189 | 190 | /catalog/{storefront}/artists/{artist_id}/genres: 191 | get: 192 | tags: [Catalog Artist] 193 | summary: Get genres associated with a catalog artist 194 | description: Fetch genres associated with a specific artist from the Apple Music catalog. 195 | security: 196 | - BearerAuth: [] 197 | parameters: 198 | - name: artist_id 199 | in: path 200 | required: true 201 | description: The identifier of the catalog artist. 202 | schema: 203 | type: string 204 | example: "329523476" 205 | - $ref: "#/components/parameters/Storefront" 206 | - $ref: "#/components/parameters/Language" 207 | - $ref: "#/components/parameters/Include" 208 | - $ref: "#/components/parameters/Extend" 209 | responses: 210 | "200": { $ref: "#/components/responses/Success" } 211 | "default": { $ref: "#/components/responses/Error" } 212 | 213 | /catalog/{storefront}/artists/{artist_id}/station: 214 | get: 215 | tags: [Catalog Artist] 216 | summary: Get radio station for a catalog artist 217 | description: Fetch the radio station associated with a specific artist from the Apple Music catalog. 218 | security: 219 | - BearerAuth: [] 220 | parameters: 221 | - name: artist_id 222 | in: path 223 | required: true 224 | description: The identifier of the catalog artist. 225 | schema: 226 | type: string 227 | example: "329523476" 228 | - $ref: "#/components/parameters/Storefront" 229 | - $ref: "#/components/parameters/Language" 230 | - $ref: "#/components/parameters/Include" 231 | - $ref: "#/components/parameters/Extend" 232 | responses: 233 | "200": { $ref: "#/components/responses/Success" } 234 | "default": { $ref: "#/components/responses/Error" } 235 | 236 | /catalog/{storefront}/artists/{artist_id}/music-videos: 237 | get: 238 | tags: [Catalog Artist] 239 | summary: Get music videos by a catalog artist 240 | description: Fetch music videos associated with a specific artist from the Apple Music catalog. 241 | security: 242 | - BearerAuth: [] 243 | parameters: 244 | - name: artist_id 245 | in: path 246 | required: true 247 | description: The identifier of the catalog artist. 248 | schema: 249 | type: string 250 | example: "329523476" 251 | - $ref: "#/components/parameters/Storefront" 252 | - $ref: "#/components/parameters/Language" 253 | - $ref: "#/components/parameters/Include" 254 | - $ref: "#/components/parameters/Extend" 255 | responses: 256 | "200": { $ref: "#/components/responses/Success" } 257 | "default": { $ref: "#/components/responses/Error" } 258 | 259 | /catalog/{storefront}/artists/{artist_id}/view/appears-on-albums: 260 | get: 261 | tags: [Catalog Artist View] 262 | summary: Get Appears on Album by a catalog artist 263 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 264 | security: 265 | - BearerAuth: [] 266 | parameters: 267 | - name: artist_id 268 | in: path 269 | required: true 270 | description: The identifier of the catalog artist. 271 | schema: 272 | type: string 273 | example: "329523476" 274 | - $ref: "#/components/parameters/Storefront" 275 | - $ref: "#/components/parameters/Language" 276 | - $ref: "#/components/parameters/Limit" 277 | - $ref: "#/components/parameters/Offset" 278 | - $ref: "#/components/parameters/Include" 279 | - $ref: "#/components/parameters/Extend" 280 | - $ref: "#/components/parameters/With" 281 | responses: 282 | "200": 283 | description: Artist albums retrieved successfully 284 | content: 285 | application/json: 286 | schema: 287 | $ref: "#/components/schemas/AlbumRelationship" 288 | "default": { $ref: "#/components/responses/Error" } 289 | 290 | /catalog/{storefront}/artists/{artist_id}/view/compilation-albums: 291 | get: 292 | tags: [Catalog Artist View] 293 | summary: Get Appears on Album by a catalog artist 294 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 295 | security: 296 | - BearerAuth: [] 297 | parameters: 298 | - name: artist_id 299 | in: path 300 | required: true 301 | description: The identifier of the catalog artist. 302 | schema: 303 | type: string 304 | example: "329523476" 305 | - $ref: "#/components/parameters/Storefront" 306 | - $ref: "#/components/parameters/Language" 307 | - $ref: "#/components/parameters/Limit" 308 | - $ref: "#/components/parameters/Offset" 309 | - $ref: "#/components/parameters/Include" 310 | - $ref: "#/components/parameters/Extend" 311 | - $ref: "#/components/parameters/With" 312 | responses: 313 | "200": 314 | description: Artist albums retrieved successfully 315 | content: 316 | application/json: 317 | schema: 318 | $ref: "#/components/schemas/AlbumRelationship" 319 | "default": { $ref: "#/components/responses/Error" } 320 | 321 | /catalog/{storefront}/artists/{artist_id}/view/featured-albums: 322 | get: 323 | tags: [Catalog Artist View] 324 | summary: Get Appears on Album by a catalog artist 325 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 326 | security: 327 | - BearerAuth: [] 328 | parameters: 329 | - name: artist_id 330 | in: path 331 | required: true 332 | description: The identifier of the catalog artist. 333 | schema: 334 | type: string 335 | example: "329523476" 336 | - $ref: "#/components/parameters/Storefront" 337 | - $ref: "#/components/parameters/Language" 338 | - $ref: "#/components/parameters/Limit" 339 | - $ref: "#/components/parameters/Offset" 340 | - $ref: "#/components/parameters/Include" 341 | - $ref: "#/components/parameters/Extend" 342 | - $ref: "#/components/parameters/With" 343 | responses: 344 | "200": 345 | description: Artist albums retrieved successfully 346 | content: 347 | application/json: 348 | schema: 349 | $ref: "#/components/schemas/AlbumRelationship" 350 | "default": { $ref: "#/components/responses/Error" } 351 | 352 | /catalog/{storefront}/artists/{artist_id}/view/featured-music-videos: 353 | get: 354 | tags: [Catalog Artist View] 355 | summary: Get Appears on Album by a catalog artist 356 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 357 | security: 358 | - BearerAuth: [] 359 | parameters: 360 | - name: artist_id 361 | in: path 362 | required: true 363 | description: The identifier of the catalog artist. 364 | schema: 365 | type: string 366 | example: "329523476" 367 | - $ref: "#/components/parameters/Storefront" 368 | - $ref: "#/components/parameters/Language" 369 | - $ref: "#/components/parameters/Limit" 370 | - $ref: "#/components/parameters/Offset" 371 | - $ref: "#/components/parameters/Include" 372 | - $ref: "#/components/parameters/Extend" 373 | - $ref: "#/components/parameters/With" 374 | responses: 375 | "200": 376 | description: Artist albums retrieved successfully 377 | content: 378 | application/json: 379 | schema: 380 | $ref: "#/components/schemas/AlbumRelationship" 381 | "default": { $ref: "#/components/responses/Error" } 382 | 383 | /catalog/{storefront}/artists/{artist_id}/view/featured-playlists: 384 | get: 385 | tags: [Catalog Artist View] 386 | summary: Get Appears on Album by a catalog artist 387 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 388 | security: 389 | - BearerAuth: [] 390 | parameters: 391 | - name: artist_id 392 | in: path 393 | required: true 394 | description: The identifier of the catalog artist. 395 | schema: 396 | type: string 397 | example: "329523476" 398 | - $ref: "#/components/parameters/Storefront" 399 | - $ref: "#/components/parameters/Language" 400 | - $ref: "#/components/parameters/Limit" 401 | - $ref: "#/components/parameters/Offset" 402 | - $ref: "#/components/parameters/Include" 403 | - $ref: "#/components/parameters/Extend" 404 | - $ref: "#/components/parameters/With" 405 | responses: 406 | "200": 407 | description: Artist albums retrieved successfully 408 | content: 409 | application/json: 410 | schema: 411 | $ref: "#/components/schemas/PlaylistRelationship" 412 | "default": { $ref: "#/components/responses/Error" } 413 | 414 | /catalog/{storefront}/artists/{artist_id}/view/full-albums: 415 | get: 416 | tags: [Catalog Artist View] 417 | summary: Get Appears on Album by a catalog artist 418 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 419 | security: 420 | - BearerAuth: [] 421 | parameters: 422 | - name: artist_id 423 | in: path 424 | required: true 425 | description: The identifier of the catalog artist. 426 | schema: 427 | type: string 428 | example: "329523476" 429 | - $ref: "#/components/parameters/Storefront" 430 | - $ref: "#/components/parameters/Language" 431 | - $ref: "#/components/parameters/Limit" 432 | - $ref: "#/components/parameters/Offset" 433 | - $ref: "#/components/parameters/Include" 434 | - $ref: "#/components/parameters/Extend" 435 | - $ref: "#/components/parameters/With" 436 | responses: 437 | "200": 438 | description: Artist albums retrieved successfully 439 | content: 440 | application/json: 441 | schema: 442 | $ref: "#/components/schemas/AlbumRelationship" 443 | "default": { $ref: "#/components/responses/Error" } 444 | 445 | /catalog/{storefront}/artists/{artist_id}/view/latest-release: 446 | get: 447 | tags: [Catalog Artist View] 448 | summary: Get Appears on Album by a catalog artist 449 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 450 | security: 451 | - BearerAuth: [] 452 | parameters: 453 | - name: artist_id 454 | in: path 455 | required: true 456 | description: The identifier of the catalog artist. 457 | schema: 458 | type: string 459 | example: "329523476" 460 | - $ref: "#/components/parameters/Storefront" 461 | - $ref: "#/components/parameters/Language" 462 | - $ref: "#/components/parameters/Include" 463 | - $ref: "#/components/parameters/Extend" 464 | - $ref: "#/components/parameters/With" 465 | responses: 466 | "200": 467 | description: Artist albums retrieved successfully 468 | content: 469 | application/json: 470 | schema: 471 | $ref: "#/components/schemas/AlbumRelationship" 472 | "default": { $ref: "#/components/responses/Error" } 473 | 474 | /catalog/{storefront}/artists/{artist_id}/view/live-albums: 475 | get: 476 | tags: [Catalog Artist View] 477 | summary: Get Appears on Album by a catalog artist 478 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 479 | security: 480 | - BearerAuth: [] 481 | parameters: 482 | - name: artist_id 483 | in: path 484 | required: true 485 | description: The identifier of the catalog artist. 486 | schema: 487 | type: string 488 | example: "329523476" 489 | - $ref: "#/components/parameters/Storefront" 490 | - $ref: "#/components/parameters/Language" 491 | - $ref: "#/components/parameters/Limit" 492 | - $ref: "#/components/parameters/Offset" 493 | - $ref: "#/components/parameters/Include" 494 | - $ref: "#/components/parameters/Extend" 495 | - $ref: "#/components/parameters/With" 496 | responses: 497 | "200": 498 | description: Artist albums retrieved successfully 499 | content: 500 | application/json: 501 | schema: 502 | $ref: "#/components/schemas/AlbumRelationship" 503 | "default": { $ref: "#/components/responses/Error" } 504 | 505 | /catalog/{storefront}/artists/{artist_id}/view/similar-artists: 506 | get: 507 | tags: [Catalog Artist View] 508 | summary: Get Appears on Album by a catalog artist 509 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 510 | security: 511 | - BearerAuth: [] 512 | parameters: 513 | - name: artist_id 514 | in: path 515 | required: true 516 | description: The identifier of the catalog artist. 517 | schema: 518 | type: string 519 | example: "329523476" 520 | - $ref: "#/components/parameters/Storefront" 521 | - $ref: "#/components/parameters/Language" 522 | - $ref: "#/components/parameters/Limit" 523 | - $ref: "#/components/parameters/Offset" 524 | - $ref: "#/components/parameters/Include" 525 | - $ref: "#/components/parameters/Extend" 526 | - $ref: "#/components/parameters/With" 527 | responses: 528 | "200": 529 | description: Artist albums retrieved successfully 530 | content: 531 | application/json: 532 | schema: 533 | $ref: "#/components/schemas/ArtistRelationship" 534 | "default": { $ref: "#/components/responses/Error" } 535 | 536 | # appears-on-albums,compilation-albums,featured-albums,featured-music-videos,featured-playlists,full-albums,latest-release,live-albums,similar-artists,singles,top-music-videos,top-songs 537 | /catalog/{storefront}/artists/{artist_id}/view/singles: 538 | get: 539 | tags: [Catalog Artist View] 540 | summary: Get Appears on Album by a catalog artist 541 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 542 | security: 543 | - BearerAuth: [] 544 | parameters: 545 | - name: artist_id 546 | in: path 547 | required: true 548 | description: The identifier of the catalog artist. 549 | schema: 550 | type: string 551 | example: "329523476" 552 | - $ref: "#/components/parameters/Storefront" 553 | - $ref: "#/components/parameters/Language" 554 | - $ref: "#/components/parameters/Limit" 555 | - $ref: "#/components/parameters/Offset" 556 | - $ref: "#/components/parameters/Include" 557 | - $ref: "#/components/parameters/Extend" 558 | - $ref: "#/components/parameters/With" 559 | responses: 560 | "200": 561 | description: Artist albums retrieved successfully 562 | content: 563 | application/json: 564 | schema: 565 | $ref: "#/components/schemas/AlbumRelationship" 566 | "default": { $ref: "#/components/responses/Error" } 567 | 568 | /catalog/{storefront}/artists/{artist_id}/view/top-music-videos: 569 | get: 570 | tags: [Catalog Artist View] 571 | summary: Get Appears on Album by a catalog artist 572 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 573 | security: 574 | - BearerAuth: [] 575 | parameters: 576 | - name: artist_id 577 | in: path 578 | required: true 579 | description: The identifier of the catalog artist. 580 | schema: 581 | type: string 582 | example: "329523476" 583 | - $ref: "#/components/parameters/Storefront" 584 | - $ref: "#/components/parameters/Language" 585 | - $ref: "#/components/parameters/Limit" 586 | - $ref: "#/components/parameters/Offset" 587 | - $ref: "#/components/parameters/Include" 588 | - $ref: "#/components/parameters/Extend" 589 | - $ref: "#/components/parameters/With" 590 | responses: 591 | "200": 592 | description: Artist albums retrieved successfully 593 | content: 594 | application/json: 595 | schema: 596 | $ref: "#/components/schemas/AlbumRelationship" 597 | "default": { $ref: "#/components/responses/Error" } 598 | 599 | /catalog/{storefront}/artists/{artist_id}/view/top-songs: 600 | get: 601 | tags: [Catalog Artist View] 602 | summary: Get Appears on Album by a catalog artist 603 | description: Fetch albums associated with a specific artist from the Apple Music catalog. 604 | security: 605 | - BearerAuth: [] 606 | parameters: 607 | - name: artist_id 608 | in: path 609 | required: true 610 | description: The identifier of the catalog artist. 611 | schema: 612 | type: string 613 | example: "329523476" 614 | - $ref: "#/components/parameters/Storefront" 615 | - $ref: "#/components/parameters/Language" 616 | - $ref: "#/components/parameters/Limit" 617 | - $ref: "#/components/parameters/Offset" 618 | - $ref: "#/components/parameters/Include" 619 | - $ref: "#/components/parameters/Extend" 620 | - $ref: "#/components/parameters/With" 621 | responses: 622 | "200": 623 | description: Artist albums retrieved successfully 624 | content: 625 | application/json: 626 | schema: 627 | $ref: "#/components/schemas/SongRelationship" 628 | "default": { $ref: "#/components/responses/Error" } 629 | 630 | /catalog/{storefront}/albums/{album_id}: 631 | get: 632 | tags: [Catalog Album] 633 | summary: Get a catalog album 634 | description: Fetch detailed information about a specific album from the Apple Music catalog. 635 | security: 636 | - BearerAuth: [] 637 | parameters: 638 | - name: album_id 639 | in: path 640 | required: true 641 | description: The identifier of the catalog album. 642 | schema: 643 | type: string 644 | example: "1440812310" 645 | - $ref: "#/components/parameters/Storefront" 646 | - $ref: "#/components/parameters/Language" 647 | - $ref: "#/components/parameters/Include" 648 | - $ref: "#/components/parameters/Extend" 649 | - name: views 650 | in: query 651 | required: false 652 | description: Comma-separated list of views to include in the response. 653 | schema: 654 | type: array 655 | items: 656 | type: string 657 | enum: 658 | - appears-on 659 | - other-versions 660 | - related-albums 661 | - related-videos 662 | style: form 663 | explode: false 664 | responses: 665 | "200": 666 | description: Catalog album retrieved successfully 667 | content: 668 | application/json: 669 | schema: 670 | $ref: "#/components/schemas/AlbumRelationship" 671 | "default": { $ref: "#/components/responses/Error" } 672 | 673 | /catalog/{storefront}/albums/{album_id}/tracks: 674 | get: 675 | tags: [Catalog Album] 676 | summary: Get tracks from a catalog album 677 | description: Fetch tracks associated with a specific album from the Apple Music catalog. 678 | security: 679 | - BearerAuth: [] 680 | parameters: 681 | - name: album_id 682 | in: path 683 | required: true 684 | description: The identifier of the catalog album. 685 | schema: 686 | type: string 687 | example: "1440812310" 688 | - $ref: "#/components/parameters/Storefront" 689 | - $ref: "#/components/parameters/Language" 690 | - $ref: "#/components/parameters/Include" 691 | - $ref: "#/components/parameters/Extend" 692 | responses: 693 | "200": 694 | description: Album tracks retrieved successfully 695 | content: 696 | application/json: 697 | schema: 698 | $ref: "#/components/schemas/SongRelationship" 699 | "default": { $ref: "#/components/responses/Error" } 700 | 701 | /catalog/{storefront}/albums/{album_id}/artists: 702 | get: 703 | tags: [Catalog Album] 704 | summary: Get artists from a catalog album 705 | description: Fetch artists associated with a specific album from the Apple Music catalog. 706 | security: 707 | - BearerAuth: [] 708 | parameters: 709 | - name: album_id 710 | in: path 711 | required: true 712 | description: The identifier of the catalog album. 713 | schema: 714 | type: string 715 | example: "1440812310" 716 | - $ref: "#/components/parameters/Storefront" 717 | - $ref: "#/components/parameters/Language" 718 | - $ref: "#/components/parameters/Include" 719 | - $ref: "#/components/parameters/Extend" 720 | responses: 721 | "200": 722 | description: Album artists retrieved successfully 723 | content: 724 | application/json: 725 | schema: 726 | $ref: "#/components/schemas/ArtistRelationship" 727 | "default": { $ref: "#/components/responses/Error" } 728 | 729 | /catalog/{storefront}/albums/{album_id}/library: 730 | get: 731 | tags: [Catalog Album] 732 | summary: Check if album is in user's library 733 | description: Check if a specific album is in the user's library. 734 | security: 735 | - BearerAuth: [] 736 | parameters: 737 | - name: album_id 738 | in: path 739 | required: true 740 | description: The identifier of the catalog album. 741 | schema: 742 | type: string 743 | example: "1440812310" 744 | - $ref: "#/components/parameters/Storefront" 745 | - $ref: "#/components/parameters/Language" 746 | - $ref: "#/components/parameters/Include" 747 | - $ref: "#/components/parameters/Extend" 748 | responses: 749 | "200": { $ref: "#/components/responses/Success" } 750 | "default": { $ref: "#/components/responses/Error" } 751 | 752 | /catalog/{storefront}/albums/{album_id}/record-labels: 753 | get: 754 | tags: [Catalog Album] 755 | summary: Get record labels for a catalog album 756 | description: Fetch record labels associated with a specific album from the Apple Music catalog. 757 | security: 758 | - BearerAuth: [] 759 | parameters: 760 | - name: album_id 761 | in: path 762 | required: true 763 | description: The identifier of the catalog album. 764 | schema: 765 | type: string 766 | example: "1440812310" 767 | - $ref: "#/components/parameters/Storefront" 768 | - $ref: "#/components/parameters/Language" 769 | - $ref: "#/components/parameters/Include" 770 | - $ref: "#/components/parameters/Extend" 771 | responses: 772 | "200": { $ref: "#/components/responses/Success" } 773 | "default": { $ref: "#/components/responses/Error" } 774 | 775 | /catalog/{storefront}/albums/{album_id}/view/appears-on: 776 | get: 777 | tags: [Catalog Album View] 778 | summary: Get tracks from a catalog album 779 | description: Fetch tracks associated with a specific album from the Apple Music catalog. 780 | security: 781 | - BearerAuth: [] 782 | parameters: 783 | - name: album_id 784 | in: path 785 | required: true 786 | description: The identifier of the catalog album. 787 | schema: 788 | type: string 789 | example: "1440812310" 790 | - $ref: "#/components/parameters/Storefront" 791 | - $ref: "#/components/parameters/Language" 792 | - $ref: "#/components/parameters/Include" 793 | - $ref: "#/components/parameters/Extend" 794 | - $ref: "#/components/parameters/With" 795 | responses: 796 | "200": 797 | description: Album tracks retrieved successfully 798 | content: 799 | application/json: 800 | schema: 801 | $ref: "#/components/schemas/PlaylistRelationship" 802 | "default": { $ref: "#/components/responses/Error" } 803 | 804 | /catalog/{storefront}/albums/{album_id}/view/other-versions: 805 | get: 806 | tags: [Catalog Album View] 807 | summary: Get tracks from a catalog album 808 | description: Fetch tracks associated with a specific album from the Apple Music catalog. 809 | security: 810 | - BearerAuth: [] 811 | parameters: 812 | - name: album_id 813 | in: path 814 | required: true 815 | description: The identifier of the catalog album. 816 | schema: 817 | type: string 818 | example: "1440812310" 819 | - $ref: "#/components/parameters/Storefront" 820 | - $ref: "#/components/parameters/Language" 821 | - $ref: "#/components/parameters/Limit" 822 | - $ref: "#/components/parameters/Offset" 823 | - $ref: "#/components/parameters/With" 824 | responses: 825 | "200": 826 | description: Album tracks retrieved successfully 827 | content: 828 | application/json: 829 | schema: 830 | $ref: "#/components/schemas/AlbumRelationship" 831 | "default": { $ref: "#/components/responses/Error" } 832 | 833 | /catalog/{storefront}/albums/{album_id}/view/related-albums: 834 | get: 835 | tags: [Catalog Album View] 836 | summary: Get tracks from a catalog album 837 | description: Fetch tracks associated with a specific album from the Apple Music catalog. 838 | security: 839 | - BearerAuth: [] 840 | parameters: 841 | - name: album_id 842 | in: path 843 | required: true 844 | description: The identifier of the catalog album. 845 | schema: 846 | type: string 847 | example: "1440812310" 848 | - $ref: "#/components/parameters/Storefront" 849 | - $ref: "#/components/parameters/Language" 850 | - $ref: "#/components/parameters/Limit" 851 | - $ref: "#/components/parameters/Offset" 852 | - $ref: "#/components/parameters/Include" 853 | - $ref: "#/components/parameters/Extend" 854 | - $ref: "#/components/parameters/With" 855 | responses: 856 | "200": 857 | description: Album tracks retrieved successfully 858 | content: 859 | application/json: 860 | schema: 861 | $ref: "#/components/schemas/AlbumRelationship" 862 | "default": { $ref: "#/components/responses/Error" } 863 | 864 | /catalog/{storefront}/albums/{album_id}/view/related-videos: 865 | get: 866 | tags: [Catalog Album View] 867 | summary: Get tracks from a catalog album 868 | description: Fetch tracks associated with a specific album from the Apple Music catalog. 869 | security: 870 | - BearerAuth: [] 871 | parameters: 872 | - name: album_id 873 | in: path 874 | required: true 875 | description: The identifier of the catalog album. 876 | schema: 877 | type: string 878 | example: "1440812310" 879 | - $ref: "#/components/parameters/Storefront" 880 | - $ref: "#/components/parameters/Language" 881 | - $ref: "#/components/parameters/Limit" 882 | - $ref: "#/components/parameters/Offset" 883 | - $ref: "#/components/parameters/Include" 884 | - $ref: "#/components/parameters/Extend" 885 | - $ref: "#/components/parameters/With" 886 | 887 | responses: 888 | "200": 889 | description: Album tracks retrieved successfully 890 | content: 891 | application/json: 892 | schema: 893 | $ref: "#/components/schemas/SongRelationship" 894 | "default": { $ref: "#/components/responses/Error" } 895 | 896 | /catalog/{storefront}/songs: 897 | get: 898 | tags: [Catalog Song] 899 | summary: Get a catalog song 900 | description: Fetch detailed information about multiple specific song from the Apple Music catalog. 901 | security: 902 | - BearerAuth: [] 903 | parameters: 904 | - name: ids 905 | in: query 906 | required: true 907 | description: The identifiers of the catalog songs. 908 | schema: 909 | type: array 910 | items: 911 | type: string 912 | style: form 913 | explode: false 914 | example: ["1440812311", "203709340"] 915 | - $ref: "#/components/parameters/Storefront" 916 | - $ref: "#/components/parameters/Language" 917 | - $ref: "#/components/parameters/Include" 918 | - $ref: "#/components/parameters/Extend" 919 | responses: 920 | "200": 921 | description: Catalog multiple songs retrieved successfully 922 | content: 923 | application/json: 924 | schema: 925 | $ref: "#/components/schemas/SongRelationship" 926 | "default": { $ref: "#/components/responses/Error" } 927 | 928 | /catalog/{storefront}/songs/{song_id}: 929 | get: 930 | tags: [Catalog Song] 931 | summary: Get a catalog song 932 | description: Fetch detailed information about a specific song from the Apple Music catalog. 933 | security: 934 | - BearerAuth: [] 935 | parameters: 936 | - name: song_id 937 | in: path 938 | required: true 939 | description: The identifier of the catalog song. 940 | schema: 941 | type: string 942 | example: "1440812311" 943 | - $ref: "#/components/parameters/Storefront" 944 | - $ref: "#/components/parameters/Language" 945 | - $ref: "#/components/parameters/Include" 946 | - $ref: "#/components/parameters/Extend" 947 | responses: 948 | "200": 949 | description: Catalog song retrieved successfully 950 | content: 951 | application/json: 952 | schema: 953 | $ref: "#/components/schemas/SongRelationship" 954 | "default": { $ref: "#/components/responses/Error" } 955 | 956 | /catalog/{storefront}/songs/{song_id}/albums: 957 | get: 958 | tags: [Catalog Song] 959 | summary: Get albums featuring a catalog song 960 | description: Fetch albums that feature a specific song from the Apple Music catalog. 961 | security: 962 | - BearerAuth: [] 963 | parameters: 964 | - name: song_id 965 | in: path 966 | required: true 967 | description: The identifier of the catalog song. 968 | schema: 969 | type: string 970 | example: "1440812311" 971 | - $ref: "#/components/parameters/Storefront" 972 | - $ref: "#/components/parameters/Language" 973 | - $ref: "#/components/parameters/Include" 974 | - $ref: "#/components/parameters/Extend" 975 | responses: 976 | "200": 977 | description: Song albums retrieved successfully 978 | content: 979 | application/json: 980 | schema: 981 | $ref: "#/components/schemas/AlbumRelationship" 982 | "default": { $ref: "#/components/responses/Error" } 983 | 984 | /catalog/{storefront}/songs/{song_id}/artists: 985 | get: 986 | tags: [Catalog Song] 987 | summary: Get artists of a catalog song 988 | description: Fetch artists associated with a specific song from the Apple Music catalog. 989 | security: 990 | - BearerAuth: [] 991 | parameters: 992 | - name: song_id 993 | in: path 994 | required: true 995 | description: The identifier of the catalog song. 996 | schema: 997 | type: string 998 | example: "1440812311" 999 | - $ref: "#/components/parameters/Storefront" 1000 | - $ref: "#/components/parameters/Language" 1001 | - $ref: "#/components/parameters/Include" 1002 | - $ref: "#/components/parameters/Extend" 1003 | responses: 1004 | "200": 1005 | description: Song artists retrieved successfully 1006 | content: 1007 | application/json: 1008 | schema: 1009 | $ref: "#/components/schemas/ArtistRelationship" 1010 | "default": { $ref: "#/components/responses/Error" } 1011 | 1012 | /catalog/{storefront}/songs/{song_id}/composer: 1013 | get: 1014 | tags: [Catalog Song] 1015 | summary: Get composer of a catalog song 1016 | description: Fetch the composer of a specific song from the Apple Music catalog. 1017 | security: 1018 | - BearerAuth: [] 1019 | parameters: 1020 | - name: song_id 1021 | in: path 1022 | required: true 1023 | description: The identifier of the catalog song. 1024 | schema: 1025 | type: string 1026 | example: "1440812311" 1027 | - $ref: "#/components/parameters/Storefront" 1028 | - $ref: "#/components/parameters/Language" 1029 | - $ref: "#/components/parameters/Include" 1030 | - $ref: "#/components/parameters/Extend" 1031 | responses: 1032 | "200": { $ref: "#/components/responses/Success" } 1033 | "default": { $ref: "#/components/responses/Error" } 1034 | 1035 | /catalog/{storefront}/songs/{song_id}/genres: 1036 | get: 1037 | tags: [Catalog Song] 1038 | summary: Get genres of a catalog song 1039 | description: Fetch genres associated with a specific song from the Apple Music catalog. 1040 | security: 1041 | - BearerAuth: [] 1042 | parameters: 1043 | - name: song_id 1044 | in: path 1045 | required: true 1046 | description: The identifier of the catalog song. 1047 | schema: 1048 | type: string 1049 | example: "1440812311" 1050 | - $ref: "#/components/parameters/Storefront" 1051 | - $ref: "#/components/parameters/Language" 1052 | - $ref: "#/components/parameters/Include" 1053 | - $ref: "#/components/parameters/Extend" 1054 | responses: 1055 | "200": { $ref: "#/components/responses/Success" } 1056 | "default": { $ref: "#/components/responses/Error" } 1057 | 1058 | /catalog/{storefront}/songs/{song_id}/library: 1059 | get: 1060 | tags: [Catalog Song] 1061 | summary: Check if song is in user's library 1062 | description: Check if a specific song is in the user's library. 1063 | security: 1064 | - BearerAuth: [] 1065 | parameters: 1066 | - name: song_id 1067 | in: path 1068 | required: true 1069 | description: The identifier of the catalog song. 1070 | schema: 1071 | type: string 1072 | example: "1440812311" 1073 | - $ref: "#/components/parameters/Storefront" 1074 | - $ref: "#/components/parameters/Language" 1075 | - $ref: "#/components/parameters/Include" 1076 | - $ref: "#/components/parameters/Extend" 1077 | responses: 1078 | "200": { $ref: "#/components/responses/Success" } 1079 | "default": { $ref: "#/components/responses/Error" } 1080 | 1081 | /catalog/{storefront}/songs/{song_id}/music-videos: 1082 | get: 1083 | tags: [Catalog Song] 1084 | summary: Get music videos for a catalog song 1085 | description: Fetch music videos associated with a specific song from the Apple Music catalog. 1086 | security: 1087 | - BearerAuth: [] 1088 | parameters: 1089 | - name: song_id 1090 | in: path 1091 | required: true 1092 | description: The identifier of the catalog song. 1093 | schema: 1094 | type: string 1095 | example: "1440812311" 1096 | - $ref: "#/components/parameters/Storefront" 1097 | - $ref: "#/components/parameters/Language" 1098 | - $ref: "#/components/parameters/Include" 1099 | - $ref: "#/components/parameters/Extend" 1100 | responses: 1101 | "200": { $ref: "#/components/responses/Success" } 1102 | "default": { $ref: "#/components/responses/Error" } 1103 | 1104 | /catalog/{storefront}/songs/{song_id}/station: 1105 | get: 1106 | tags: [Catalog Song] 1107 | summary: Get radio station for a catalog song 1108 | description: Fetch the radio station associated with a specific song from the Apple Music catalog. 1109 | security: 1110 | - BearerAuth: [] 1111 | parameters: 1112 | - name: song_id 1113 | in: path 1114 | required: true 1115 | description: The identifier of the catalog song. 1116 | schema: 1117 | type: string 1118 | example: "1440812311" 1119 | - $ref: "#/components/parameters/Storefront" 1120 | - $ref: "#/components/parameters/Language" 1121 | - $ref: "#/components/parameters/Include" 1122 | - $ref: "#/components/parameters/Extend" 1123 | responses: 1124 | "200": { $ref: "#/components/responses/Success" } 1125 | "default": { $ref: "#/components/responses/Error" } 1126 | 1127 | /catalog/{storefront}/playlists/{playlist_id}: 1128 | get: 1129 | tags: [Catalog Playlist] 1130 | summary: Get a catalog playlist 1131 | description: Fetch detailed information about a specific playlist from the Apple Music catalog. 1132 | security: 1133 | - BearerAuth: [] 1134 | parameters: 1135 | - $ref: "#/components/parameters/PlaylistId" 1136 | - $ref: "#/components/parameters/Storefront" 1137 | - $ref: "#/components/parameters/Language" 1138 | - $ref: "#/components/parameters/Include" 1139 | - $ref: "#/components/parameters/Extend" 1140 | - name: views 1141 | in: query 1142 | required: false 1143 | description: Comma-separated list of views to include in the response. 1144 | schema: 1145 | type: array 1146 | items: 1147 | type: string 1148 | enum: 1149 | - featured-artists 1150 | - more-by-curator 1151 | style: form 1152 | explode: false 1153 | responses: 1154 | "200": { $ref: "#/components/responses/CatalogPlaylistResponse" } 1155 | "default": { $ref: "#/components/responses/Error" } 1156 | 1157 | /catalog/{storefront}/playlists/{playlist_id}/tracks: 1158 | get: 1159 | tags: [Catalog Playlist] 1160 | summary: Get tracks from a catalog playlist 1161 | description: Fetch tracks associated with a specific playlist from the Apple Music catalog. 1162 | security: 1163 | - BearerAuth: [] 1164 | parameters: 1165 | - $ref: "#/components/parameters/PlaylistId" 1166 | - $ref: "#/components/parameters/Storefront" 1167 | - $ref: "#/components/parameters/Language" 1168 | - $ref: "#/components/parameters/Limit" 1169 | - $ref: "#/components/parameters/Offset" 1170 | - $ref: "#/components/parameters/Include" 1171 | - $ref: "#/components/parameters/Extend" 1172 | responses: 1173 | "200": 1174 | description: Playlist tracks retrieved successfully 1175 | content: 1176 | application/json: 1177 | schema: 1178 | $ref: "#/components/schemas/SongRelationship" 1179 | "default": { $ref: "#/components/responses/Error" } 1180 | 1181 | /catalog/{storefront}/playlists/{playlist_id}/library: 1182 | get: 1183 | tags: [Catalog Playlist] 1184 | summary: Check if playlist is in user's library 1185 | description: Check if a specific playlist is in the user's library. 1186 | security: 1187 | - BearerAuth: [] 1188 | parameters: 1189 | - $ref: "#/components/parameters/PlaylistId" 1190 | - $ref: "#/components/parameters/Storefront" 1191 | - $ref: "#/components/parameters/Language" 1192 | - $ref: "#/components/parameters/Limit" 1193 | - $ref: "#/components/parameters/Offset" 1194 | - $ref: "#/components/parameters/Include" 1195 | - $ref: "#/components/parameters/Extend" 1196 | responses: 1197 | "200": { $ref: "#/components/responses/Success" } 1198 | "default": { $ref: "#/components/responses/Error" } 1199 | 1200 | /catalog/{storefront}/playlists/{playlist_id}/curator: 1201 | get: 1202 | tags: [Catalog Playlist] 1203 | summary: Get curator of a catalog playlist 1204 | description: Fetch the curator of a specific playlist from the Apple Music catalog. 1205 | security: 1206 | - BearerAuth: [] 1207 | parameters: 1208 | - $ref: "#/components/parameters/PlaylistId" 1209 | - $ref: "#/components/parameters/Storefront" 1210 | - $ref: "#/components/parameters/Language" 1211 | - $ref: "#/components/parameters/Limit" 1212 | - $ref: "#/components/parameters/Offset" 1213 | - $ref: "#/components/parameters/Include" 1214 | - $ref: "#/components/parameters/Extend" 1215 | responses: 1216 | "200": { $ref: "#/components/responses/Success" } 1217 | "default": { $ref: "#/components/responses/Error" } 1218 | 1219 | /catalog/{storefront}/playlists/{playlist_id}/views/featured-artists: 1220 | get: 1221 | tags: [Catalog Playlist View] 1222 | summary: Get tracks from a catalog playlist 1223 | description: Fetch tracks associated with a specific playlist from the Apple Music catalog. 1224 | security: 1225 | - BearerAuth: [] 1226 | parameters: 1227 | - $ref: "#/components/parameters/PlaylistId" 1228 | - $ref: "#/components/parameters/Storefront" 1229 | - $ref: "#/components/parameters/Language" 1230 | - $ref: "#/components/parameters/Limit" 1231 | - $ref: "#/components/parameters/Offset" 1232 | - $ref: "#/components/parameters/Include" 1233 | - $ref: "#/components/parameters/Extend" 1234 | - $ref: "#/components/parameters/With" 1235 | responses: 1236 | "200": 1237 | description: Playlist tracks retrieved successfully 1238 | content: 1239 | application/json: 1240 | schema: 1241 | $ref: "#/components/schemas/ArtistRelationship" 1242 | "default": { $ref: "#/components/responses/Error" } 1243 | 1244 | /catalog/{storefront}/playlists/{playlist_id}/views/more-by-curator: 1245 | get: 1246 | tags: [Catalog Playlist View] 1247 | summary: Get curator of a catalog playlist 1248 | description: Fetch the curator of a specific playlist from the Apple Music catalog. 1249 | security: 1250 | - BearerAuth: [] 1251 | parameters: 1252 | - $ref: "#/components/parameters/PlaylistId" 1253 | - $ref: "#/components/parameters/Storefront" 1254 | - $ref: "#/components/parameters/Language" 1255 | - $ref: "#/components/parameters/Limit" 1256 | - $ref: "#/components/parameters/Offset" 1257 | - $ref: "#/components/parameters/Include" 1258 | - $ref: "#/components/parameters/Extend" 1259 | - $ref: "#/components/parameters/With" 1260 | responses: 1261 | "200": { $ref: "#/components/responses/Success" } 1262 | "default": { $ref: "#/components/responses/Error" } 1263 | /me/library/search: 1264 | get: 1265 | tags: [Library] 1266 | summary: Search the user's library 1267 | description: Search for content in the user's Apple Music library. 1268 | security: 1269 | - BearerAuth: [] 1270 | - MusicUserAuth: [] 1271 | parameters: 1272 | - name: term 1273 | in: query 1274 | required: true 1275 | description: The search term to query the library. 1276 | schema: 1277 | type: string 1278 | example: "Kiesza" 1279 | - name: types 1280 | in: query 1281 | required: true 1282 | description: Types of resources to include in the search. 1283 | style: form 1284 | explode: false 1285 | schema: 1286 | type: array 1287 | items: 1288 | $ref: "#/components/schemas/LibrarySearchType" 1289 | example: ["library-songs", "library-albums"] 1290 | - $ref: "#/components/parameters/Language" 1291 | - $ref: "#/components/parameters/Limit" 1292 | - $ref: "#/components/parameters/Offset" 1293 | responses: 1294 | "200": { $ref: "#/components/responses/LibrarySearchResponse" } 1295 | "401": { $ref: "#/components/responses/Unauthorized" } 1296 | 1297 | /me/library/albums: 1298 | get: 1299 | tags: [Library] 1300 | summary: Get user's library albums 1301 | description: Fetch albums from the user's Apple Music library. 1302 | security: 1303 | - BearerAuth: [] 1304 | - MusicUserAuth: [] 1305 | parameters: 1306 | - $ref: "#/components/parameters/Language" 1307 | - $ref: "#/components/parameters/Limit" 1308 | - $ref: "#/components/parameters/Offset" 1309 | - $ref: "#/components/parameters/Include" 1310 | - $ref: "#/components/parameters/Extend" 1311 | responses: 1312 | "200": { $ref: "#/components/responses/LibraryAlbumsResponse" } 1313 | "default": { $ref: "#/components/responses/Error" } 1314 | 1315 | /me/library/albums/{album_id}: 1316 | get: 1317 | tags: [Library] 1318 | summary: Get user's library album by ID 1319 | description: Fetch a specific album from the user's Apple Music library. 1320 | security: 1321 | - BearerAuth: [] 1322 | - MusicUserAuth: [] 1323 | parameters: 1324 | - name: album_id 1325 | in: path 1326 | required: true 1327 | description: The identifier of the library album. 1328 | schema: 1329 | type: string 1330 | example: "l.1440812310" 1331 | - $ref: "#/components/parameters/Language" 1332 | - $ref: "#/components/parameters/Include" 1333 | - $ref: "#/components/parameters/Extend" 1334 | responses: 1335 | "200": 1336 | description: Library album retrieved successfully 1337 | content: 1338 | application/json: 1339 | schema: 1340 | $ref: "#/components/schemas/LibraryAlbumRelationship" 1341 | "default": { $ref: "#/components/responses/Error" } 1342 | 1343 | /me/library/albums/{album_id}/tracks: 1344 | get: 1345 | tags: [Library] 1346 | summary: Get tracks from a library album 1347 | description: Fetch tracks associated with a specific album from the user's Apple Music library. 1348 | security: 1349 | - BearerAuth: [] 1350 | - MusicUserAuth: [] 1351 | parameters: 1352 | - name: album_id 1353 | in: path 1354 | required: true 1355 | description: The identifier of the library album. 1356 | schema: 1357 | type: string 1358 | example: "l.1440812310" 1359 | - $ref: "#/components/parameters/Language" 1360 | - $ref: "#/components/parameters/Include" 1361 | - $ref: "#/components/parameters/Extend" 1362 | responses: 1363 | "200": 1364 | description: Album tracks retrieved successfully 1365 | content: 1366 | application/json: 1367 | schema: 1368 | $ref: "#/components/schemas/LibrarySongRelationship" 1369 | "default": { $ref: "#/components/responses/Error" } 1370 | 1371 | /me/library/songs: 1372 | get: 1373 | tags: [Library] 1374 | summary: Get user's library songs 1375 | description: Fetch songs from the user's Apple Music library. 1376 | security: 1377 | - BearerAuth: [] 1378 | - MusicUserAuth: [] 1379 | parameters: 1380 | - $ref: "#/components/parameters/Language" 1381 | - $ref: "#/components/parameters/Limit" 1382 | - $ref: "#/components/parameters/Offset" 1383 | - $ref: "#/components/parameters/Include" 1384 | - $ref: "#/components/parameters/Extend" 1385 | responses: 1386 | "200": { $ref: "#/components/responses/LibrarySongsResponse" } 1387 | "default": { $ref: "#/components/responses/Error" } 1388 | 1389 | /me/library/playlists: 1390 | get: 1391 | tags: [Library] 1392 | summary: Get user's library playlists 1393 | description: Fetch playlists from the user's Apple Music library. 1394 | security: 1395 | - BearerAuth: [] 1396 | - MusicUserAuth: [] 1397 | parameters: 1398 | - $ref: "#/components/parameters/Language" 1399 | - $ref: "#/components/parameters/Limit" 1400 | - $ref: "#/components/parameters/Offset" 1401 | - $ref: "#/components/parameters/Include" 1402 | - $ref: "#/components/parameters/Extend" 1403 | responses: 1404 | "200": { $ref: "#/components/responses/LibraryPlaylistsResponse" } 1405 | "default": { $ref: "#/components/responses/Error" } 1406 | 1407 | /me/library/playlists/{playlist_id}: 1408 | get: 1409 | tags: [Library] 1410 | summary: Get a library playlist 1411 | description: Fetch a specific playlist from the user's Apple Music library. 1412 | security: 1413 | - BearerAuth: [] 1414 | - MusicUserAuth: [] 1415 | parameters: 1416 | - $ref: "#/components/parameters/PlaylistId" 1417 | - $ref: "#/components/parameters/Language" 1418 | - $ref: "#/components/parameters/Offset" 1419 | - $ref: "#/components/parameters/Include" 1420 | responses: 1421 | "200": 1422 | description: Library playlist retrieved successfully 1423 | content: 1424 | application/json: 1425 | schema: 1426 | $ref: "#/components/schemas/LibraryPlaylistsResponse" 1427 | "default": { $ref: "#/components/responses/Error" } 1428 | 1429 | /me/library/playlists/{playlist_id}/tracks: 1430 | get: 1431 | tags: [Library] 1432 | summary: Get tracks from a library playlist 1433 | description: Fetch tracks associated with a specific playlist from the user's Apple Music library. 1434 | security: 1435 | - BearerAuth: [] 1436 | - MusicUserAuth: [] 1437 | parameters: 1438 | - $ref: "#/components/parameters/PlaylistId" 1439 | - $ref: "#/components/parameters/Language" 1440 | - $ref: "#/components/parameters/Limit" 1441 | - $ref: "#/components/parameters/Offset" 1442 | - $ref: "#/components/parameters/Include" 1443 | - $ref: "#/components/parameters/Extend" 1444 | responses: 1445 | "200": 1446 | description: Playlist tracks retrieved successfully 1447 | content: 1448 | application/json: 1449 | schema: 1450 | $ref: "#/components/schemas/LibrarySongsResponse" 1451 | "default": { $ref: "#/components/responses/Error" } 1452 | 1453 | /me/recommendations: 1454 | get: 1455 | tags: [Recommendations] 1456 | summary: Get user recommendations 1457 | description: Fetch personalized recommendations for the user. 1458 | security: 1459 | - BearerAuth: [] 1460 | - MusicUserAuth: [] 1461 | parameters: 1462 | - $ref: "#/components/parameters/Language" 1463 | - $ref: "#/components/parameters/Include" 1464 | - $ref: "#/components/parameters/Extend" 1465 | responses: 1466 | "200": { $ref: "#/components/responses/RecommendationsResponse" } 1467 | "default": { $ref: "#/components/responses/Error" } 1468 | 1469 | /me/recommendations/{recommendation_id}: 1470 | get: 1471 | tags: [Recommendations] 1472 | summary: Get a specific recommendation 1473 | description: Fetch detailed information about a specific recommendation. 1474 | security: 1475 | - BearerAuth: [] 1476 | - MusicUserAuth: [] 1477 | parameters: 1478 | - $ref: "#/components/parameters/RecommendationId" 1479 | - $ref: "#/components/parameters/Language" 1480 | - $ref: "#/components/parameters/Include" 1481 | - $ref: "#/components/parameters/Extend" 1482 | responses: 1483 | "200": { $ref: "#/components/responses/RecommendationResponse" } 1484 | "default": { $ref: "#/components/responses/Error" } 1485 | 1486 | /me/recommendations/{recommendation_id}/contents: 1487 | get: 1488 | tags: [Recommendations] 1489 | summary: Get contents of a specific recommendation 1490 | description: Fetch the contents of a specific recommendation. 1491 | security: 1492 | - BearerAuth: [] 1493 | - MusicUserAuth: [] 1494 | parameters: 1495 | - $ref: "#/components/parameters/RecommendationId" 1496 | - $ref: "#/components/parameters/Language" 1497 | - $ref: "#/components/parameters/Include" 1498 | - $ref: "#/components/parameters/Extend" 1499 | responses: 1500 | "200": { $ref: "#/components/responses/RecommendationContentsResponse" } 1501 | "default": { $ref: "#/components/responses/Error" } 1502 | 1503 | /ping: 1504 | get: 1505 | tags: [System] 1506 | summary: Ping the Apple Music API 1507 | description: Simple health check endpoint to validate token and API availability. 1508 | security: 1509 | - BearerAuth: [] 1510 | - MusicUserAuth: [] 1511 | responses: 1512 | "200": { $ref: "#/components/responses/Success" } 1513 | "401": { $ref: "#/components/responses/Unauthorized" } 1514 | 1515 | components: 1516 | securitySchemes: 1517 | BearerAuth: 1518 | type: http 1519 | scheme: bearer 1520 | description: Developer token for accessing the Apple Music API. 1521 | MusicUserAuth: 1522 | type: apiKey 1523 | name: Music-User-Token 1524 | in: header 1525 | description: User token for accessing user-specific data. 1526 | 1527 | responses: 1528 | Success: 1529 | description: The request was successful. 1530 | content: 1531 | application/json: 1532 | schema: 1533 | type: object 1534 | properties: 1535 | status: 1536 | type: string 1537 | example: "success" 1538 | 1539 | Unauthorized: 1540 | description: The request lacks valid authentication credentials. 1541 | content: 1542 | application/json: 1543 | schema: 1544 | type: object 1545 | properties: 1546 | error: 1547 | type: string 1548 | example: "Unauthorized" 1549 | message: 1550 | type: string 1551 | example: "Invalid or missing authentication token" 1552 | 1553 | Error: 1554 | description: An error occurred while processing the request. 1555 | content: 1556 | application/json: 1557 | schema: 1558 | $ref: "#/components/schemas/ErrorResponse" 1559 | 1560 | SearchResponse: 1561 | description: Search results retrieved successfully. 1562 | content: 1563 | application/json: 1564 | schema: 1565 | $ref: "#/components/schemas/SearchResponse" 1566 | 1567 | SearchHintsResponse: 1568 | description: Search hints retrieved successfully. 1569 | content: 1570 | application/json: 1571 | schema: 1572 | $ref: "#/components/schemas/SearchHintsResponse" 1573 | 1574 | LibrarySearchResponse: 1575 | description: Library search results retrieved successfully. 1576 | content: 1577 | application/json: 1578 | schema: 1579 | $ref: "#/components/schemas/LibrarySearchResponse" 1580 | 1581 | LibraryAlbumsResponse: 1582 | description: Library albums retrieved successfully. 1583 | content: 1584 | application/json: 1585 | schema: 1586 | $ref: "#/components/schemas/LibraryAlbumsResponse" 1587 | 1588 | LibrarySongsResponse: 1589 | description: Library songs retrieved successfully. 1590 | content: 1591 | application/json: 1592 | schema: 1593 | $ref: "#/components/schemas/LibrarySongsResponse" 1594 | 1595 | LibraryPlaylistsResponse: 1596 | description: Library playlists retrieved successfully. 1597 | content: 1598 | application/json: 1599 | schema: 1600 | $ref: "#/components/schemas/LibraryPlaylistsResponse" 1601 | 1602 | LibraryPlaylistTracksResponse: 1603 | description: Library playlist tracks retrieved successfully. 1604 | content: 1605 | application/json: 1606 | schema: 1607 | $ref: "#/components/schemas/LibraryPlaylistTracksResponse" 1608 | 1609 | RecommendationsResponse: 1610 | description: Recommendations retrieved successfully. 1611 | content: 1612 | application/json: 1613 | schema: 1614 | $ref: "#/components/schemas/RecommendationResponse" 1615 | 1616 | RecommendationResponse: 1617 | description: Recommendation retrieved successfully. 1618 | content: 1619 | application/json: 1620 | schema: 1621 | $ref: "#/components/schemas/RecommendationResponse" 1622 | 1623 | RecommendationContentsResponse: 1624 | description: Recommendation contents retrieved successfully. 1625 | content: 1626 | application/json: 1627 | schema: 1628 | $ref: "#/components/schemas/RecommendationResponse" 1629 | 1630 | CatalogPlaylistResponse: 1631 | description: Catalog playlist retrieved successfully. 1632 | content: 1633 | application/json: 1634 | schema: 1635 | $ref: "#/components/schemas/PlaylistRelationship" 1636 | 1637 | parameters: 1638 | Language: 1639 | name: l 1640 | in: query 1641 | description: The localization to use, specified by a language tag (e.g., "en-US"). 1642 | required: false 1643 | schema: 1644 | type: string 1645 | example: "en-US" 1646 | 1647 | Limit: 1648 | name: limit 1649 | in: query 1650 | description: The number of items to return (1-100). 1651 | schema: 1652 | type: integer 1653 | default: 25 1654 | minimum: 1 1655 | maximum: 100 1656 | example: 10 1657 | 1658 | Offset: 1659 | name: offset 1660 | in: query 1661 | description: The index of the first item to return. 1662 | schema: 1663 | type: integer 1664 | default: 0 1665 | minimum: 0 1666 | example: 0 1667 | 1668 | Include: 1669 | name: include 1670 | in: query 1671 | description: Additional relationships to include in the fetch. 1672 | schema: 1673 | type: array 1674 | items: 1675 | type: string 1676 | enum: 1677 | - songs 1678 | - stations 1679 | - music-videos 1680 | - artists 1681 | - tracks 1682 | - albums 1683 | - curator 1684 | - playlists 1685 | - catalog 1686 | style: form 1687 | explode: false 1688 | example: ["artists", "albums"] 1689 | 1690 | Extend: 1691 | name: extend 1692 | in: query 1693 | description: A list of attribute extensions to apply to resources in the response. 1694 | schema: 1695 | type: array 1696 | items: 1697 | type: string 1698 | enum: 1699 | - artistURL 1700 | - audioVariants 1701 | - curator 1702 | - radioShow 1703 | style: form 1704 | explode: false 1705 | example: ["artistURL"] 1706 | 1707 | With: 1708 | name: with 1709 | in: query 1710 | description: With following View Attributes 1711 | schema: 1712 | type: array 1713 | items: 1714 | type: string 1715 | enum: 1716 | - attributes 1717 | style: form 1718 | explode: false 1719 | 1720 | Storefront: 1721 | name: storefront 1722 | in: path 1723 | required: true 1724 | description: The storefront identifier (e.g., "us" for United States). 1725 | schema: 1726 | type: string 1727 | example: "us" 1728 | 1729 | PlaylistId: 1730 | name: playlist_id 1731 | in: path 1732 | required: true 1733 | description: The identifier of the playlist. 1734 | schema: 1735 | type: string 1736 | example: "pl.1234567890" 1737 | 1738 | RecommendationId: 1739 | name: recommendation_id 1740 | in: path 1741 | required: true 1742 | description: The identifier of the recommendation. 1743 | schema: 1744 | type: string 1745 | example: "6-27s5hU6azhJY" 1746 | 1747 | schemas: 1748 | SearchHintsResponse: 1749 | type: object 1750 | properties: 1751 | results: 1752 | type: object 1753 | properties: 1754 | terms: 1755 | type: array 1756 | items: 1757 | type: string 1758 | description: A list of suggested search terms 1759 | example: ["Kiesza", "Kiesza Hideaway", "Kiesza Sound of a Woman"] 1760 | 1761 | LibrarySearchResponse: 1762 | type: object 1763 | properties: 1764 | results: 1765 | type: object 1766 | properties: 1767 | library-artists: 1768 | $ref: "#/components/schemas/ArtistRelationship" 1769 | library-albums: 1770 | $ref: "#/components/schemas/AlbumRelationship" 1771 | library-playlists: 1772 | $ref: "#/components/schemas/PlaylistRelationship" 1773 | library-music-videos: 1774 | $ref: "#/components/schemas/AlbumRelationship" 1775 | library-songs: 1776 | $ref: "#/components/schemas/SongRelationship" 1777 | 1778 | LibraryAlbumsResponse: 1779 | type: object 1780 | required: 1781 | - data 1782 | - meta 1783 | properties: 1784 | next: 1785 | type: string 1786 | nullable: true 1787 | description: URL to the next page of results. 1788 | example: "https://api.music.apple.com/v1/me/library/albums?offset=25&limit=25" 1789 | data: 1790 | type: array 1791 | items: 1792 | $ref: "#/components/schemas/LibraryAlbum" 1793 | meta: 1794 | $ref: "#/components/schemas/Meta" 1795 | 1796 | LibrarySongsResponse: 1797 | type: object 1798 | required: 1799 | - data 1800 | - meta 1801 | properties: 1802 | next: 1803 | type: string 1804 | nullable: true 1805 | description: URL to the next page of results. 1806 | example: "https://api.music.apple.com/v1/me/library/songs?offset=25&limit=25" 1807 | data: 1808 | type: array 1809 | items: 1810 | $ref: "#/components/schemas/LibrarySong" 1811 | meta: 1812 | $ref: "#/components/schemas/Meta" 1813 | 1814 | LibraryPlaylistsResponse: 1815 | type: object 1816 | required: 1817 | - data 1818 | - meta 1819 | properties: 1820 | next: 1821 | type: string 1822 | nullable: true 1823 | description: URL to the next page of results. 1824 | example: "https://api.music.apple.com/v1/me/library/playlists?offset=25&limit=25" 1825 | data: 1826 | type: array 1827 | items: 1828 | $ref: "#/components/schemas/LibraryPlaylist" 1829 | meta: 1830 | $ref: "#/components/schemas/Meta" 1831 | 1832 | LibraryPlaylistTracksResponse: 1833 | type: object 1834 | required: 1835 | - data 1836 | - meta 1837 | properties: 1838 | next: 1839 | type: string 1840 | description: URL to the next page of results. 1841 | example: "https://api.music.apple.com/v1/me/library/playlists/pl.1234567890/tracks?offset=25&limit=25" 1842 | data: 1843 | type: array 1844 | items: 1845 | $ref: "#/components/schemas/LibrarySong" 1846 | meta: 1847 | $ref: "#/components/schemas/Meta" 1848 | 1849 | ContentRating: 1850 | type: string 1851 | enum: 1852 | - explicit 1853 | - clean 1854 | example: "explicit" 1855 | 1856 | CatalogSearchType: 1857 | type: string 1858 | enum: 1859 | - activities 1860 | - albums 1861 | - apple-curators 1862 | - artists 1863 | - curators 1864 | - music-videos 1865 | - playlists 1866 | - record-labels 1867 | - songs 1868 | - stations 1869 | example: "songs" 1870 | 1871 | LibrarySearchType: 1872 | type: string 1873 | enum: 1874 | - library-albums 1875 | - library-artists 1876 | - library-music-videos 1877 | - library-playlists 1878 | - library-songs 1879 | example: "library-songs" 1880 | 1881 | Artwork: 1882 | type: object 1883 | required: 1884 | - url 1885 | properties: 1886 | width: 1887 | type: integer 1888 | example: 4320 1889 | height: 1890 | type: integer 1891 | example: 1080 1892 | url: 1893 | type: string 1894 | format: uri 1895 | example: "https://is1-ssl.mzstatic.com/image/thumb/Features116/v4/.../{w}x{h}cc.jpg" 1896 | bgColor: 1897 | type: string 1898 | example: "b04e1d" 1899 | textColor1: 1900 | type: string 1901 | example: "000000" 1902 | textColor2: 1903 | type: string 1904 | example: "12110e" 1905 | textColor3: 1906 | type: string 1907 | example: "2a1a0e" 1908 | textColor4: 1909 | type: string 1910 | example: "2a1b11" 1911 | 1912 | PlayParams: 1913 | type: object 1914 | properties: 1915 | id: 1916 | type: string 1917 | example: "1440812311" 1918 | kind: 1919 | type: string 1920 | example: "song" 1921 | isLibrary: 1922 | type: boolean 1923 | example: false 1924 | globalId: 1925 | type: string 1926 | nullable: true 1927 | example: "1440812311" 1928 | versionHash: 1929 | type: string 1930 | nullable: true 1931 | example: "abc123" 1932 | reporting: 1933 | type: boolean 1934 | example: true 1935 | catalogId: 1936 | type: string 1937 | example: "1440812311" 1938 | reportingId: 1939 | type: string 1940 | example: "1440812311" 1941 | 1942 | Meta: 1943 | type: object 1944 | required: 1945 | - total 1946 | properties: 1947 | total: 1948 | type: integer 1949 | description: Total number of items available. 1950 | example: 100 1951 | 1952 | SearchResponse: 1953 | type: object 1954 | required: 1955 | - results 1956 | properties: 1957 | results: 1958 | type: object 1959 | properties: 1960 | topResults: 1961 | type: object 1962 | required: 1963 | - data 1964 | properties: 1965 | data: 1966 | type: array 1967 | items: 1968 | oneOf: 1969 | - $ref: "#/components/schemas/Song" 1970 | - $ref: "#/components/schemas/Album" 1971 | - $ref: "#/components/schemas/Artist" 1972 | - $ref: "#/components/schemas/Playlist" 1973 | - $ref: "#/components/schemas/Curator" 1974 | - $ref: "#/components/schemas/MusicVideo" 1975 | songs: 1976 | $ref: "#/components/schemas/SongRelationship" 1977 | albums: 1978 | $ref: "#/components/schemas/AlbumRelationship" 1979 | artists: 1980 | $ref: "#/components/schemas/ArtistRelationship" 1981 | playlists: 1982 | $ref: "#/components/schemas/PlaylistRelationship" 1983 | curators: 1984 | $ref: "#/components/schemas/CuratorRelationship" 1985 | meta: 1986 | type: object 1987 | properties: 1988 | results: 1989 | type: object 1990 | required: 1991 | - order 1992 | - rawOrder 1993 | properties: 1994 | order: 1995 | type: array 1996 | items: 1997 | type: string 1998 | example: ["songs", "albums", "artists"] 1999 | rawOrder: 2000 | type: array 2001 | items: 2002 | type: string 2003 | example: ["songs", "albums", "artists"] 2004 | 2005 | SongType: 2006 | type: string 2007 | enum: 2008 | - songs 2009 | - library-songs 2010 | - music-videos 2011 | example: "songs" 2012 | 2013 | Song: 2014 | type: object 2015 | required: 2016 | - id 2017 | - type 2018 | - href 2019 | - attributes 2020 | properties: 2021 | id: 2022 | type: string 2023 | example: "1440812311" 2024 | type: 2025 | $ref: "#/components/schemas/SongType" 2026 | href: 2027 | type: string 2028 | example: "/v1/catalog/us/songs/1440812311" 2029 | attributes: 2030 | $ref: "#/components/schemas/SongAttributes" 2031 | relationships: 2032 | type: object 2033 | properties: 2034 | albums: 2035 | $ref: "#/components/schemas/AlbumRelationship" 2036 | artists: 2037 | $ref: "#/components/schemas/ArtistRelationship" 2038 | 2039 | SongAttributes: 2040 | type: object 2041 | required: 2042 | - albumName 2043 | - genreNames 2044 | - trackNumber 2045 | - durationInMillis 2046 | - isrc 2047 | - artwork 2048 | - playParams 2049 | - url 2050 | - discNumber 2051 | - hasLyrics 2052 | - isAppleDigitalMaster 2053 | - name 2054 | - previews 2055 | - artistName 2056 | properties: 2057 | albumName: 2058 | type: string 2059 | example: "Emotional Creature" 2060 | genreNames: 2061 | type: array 2062 | items: 2063 | type: string 2064 | example: ["Alternative", "Music"] 2065 | trackNumber: 2066 | type: integer 2067 | example: 1 2068 | durationInMillis: 2069 | type: integer 2070 | example: 221000 2071 | releaseDate: 2072 | type: string 2073 | format: date 2074 | example: "2022-06-09" 2075 | isrc: 2076 | type: string 2077 | example: "USQE92100257" 2078 | artwork: 2079 | $ref: "#/components/schemas/Artwork" 2080 | composerName: 2081 | type: string 2082 | example: "Anthony Vaccaro, Jon Alvarado, Lili Trifilio & Matt Henkels" 2083 | playParams: 2084 | type: object 2085 | required: 2086 | - id 2087 | - kind 2088 | properties: 2089 | id: 2090 | type: string 2091 | example: "1613600188" 2092 | kind: 2093 | type: string 2094 | example: "song" 2095 | url: 2096 | type: string 2097 | example: "https://music.apple.com/us/album/entropy/1613600183?i=1613600188" 2098 | discNumber: 2099 | type: integer 2100 | example: 1 2101 | hasLyrics: 2102 | type: boolean 2103 | example: true 2104 | isAppleDigitalMaster: 2105 | type: boolean 2106 | example: true 2107 | name: 2108 | type: string 2109 | example: "Entropy" 2110 | previews: 2111 | type: array 2112 | items: 2113 | type: object 2114 | required: 2115 | - url 2116 | properties: 2117 | url: 2118 | type: string 2119 | example: "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview122/v4/72/a3/ab/72a3ab79-0066-f773-6618-7a53adc250b3/mzaf_17921540907592750976.plus.aac.p.m4a" 2120 | artistName: 2121 | type: string 2122 | example: "Beach Bunny" 2123 | 2124 | SongRelationship: 2125 | type: object 2126 | required: 2127 | - data 2128 | properties: 2129 | data: 2130 | type: array 2131 | items: 2132 | oneOf: 2133 | - $ref: "#/components/schemas/Song" 2134 | - $ref: "#/components/schemas/MusicVideo" 2135 | 2136 | meta: 2137 | $ref: "#/components/schemas/Meta" 2138 | href: 2139 | type: string 2140 | example: "/v1/catalog/us/songs/1440812311" 2141 | 2142 | MusicVideo: 2143 | type: object 2144 | required: 2145 | - id 2146 | - type 2147 | - href 2148 | - attributes 2149 | properties: 2150 | id: 2151 | type: string 2152 | example: "1440812311" 2153 | type: 2154 | $ref: "#/components/schemas/SongType" 2155 | href: 2156 | type: string 2157 | example: "/v1/catalog/us/songs/1440812311" 2158 | attributes: 2159 | $ref: "#/components/schemas/MusicVideoAttributes" 2160 | relationships: 2161 | type: object 2162 | properties: 2163 | albums: 2164 | $ref: "#/components/schemas/AlbumRelationship" 2165 | artists: 2166 | $ref: "#/components/schemas/ArtistRelationship" 2167 | 2168 | MusicVideoAttributes: 2169 | type: object 2170 | required: 2171 | - previews 2172 | - artwork 2173 | - artistName 2174 | - url 2175 | - genreNames 2176 | - name 2177 | - isrc 2178 | properties: 2179 | previews: 2180 | type: array 2181 | items: 2182 | type: object 2183 | required: 2184 | - url 2185 | - artwork 2186 | properties: 2187 | url: 2188 | type: string 2189 | example: "https://video-ssl.itunes.apple.com/itunes-assets/Video114/v4/c8/14/3c/c8143cb4-e58a-8075-44b0-602f43d7646f/mzvf_2953199973497507158.720w.h264lc.U.p.m4v" 2190 | hlsUrl: 2191 | type: string 2192 | example: "https://play.itunes.apple.com/WebObjects/MZPlay.woa/hls/playlist.m3u8?cc=US&a=1553279848&id=231169237&l=en&aec=HD" 2193 | artwork: 2194 | $ref: "#/components/schemas/Artwork" 2195 | artwork: 2196 | $ref: "#/components/schemas/Artwork" 2197 | artistName: 2198 | type: string 2199 | example: "Dua Lipa" 2200 | url: 2201 | type: string 2202 | example: "https://music.apple.com/us/music-video/were-good/1553279848" 2203 | genreNames: 2204 | type: array 2205 | items: 2206 | type: string 2207 | example: ["Pop"] 2208 | has4K: 2209 | type: boolean 2210 | example: false 2211 | durationInMillis: 2212 | type: integer 2213 | example: 191913 2214 | releaseDate: 2215 | type: string 2216 | format: date 2217 | example: "2021-02-12" 2218 | name: 2219 | type: string 2220 | example: "We’re Good" 2221 | isrc: 2222 | type: string 2223 | example: "GB1302001140" 2224 | playParams: 2225 | type: object 2226 | required: 2227 | - id 2228 | - kind 2229 | properties: 2230 | id: 2231 | type: string 2232 | example: "1553279848" 2233 | kind: 2234 | type: string 2235 | example: "musicVideo" 2236 | hasHDR: 2237 | type: boolean 2238 | example: false 2239 | 2240 | LibrarySong: 2241 | type: object 2242 | required: 2243 | - id 2244 | - type 2245 | - href 2246 | - attributes 2247 | properties: 2248 | id: 2249 | type: string 2250 | example: "l.1440812311" 2251 | type: 2252 | $ref: "#/components/schemas/SongType" 2253 | href: 2254 | type: string 2255 | example: "/v1/me/library/songs/l.1440812311" 2256 | attributes: 2257 | $ref: "#/components/schemas/LibrarySongAttributes" 2258 | relationships: 2259 | type: object 2260 | properties: 2261 | albums: 2262 | $ref: "#/components/schemas/LibraryAlbumRelationship" 2263 | artists: 2264 | $ref: "#/components/schemas/LibraryArtistRelationship" 2265 | 2266 | LibrarySongAttributes: 2267 | type: object 2268 | required: 2269 | - albumName 2270 | - discNumber 2271 | - genreNames 2272 | - trackNumber 2273 | - hasLyrics 2274 | - releaseDate 2275 | - durationInMillis 2276 | - name 2277 | - artistName 2278 | - artwork 2279 | properties: 2280 | albumName: 2281 | type: string 2282 | example: "Un Verano Sin Ti" 2283 | discNumber: 2284 | type: integer 2285 | example: 1 2286 | genreNames: 2287 | type: array 2288 | items: 2289 | type: string 2290 | example: ["Latin"] 2291 | trackNumber: 2292 | type: integer 2293 | example: 10 2294 | hasLyrics: 2295 | type: boolean 2296 | example: true 2297 | releaseDate: 2298 | type: string 2299 | format: date 2300 | example: "2022-05-06" 2301 | durationInMillis: 2302 | type: integer 2303 | example: 213061 2304 | name: 2305 | type: string 2306 | example: "Efecto" 2307 | artistName: 2308 | type: string 2309 | example: "Bad Bunny" 2310 | artwork: 2311 | $ref: "#/components/schemas/Artwork" 2312 | playParams: 2313 | type: object 2314 | required: 2315 | - id 2316 | - kind 2317 | - isLibrary 2318 | - reporting 2319 | - catalogId 2320 | - reportingId 2321 | properties: 2322 | id: 2323 | type: string 2324 | example: "i.PkdJNdAIrQozOW" 2325 | kind: 2326 | type: string 2327 | example: "song" 2328 | isLibrary: 2329 | type: boolean 2330 | example: true 2331 | reporting: 2332 | type: boolean 2333 | example: true 2334 | catalogId: 2335 | type: string 2336 | example: "1622045954" 2337 | reportingId: 2338 | type: string 2339 | example: "1622045954" 2340 | 2341 | LibrarySongRelationship: 2342 | type: object 2343 | required: 2344 | - data 2345 | properties: 2346 | data: 2347 | type: array 2348 | items: 2349 | $ref: "#/components/schemas/LibrarySong" 2350 | meta: 2351 | $ref: "#/components/schemas/Meta" 2352 | href: 2353 | type: string 2354 | example: "/v1/me/library/songs/l.1440812311" 2355 | 2356 | AlbumType: 2357 | type: string 2358 | enum: [albums, library-albums] 2359 | example: "albums" 2360 | 2361 | Album: 2362 | type: object 2363 | required: 2364 | - id 2365 | - href 2366 | - type 2367 | properties: 2368 | id: 2369 | type: string 2370 | example: "1440812310" 2371 | type: 2372 | $ref: "#/components/schemas/AlbumType" 2373 | href: 2374 | type: string 2375 | example: "/v1/catalog/us/albums/1440812310" 2376 | attributes: 2377 | $ref: "#/components/schemas/AlbumAttributes" 2378 | relationships: 2379 | type: object 2380 | properties: 2381 | artists: 2382 | $ref: "#/components/schemas/ArtistRelationship" 2383 | tracks: 2384 | $ref: "#/components/schemas/SongRelationship" 2385 | 2386 | AlbumAttributes: 2387 | type: object 2388 | required: 2389 | - name 2390 | - genreNames 2391 | - trackCount 2392 | properties: 2393 | name: 2394 | type: string 2395 | example: "Sound of a Woman" 2396 | artistName: 2397 | type: string 2398 | example: "Kiesza" 2399 | genreNames: 2400 | type: array 2401 | items: 2402 | type: string 2403 | example: ["Electronic", "Musik"] 2404 | releaseDate: 2405 | type: string 2406 | format: date 2407 | example: "2014-01-01" 2408 | dateAdded: 2409 | type: string 2410 | format: date-time 2411 | example: "2023-05-15T07:41:02Z" 2412 | trackCount: 2413 | type: integer 2414 | example: 12 2415 | artwork: 2416 | $ref: "#/components/schemas/Artwork" 2417 | playParams: 2418 | $ref: "#/components/schemas/PlayParams" 2419 | 2420 | AlbumRelationship: 2421 | type: object 2422 | required: 2423 | - data 2424 | properties: 2425 | data: 2426 | type: array 2427 | items: 2428 | $ref: "#/components/schemas/Album" 2429 | meta: 2430 | $ref: "#/components/schemas/Meta" 2431 | href: 2432 | type: string 2433 | example: "/v1/catalog/us/albums/1440812310" 2434 | 2435 | LibraryAlbum: 2436 | type: object 2437 | required: 2438 | - id 2439 | - href 2440 | - type 2441 | properties: 2442 | id: 2443 | type: string 2444 | example: "l.1440812310" 2445 | type: 2446 | $ref: "#/components/schemas/AlbumType" 2447 | href: 2448 | type: string 2449 | example: "/v1/me/library/albums/l.1440812310" 2450 | attributes: 2451 | $ref: "#/components/schemas/LibraryAlbumAttributes" 2452 | relationships: 2453 | type: object 2454 | properties: 2455 | artists: 2456 | $ref: "#/components/schemas/LibraryArtistRelationship" 2457 | tracks: 2458 | $ref: "#/components/schemas/LibrarySongRelationship" 2459 | 2460 | LibraryAlbumAttributes: 2461 | type: object 2462 | required: 2463 | - name 2464 | - genreNames 2465 | - trackCount 2466 | properties: 2467 | name: 2468 | type: string 2469 | example: "Sound of a Woman" 2470 | artistName: 2471 | type: string 2472 | example: "Kiesza" 2473 | genreNames: 2474 | type: array 2475 | items: 2476 | type: string 2477 | example: ["Electronic", "Musik"] 2478 | releaseDate: 2479 | type: string 2480 | format: date 2481 | example: "2014-01-01" 2482 | dateAdded: 2483 | type: string 2484 | format: date-time 2485 | example: "2023-05-15T07:41:02Z" 2486 | trackCount: 2487 | type: integer 2488 | example: 12 2489 | artwork: 2490 | $ref: "#/components/schemas/Artwork" 2491 | playParams: 2492 | $ref: "#/components/schemas/PlayParams" 2493 | 2494 | LibraryAlbumRelationship: 2495 | type: object 2496 | required: 2497 | - data 2498 | properties: 2499 | data: 2500 | type: array 2501 | items: 2502 | $ref: "#/components/schemas/LibraryAlbum" 2503 | meta: 2504 | $ref: "#/components/schemas/Meta" 2505 | href: 2506 | type: string 2507 | example: "/v1/me/library/albums/l.1440812310" 2508 | 2509 | ArtistType: 2510 | type: string 2511 | enum: [artists, library-artists] 2512 | example: "artists" 2513 | 2514 | Artist: 2515 | type: object 2516 | required: 2517 | - id 2518 | - href 2519 | - type 2520 | properties: 2521 | id: 2522 | type: string 2523 | example: "329523476" 2524 | type: 2525 | $ref: "#/components/schemas/ArtistType" 2526 | href: 2527 | type: string 2528 | example: "/v1/catalog/us/artists/329523476" 2529 | attributes: 2530 | $ref: "#/components/schemas/ArtistAttributes" 2531 | 2532 | ArtistAttributes: 2533 | type: object 2534 | required: 2535 | - name 2536 | properties: 2537 | name: 2538 | type: string 2539 | example: "Kiesza" 2540 | artwork: 2541 | $ref: "#/components/schemas/Artwork" 2542 | url: 2543 | type: string 2544 | format: uri 2545 | example: "https://music.apple.com/us/artist/kiesza/329523476" 2546 | 2547 | ArtistRelationship: 2548 | type: object 2549 | required: 2550 | - data 2551 | properties: 2552 | data: 2553 | type: array 2554 | items: 2555 | $ref: "#/components/schemas/Artist" 2556 | meta: 2557 | $ref: "#/components/schemas/Meta" 2558 | href: 2559 | type: string 2560 | example: "/v1/catalog/us/artists/329523476" 2561 | 2562 | LibraryArtist: 2563 | type: object 2564 | required: 2565 | - id 2566 | - href 2567 | - type 2568 | properties: 2569 | id: 2570 | type: string 2571 | example: "l.329523476" 2572 | type: 2573 | $ref: "#/components/schemas/ArtistType" 2574 | href: 2575 | type: string 2576 | example: "/v1/me/library/artists/l.329523476" 2577 | attributes: 2578 | $ref: "#/components/schemas/LibraryArtistAttributes" 2579 | 2580 | LibraryArtistAttributes: 2581 | type: object 2582 | required: 2583 | - name 2584 | properties: 2585 | name: 2586 | type: string 2587 | example: "Kiesza" 2588 | artwork: 2589 | $ref: "#/components/schemas/Artwork" 2590 | url: 2591 | type: string 2592 | format: uri 2593 | example: "https://music.apple.com/us/artist/kiesza/329523476" 2594 | 2595 | LibraryArtistRelationship: 2596 | type: object 2597 | required: 2598 | - data 2599 | properties: 2600 | data: 2601 | type: array 2602 | items: 2603 | $ref: "#/components/schemas/LibraryArtist" 2604 | meta: 2605 | $ref: "#/components/schemas/Meta" 2606 | href: 2607 | type: string 2608 | example: "/v1/me/library/artists/l.329523476" 2609 | 2610 | Curator: 2611 | type: object 2612 | required: 2613 | - id 2614 | - type 2615 | properties: 2616 | id: 2617 | type: string 2618 | example: "976439552" 2619 | type: 2620 | type: string 2621 | enum: 2622 | - social-profiles 2623 | example: "social-profiles" 2624 | attributes: 2625 | $ref: "#/components/schemas/CuratorAttributes" 2626 | 2627 | CuratorAttributes: 2628 | type: object 2629 | required: 2630 | - name 2631 | properties: 2632 | name: 2633 | type: string 2634 | example: "Apple Music" 2635 | artwork: 2636 | $ref: "#/components/schemas/Artwork" 2637 | url: 2638 | type: string 2639 | format: uri 2640 | example: "https://music.apple.com/us/curator/apple-music/976439552" 2641 | 2642 | CuratorRelationship: 2643 | type: object 2644 | required: 2645 | - data 2646 | properties: 2647 | data: 2648 | type: array 2649 | items: 2650 | $ref: "#/components/schemas/Curator" 2651 | meta: 2652 | $ref: "#/components/schemas/Meta" 2653 | href: 2654 | type: string 2655 | example: "/v1/catalog/us/curators/976439552" 2656 | 2657 | PlaylistType: 2658 | type: string 2659 | enum: 2660 | - playlists 2661 | - library-playlists 2662 | - personal-mix 2663 | - editorial 2664 | example: "playlists" 2665 | 2666 | Playlist: 2667 | type: object 2668 | required: 2669 | - id 2670 | - type 2671 | - href 2672 | properties: 2673 | id: 2674 | type: string 2675 | example: "pl.1234567890" 2676 | type: 2677 | $ref: "#/components/schemas/PlaylistType" 2678 | href: 2679 | type: string 2680 | example: "/v1/catalog/us/playlists/pl.1234567890" 2681 | attributes: 2682 | $ref: "#/components/schemas/PlaylistAttributes" 2683 | relationships: 2684 | type: object 2685 | properties: 2686 | tracks: 2687 | $ref: "#/components/schemas/SongRelationship" 2688 | 2689 | PlaylistAttributes: 2690 | type: object 2691 | required: 2692 | - name 2693 | - lastModifiedDate 2694 | - playParams 2695 | properties: 2696 | canEdit: 2697 | type: boolean 2698 | example: false 2699 | isPublic: 2700 | type: boolean 2701 | example: true 2702 | hasCatalog: 2703 | type: boolean 2704 | example: true 2705 | dateAdded: 2706 | type: string 2707 | format: date-time 2708 | example: "2023-05-15T07:41:02Z" 2709 | curatorName: 2710 | type: string 2711 | example: "Apple Music für Dennis" 2712 | lastModifiedDate: 2713 | type: string 2714 | format: date-time 2715 | example: "2025-05-15T07:41:02Z" 2716 | name: 2717 | type: string 2718 | example: "Heavy Rotation-Mix" 2719 | isChart: 2720 | type: boolean 2721 | example: false 2722 | playlistType: 2723 | type: string 2724 | example: "personal-mix" 2725 | description: 2726 | type: object 2727 | properties: 2728 | standard: 2729 | type: string 2730 | example: "Die Songs, die du in Dauerschleife hörst. Alle in einer Playlist." 2731 | artwork: 2732 | $ref: "#/components/schemas/Artwork" 2733 | url: 2734 | type: string 2735 | format: uri 2736 | example: "https://music.apple.com/us/playlist/heavy-rotation-mix/pl.1234567890" 2737 | playParams: 2738 | $ref: "#/components/schemas/PlayParams" 2739 | 2740 | PlaylistRelationship: 2741 | type: object 2742 | required: 2743 | - data 2744 | properties: 2745 | data: 2746 | type: array 2747 | items: 2748 | $ref: "#/components/schemas/Playlist" 2749 | meta: 2750 | $ref: "#/components/schemas/Meta" 2751 | href: 2752 | type: string 2753 | example: "/v1/catalog/us/playlists/pl.1234567890" 2754 | 2755 | LibraryPlaylist: 2756 | type: object 2757 | required: 2758 | - id 2759 | - type 2760 | - href 2761 | properties: 2762 | id: 2763 | type: string 2764 | example: "p.1234567890" 2765 | type: 2766 | $ref: "#/components/schemas/PlaylistType" 2767 | href: 2768 | type: string 2769 | example: "/v1/me/library/playlists/p.1234567890" 2770 | attributes: 2771 | $ref: "#/components/schemas/LibraryPlaylistAttributes" 2772 | relationships: 2773 | type: object 2774 | properties: 2775 | tracks: 2776 | $ref: "#/components/schemas/LibrarySongRelationship" 2777 | 2778 | LibraryPlaylistAttributes: 2779 | type: object 2780 | required: 2781 | - name 2782 | - lastModifiedDate 2783 | - playParams 2784 | properties: 2785 | canEdit: 2786 | type: boolean 2787 | example: true 2788 | isPublic: 2789 | type: boolean 2790 | example: false 2791 | hasCatalog: 2792 | type: boolean 2793 | example: true 2794 | dateAdded: 2795 | type: string 2796 | format: date-time 2797 | example: "2023-05-15T07:41:02Z" 2798 | curatorName: 2799 | type: string 2800 | example: "Dennis Oberhoff" 2801 | lastModifiedDate: 2802 | type: string 2803 | format: date-time 2804 | example: "2025-05-15T07:41:02Z" 2805 | name: 2806 | type: string 2807 | example: "My Favorite Songs" 2808 | isChart: 2809 | type: boolean 2810 | example: false 2811 | playlistType: 2812 | type: string 2813 | example: "user" 2814 | description: 2815 | type: object 2816 | properties: 2817 | standard: 2818 | type: string 2819 | example: "My personal collection of favorite songs." 2820 | artwork: 2821 | $ref: "#/components/schemas/Artwork" 2822 | url: 2823 | type: string 2824 | format: uri 2825 | example: "https://music.apple.com/us/playlist/my-favorite-songs/p.1234567890" 2826 | playParams: 2827 | $ref: "#/components/schemas/PlayParams" 2828 | 2829 | LibraryPlaylistRelationship: 2830 | type: object 2831 | required: 2832 | - data 2833 | properties: 2834 | data: 2835 | type: array 2836 | items: 2837 | $ref: "#/components/schemas/Playlist" 2838 | meta: 2839 | $ref: "#/components/schemas/Meta" 2840 | href: 2841 | type: string 2842 | example: "/v1/me/library/playlists/p.1234567890" 2843 | 2844 | RecommendationRowType: 2845 | type: string 2846 | enum: [personal-recommendation, playlists] 2847 | example: "personal-recommendation" 2848 | 2849 | RecommendationType: 2850 | type: string 2851 | enum: [playlists, albums, stations] 2852 | example: "playlists" 2853 | 2854 | RecommendationResponse: 2855 | type: object 2856 | required: 2857 | - data 2858 | properties: 2859 | data: 2860 | type: array 2861 | items: 2862 | $ref: "#/components/schemas/RecommendationRow" 2863 | 2864 | RecommendationRow: 2865 | type: object 2866 | required: 2867 | - id 2868 | - type 2869 | - href 2870 | - attributes 2871 | - relationships 2872 | properties: 2873 | id: 2874 | type: string 2875 | example: "6-27s5hU6azhJY" 2876 | type: 2877 | $ref: "#/components/schemas/RecommendationRowType" 2878 | href: 2879 | type: string 2880 | format: uri 2881 | example: "/v1/me/recommendations/6-27s5hU6azhJY" 2882 | attributes: 2883 | $ref: "#/components/schemas/RecommendationRowAttributes" 2884 | relationships: 2885 | $ref: "#/components/schemas/RecommendationRowRelationship" 2886 | 2887 | Recommendation: 2888 | type: object 2889 | required: 2890 | - id 2891 | - type 2892 | - href 2893 | properties: 2894 | id: 2895 | type: string 2896 | example: "pl.1234567890" 2897 | type: 2898 | $ref: "#/components/schemas/RecommendationType" 2899 | href: 2900 | type: string 2901 | format: uri 2902 | example: "/v1/catalog/us/playlists/pl.1234567890" 2903 | attributes: 2904 | $ref: "#/components/schemas/RecommendationAttributes" 2905 | 2906 | Description: 2907 | type: object 2908 | properties: 2909 | standard: 2910 | type: string 2911 | example: "A collection of the best new music." 2912 | short: 2913 | type: string 2914 | example: "Best new music." 2915 | 2916 | RecommendationAttributes: 2917 | type: object 2918 | properties: 2919 | name: 2920 | type: string 2921 | example: "New Music Mix" 2922 | artistName: 2923 | type: string 2924 | example: "Various Artists" 2925 | curatorName: 2926 | type: string 2927 | example: "Apple Music" 2928 | lastModifiedDate: 2929 | type: string 2930 | format: date-time 2931 | example: "2025-05-15T07:41:02Z" 2932 | releaseDate: 2933 | type: string 2934 | format: date 2935 | example: "2025-05-15" 2936 | description: 2937 | $ref: "#/components/schemas/Description" 2938 | genreNames: 2939 | type: array 2940 | items: 2941 | type: string 2942 | example: ["Pop", "Rock"] 2943 | playlistType: 2944 | $ref: "#/components/schemas/PlaylistType" 2945 | artwork: 2946 | $ref: "#/components/schemas/Artwork" 2947 | playParams: 2948 | $ref: "#/components/schemas/PlayParams" 2949 | url: 2950 | type: string 2951 | format: uri 2952 | example: "https://music.apple.com/us/playlist/new-music-mix/pl.1234567890" 2953 | isChart: 2954 | type: boolean 2955 | example: false 2956 | isCompilation: 2957 | type: boolean 2958 | example: true 2959 | isMasteredForItunes: 2960 | type: boolean 2961 | example: true 2962 | isSingle: 2963 | type: boolean 2964 | example: false 2965 | isComplete: 2966 | type: boolean 2967 | example: true 2968 | trackCount: 2969 | type: integer 2970 | example: 20 2971 | recordLabel: 2972 | type: string 2973 | example: "Apple Music" 2974 | copyright: 2975 | type: string 2976 | example: "© 2025 Apple Music" 2977 | 2978 | RecommendationRowKind: 2979 | type: string 2980 | enum: 2981 | - recently-played 2982 | - music-recommendations 2983 | example: "music-recommendations" 2984 | 2985 | RecommendationRowAttributes: 2986 | type: object 2987 | required: 2988 | - isGroupRecommendation 2989 | - resourceTypes 2990 | - title 2991 | - kind 2992 | - nextUpdateDate 2993 | properties: 2994 | isGroupRecommendation: 2995 | type: boolean 2996 | example: true 2997 | resourceTypes: 2998 | type: array 2999 | items: 3000 | type: string 3001 | enum: 3002 | - albums 3003 | - playlists 3004 | - stations 3005 | example: ["playlists"] 3006 | title: 3007 | type: object 3008 | properties: 3009 | stringForDisplay: 3010 | type: string 3011 | example: "Recommended For You" 3012 | contentIds: 3013 | type: array 3014 | items: 3015 | type: string 3016 | example: ["pl.1234567890", "pl.0987654321"] 3017 | kind: 3018 | $ref: "#/components/schemas/RecommendationRowKind" 3019 | nextUpdateDate: 3020 | type: string 3021 | format: date-time 3022 | example: "2025-05-22T07:41:02Z" 3023 | 3024 | RecommendationRowRelationship: 3025 | required: 3026 | - contents 3027 | properties: 3028 | contents: 3029 | type: object 3030 | required: 3031 | - href 3032 | - data 3033 | properties: 3034 | href: 3035 | type: string 3036 | format: uri 3037 | example: "/v1/me/recommendations/6-27s5hU6azhJY/contents" 3038 | data: 3039 | type: array 3040 | items: 3041 | $ref: "#/components/schemas/Recommendation" 3042 | 3043 | ErrorResponse: 3044 | type: object 3045 | properties: 3046 | errors: 3047 | type: array 3048 | items: 3049 | type: object 3050 | properties: 3051 | id: 3052 | type: string 3053 | example: "123e4567-e89b-12d3-a456-426614174000" 3054 | title: 3055 | type: string 3056 | example: "Invalid Request" 3057 | status: 3058 | type: string 3059 | example: "400" 3060 | code: 3061 | type: string 3062 | example: "BAD_REQUEST" 3063 | detail: 3064 | type: string 3065 | example: "The request was invalid or cannot be served." 3066 | -------------------------------------------------------------------------------- /screenshots/swagger-github-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/obrhoff/AppleMusicAPI/4c8a9890586db51855d4ff873f0605ae11ed1852/screenshots/swagger-github-pages.png -------------------------------------------------------------------------------- /swagger-ui.version: -------------------------------------------------------------------------------- 1 | v5.24.0 2 | --------------------------------------------------------------------------------