The Enterprise Partner Feed is a data feed of the complete set of metadata from iTunes and the App Store. It is available for affiliate partners to fully incorporate aspects of the iTunes and App Store catalogs into a web site or app.

EPF Relational (formerly known as simply EPF) consists of four files that when expanded can be ingested to build a relational database. This format is directed towards tech-savvy affiliate partners who can ingest, build and maintain a database and need information for either multiple media types or for multiple storefronts.

Access to the EPF requires login credentials and an active partnership with the affiliate program. Partners wishing to apply for access can do so by submitting a request at the Affiliate Helpdesk with the primary account holders contact info, proof of being active with the affiliate program and a short description explaining how they intend to use the EPF.

Table of Contents


Document Revision History

The following table describes the changes to this document.

Date Version Notes
2007/06/01 1.0 Initial revision.
2008/02/05 1.1 Various columns added to price files to support iTunes Plus and movie rental. Specific changes include: column hq_price added to song_price file, column hq_price added to collection_price file, definition of column retail_price in video_price file was redefined to support various price types, and columns sd_price, hq_price, lc_rental_price, sd_rental_price, hd_rental_price added to the end of video_price file.
2008/03/03 1.2 Add a few sentences to clarify details about coding for affiliate partners. This clarification should make it clearer for partners that they must follow the coding guidelines of their affiliate management company, to properly receive commissions.
2009/02/24 1.3 Update phobos.apple.com URLs to new itunes.apple.com URLs.
2009/09/09 2.0 Added application, mix, and imix table details, and performed general edit.
2009/10/29 2.1 Minor edits.
2009/11/24 2.2 Add song preview_url, and fix the name of mix_collection.mix_collection_id column, and expand on file metadata via comment records
2010/01/05 2.3 Add data for new popularity tables

iTunes Enterprise Partner Feed

Overview

The Enterprise Partner Feed (EPF) is a bulk data feed comprising all content metadata in the iTunes Store. The data is organized into files, with each file representing a logical table in a relational database. The files, in turn, are organized into directories and compressed for download over HTTPS. iTunes partners can ingest this data into a relational database for use in matching content libraries and generating links into the iTunes Store. Terms and conditions apply.

Operation

Feed Modes

iTunes generates the EPF data in two modes:

  • full mode
  • incremental mode

The full export is generated weekly and contains a complete snapshot of iTunes metadata as of the day of generation. The incremental export is generated daily and contains records that have been added or modified since the last full export. The incremental exports are located relative to the full export on which they are based.

Downloading the Feed

iTunes generates the EPF export and hosts it for download at https://feeds.itunes.apple.com. The feed files are archived into binary files in a compressed PKZip (WinZip) format. The compressed file is named according to the following template:

itunesYYYYMMDDHH.zip
pricingYYYYMMDDHH.zip
matchYYYYMMDDHH.zip

where YYYY, MM, DD, and HH represent the year, month, day, and hour when the feed generation started.

Apple provides partners with a username and password to download the feed from https://feeds.itunes.apple.com.

Ingest Methodology

Uncompress the downloaded zip files to create subdirectories containing the data files.

To ingest each file:

  1. Read a record from the file.
  2. Use the primary key defined at the top of the file to search for an existing row in the corresponding database table.
  3. Do one of the following:
    • If a matching row already exists in your database, update that row using values from the new record.
    • If a matching row does not already exist in your database, add the new record to the database table.
Pruning Out-of-Date Data

After ingesting a full feed, out-of-date records should be pruned (deleted) from the database. You can find these records by comparing the value of their export_date to the lastFullExportDate value in the key_value table. These records represent records that formerly existed in the iTunes database but have since been removed.

No pruning is required after ingesting an incremental feed.

Making Sense of the Data

Regional Availability of iTunes Content

The EPF feed contains metadata for all products, but due to licensing issues, not every piece of content is available in every storefront. Availability is defined generally as having a non-null price in the pricing file. For example, if video X has NO row in video_price that contains storefront 143441, then it is not available for sale in the US.

The Origin-Storefront Query Parameter

Because not all content is available to all users, iTunes provides a fallback mechanism for users to view content (but not purchase) in a foreign storefront. If a URL contains the origin-storefront (“s”) parameter, and the content is not available in the user’s native storefront, then iTunes will suggest to the user that she temporarily switch to the origin storefront of the content so that she may view the content.

Attaching Affiliate Bounty Information to URLs

In order to generate affiliate commissions, you must create links using the format for PHG. It is important to generate the links correctly to get the reference recognized as affiliate revenue at iTunes. Be sure to check with your affiliate management company about how to properly create affiliate-coded links.

A few partners work directly with iTunes to track affiliate sales and commissions. The directions below for creating affiliate codes apply just to those few affiliate partners. All other affiliates must code links following the guidelines of the local affiliate management companies.

Coding Instructions

