MusicKit provides access to Apple Music, letting your app search and request catalog items such as albums, artists, and songs and integrate playback. You request the user's permission with MusicAuthorization, build catalog queries with types like MusicCatalogResourceRequest and MusicCatalogChartsRequest, and work with the results through models such as Album, Artist, Genre, Curator, and Artwork. Filter and sort protocols including AlbumFilter, LibrarySongFilter, and LibrarySongSortProperties refine both catalog and library queries, while ApplicationMusicPlayer drives playback within your app.
Essentials 3
Request authorization, check the user's subscription, and present subscription offers.
- StMusicAuthorizationiOS 15.0+A type that allows you to request the user’s informed consent
- StMusicSubscriptioniOS 15.0+A representation of the current state of the user’s subscription
- StMusicSubscriptionOfferA type for grouping other types for showing subscription offers
Catalog Items 11
The model types that represent albums, artists, songs, and other items in the Apple Music catalog and the user's library.
- StAlbumiOS 15.0+A music item that represents an album.
- StArtistiOS 15.0+A music item that represents an artist.
- StSongiOS 15.0+A music item that represents a song.
- StMusicVideoiOS 15.0+A music item that represents a music video.
- StPlaylistiOS 15.0+A music item that represents a playlist.
- StGenreiOS 15.0+A music item that represents a genre.
- StCuratoriOS 15.4+A music item that represents a curator.
- StRadioShowiOS 15.4+A music item that represents a radio show.
- StRecordLabeliOS 15.0+A music item that represents a record label.
- StStationiOS 15.0+A music item that represents a station.
- StMusicItemCollectioniOS 15.0+A collection of music items.
Item Metadata 6
Supporting values that describe artwork, editorial content, previews, and playback parameters for catalog items.
- StArtworkiOS 15.0+An object that represents artwork for a music item.
- StEditorialNotesiOS 15.0+An object that represents editorial notes.
- StPreviewAssetiOS 15.0+An object that represents a preview for resources.
- StPlayParametersiOS 15.0+An opaque object that represents parameters to initiate playback
- EnTrackiOS 15.0+A music item that represents a track.
- EnRecentlyPlayedMusicItemiOS 16.0+An item that represents an album, a playlist, or a station that the user has recently played.
Catalog Requests 12
Build requests that fetch, search, and chart resources from the Apple Music catalog and read their responses.
- StMusicCatalogResourceRequestiOS 15.0+A request that your app uses to fetch items from the Apple Music catalog
- StMusicCatalogResourceRequestOptioniOS 26.4+An option to use when requesting a resource from the Apple Music catalog.
- StMusicCatalogResourceResponseiOS 15.0+An object that contains results for a catalog resource request.
- StMusicCatalogSearchRequestiOS 15.0+A request that your app uses to fetch items from the Apple Music catalog
- StMusicCatalogSearchResponseiOS 15.0+An object that contains results for a catalog search request.
- StMusicCatalogSearchSuggestionsRequestiOS 16.0+A request that your app uses to fetch suggestions from the Apple Music catalog
- StMusicCatalogSearchSuggestionsResponseiOS 16.0+An object that contains results for a catalog search suggestions request.
- StMusicCatalogChartiOS 16.0+An object that contains popular items in the Apple Music catalog.
- StMusicCatalogChartsRequestiOS 16.0+A request that your app uses to fetch the most popular items
- StMusicCatalogChartsResponseiOS 16.0+An object that contains results for a catalog charts request.
- EnMusicCatalogChartKindiOS 16.0+The available kinds of catalog charts.
- StTitledSectioniOS 16.0+A section you can use to request items from the library grouped by title.
Library Requests 7
Query, search, and section the contents of the user's personal music library.
- ClMusicLibraryiOS 16.0+An object your app uses to access the user’s music library.
- StMusicLibraryRequestiOS 16.0+A request that your app uses to fetch items from the user’s music library.
- StMusicLibraryResponseiOS 16.0+An object that contains results for a library request.
- StMusicLibrarySearchRequestiOS 16.0+A request that your app uses to fetch items from user’s library
- StMusicLibrarySearchResponseiOS 16.0+An object that contains results for a library search request.
- StMusicLibrarySectionedRequestiOS 16.0+A request that your app uses to fetch items grouped by sections
- StMusicLibrarySectionedResponseiOS 16.0+An object that contains results for a library sectioned request.
Recommendations and History 5
Fetch the user's personalized recommendations and recently played content.
- StMusicPersonalRecommendationiOS 16.0+An object that contains recommended items based on the user’s library
- StMusicPersonalRecommendationsRequestiOS 16.0+A request that your app uses to fetch music recommendations
- StMusicPersonalRecommendationsResponseiOS 16.0+An object that contains results for a personal recommendations request.
- StMusicRecentlyPlayedRequestiOS 16.0+A request that your app uses to fetch items the user has recently played.
- StMusicRecentlyPlayedResponseiOS 16.0+An object that contains items the user has recently played.
Direct API Requests 2
Issue arbitrary requests against the Apple Music API and decode raw responses.
- StMusicDataRequestiOS 15.0+A request for loading data from an arbitrary Apple Music API endpoint.
- StMusicDataResponseiOS 15.0+An object containing results for a data request.
Playback 4
Play music within your app or through the system music player.
- ClMusicPlayerAn object your app uses to play music.
- ClApplicationMusicPlayerAn object your app uses to play music in a way that doesn’t affect
- ClSystemMusicPlayerAn object your app uses to play music by controlling the Music app’s state.
- EnAudioVariantiOS 16.0+Variants that indicate the quality of audio available for an item.
Request Protocols 9
Protocols that make item types searchable, chartable, and usable in catalog and library requests.
- PrMusicCatalogSearchableiOS 15.0+A protocol for music items that your app can fetch by
- PrMusicCatalogChartRequestableiOS 16.0+A protocol for music items that your app can fetch by
- PrMusicCatalogTopLevelResourceRequestingiOS 16.0+A protocol for music items that your app can fetch by
- PrMusicLibraryRequestableiOS 16.0+A protocol for music items that your app can fetch
- PrMusicLibrarySearchableiOS 16.0+A protocol for music items that your app can fetch by
- PrMusicLibrarySectionRequestableiOS 16.0+A protocol for types your app uses as sections
- PrMusicRecentlyPlayedRequestableiOS 16.0+A protocol for music items that your app can fetch by
- PrMusicLibraryRequestFilterValueEquatableiOS 16.0+A protocol for types of values your app can use with equality
- PrMusicLibraryRequestFilterValueMembershipComparableiOS 16.0+A protocol for types of values your app can use with membership
Catalog Filters 11
Protocols that expose the filterable properties of catalog item types.
- PrFilterableMusicItemiOS 15.0+A declaration of the associated type that contains the set of music item
- PrAlbumFilteriOS 15.0+Album properties your app uses as a filter for a catalog resource request.
- PrArtistFilteriOS 15.0+Artist properties your app uses as a filter for a catalog resource request.
- PrCuratorFilteriOS 15.4+Curator properties your app uses as a filter for a catalog resource request.
- PrGenreFilteriOS 15.0+Genre properties your app uses as a filter for a catalog resource request.
- PrMusicVideoFilteriOS 15.0+Music video properties your app uses as a filter
- PrPlaylistFilteriOS 15.0+Playlist properties your app uses as a filter
- PrRadioShowFilteriOS 15.4+Radio Show properties your app uses as a filter for a catalog resource request.
- PrRecordLabelFilteriOS 15.0+The set of record label properties your app uses as a filter
- PrSongFilteriOS 15.0+Song properties your app uses as a filter for a catalog resource request.
- PrStationFilteriOS 15.0+The set of station properties your app uses as a filter
Library Filters and Sorting 16
Protocols that expose the filterable and sortable properties of items in the user's library.
- PrLibraryAlbumFilteriOS 16.0+Album properties your app uses as a filter for a library request.
- PrLibraryAlbumSortPropertiesiOS 16.0+Album properties your app uses to sort results for a library request.
- PrLibraryArtistFilteriOS 16.0+Artist properties your app uses as a filter for a library request.
- PrLibraryArtistSortPropertiesiOS 16.0+Artist properties your app uses to sort results for a library request.
- PrLibraryGenreFilteriOS 16.0+Genre properties your app uses as a filter for a library request.
- PrLibraryGenreSortPropertiesiOS 16.0+Genre properties your app uses to sort results for a library request.
- PrLibraryMusicVideoFilteriOS 16.0+Music video properties your app uses as a filter for a library request.
- PrLibraryMusicVideoSortPropertiesiOS 16.0+Music video properties your app uses to sort results for a library request.
- PrLibraryPlaylistFilteriOS 16.0+Playlist properties your app uses as a filter for a library request.
- PrLibraryPlaylistSortPropertiesiOS 16.0+Playlist properties your app uses to sort results for a library request.
- PrLibraryPlaylistEntryFilteriOS 16.0+Playlist entry properties your app uses as a filter for a library request.
- PrLibraryPlaylistEntrySortPropertiesiOS 16.0+Playlist entry properties your app uses to sort results for a library request.
- PrLibrarySongFilteriOS 16.0+Song properties your app uses as a filter for a library request.
- PrLibrarySongSortPropertiesiOS 16.0+Song properties your app uses to sort results for a library request.
- PrLibraryTrackFilteriOS 16.0+Track properties your app uses as a filter for a library request.
- PrLibraryTrackSortPropertiesiOS 16.0+Track properties your app uses to sort results for a library request.
Item Roles and Capabilities 6
Protocols that define the common behaviors and roles a music item can adopt.
- PrMusicItemiOS 15.0+A protocol with basic requirements for music items.
- PrPlayableMusicItemA set of properties that a music player uses to initiate playback
- PrPickableMusicItemA protocol for the MusicKit item type that can be selected in the music picker.
- PrMusicLibraryAddableA protocol for music items that your app can add to the music library.
- PrMusicPlaylistAddableA protocol for music items that your app can add to a playlist.
- PrMusicPersonalRecommendationItemiOS 16.0+A protocol for music items that your app can fetch by
Properties 9
Types that model the loadable attributes and relationships of music items.
- PrMusicPropertyContaineriOS 15.0+A protocol for music items that allow loading additional
- ClAnyMusicPropertyiOS 15.0+A type-erased identifier for a music item property, from any root type
- ClMusicAttributePropertyiOS 15.0+An identifier for a music item attribute property
- ClMusicExtendedAttributePropertyiOS 15.0+An identifier for a music item extended attribute property
- ClMusicRelationshipPropertyiOS 15.0+An identifier for a music item relationship property
- ClPartialMusicPropertyiOS 15.0+A partially type-erased identifier for a music item property
- ClPartialMusicAsyncPropertyiOS 15.0+A partially type-erased identifier for a music item property
- EnMusicPropertySourceiOS 16.0+An enumeration that specifies which source to use when requesting properties and relationships.
- EnContentRatingiOS 15.0+The rating of the content that potentially plays while playing a resource.
Developer Authentication 5
Provide and configure the developer and user tokens that authorize Apple Music API requests.
- PrMusicDeveloperTokenProvideriOS 15.0+A set of methods that music requests use to access Apple Music API.
- ClDefaultMusicTokenProvideriOS 15.0+The default token provider that music requests use to access
- ClMusicUserTokenProvideriOS 15.0+A class that music requests use to fetch user tokens your app requires
- StMusicTokenRequestOptionsiOS 15.0+Options that music requests pass into token provider methods to fetch
- EnMusicTokenRequestErroriOS 15.0+An error that the token provider or music requests can throw
Structures 3
- StMusicItemIDiOS 15.0+An object that represents a unique identifier for a music item.
- StMusicLibrarySectioniOS 16.0+A section for a library sectioned response.
- StArtworkImageiOS 15.0+A view that displays the image for a music item’s artwork.
Type Aliases 29
- TyMusicRecentlyPlayedContainerRequestA request that your app uses to fetch albums, playlists or stations
- TyMusicRecentlyPlayedContainerResponseAn object that contains albums, playlists or stations
- TyMusicTokenProviderAn object that music requests use to access Apple Music API.
- Ty__Float16x4_t
- Ty__Float16x8_t
- Ty__Float32x2_t
- Ty__Float32x4_t
- Ty__Float64x2_t
- Ty__Int16x4_t
- Ty__Int16x8_t
- Ty__Int32x2_t
- Ty__Int32x4_t
- Ty__Int64x2_t
- Ty__Int8x16_t
- Ty__Int8x8_t
- Ty__NSConstantString
Show 13 more
- Ty__Poly16x4_t
- Ty__Poly16x8_t
- Ty__Poly64x2_t
- Ty__Poly8x16_t
- Ty__Poly8x8_t
- Ty__Uint16x4_t
- Ty__Uint16x8_t
- Ty__Uint32x2_t
- Ty__Uint32x4_t
- Ty__Uint64x2_t
- Ty__Uint8x16_t
- Ty__Uint8x8_t
- Ty__builtin_ms_va_list