TechnologiesAudio

MusicKit

iOSmacOStvOSwatchOSvisionOS

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.

  • St
    MusicAuthorizationiOS 15.0+
    A type that allows you to request the user’s informed consent
  • St
    MusicSubscriptioniOS 15.0+
    A representation of the current state of the user’s subscription
  • St
    MusicSubscriptionOffer
    A 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.

  • St
    AlbumiOS 15.0+
    A music item that represents an album.
  • St
    ArtistiOS 15.0+
    A music item that represents an artist.
  • St
    SongiOS 15.0+
    A music item that represents a song.
  • St
    MusicVideoiOS 15.0+
    A music item that represents a music video.
  • St
    PlaylistiOS 15.0+
    A music item that represents a playlist.
  • St
    GenreiOS 15.0+
    A music item that represents a genre.
  • St
    CuratoriOS 15.4+
    A music item that represents a curator.
  • St
    RadioShowiOS 15.4+
    A music item that represents a radio show.
  • St
    RecordLabeliOS 15.0+
    A music item that represents a record label.
  • St
    StationiOS 15.0+
    A music item that represents a station.
  • St
    MusicItemCollectioniOS 15.0+
    A collection of music items.

Item Metadata 6

Supporting values that describe artwork, editorial content, previews, and playback parameters for catalog items.

  • St
    ArtworkiOS 15.0+
    An object that represents artwork for a music item.
  • St
    EditorialNotesiOS 15.0+
    An object that represents editorial notes.
  • St
    PreviewAssetiOS 15.0+
    An object that represents a preview for resources.
  • St
    PlayParametersiOS 15.0+
    An opaque object that represents parameters to initiate playback
  • En
    TrackiOS 15.0+
    A music item that represents a track.
  • En
    RecentlyPlayedMusicItemiOS 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.

  • St
    MusicCatalogResourceRequestiOS 15.0+
    A request that your app uses to fetch items from the Apple Music catalog
  • St
    MusicCatalogResourceRequestOptioniOS 26.4+
    An option to use when requesting a resource from the Apple Music catalog.
  • St
    MusicCatalogResourceResponseiOS 15.0+
    An object that contains results for a catalog resource request.
  • St
    MusicCatalogSearchRequestiOS 15.0+
    A request that your app uses to fetch items from the Apple Music catalog
  • St
    MusicCatalogSearchResponseiOS 15.0+
    An object that contains results for a catalog search request.
  • St
    MusicCatalogSearchSuggestionsRequestiOS 16.0+
    A request that your app uses to fetch suggestions from the Apple Music catalog
  • St
    MusicCatalogSearchSuggestionsResponseiOS 16.0+
    An object that contains results for a catalog search suggestions request.
  • St
    MusicCatalogChartiOS 16.0+
    An object that contains popular items in the Apple Music catalog.
  • St
    MusicCatalogChartsRequestiOS 16.0+
    A request that your app uses to fetch the most popular items
  • St
    MusicCatalogChartsResponseiOS 16.0+
    An object that contains results for a catalog charts request.
  • En
    MusicCatalogChartKindiOS 16.0+
    The available kinds of catalog charts.
  • St
    TitledSectioniOS 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.

  • Cl
    MusicLibraryiOS 16.0+
    An object your app uses to access the user’s music library.
  • St
    MusicLibraryRequestiOS 16.0+
    A request that your app uses to fetch items from the user’s music library.
  • St
    MusicLibraryResponseiOS 16.0+
    An object that contains results for a library request.
  • St
    MusicLibrarySearchRequestiOS 16.0+
    A request that your app uses to fetch items from user’s library
  • St
    MusicLibrarySearchResponseiOS 16.0+
    An object that contains results for a library search request.
  • St
    MusicLibrarySectionedRequestiOS 16.0+
    A request that your app uses to fetch items grouped by sections
  • St
    MusicLibrarySectionedResponseiOS 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.

  • St
    MusicPersonalRecommendationiOS 16.0+
    An object that contains recommended items based on the user’s library
  • St
    MusicPersonalRecommendationsRequestiOS 16.0+
    A request that your app uses to fetch music recommendations
  • St
    MusicPersonalRecommendationsResponseiOS 16.0+
    An object that contains results for a personal recommendations request.
  • St
    MusicRecentlyPlayedRequestiOS 16.0+
    A request that your app uses to fetch items the user has recently played.
  • St
    MusicRecentlyPlayedResponseiOS 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.

  • St
    MusicDataRequestiOS 15.0+
    A request for loading data from an arbitrary Apple Music API endpoint.
  • St
    MusicDataResponseiOS 15.0+
    An object containing results for a data request.