EPF files contain URLs for viewing contents in the iTunes Store. Starting from the URL, iTunes partners need to generate fully qualified URL links that are embedded in sites by adding parameters.

The following files in the EPF export have a column named view_url: artist, collection, song, application, and video. All of the links contain an action and a parameter set.

View URL Samples
artist https://itunes.apple.com/artist/scritti-politti/id614113
collection https://itunes.apple.com/us/album/ukulele-songs/id433985038
song https://itunes.apple.com/us/album/poker-face/id294084085?i=294084155
video https://itunes.apple.com/us/movie/harry-potter-sorcerers-stone/id271469503
Applications https://itunes.apple.com/us/app/angry-birds/id343200656?mt=8

iTunes affiliates can add the parameters described in the following table to the URL in the feed files.

Parameter Name Description Applicable To Mandatory/Optional
partnerId Identifies a partner, as assigned by iTunes. All links for a partner have the same value, provided by Apple. collection, song, video, artist Mandatory
affToken Identifies a publisher to an affiliate program. Affiliate partners can add an arbitrary value up to 50 characters, including alphanumeric, underscore (“_”) and period (“.”). collection, song, video, artist Mandatory

Each parameter has its key name concatenated with a value using “=” Each key value pair is concatenated using “&”. The template for a fully-qualified affiliate URL for each content type is:

Artist: baseurl&at=xxxxxxxx

Collection: baseurl&at=xxxxxxxx

Song: baseurl&at=xxxxxxxx

Video: baseurl&at=xxxxxxxx

The following table provides examples of fully-qualified links.

View URL Samples
artist https://itunes.apple.com/artist/scritti-politti/id614113?at=10l123
collection https://itunes.apple.com/us/album/ukulele-songs/id433985038?at=10l123
song https://itunes.apple.com/us/album/poker-face/id294084085?i=294084155&at=10l123
video https://itunes.apple.com/us/movie/harry-potter-sorcerers-stone/id271469503?at=10l123

File Format

Each file in the feed is in plain text format, separated into columns and rows. Each record has the same set of fields. The following are the delimiters for each field and record:

  • Field Separator (FS): SOH (ASCII character 1)
  • Record Separator (RS) : STX (ASCII character 2) + “n”

For example, these characters are represented in programming languages as shown below:

Perl:

$field_separator = chr(1);
$record_separator = chr(2) . "n";

Java:

String fieldSeparator = String.valueOf((char)1);
String recordSeparator = String.valueOf((char)2) + "n";

Any record starting with a “#” and ending with the RS should be treated as a comment by the ingester and ignored. For reading convenience, iTunes uses this feature to generate a column header line at the beginning of the file.

Each record has an export_date field, defined as milliseconds since the UNIX Epoch. This time stamp is used to track the last time the record was ingested. All records from a given export dataset have the same export_date.

Schema

Each feed file is an export of a relational database table. Many-to-many relationships are represented as join tables.

The files are grouped into the following main categories:

  • Content: real content in the database (blue in Figure 1)
  • Translation: localization data specific to a language (blue in Figure 1)
  • Join: relationships between content data (pink in Figure 1)
  • Reference: master data referred by Content and Join data (green in Figure 1)

Diagram

The following figure shows the relationships between the main tables in the feed. Content tables are shown in blue, relationship tables are shown in pink, and reference tables are shown in green.

The artist, collection, song, application, and video tables are the main content tables for basic objects in the database.

The artist, collection, artist_song, artist_application, and artist_video are Join tables that define the role an artist plays in the production of a song, album, video, application, and so on. collection_song is a Join table defining which songs appear on which albums.

Figure 1: Key Tables in Enterprise Partner Feed

epf-tables.jpg

Each piece of salable content (collection, song, and video) is associated with its price through its ID. The price is unique for each content and storefront pair. Some salable content is not available in some storefronts.

Each translatable content has its translation table associated through its identifier. The translated name string is optional. In addition to its name, the title_version for collection, song, and video are translatable.

Each matchable content (application, artist, collection, song, and video) has its match table associated through its identifier. Match tables provide mappings from the iTunes internal identifier to externally defined identifiers such as UPC, ISRC, and AMG IDs.

The following figure shows the relationships between content objects, and their attribute files related to price, translation, and matching.

Figure 2: Contents and Attributes

etf-relationships.jpg

Overview

The table below provides a brief description of each file contained in a feed dataset. All filenames are lowercase.

Name Type Download Grouping Description
album_popularity_per_genre Popularity popularity Assigns a ranking for the top music collections in a given storefront and genre.
application Content itunes Application metadata. Defines all iPhone and iPod touch applications in the App Store. Elements such as titles and descriptions default to English when available, otherwise the primary language of the application is used. For translations, see application_detail.
application_detail Translation itunes Defines the language-specific attributes of an application.
application_device_type Join itunes Many-to-many relationship between applications and device types. Associates applications with the devices with which they are compatible.
application_popularity_per_genre Popularity popularity Assigns a ranking for the top applications in a given storefront and genre
application_price Content pricing Retail price of an application.
artist Content itunes Artist metadata. Unlike other Content and Join tables, this artist table contains all the artists, regardless of availability of the artist’s contents in any given country of interest.
artist_application Join itunes Associates applications with their artists (or authors). Every application has exactly one artist.
artist_collection Join itunes Many-to-many relationship between artists and collections. Only primary artists are included.
artist_match Content match Mappings from the iTunes internal identifier for artist to external identifiers.
artist_song Join itunes Many-to-many relationship between artists and songs. Only primary artists are included.
artist_translation Translation itunes The translation string for artist names for a specific language.
artist_type Reference itunes Artist type metadata. Defines all artist types; including musicians, TV shows, actors, iPhone developers, and authors.
artist_video Join itunes Many-to-many relationship between artists and videos. Only primary artists are included.
collection Content itunes A collection can contain multiple songs and videos, and can represent a music album, audiobook, or TV season.
collection_match Content match Mappings from the iTunes internal identifier for collection to external identifiers.
collection_price Content pricing The retail price of the collection.
collection_song Join itunes Many-to-many relationship between collections and songs. Most of the songs are included only in one collection.
collection_translation Translation itunes The translation string for collection names for a specific language.
collection_type Reference itunes The type of collection (TV season, album, and so on).
collection_video Join itunes Many-to-many relationship between collections and videos. Most of the videos are included only in one collection.
device_type Reference itunes Device type metadata. Specifies the types of devices currently available (for example, iPhone and iPod touch).
genre Reference itunes Genre name and its structure. All music genres are represented in hierarchical manner starting from genre 34 Music.
genre_application Join itunes Genre information for the application. Associates an application with one or more categories. There is only one primary genre for each application.
genre_artist Join itunes Genre information of artists. There is only one primary genre for each artist.
genre_collection Join itunes Genre information of a collection. There is only one primary genre for each collection.
genre_video Join itunes Genre information of video. There is only one primary genre for each video.
key_value Meta itunes Utility file to store metadata to the specific EPF export. Each record is a key-value pair. For example, the schema version number and date of the last full mode data dump are included.
imix Content itunes Metadata for mixes that are defined by iTunes users.
media_type Reference itunes Types of products.
mix Content itunes Metadata for mixes that are defined editorially by iTunes.
mix_collection Content itunes Metadata for collections of mixes.
mix_type Reference itunes Types of mixes.
parental_advisory Reference itunes The type of parental advisory status.
role Reference itunes The name of the artist role.
song Content itunes Song metadata. In most cases, one song is only contained in one collection. But in some cases, one song is shared by multiple collections.
song_match Content match Mappings from the iTunes internal identifier for song to external identifiers.
song_imix Join itunes Join table between imixes and songs.
song_mix Join itunes Join table between mixes and songs.
song_popularity_per_genre Popularity popularity Assigns a ranking to the top songs in a given storefront and genre
song_price Content pricing The retail price of the song.
song_translation Translation itunes The translation string for song names for a specific language.
storefront Reference itunes Identifier number of each country storefront.
translation_type Reference itunes The type of translation string.
video Content itunes Video metadata. In most cases, one video is only contained in one collection. But in some cases, one video is shared by multiple collections.
video_match Content match Mappings from the iTunes internal identifier for video to external identifiers.
video_price Content pricing The retail price of the video.
video_translation Translation itunes The translation string for video names for a specific language.

Detailed File Definition

This section explains the column configuration of each file.

albumpopularityper_genre

This table ranks popular content for each storefront and genre. The data is limited to the most popular 1000 items.

Name Key Description
export_date The date this row was exported, in milliseconds since the UNIX Epoch.
storefront_id Y The storefront in which this content is ranked.
genre_id Y The genre in which this content is ranked.
album_id Y The iTunes ID for this album.
album_rank The rank of this content in the given storefront and genre, (lower is better)
application

Application metadata. Defines all iPhone and iPod touch applications in the App Store. Elements such as titles and descriptions default to English when available, otherwise the primary language of the application is used. For translations, see application_detail.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
application_id Y The iTunes ID for this application.
title The application title.
recommended_age The minimum suggested age for a child to use this application.
artist_name The name of the application developer or company.
seller_name The legal entity name of the software provider.
company_url The URL for this application on the seller’s website.
support_url The support URL for this application.
view_url The URL to view this application in the App Store.
artwork_url_large The URL to view the large version of the cover art of this application in the App Store.
artwork_url_small The URL to view the small version of the cover art of this application in the App Store.
itunes_release_date Release date of this application in “yyyy mm dd” format.
copyright Copyright notice string. This is often null. Optional.
description Description for this application.
version The version number provided by the application developer.
itunes_version The version string as set by iTunes.
download_size The application’s file size, in bytes.
application_detail