Playback 4

Play music within your app or through the system music player.

  • Cl
    MusicPlayer
    An object your app uses to play music.
  • Cl
    ApplicationMusicPlayer
    An object your app uses to play music in a way that doesn’t affect
  • Cl
    SystemMusicPlayer
    An object your app uses to play music by controlling the Music app’s state.
  • En
    AudioVariantiOS 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.

  • Pr
    MusicCatalogSearchableiOS 15.0+
    A protocol for music items that your app can fetch by
  • Pr
    MusicCatalogChartRequestableiOS 16.0+
    A protocol for music items that your app can fetch by
  • Pr
    MusicCatalogTopLevelResourceRequestingiOS 16.0+
    A protocol for music items that your app can fetch by
  • Pr
    MusicLibraryRequestableiOS 16.0+
    A protocol for music items that your app can fetch
  • Pr
    MusicLibrarySearchableiOS 16.0+
    A protocol for music items that your app can fetch by
  • Pr
    MusicLibrarySectionRequestableiOS 16.0+
    A protocol for types your app uses as sections
  • Pr
    MusicRecentlyPlayedRequestableiOS 16.0+
    A protocol for music items that your app can fetch by
  • Pr
    MusicLibraryRequestFilterValueEquatableiOS 16.0+
    A protocol for types of values your app can use with equality
  • Pr
    MusicLibraryRequestFilterValueMembershipComparableiOS 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.

  • Pr
    FilterableMusicItemiOS 15.0+
    A declaration of the associated type that contains the set of music item
  • Pr
    AlbumFilteriOS 15.0+
    Album properties your app uses as a filter for a catalog resource request.
  • Pr
    ArtistFilteriOS 15.0+
    Artist properties your app uses as a filter for a catalog resource request.
  • Pr
    CuratorFilteriOS 15.4+
    Curator properties your app uses as a filter for a catalog resource request.
  • Pr
    GenreFilteriOS 15.0+
    Genre properties your app uses as a filter for a catalog resource request.
  • Pr
    MusicVideoFilteriOS 15.0+
    Music video properties your app uses as a filter
  • Pr
    PlaylistFilteriOS 15.0+
    Playlist properties your app uses as a filter
  • Pr
    RadioShowFilteriOS 15.4+
    Radio Show properties your app uses as a filter for a catalog resource request.
  • Pr
    RecordLabelFilteriOS 15.0+
    The set of record label properties your app uses as a filter
  • Pr
    SongFilteriOS 15.0+
    Song properties your app uses as a filter for a catalog resource request.
  • Pr
    StationFilteriOS 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.

  • Pr
    LibraryAlbumFilteriOS 16.0+
    Album properties your app uses as a filter for a library request.
  • Pr
    LibraryAlbumSortPropertiesiOS 16.0+
    Album properties your app uses to sort results for a library request.
  • Pr
    LibraryArtistFilteriOS 16.0+
    Artist properties your app uses as a filter for a library request.
  • Pr
    LibraryArtistSortPropertiesiOS 16.0+
    Artist properties your app uses to sort results for a library request.
  • Pr
    LibraryGenreFilteriOS 16.0+
    Genre properties your app uses as a filter for a library request.
  • Pr
    LibraryGenreSortPropertiesiOS 16.0+
    Genre properties your app uses to sort results for a library request.
  • Pr
    LibraryMusicVideoFilteriOS 16.0+
    Music video properties your app uses as a filter for a library request.
  • Pr
    LibraryMusicVideoSortPropertiesiOS 16.0+
    Music video properties your app uses to sort results for a library request.
  • Pr
    LibraryPlaylistFilteriOS 16.0+
    Playlist properties your app uses as a filter for a library request.
  • Pr
    LibraryPlaylistSortPropertiesiOS 16.0+
    Playlist properties your app uses to sort results for a library request.
  • Pr
    LibraryPlaylistEntryFilteriOS 16.0+
    Playlist entry properties your app uses as a filter for a library request.
  • Pr
    LibraryPlaylistEntrySortPropertiesiOS 16.0+
    Playlist entry properties your app uses to sort results for a library request.
  • Pr
    LibrarySongFilteriOS 16.0+
    Song properties your app uses as a filter for a library request.
  • Pr
    LibrarySongSortPropertiesiOS 16.0+
    Song properties your app uses to sort results for a library request.
  • Pr
    LibraryTrackFilteriOS 16.0+
    Track properties your app uses as a filter for a library request.
  • Pr
    LibraryTrackSortPropertiesiOS 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.

  • Pr
    MusicItemiOS 15.0+
    A protocol with basic requirements for music items.
  • Pr
    PlayableMusicItem
    A set of properties that a music player uses to initiate playback
  • Pr
    PickableMusicItem
    A protocol for the MusicKit item type that can be selected in the music picker.
  • Pr
    MusicLibraryAddable
    A protocol for music items that your app can add to the music library.
  • Pr
    MusicPlaylistAddable
    A protocol for music items that your app can add to a playlist.
  • Pr
    MusicPersonalRecommendationItemiOS 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.

  • Pr
    MusicPropertyContaineriOS 15.0+
    A protocol for music items that allow loading additional
  • Cl
    AnyMusicPropertyiOS 15.0+
    A type-erased identifier for a music item property, from any root type
  • Cl
    MusicAttributePropertyiOS 15.0+
    An identifier for a music item attribute property
  • Cl
    MusicExtendedAttributePropertyiOS 15.0+
    An identifier for a music item extended attribute property
  • Cl
    MusicRelationshipPropertyiOS 15.0+
    An identifier for a music item relationship property
  • Cl
    PartialMusicPropertyiOS 15.0+
    A partially type-erased identifier for a music item property
  • Cl
    PartialMusicAsyncPropertyiOS 15.0+
    A partially type-erased identifier for a music item property
  • En
    MusicPropertySourceiOS 16.0+
    An enumeration that specifies which source to use when requesting properties and relationships.
  • En
    ContentRatingiOS 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.

  • Pr
    MusicDeveloperTokenProvideriOS 15.0+
    A set of methods that music requests use to access Apple Music API.
  • Cl
    DefaultMusicTokenProvideriOS 15.0+
    The default token provider that music requests use to access
  • Cl
    MusicUserTokenProvideriOS 15.0+
    A class that music requests use to fetch user tokens your app requires
  • St
    MusicTokenRequestOptionsiOS 15.0+
    Options that music requests pass into token provider methods to fetch
  • En
    MusicTokenRequestErroriOS 15.0+
    An error that the token provider or music requests can throw

Structures 3

  • St
    MusicItemIDiOS 15.0+
    An object that represents a unique identifier for a music item.
  • St
    MusicLibrarySectioniOS 16.0+
    A section for a library sectioned response.
  • St
    ArtworkImageiOS 15.0+
    A view that displays the image for a music item’s artwork.

Type Aliases 29

  • Ty
    MusicRecentlyPlayedContainerRequest
    A request that your app uses to fetch albums, playlists or stations
  • Ty
    MusicRecentlyPlayedContainerResponse
    An object that contains albums, playlists or stations
  • Ty
    MusicTokenProvider
    An 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

Extends 3

BoolStringView
← Audio