Defines the language-specific attributes of an application.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
application_id Y Foreign key to the application table.
language_code Y Name of the language specified in ISO 639-1 two-character language code. For example, “EN” for English, “JA” for Japanese, “FR” for French.
title The application title.
description Description for this application.
release_notes The release notes for the most recent update.
company_url The URL for this application on the seller’s website.
suppport_url The support URL for this application.
screenshot_url_1 The URL to view screenshot 1 of this application in the App Store.
screenshot_url_2 The URL to view screenshot 2 of this application in the App Store.
screenshot_url_3 The URL to view screenshot 3 of this application in the App Store.
screenshot_url_4 The URL to view screenshot 4 of this application in the App Store.
screenshot_width_height_1 The width and height of the bounding box for screenshot 1.
screenshot_width_height_2 The width and height of the bounding box for screenshot 2.
screenshot_width_height_3 The width and height of the bounding box for screenshot 3.
screenshot_width_height_4 The width and height of the bounding box for screenshot 4.
application_device_type

Many-to-many relationship between applications and device types. Associates applications with the devices with which they are compatible.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
application_id Y Foreign key to the application table.
device_type_id Y Foreign key to the device_type table.
applicationpopularityper_genre

This table ranks popular content for each storefront and genre. The data is limited to the most popular 1000 items.

Name Key Description
export_date The date this row was exported, in milliseconds since the UNIX Epoch.
storefront_id Y The storefront in which this content is ranked.
genre_id Y The genre in which this content is ranked.
application_id Y The iTunes ID for this application.
application_rank The rank of this content in the given storefront and genre, (lower is better)
application_price

The retail price of an application.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
application_id Y Foreign key to the application table.
retail_price Retail price of the application, or null if the application is not available.
currency_code The ISO3A currency code.
storefront_id Y Foreign key to the storefront table.
artist

Artist metadata. Unlike other Content and Join tables, this artist table contains all the artists, regardless of availability of the artist’s contents in any given country of interest.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y The iTunes ID for this artist.
name Native name of this artist.
search_terms Space separated list of keywords, useful for searching this artist.
is_actual_artist Specifies whether the artist is a really searchable artist. Value is “1” or “0”. The partner can ignore artists with value 0.
view_url URL to view the artist in the iTunes Store.
artist_type_id Foreign key to the artist_type table.
artist_application

Associates applications with their artists (or authors). Every application has exactly one artist.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table
application_id Y Foreign key to the application table.
artist_collection

Many-to-many relationship between artists and collections. Only primary artists are included.

Every collection has at least one artist and can have multiple artists. One artist can participate in multiple collections.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table.
collection_id Y Foreign key to the collection table.
is_primary_artist Binary flag to specify whether this artist participates in this album as its primary artist. The primary artist name is displayed in the store.
role_id Foreign key to the role table.
artist_match

Mappings from the iTunes internal artist_id to external identifiers such as AMG identifiers.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table.
amg_artist_id Numeric identifier for an artist in the AMG database, stripped of its leading identifying character and leading whitespace.
amg_video_artist_id Numeric identifier for a video artist in the AMG database, stripped of its leading identifying character and leading whitespace.
artist_song

Many-to-many relationship between artists and songs. Only primary artists are included.

Every song has at least one artist and can have multiple artists. One artist can participate in multiple songs.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table.
song_id Y Foreign key to the song table.
artist_translation

The translation string for artist names for a specific language.

A translation string for artist is optional. Currently only some artists have translations. The artist_translation table is connected to the artist table through artist_id.

Specify a unique translation string through a combination of <artist_id, language_code,=”” is_pronunciation,=”” translation_type_id=””>. These four fields constitute the compound key for this table. This means that multiple translation strings can be defined for an artist by each language, translation type, and whether it is pronunciation or not.

All records in this table have 4 in translation_type_id field.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table.
language_code Y Name of the language specified in ISO 639-1 two-character language code. For example, “EN” for English, “JA” for Japanese, “FR” for French.
is_pronunciation Y Binary flag to specify whether this translation is for pronunciation (for example, furigana for Japanese) of the name.
translation Translated name of artist.
translation_type_id Y Foreign key to the translation_type table.
artist_type

Artist type metadata. Defines all artist types; including musicians, TV shows, actors, iPhone developers, and authors.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
artist_type_id Foreign key to the artist_type table.
name Name of the type.
primary_media_type_id The primary media for artists of this type.
artist_video

Many-to-many relationship between artists and videos. Only primary artists are included.

Every video has at least one artist and can have multiple artists. One artist can participate in multiple collections.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
artist_id Y Foreign key to the artist table.
video_id Y Foreign key to the video table.
is_primary_artist Binary flag to specify whether this artist participates in this video as its primary artist. The primary artist name is displayed in the store.
role_id Foreign key to the role table.
collection

Album, TV Season, and Audiobook metadata. A collection can contain multiple song, video, and audiobook tracks.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y The iTunes ID for this collection.
name Native name of collection.
title_version Version name of this collection. Optional. Used for when different versions of the collection exist, such as “Bonus Track”, “Live”, or “Remastered”.
search_terms Space separated list of keywords, useful for searching the album. Optional.
parental_advisory_id Foreign key to the parental_advisory table.
artist_display_name Artist name of the album. Used when the system-generated artist name needs to be overridden. Optional.
view_url URL to view the album in the store.
artwork_url URL to view cover art of this album in the store.
original_release_date Date of album release date in “yyyy mm dd” format.
itunes_release_date Release date in iTunes in “yyyy mm dd” format.
label_studio Sub-label name to produce this album. Not displayed in the store.
content_provider Company name in English alphabet to provide this album. This name should not be used for display purpose. Not displayed in the store.
copyright Copyright notice string. This is often null. Optional.
pline Copyright performance right string. String displayed in the store.
media_type_id Foreign key to the media_type table.
is_compilation Binary flag to specify whether this is a compilation of songs from multiple artists.
collection_type_id Y Foreign key to the collection_type table.
collection_match

Mappings from the iTunes internal collection_id to external identifiers such as the UPC and AMG album identifiers.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y
upc UPC of album.
amg_album_id Identifier for an album in the AMG database, stripped of its leading identifying character and leading whitespace.
collection_price

The retail price of the collection.

The collection_price table is connected to the collection table through collection_id.

Specify a unique price through a combination of <collection_id, storefront_id=””>. These two fields constitute the compound key for this table. This means that multiple prices for an album can be created for each storefront.

A collection_id that has no entry in the collection_price table for a given storefront, or that has a null value in the retail_price column, should be considered unavailable for sale in that storefront.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y Foreign key to the collection table.
retail_price Retail price of the product, or null if the product is unavailable.
storefront_id Y Foreign key to the storefront table.
currency_code Name of the currency as specified in ISO 4217 three-character code. For example, “USD” for U.S. Dollar, “JPY” for Japanese Yen, “EUR” for Euro.
availability_date Not used.
hq_price The retail price of the high quality, DRM-free (iTunes Plus) album, or null if not available.
collection_song

Many-to-many relationship between collections and songs. Most of the songs are included only in one collection.

Every collection has at least one song or video. There is no empty collection. Every song belongs to at least one collection. There is no standalone song without its collection.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y Foreign key to the collection table.
song_id Y Foreign key to the song table.
is_primary_collection If “1”, identifies the collection in this record as this video’s primary collection.
track_number The relative number of this song in this disk.
volume_number Relative number of the disk where this song belongs to collection.
preorder_only Binary flag to specify whether this song is available only for pre-order.
collection_translation

The translation string for the collection names for a specific language.

The translation string for collection is optional. Currently only some collections have translations. The collection_translation table is connected to the collection table through collection_id.

Specify a unique translation string through a combination of <collection_id, language_code,=”” is_pronunciation,=”” translation_type_id=””>. These four fields constitute the compound key for this table. This means that multiple translation strings can be defined for a collection by each language, translation type, and whether it is pronunciation or not.

All records in this table have either TitleVersion (2) or Name (4) in translation_type_id.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y Foreign key to the collection table.
language_code Y Name of the language specified in ISO 639-1 two-character language code. For example, “EN” for English, “JA” for Japanese, “FR” for French.
is_pronunciation Y Binary flag to specify whether this translation is for pronunciation (for example, furigana for Japanese) of the name.
translation Translated name of collection.
translation_type_id Y Foreign key to the translation_type table.
collection_type

The type of collection (TV season, album, and so on).

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_type_id Y The iTunes ID for this collection type.
name Name of the type.
collection_video

Many-to-many relationship between collections and videos. Every collection has at least one song or video. There are no empty collections.

A video can be standalone with no parent collection. Single music video has no parent. But video can also be included in collections. For example, video album is a collection with multiple videos in it. And bonus video is typically a video contained in a music album (for free).

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
collection_id Y Foreign key to the collection table.
video_id Y Foreign key to the video table.
track_number The relative number of this song in this disk.
volume_number Relative number of the disk where this song belongs to collection.
preorder_only Binary flag to specify whether this video is available only for pre-order.
device_type

Device type metadata. Specifies the types of devices currently available (for example, iPhone and iPod touch).

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
device_type_id Y Foreign key to the device_type table.
name Name of the type.
genre

Genre name and its structure. All music genres are represented in a hierarchical manner starting from genre 34 Music.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
genre_id Y The iTunes ID for this genre.
parent_id ID of parent genre.
name Name of the genre.
genre_application

Genre information for the application. Associates an application with one or more categories. There is only one primary genre for each application.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
genre_id Y Foreign key to the genre table.
application_id Y Foreign key to the application table.
is_primary Set to 1 if this association is the primary one.
genre_artist

Genre information of artists. There is only one primary genre for each artist.

An artist can have at most one primary genre and multiple non-primary genres. All artists have at least one genre associated with them.

But many less-frequently used artists (for example, a percussionist in one classical song) tend to have no primary genre and tend to have unknown genre.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
genre_id Y Foreign key to the genre table.
artist_id Y Foreign key to the artist table.
is_primary_genre Binary flag to specify whether this genre is the artist’s primary genre.
genre_collection

Genre information of a collection. There is only one primary genre for each collection.

All collections have one primary genre. Some collections have multiple non-primary genres.

Name Key Description
export_date The date of export for this record, in milliseconds since the UNIX Epoch.
genre_id Y Foreign key to the genre table.
collection_id Y Foreign key to the collection table.
is_primary_collection Binary flag to specify whether this genre is the collection’s primary genre.
genre_imix

A join table defining the relationship between an imix and the genres it is associated with. This table may be empty or incomplete temporarily while we work on exposing this data.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
genre_id Foreign key to genre.
imix_id Foreign key to imix.
genre_video

Genre information of video. There is only one primary genre for each video.

Video can have, at most, one primary genre and multiple non-primary genres. Any video has at least one genre associated with it.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
genre_id Y Foreign key to the genre table.
collection_id Y Foreign key to the collection table.
is_primary_genre Binary flag to specify whether this genre is the video’s primary genre.
key_value

Utility file to store metadata to the specific EPF export. Each record is a key-value pair. For example, the schema version number and date of the last full mode data dump are included.

Key is a predefined set of parameters. Partner ingester systems should read this file to get meta-level information for this set.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
key_ Y Name of the parameter.
value_ Value of the key. The format is different for each key.

The table below shows keys currently used.

Key Value
exportVersion Version number of the schema of this EPF export. All values are integers.
lastFullExportDate Date when the last full-mode export was generated. If this record exists in a given export, then the export should be considered a full export, otherwise this export is an incremental export.
imix_type

An imix can be one of two types: regular, or a Nike Sport iMix.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
imix_type_id
name The name of this imix_type
imix

Describes iTunes Music Store iMixes uploaded by users.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
imix_id The primary identifier of this iMix.
title The title of the iMix, provided by the user.
description The iMix notes provided by the user.
storefront_id The storefront in which this iMix is available.
rating_average The time-decayed user-voted star-rating, out of a possible five stars.
rating_count The number of user-voted star-ratings.
itunes_release_date The date this iMix was uploaded by the user.
imix_type_id Foreign key to the imix_type table.
view_url URL to visit this iMix in the iTunes Store.
media_type

Types of products.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
mediatype_id Y The iTunes ID for this media type.
name The name of the media type/
mix

A mix is sublist of mix_collection.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
mix_id The primary ID of this mix.
mix_collection_id Foreign key to the mix_collection in which this mix lives. May be null.
name The title of this mix.
description The description for this mix.
rank The storefront of this mix with respect to the mix_collection.
view_url The URL to view this mix on the iTunes Store.
mix_collection

A mix_collection represents iTunes Store content such as Essentials, Celebrity Playlists, and Athlete Inspirations. A mix_collection is NOT a join to the collection table; it defines a collection of mixes.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
mix_collection_id The primary ID of this mix collection.
title The title of this mix.
storefront_id The storefront of this mix.
parental_advisory_id Foreign key to parental_advisory, representing whether this is explicit or not.
mix_category_name The category name for this mix.
mix_type_id Foreign key to mix_type.
itunes_release_date The date this mix_collection was created.
view_url The URL to view this mix on the iTunes Store.
artwork_url_large A URL to view the mix_collection artwork, in large size.
artwork_url_small A URL to view the mix_collection artwork, in small size.
mix_type

The type of a mix – for example, Essentials, New Music Monthly, Celebrity Playlists, or Athlete Inspiration.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
mix_type_id
name The name of this mix_type.
parental_advisory

The type of parental advisory status. The basic advisories are “Explicit”, “Not Explicit”, and “Cleaned” for content that has been scrubbed of its Explicit content.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
Y Primary key for this table.
name Usually
role

The name of the artist role.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
role_id Y The iTunes ID for this role.
name Name of the role.
song

Song metadata. In most cases, one song is contained only in one collection. But in some cases, one song is shared by multiple collections.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
song_id Y The iTunes ID for this song.
name Native name of the song.
title_version Version name of this song. Optional. Used for when different versions of the song exist, like “Live” and “Karaoke”.
search_terms Space separated list of keywords, useful for searching the song. Optional.
parental_advisory_id Foreign key to the parental_advisory table.
artist_display_name Artist name of the song. Used when the system-generated artist name needs to be overridden. Optional.
collection_display_name Name of the default collection. Which collection is displayed is undefined if multiple collections are associated with this song.
view_url URL to view the song in the store.
original_release_date Date of album release date in “yyyy mm dd” format.
itunes_release_date Release date in iTunes in “yyyy mm dd” format.
track_length Length of the song in milliseconds.
copyright Copyright notice string. This is often null. Optional.
p_line Copyright performance right string. String displayed in the store.
preview_url A URL to a short (30-second) preview of this song.
preview_length The length of the preview, in milliseconds.
song_imix

Join table between the song and imix tables representing songs that appear on an iMix.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
song_id Foreign key to song.
imix_id Foreign key to imix.
song_match

Mappings from the iTunes internal song_id to external identifiers such as AMG identifiers.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
song_id Y Foreign key to the song table.
isrc ISRC for song.
amg_track_id Identifier for a song in the AMG database, stripped of its leading identifying character and leading whitespace.
song_mix

Join table between the song and mix tables representing the songs that appear on each mix.

Name Key Description
export_date The date this application was exported, in milliseconds since the UNIX Epoch.
song_id Foreign key to song.
mix_id Foreign key to mix.
songpopularityper_genre

This table ranks popular content for each storefront and genre. The data is limited to the most popular 1000 items.

Name Key Description
export_date The date this row was exported, in milliseconds since the UNIX Epoch.
storefront_id Y The storefront in which this content is ranked.
genre_id Y The genre in which this content is ranked.
song_id Y The iTunes ID for this song.
song_rank The rank of this content in the given storefront and genre, (lower is better)
song_price

The retail price of the song.

The song_price table is connected to the song table through song_id.

Specify a unique price through a combination of <song_id, storefront_id=””>. These two fields constitute the compound key for this table. This means that multiple prices for a song can be created for each storefront.

A song_id that has no entry in the song_price table for a given storefront, or that has a null value in the retail_price column, should be considered unavailable for sale in that storefront.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
song_id Y Foreign key to the song table.
retail_price Retail price of the product in iTunes Standard Quality format, or null if the product is unavailable as Standard Quality.
storefront_id Y Foreign key to the storefront table.
currency_code Name of the currency as specified in ISO 4217 three-character code. For example, “USD” for U.S. Dollar, “JPY” for Japanese Yen, “EUR” for Euro.
availability_date Not used.
hq_price The retail price of the high quality, DRM-free (iTunes Plus) song, or null if not available.
song_translation

The translation string for song names for a specific language.

The translation string for a song is optional. Currently only some songs have translations. The song_translation table is connected to the song table through song_id.

Specify a unique translation string through a combination of <song_id, language_code,=”” is_pronunciation,=”” translation_type_id=””>. These four fields constitute the compound key for this table. This means that multiple translation strings can be defined for a song by each language, translation type, and whether it is pronunciation or not.

All records in this table have either TitleVersion (2) or Name (4) in translation_type_id.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
song_id Y Foreign key to the song table.
language_code Y Name of the language specified in ISO 639-1 two-character language code. For example, “EN” for English, “JA” for Japanese, “FR” for French.
is_pronunciation Y Binary flag to specify whether this translation is for pronunciation (for example, furigana for Japanese) of the name.
translation Translated name of song.
translation_type_id Y Foreign key to the translation_type table.
storefront

Identifier number of each country storefront.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
storefront_id Y The iTunes ID for this storefront.
country_code Three-character country code for this storefront.
name Name of the country.
translation_type

The type of translation string.

Currently only TitleVersion (2) and Name (4) are used. A record in artist_translation has only Name (4). A record in collection_translation has either TitleVersion (2) or Name (4).

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
translation_type_id Y The iTunes ID for this translation type.
name Name of the type.
video

Video metadata. In most cases, one video is contained only in one collection. But in some cases, one video is shared by multiple collections. (Music videos, movies, short films, and TV episodes.)

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
video_id Y The iTunes ID for this video.
name Native name of the video.
title_version Version name of this video. Optional. Used for when different versions of the video exist, like “Live” and “Director’s Cut”.
search_terms Space separated list of keywords, useful for searching the video. Optional.
parental_advisory_id Foreign key to the parental_advisory table.
artist_display_name Artist name of the video. Used when the system-generated artist name needs to be overridden. Optional.
collection_display_name Name of the default collection. Which collection is displayed is undefined if multiple collections are associated with this song.
media_type Type of media specified by media_type_id.
view_url URL to view the video in the store.
artwork_url URL to view cover art of this album in the store.
original_release_date Date of album release date in “yyyy mm dd” format.
itunes_release_date Release date in iTunes in “yyyy mm dd” format.
studio_name Name of studio of this video.
network_name Name of the TV network.
content_provider Company name in English alphabet to provide this album. This name should not be used for display purpose. Not displayed in the store.
track_length Length of the song in milliseconds.
copyright Copyright notice string. Often it is empty. Optional.
p_line Copyright performance right string. String displayed in the store.
short_description Short description of the video.
long_description Long description of the video.
episode_production_number The episode number of this video in a TV series.
video_match

Mappings from the iTunes internal video_id to external identifiers such as AMG identifiers.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
video_id Y Foreign key to the video table.
upc UPC for video.
isrc ISRC for music video.
amg_video_id Identifier for a video in the AMG database, stripped of its leading identifying character and leading whitespace.
isan ISAN for video.
video_price

The retail price of the video.

The price table is connected to the video table through video_id.

Specify a unique price through a combination of <video_id, storefront_id=””>. These two fields constitute the compound key for this table. This means that unique price for a video can be created for each storefront.

A video that has no entry in the video_price table for a given storefront, or that has a null value in the retail_price column, should be considered unavailable for sale in that storefront.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
video_id Y Foreign key to the video table.
retail_price A retail price for the video, or null if the product is unavailable in any form. This field exists for backwards-compatibility and to quickly indicate the availability of the video in some form.
storefront_id Y Foreign key to the storefront table.
currency_code Name of the currency as specified in ISO 4217 three-character code. For example, “USD” for U.S. Dollar, “JPY” for Japanese Yen, “EUR” for Euro.
availability_date Not used.
sd_price Retail price of the standard-definition version of the video, or null if not available.
hq_price The retail price of the high quality, DRM-free (iTunes Plus) video, or null if not available.
lc_rental_price The retail rental price of the Low-Complexity (playable on iPod) video, or null if not available.
sd_rental_price The retail rental price of the Standard-Definition video, or null if not available.The retail rental price of the Standard-Definition video, or null if not available.
hd_rental_price The retail rental price of the High-Definition video, or null if not available.
video_translation

The translation string for video names for a specific language.

The translation string for video is optional. The video_translation table is connected to video table through video_id.

Specify a unique translation string through a combination of <video_id, language_code,=”” is_pronunciation,=”” translation_type_id=””>. These four fields constitute the compound key for this table. This means that multiple translation strings can be defined for a video by each language, translation type, and whether it is pronunciation or not.

All records in this table have either Title_Version (2) or Name (4) in translation_type_id.

Name Key Description
export_date The date this record was exported, in milliseconds since the UNIX Epoch.
video_id Y Foreign key to the video table.
language_code Y Name of the language specified in ISO 639-1 two-character language code. For example, “EN” for English, “JA” for Japanese, “FR” for French.
is_pronunciation Y Binary flag to specify whether this translation is for pronunciation (for example, furigana for Japanese) of the name.
translation Translated name of video.
translation_type_id Y Foreign key to the translation_type table.

Legal

IMPORTANT: The Apple Enterprise Partner Feed and data incorporated therein (“EPF”) is supplied to you by Apple Inc. (“Apple”) in consideration of your agreement to the following terms, and your use, installation, modification, or redistribution of the EPF constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify, or redistribute the EPF.

In consideration of your agreement to abide by the following terms, and subject to these terms, Apple grants you a personal, non-exclusive, non-transferable, non-sublicenseable license to use, reproduce, modify, and redistribute the EPF solely in connection with links to the iTunes Store. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein. The EPF is provided by Apple on an “AS IS” basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE EPF OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR MATERIALS. APPLE DOES NOT WARRANT THAT THE EPF WILL MEET YOUR REQUIREMENTS, THAT THEIR OPERATION WILL BE UNINTERRUPTED OR ERROR-FREE, THAT DEFECTS IN THE MATERIALS WILL BE CORRECTED, OR THAT THE EPF WILL BE COMPATIBLE WITH FUTURE APPLE PRODUCTS, SOFTWARE, OR SERVICES. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE WILL CREATE A WARRANTY.

IN NO EVENT SHALL APPLE BE LIABLE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, INABILITY TO USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE EPF, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This agreement and your use of the EPF are governed by California law.

Affiliate may use certain promotional content as may be provided by Apple, including previews of songs and music videos, album art, and App icons (“Promo Content”), for the purposes of promoting the subject of the Promo Content; provided such Promo Content: (i) is placed only on pages that promote the content on which the Promo Content is based; (ii) is proximate to a “Download on iTunes” or “Available on the App Store” badge (as approved by Apple) that acts as a link directly to pages within iTunes or the App Store where consumers can purchase the promoted content; (iii) includes attribution indicating the Promo Content was “provided courtesy of iTunes” if such Promo Content includes song or music video previews; (iv) is streamed only, and not downloaded, saved, cached, or synchronized with video, if such Promo Content includes song or music video previews; (v) is not used for independent entertainment value apart from its promotional purpose; and (vi) is not used to promote any other goods or services. Affiliate acknowledges that Apple provides the Promo Content “as is,” and disclaims any and all representations or warranties, including, but not limited to, non-infringement. Affiliate shall forward any claims received in connection with the Promo Content to Apple immediately upon receipt, and will remove any Promo Content immediately upon request from Apple. This agreement and your use of Promo Content are governed by California law.