XML reference
This page covers the XML structure and code examples for LabelGrid’s DDEX import. For metadata requirements, contributor roles, splits, and formatting standards, see Release metadata, Track metadata, and Validation.
All examples use the ERN 4.3 format. PartyReference values in actual output are MD5-hashed identifiers (e.g., P8A1B2C3D4E5F6...). The examples below use human-readable names for clarity.
ERN 4.3 message structure
Section titled “ERN 4.3 message structure”Every DDEX delivery is a NewReleaseMessage XML document with five main sections:
NewReleaseMessage├── MessageHeader — Sender, recipient, and message ID├── PartyList — All artists, contributors, and rights holders├── ResourceList — Audio files and artwork with technical details├── ReleaseList — The album/single release and individual tracks└── DealList — Commercial terms, territories, and datesThe root element includes the ERN 4.3 namespace and schema location:
<?xml version="1.0" encoding="UTF-8"?><NewReleaseMessage xmlns:ern="http://ddex.net/xml/ern/43" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ddex.net/xml/ern/43 http://ddex.net/xml/ern/43/release-notification.xsd" AvsVersionId="3" LanguageAndScriptCode="en">| Attribute | Description |
|---|---|
xmlns:ern | ERN 4.3 namespace URI |
xsi:schemaLocation | Schema for validation |
AvsVersionId | Allowed value set version |
LanguageAndScriptCode | Default language of the message |
MessageHeader
Section titled “MessageHeader”Identifies the sender (your organization), the recipient (the DSP), and a unique message ID.
<MessageHeader> <MessageThreadId>20250815-neonsounds-001</MessageThreadId> <MessageId>20250815-neonsounds-001-msg01</MessageId> <MessageSender> <PartyId>PADPIDA2025010100A</PartyId> <PartyName><FullName>Neon Sounds</FullName></PartyName> </MessageSender> <MessageRecipient> <PartyId>PADPIDA2014120301U</PartyId> <PartyName><FullName>Spotify</FullName></PartyName> </MessageRecipient> <MessageCreatedDateTime>2025-08-01T10:30:00Z</MessageCreatedDateTime></MessageHeader>| Element | Description |
|---|---|
MessageThreadId | Groups related messages (e.g., updates to the same release) |
MessageId | Unique identifier for this specific message |
MessageSender | Your organization’s DDEX Party ID and name |
MessageRecipient | The receiving DSP’s Party ID and name |
MessageCreatedDateTime | ISO 8601 timestamp of when the message was created |
PartyList
Section titled “PartyList”All entities referenced elsewhere in the XML — the record label, artists, contributors, and publishers — are defined here. Each party gets a PartyReference used to link them throughout the document.
Record label
Section titled “Record label”<Party> <PartyReference>P_LABEL_NEONSOUNDS</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Neon Sounds LLC</FullName> </PartyName> <PartyId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:label:100</ProprietaryId> </PartyId></Party>Artists
Section titled “Artists”Artists can include standard identifiers like ISNI:
<!-- Primary Artist with ISNI --><Party> <PartyReference>P_ARTIST_LUNAWAVE</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Luna Wave</FullName> </PartyName> <PartyId> <ISNI>0000000012345678</ISNI> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:artist:200</ProprietaryId> </PartyId></Party>
<!-- Featured Artist (no ISNI) --><Party> <PartyReference>P_ARTIST_DJKODA</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>DJ Koda</FullName> </PartyName> <PartyId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:artist:201</ProprietaryId> </PartyId></Party>Contributors
Section titled “Contributors”Contributors (songwriters, producers, engineers) can include IPI identifiers:
<!-- Songwriter / Composer / Producer with IPI --><Party> <PartyReference>P_CONTRIB_SARAHCHEN</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Sarah Chen</FullName> </PartyName> <PartyId> <IpiNameNumber>00123456789</IpiNameNumber> </PartyId></Party>
<!-- Mixing Engineer (no IPI) --><Party> <PartyReference>P_CONTRIB_MIXMASTER</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Mike Torres</FullName> </PartyName></Party>Publishers
Section titled “Publishers”<Party> <PartyReference>P_PUBLISHER_NEONSOUNDS</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Neon Sounds Publishing</FullName> </PartyName></Party>Supported party identifiers:
| Identifier | Element | Format |
|---|---|---|
| ISNI | <ISNI> | 16 characters (15 digits + check digit) |
| IPI | <IpiNameNumber> | Zero-padded to 11 digits |
| Proprietary | <ProprietaryId> | LabelGrid internal reference |
ResourceList
Section titled “ResourceList”Contains all audio files and artwork. Each resource gets a ResourceReference (e.g., A1, A2) used to link it to releases.
Sound recording
Section titled “Sound recording”<SoundRecording> <ResourceReference>A1</ResourceReference> <Type>MusicalWorkSoundRecording</Type>
<!-- ISRC and P-Line inside SoundRecordingEdition --> <SoundRecordingEdition> <ResourceId> <ISRC>USNS12500001</ISRC> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:track:12345</ProprietaryId> </ResourceId> <PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine>
<!-- Technical details of the audio file --> <TechnicalDetails> <TechnicalResourceDetailsReference>T1</TechnicalResourceDetailsReference> <DeliveryFile> <Type>AudioFile</Type> <AudioCodecType UserDefinedValue="WAV">UserDefined</AudioCodecType> <NumberOfChannels>2</NumberOfChannels> <SamplingRate>44100</SamplingRate> <BitsPerSample>16</BitsPerSample> <File> <URI>resources/198765432109_01_01.wav</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>d41d8cd98f00b204e9800998ecf8427e</HashSumValue> </HashSum> </File> </DeliveryFile> </TechnicalDetails> </SoundRecordingEdition>
<!-- ISWC goes on parent SoundRecording, NOT inside Edition --> <WorkId> <ISWC>T3351864278</ISWC> </WorkId>
<!-- Track title --> <DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle>
<!-- Display artist string --> <DisplayArtistName ApplicableTerritoryCode="Worldwide">Luna Wave feat. DJ Koda</DisplayArtistName>
<!-- Artist roles --> <DisplayArtist SequenceNumber="1"> <ArtistPartyReference>P_ARTIST_LUNAWAVE</ArtistPartyReference> <DisplayArtistRole>MainArtist</DisplayArtistRole> </DisplayArtist> <DisplayArtist SequenceNumber="2"> <ArtistPartyReference>P_ARTIST_DJKODA</ArtistPartyReference> <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> </DisplayArtist>
<!-- Contributors --> <Contributor SequenceNumber="1"> <ContributorPartyReference>P_CONTRIB_SARAHCHEN</ContributorPartyReference> <Role>ComposerLyricist</Role> </Contributor> <Contributor SequenceNumber="2"> <ContributorPartyReference>P_CONTRIB_SARAHCHEN</ContributorPartyReference> <!-- "Producer" display role maps to DDEX role "StudioProducer" --> <Role>StudioProducer</Role> </Contributor> <Contributor SequenceNumber="3"> <ContributorPartyReference>P_CONTRIB_MIXMASTER</ContributorPartyReference> <Role>MixingEngineer</Role> </Contributor> <Contributor SequenceNumber="4"> <ContributorPartyReference>P_PUBLISHER_NEONSOUNDS</ContributorPartyReference> <Role>MusicPublisher</Role> </Contributor>
<!-- Copyright ownership --> <WorkRightsController> <RightsControllerPartyReference>P_LABEL_NEONSOUNDS</RightsControllerPartyReference> <RightsControlType>RightsController</RightsControlType> <RightSharePercentage>100.00</RightSharePercentage> <Territory>Worldwide</Territory> </WorkRightsController>
<!-- Duration in ISO 8601 format --> <Duration>PT00H04M32S</Duration>
<!-- Parental warning --> <ParentalWarningType>NotExplicit</ParentalWarningType>
<!-- Language of performance --> <LanguageOfPerformance>en</LanguageOfPerformance></SoundRecording>Key points:
ISRCandPLinego insideSoundRecordingEditionISWCgoes on the parentSoundRecordingviaWorkId(not inside the Edition)DisplayTitleTextcontains only the base title (no mix version)- The
SubTitleelement insideDisplayTitleholds the mix version (empty if none) - The “Producer” display role maps to the DDEX role
StudioProducer - Audio file URI follows the pattern:
resources/{UPC}_{disc}_{track}.{ext}
Cover art
Section titled “Cover art”<Image> <ResourceReference>A2</ResourceReference> <Type>FrontCoverImage</Type> <ResourceId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:release:67890:cover</ProprietaryId> </ResourceId> <TechnicalDetails> <TechnicalResourceDetailsReference>T2</TechnicalResourceDetailsReference> <ImageCodecType>JPEG</ImageCodecType> <ImageHeight>3000</ImageHeight> <ImageWidth>3000</ImageWidth> <File> <URI>resources/198765432109.jpg</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4</HashSumValue> </HashSum> </File> </TechnicalDetails></Image>ReleaseList
Section titled “ReleaseList”Contains the main release (the album or single) and individual track releases. The main release links to resources via ResourceGroup.
Main release
Section titled “Main release”<Release> <ReleaseReference>R0</ReleaseReference>
<!-- ReleaseType comes before ReleaseId in ERN 4.3 --> <ReleaseType>Single</ReleaseType>
<ReleaseId> <ICPN>198765432109</ICPN> <CatalogNumber Namespace="PADPIDA2025010100A">NS-2025-042</CatalogNumber> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:release:67890</ProprietaryId> </ReleaseId>
<DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle>
<DisplayArtistName ApplicableTerritoryCode="Worldwide">Luna Wave feat. DJ Koda</DisplayArtistName> <DisplayArtist SequenceNumber="1"> <ArtistPartyReference>P_ARTIST_LUNAWAVE</ArtistPartyReference> <DisplayArtistRole>MainArtist</DisplayArtistRole> </DisplayArtist> <DisplayArtist SequenceNumber="2"> <ArtistPartyReference>P_ARTIST_DJKODA</ArtistPartyReference> <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> </DisplayArtist>
<ReleaseLabelReference>P_LABEL_NEONSOUNDS</ReleaseLabelReference>
<PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine> <CLine> <Year>2025</Year> <CLineText>Neon Sounds LLC</CLineText> </CLine>
<Genre> <GenreText>Electronic</GenreText> <SubGenre>Deep House</SubGenre> </Genre>
<OriginalReleaseDate>2025-08-15</OriginalReleaseDate>
<ParentalWarningType>NotExplicit</ParentalWarningType>
<!-- ResourceGroup links tracks and artwork to the release --> <ResourceGroup> <SequenceNumber>1</SequenceNumber> <ResourceGroupContentItem> <SequenceNumber>1</SequenceNumber> <ReleaseResourceReference>A1</ReleaseResourceReference> </ResourceGroupContentItem> <ResourceGroupContentItem> <SequenceNumber>2</SequenceNumber> <ReleaseResourceReference>A2</ReleaseResourceReference> </ResourceGroupContentItem> </ResourceGroup></Release>Key points:
ReleaseTypecomes beforeReleaseIdin ERN 4.3- The UPC/EAN goes into
<ICPN>insideReleaseId - Resources are linked through
ResourceGroup(notReleaseResourceReferenceList) ReleaseLabelReferencepoints to the label’sPartyReference
Track release
Section titled “Track release”Each track also gets its own TrackRelease for individual track availability on platforms:
<TrackRelease> <ReleaseReference>RT1</ReleaseReference> <ReleaseId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:track:12345</ProprietaryId> </ReleaseId>
<DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle>
<ReleaseResourceReference>A1</ReleaseResourceReference> <ReleaseLabelReference>P_LABEL_NEONSOUNDS</ReleaseLabelReference>
<Genre> <GenreText>Electronic</GenreText> <SubGenre>Deep House</SubGenre> </Genre>
<Keywords>electronic deep house chill night</Keywords></TrackRelease>DealList
Section titled “DealList”Defines the commercial terms under which the release is available. Each Deal specifies a territory, start date, commercial model, and use type.
<DealList> <ReleaseDeal> <DealReleaseReference>R0</DealReleaseReference>
<!-- Subscription streaming (e.g., Spotify Premium) --> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>SubscriptionModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms> </Deal>
<!-- Ad-supported streaming (e.g., Spotify Free) --> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>AdvertisementSupportedModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms> </Deal>
<!-- Pay-per-download (e.g., iTunes) --> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>PayAsYouGoModel</CommercialModelType> <UseType>PermanentDownload</UseType> </DealTerms> </Deal>
</ReleaseDeal></DealList>Commercial model types:
| Model | Description | Example |
|---|---|---|
SubscriptionModel | Paid subscription streaming | Spotify Premium, Apple Music |
AdvertisementSupportedModel | Free ad-supported streaming | Spotify Free, YouTube |
PayAsYouGoModel | Pay-per-download purchase | iTunes, Amazon Music |
Examples
Section titled “Examples”Complete single release
A full single-track release with one primary artist, one featured artist, and complete contributor credits.
Input metadata:
| Field | Value |
|---|---|
| Title | Midnight Run |
| Artist | Luna Wave (primary), DJ Koda (featured) |
| UPC | 198765432109 |
| Release Date | 2025-08-15 |
| Label | Neon Sounds |
| Catalogue Number | NS-2025-042 |
| Genre | Electronic / Deep House |
| C-Line | 2025 Neon Sounds LLC |
| P-Line | 2025 Neon Sounds LLC |
| Track ISRC | USNS12500001 |
| Explicit | Not Explicit |
Generated XML:
<?xml version="1.0" encoding="UTF-8"?><NewReleaseMessage xmlns:ern="http://ddex.net/xml/ern/43" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ddex.net/xml/ern/43 http://ddex.net/xml/ern/43/release-notification.xsd" AvsVersionId="3" LanguageAndScriptCode="en">
<MessageHeader> <MessageThreadId>20250815-neonsounds-001</MessageThreadId> <MessageId>20250815-neonsounds-001-msg01</MessageId> <MessageSender> <PartyId>PADPIDA2025010100A</PartyId> <PartyName><FullName>Neon Sounds</FullName></PartyName> </MessageSender> <MessageRecipient> <PartyId>PADPIDA2014120301U</PartyId> <PartyName><FullName>Spotify</FullName></PartyName> </MessageRecipient> <MessageCreatedDateTime>2025-08-01T10:30:00Z</MessageCreatedDateTime> </MessageHeader>
<PartyList> <Party> <PartyReference>P_LABEL_NEONSOUNDS</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Neon Sounds LLC</FullName> </PartyName> <PartyId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:label:100</ProprietaryId> </PartyId> </Party> <Party> <PartyReference>P_ARTIST_LUNAWAVE</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Luna Wave</FullName> </PartyName> <PartyId> <ISNI>0000000012345678</ISNI> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:artist:200</ProprietaryId> </PartyId> </Party> <Party> <PartyReference>P_ARTIST_DJKODA</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>DJ Koda</FullName> </PartyName> <PartyId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:artist:201</ProprietaryId> </PartyId> </Party> <Party> <PartyReference>P_CONTRIB_SARAHCHEN</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Sarah Chen</FullName> </PartyName> <PartyId> <IpiNameNumber>00123456789</IpiNameNumber> </PartyId> </Party> <Party> <PartyReference>P_CONTRIB_MIXMASTER</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Mike Torres</FullName> </PartyName> </Party> <Party> <PartyReference>P_PUBLISHER_NEONSOUNDS</PartyReference> <PartyName LanguageAndScriptCode="en"> <FullName>Neon Sounds Publishing</FullName> </PartyName> </Party> </PartyList>
<ResourceList> <SoundRecording> <ResourceReference>A1</ResourceReference> <Type>MusicalWorkSoundRecording</Type> <SoundRecordingEdition> <ResourceId> <ISRC>USNS12500001</ISRC> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:track:12345</ProprietaryId> </ResourceId> <PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine> <TechnicalDetails> <TechnicalResourceDetailsReference>T1</TechnicalResourceDetailsReference> <DeliveryFile> <Type>AudioFile</Type> <AudioCodecType UserDefinedValue="WAV">UserDefined</AudioCodecType> <NumberOfChannels>2</NumberOfChannels> <SamplingRate>44100</SamplingRate> <BitsPerSample>16</BitsPerSample> <File> <URI>resources/198765432109_01_01.wav</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>d41d8cd98f00b204e9800998ecf8427e</HashSumValue> </HashSum> </File> </DeliveryFile> </TechnicalDetails> </SoundRecordingEdition> <WorkId> <ISWC>T3351864278</ISWC> </WorkId> <DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle> <DisplayArtistName ApplicableTerritoryCode="Worldwide">Luna Wave feat. DJ Koda</DisplayArtistName> <DisplayArtist SequenceNumber="1"> <ArtistPartyReference>P_ARTIST_LUNAWAVE</ArtistPartyReference> <DisplayArtistRole>MainArtist</DisplayArtistRole> </DisplayArtist> <DisplayArtist SequenceNumber="2"> <ArtistPartyReference>P_ARTIST_DJKODA</ArtistPartyReference> <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> </DisplayArtist> <Contributor SequenceNumber="1"> <ContributorPartyReference>P_CONTRIB_SARAHCHEN</ContributorPartyReference> <Role>ComposerLyricist</Role> </Contributor> <Contributor SequenceNumber="2"> <ContributorPartyReference>P_CONTRIB_SARAHCHEN</ContributorPartyReference> <Role>StudioProducer</Role> </Contributor> <Contributor SequenceNumber="3"> <ContributorPartyReference>P_CONTRIB_MIXMASTER</ContributorPartyReference> <Role>MixingEngineer</Role> </Contributor> <Contributor SequenceNumber="4"> <ContributorPartyReference>P_PUBLISHER_NEONSOUNDS</ContributorPartyReference> <Role>MusicPublisher</Role> </Contributor> <WorkRightsController> <RightsControllerPartyReference>P_LABEL_NEONSOUNDS</RightsControllerPartyReference> <RightsControlType>RightsController</RightsControlType> <RightSharePercentage>100.00</RightSharePercentage> <Territory>Worldwide</Territory> </WorkRightsController> <Duration>PT00H04M32S</Duration> <ParentalWarningType>NotExplicit</ParentalWarningType> <LanguageOfPerformance>en</LanguageOfPerformance> </SoundRecording>
<Image> <ResourceReference>A2</ResourceReference> <Type>FrontCoverImage</Type> <ResourceId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:release:67890:cover</ProprietaryId> </ResourceId> <TechnicalDetails> <TechnicalResourceDetailsReference>T2</TechnicalResourceDetailsReference> <ImageCodecType>JPEG</ImageCodecType> <ImageHeight>3000</ImageHeight> <ImageWidth>3000</ImageWidth> <File> <URI>resources/198765432109.jpg</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4</HashSumValue> </HashSum> </File> </TechnicalDetails> </Image> </ResourceList>
<ReleaseList> <Release> <ReleaseReference>R0</ReleaseReference> <ReleaseType>Single</ReleaseType> <ReleaseId> <ICPN>198765432109</ICPN> <CatalogNumber Namespace="PADPIDA2025010100A">NS-2025-042</CatalogNumber> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:release:67890</ProprietaryId> </ReleaseId> <DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle> <DisplayArtistName ApplicableTerritoryCode="Worldwide">Luna Wave feat. DJ Koda</DisplayArtistName> <DisplayArtist SequenceNumber="1"> <ArtistPartyReference>P_ARTIST_LUNAWAVE</ArtistPartyReference> <DisplayArtistRole>MainArtist</DisplayArtistRole> </DisplayArtist> <DisplayArtist SequenceNumber="2"> <ArtistPartyReference>P_ARTIST_DJKODA</ArtistPartyReference> <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> </DisplayArtist> <ReleaseLabelReference>P_LABEL_NEONSOUNDS</ReleaseLabelReference> <PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine> <CLine> <Year>2025</Year> <CLineText>Neon Sounds LLC</CLineText> </CLine> <Genre> <GenreText>Electronic</GenreText> <SubGenre>Deep House</SubGenre> </Genre> <OriginalReleaseDate>2025-08-15</OriginalReleaseDate> <ParentalWarningType>NotExplicit</ParentalWarningType> <ResourceGroup> <SequenceNumber>1</SequenceNumber> <ResourceGroupContentItem> <SequenceNumber>1</SequenceNumber> <ReleaseResourceReference>A1</ReleaseResourceReference> </ResourceGroupContentItem> <ResourceGroupContentItem> <SequenceNumber>2</SequenceNumber> <ReleaseResourceReference>A2</ReleaseResourceReference> </ResourceGroupContentItem> </ResourceGroup> </Release>
<TrackRelease> <ReleaseReference>RT1</ReleaseReference> <ReleaseId> <ProprietaryId Namespace="PADPIDA2025010100A">labelgrid:track:12345</ProprietaryId> </ReleaseId> <DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Midnight Run</TitleText> <SubTitle/> </DisplayTitle> <ReleaseResourceReference>A1</ReleaseResourceReference> <ReleaseLabelReference>P_LABEL_NEONSOUNDS</ReleaseLabelReference> <Genre> <GenreText>Electronic</GenreText> <SubGenre>Deep House</SubGenre> </Genre> <Keywords>electronic deep house chill night</Keywords> </TrackRelease> </ReleaseList>
<DealList> <ReleaseDeal> <DealReleaseReference>R0</DealReleaseReference> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>SubscriptionModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms> </Deal> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>AdvertisementSupportedModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms> </Deal> <Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>PayAsYouGoModel</CommercialModelType> <UseType>PermanentDownload</UseType> </DealTerms> </Deal> </ReleaseDeal> </DealList>
</NewReleaseMessage>Multi-language titles (Japanese)
When a release has both English and Japanese metadata. All DisplayTitleText elements come first, then all DisplayTitle elements. Japanese phonetic readings use ja-Kana (mapped from internal ja-Jpan).
<!-- All DisplayTitleText elements first --><DisplayTitleText LanguageAndScriptCode="ja">夜明けの歌</DisplayTitleText><DisplayTitleText LanguageAndScriptCode="en">Song of Dawn</DisplayTitleText>
<!-- Then all DisplayTitle elements --><DisplayTitle LanguageAndScriptCode="ja"> <TitleText>夜明けの歌</TitleText> <SubTitle/></DisplayTitle><DisplayTitle LanguageAndScriptCode="en"> <TitleText>Song of Dawn</TitleText> <SubTitle/></DisplayTitle>
<!-- Japanese phonetic reading uses ja-Kana --><PartyName LanguageAndScriptCode="en"> <FullName>Yuki Tanaka</FullName></PartyName><PartyName LanguageAndScriptCode="ja-Kana"> <FullName>タナカ ユキ</FullName></PartyName>Key points:
- Group all
DisplayTitleTextelements together, then allDisplayTitleelements - Use
ja-Kanafor Japanese phonetic readings (katakana) — this is mapped from the internalja-Jpancode - Provide titles in each supported language
Remix track with mix version
When a track is a remix, the mix version goes into SubTitle and the remixer gets both a FeaturedArtist display role and an ArtisticRole of Remixer.
<SoundRecording> <ResourceReference>A1</ResourceReference> <Type>MusicalWorkSoundRecording</Type>
<SoundRecordingEdition> <ResourceId> <ISRC>GBXYZ2500042</ISRC> </ResourceId> <PLine> <Year>2025</Year> <PLineText>Deep Records</PLineText> </PLine> </SoundRecordingEdition>
<!-- DisplayTitleText uses base title only (NOT "Horizon (Koda Extended Mix)") --> <DisplayTitleText LanguageAndScriptCode="en">Horizon</DisplayTitleText> <!-- Mix version goes into SubTitle --> <DisplayTitle LanguageAndScriptCode="en"> <TitleText>Horizon</TitleText> <SubTitle>Koda Extended Mix</SubTitle> </DisplayTitle>
<DisplayArtistName ApplicableTerritoryCode="Worldwide">Luna Wave</DisplayArtistName>
<!-- Primary artist --> <DisplayArtist SequenceNumber="1"> <ArtistPartyReference>P_ARTIST_LUNAWAVE</ArtistPartyReference> <DisplayArtistRole>MainArtist</DisplayArtistRole> </DisplayArtist>
<!-- Remixer: uses FeaturedArtist for display + ArtisticRole=Remixer --> <DisplayArtist SequenceNumber="2"> <ArtistPartyReference>P_ARTIST_DJKODA</ArtistPartyReference> <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> <ArtisticRole>Remixer</ArtisticRole> </DisplayArtist>
<Duration>PT00H06M45S</Duration> <ParentalWarningType>NotExplicit</ParentalWarningType></SoundRecording>Key points:
DisplayTitleTextcontains only the base title — never the concatenated form like “Horizon (Koda Extended Mix)”- The mix version goes into
SubTitleinsideDisplayTitle - The remixer needs both
DisplayArtistRole=FeaturedArtistandArtisticRole=Remixer - If multi-language titles are used, localize the mix version in each language
Dolby Atmos (stereo + immersive)
When a track has both stereo and Dolby Atmos versions, the SoundRecording contains two SoundRecordingEdition elements — one NonImmersiveEdition and one ImmersiveEdition. Each must have its own unique ISRC.
<SoundRecording> <ResourceReference>A1</ResourceReference> <Type>MusicalWorkSoundRecording</Type>
<!-- Stereo edition (marked NonImmersive when Dolby also exists) --> <SoundRecordingEdition> <Type>NonImmersiveEdition</Type> <ResourceId> <ISRC>USNS12500001</ISRC> </ResourceId> <PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine> <TechnicalDetails> <TechnicalResourceDetailsReference>T1</TechnicalResourceDetailsReference> <DeliveryFile> <Type>AudioFile</Type> <AudioCodecType UserDefinedValue="WAV">UserDefined</AudioCodecType> <NumberOfChannels>2</NumberOfChannels> <SamplingRate>44100</SamplingRate> <BitsPerSample>16</BitsPerSample> <File> <URI>resources/198765432109_01_01.wav</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>d41d8cd98f00b204e9800998ecf8427e</HashSumValue> </HashSum> </File> </DeliveryFile> </TechnicalDetails> </SoundRecordingEdition>
<!-- Dolby Atmos / Immersive edition (separate ISRC required) --> <SoundRecordingEdition> <Type>ImmersiveEdition</Type> <ResourceId> <!-- Must be a different ISRC from the stereo edition --> <ISRC>USNS12500002</ISRC> </ResourceId> <PLine> <Year>2025</Year> <PLineText>Neon Sounds LLC</PLineText> </PLine> <TechnicalDetails> <!-- Technical ref suffixed with "I" for immersive --> <TechnicalResourceDetailsReference>T1I</TechnicalResourceDetailsReference> <DeliveryFile> <Type>AudioFile</Type> <AudioCodecType UserDefinedValue="DolbyAtmos">UserDefined</AudioCodecType> <NumberOfChannels>8</NumberOfChannels> <SamplingRate>48000</SamplingRate> <BitsPerSample>24</BitsPerSample> <File> <!-- Dolby file uses "-dolby" suffix --> <URI>resources/198765432109_01_01-dolby.wav</URI> <HashSum> <Algorithm>MD5</Algorithm> <HashSumValue>f1e2d3c4b5a6f1e2d3c4b5a6f1e2d3c4</HashSumValue> </HashSum> </File> </DeliveryFile> </TechnicalDetails> </SoundRecordingEdition>
<DisplayTitleText LanguageAndScriptCode="en">Midnight Run</DisplayTitleText> <!-- ... titles, artists, contributors, duration, parental warning ... --></SoundRecording>Key points:
- The stereo edition gets
<Type>NonImmersiveEdition</Type>only when a Dolby edition also exists - The Dolby edition uses
<Type>ImmersiveEdition</Type> - Each edition must have a different ISRC
- The immersive
TechnicalResourceDetailsReferenceis suffixed withI(e.g.,T1I) - The Dolby audio file URI uses a
-dolbysuffix - Dolby Atmos requires minimum 6 channels (5.1 surround), typically 8 channels
Copyright owners with territory splits
Multiple copyright owners with regional percentage splits. The default element is WorkRightsController. When no copyright owners are set, the record label is used as the default rights controller at 100%.
<!-- Copyright owner: 60% worldwide --><WorkRightsController> <RightsControllerPartyReference>P_OWNER_PUBLISHERA</RightsControllerPartyReference> <RightsControlType>RightsController</RightsControlType> <RightSharePercentage>60.00</RightSharePercentage> <Territory>Worldwide</Territory></WorkRightsController>
<!-- Copyright owner: 40% worldwide --><WorkRightsController> <RightsControllerPartyReference>P_OWNER_PUBLISHERB</RightsControllerPartyReference> <RightsControlType>RightsController</RightsControlType> <RightSharePercentage>40.00</RightSharePercentage> <Territory>Worldwide</Territory></WorkRightsController>Key points:
- Percentages must total exactly 100% per territory
- Use
Worldwidefor global coverage, or specific ISO 3166-1 alpha-2 territory codes RightSharePercentageuses two decimal places (e.g.,60.00)- One specific outlet uses
ResourceRightsControllerinstead ofWorkRightsController
Territory-specific deal
When a release is available only in specific countries rather than worldwide:
<Deal> <DealTerms> <!-- Available only in US, GB, DE, FR, and AU --> <TerritoryCode>US</TerritoryCode> <TerritoryCode>GB</TerritoryCode> <TerritoryCode>DE</TerritoryCode> <TerritoryCode>FR</TerritoryCode> <TerritoryCode>AU</TerritoryCode> <ValidityPeriod> <StartDate>2025-08-15</StartDate> </ValidityPeriod> <CommercialModelType>SubscriptionModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms></Deal>Key points:
- List multiple
<TerritoryCode>elements within the sameDealTerms - Use ISO 3166-1 alpha-2 codes (e.g.,
US,GB,DE) - Omit
Worldwidewhen specifying individual territories
Takedown (removing a release)
When you issue a takedown, both the start and end dates in the validity period are set 48 hours in the past:
<Deal> <DealTerms> <TerritoryCode>Worldwide</TerritoryCode> <ValidityPeriod> <StartDate>2025-06-13</StartDate> <EndDate>2025-06-13</EndDate> </ValidityPeriod> <CommercialModelType>SubscriptionModel</CommercialModelType> <UseType>UserMakeAvailableLabelProvided</UseType> </DealTerms></Deal>Key points:
- Both
StartDateandEndDateare set to the same date, 48 hours in the past - This signals to the DSP that the release should be removed
- A takedown deal is generated for each commercial model type
Field-to-XML reference
Section titled “Field-to-XML reference”Quick lookup table mapping LabelGrid metadata fields to their DDEX XML representation.
| LabelGrid field | DDEX XML element | Notes |
|---|---|---|
| UPC/EAN | <ICPN> | Inside <ReleaseId> |
| ISRC | <ISRC> | Inside <ResourceId> within <SoundRecordingEdition> |
| ISWC | <ISWC> | Inside <WorkId> on parent <SoundRecording> (not inside Edition) |
| Title | <DisplayTitleText> + <DisplayTitle> | One per language; DisplayTitleText uses base title only |
| Mix version | <SubTitle> | Inside <DisplayTitle> |
| Primary artist | <DisplayArtistRole>MainArtist</DisplayArtistRole> | |
| Featured artist | <DisplayArtistRole>FeaturedArtist</DisplayArtistRole> | |
| Remixer | FeaturedArtist + <ArtisticRole>Remixer</ArtisticRole> | Both elements needed |
| Genre | <GenreText> + <SubGenre> | Mapped to DSP-specific genre codes |
| P-Line | <PLine> > <Year> + <PLineText> | |
| C-Line | <CLine> > <Year> + <CLineText> | |
| Explicit | <ParentalWarningType> | Values: NotExplicit, Explicit, ExplicitContentEdited |
| Release date | <OriginalReleaseDate> + deal <StartDate> | Format: YYYY-MM-DD |
| Territory | <TerritoryCode> | Worldwide or ISO 3166-1 alpha-2 |
| Contributor (Producer) | <Role>StudioProducer</Role> | ”Producer” display name maps to DDEX StudioProducer |
| Contributor (other) | <Contributor> > <Role> | DDEX role codes (e.g., ComposerLyricist, MixingEngineer) |
| Publisher | <Role>MusicPublisher</Role> | Inside <Contributor> |
| Audio file | <File> > <URI> | Pattern: resources/{UPC}_{disc}_{track}.{ext} |
| IPI | <IpiNameNumber> | Zero-padded to 11 digits |
| ISNI | <ISNI> | 16 characters |
| Cover art | <Image> with <Type>FrontCoverImage</Type> | |
| Release type | <ReleaseType> | Appears before <ReleaseId> in ERN 4.3 |
| Catalogue number | <CatalogNumber> | Inside <ReleaseId> |
| Track resources | <ResourceGroup> > <ResourceGroupContentItem> | Not ReleaseResourceReferenceList |
| Duration | <Duration> | ISO 8601 format: PT00H04M32S |
| Language | <LanguageOfPerformance> | ISO language code |
| Keywords | <Keywords> | Inside <TrackRelease> |
| Dolby stereo | <Type>NonImmersiveEdition</Type> | Only present when Dolby edition also exists |
| Dolby Atmos | <Type>ImmersiveEdition</Type> | Separate ISRC required; file URI uses -dolby suffix |
| Copyright owner | <WorkRightsController> | With <RightSharePercentage> and <Territory> |
XML structure checklist
Section titled “XML structure checklist”Use this checklist to verify your XML before submission:
- Root
<NewReleaseMessage>includes ERN 4.3 namespace and schema location -
<MessageHeader>has validMessageThreadId,MessageId, sender, and recipient - All parties (label, artists, contributors, publishers) are defined in
<PartyList> - Each party has a unique
<PartyReference> -
<SoundRecording>type isMusicalWorkSoundRecording - ISRC is inside
<SoundRecordingEdition>><ResourceId> - ISWC (if present) is on parent
<SoundRecording>via<WorkId>, not inside the Edition -
<DisplayTitleText>contains only the base title (no mix version) - Mix version (if any) is in
<SubTitle>inside<DisplayTitle> - Remixer has both
DisplayArtistRole=FeaturedArtistandArtisticRole=Remixer - Audio file
<URI>follows the patternresources/{UPC}_{disc}_{track}.{ext} - Cover art
<Image>has<Type>FrontCoverImage</Type> -
<ReleaseType>comes before<ReleaseId>in the main<Release> - UPC/EAN is in
<ICPN>inside<ReleaseId> - Resources linked via
<ResourceGroup>(notReleaseResourceReferenceList) - Dolby Atmos editions have separate ISRCs from stereo editions
-
<WorkRightsController>percentages total 100% per territory - Deal
<TerritoryCode>usesWorldwideor valid ISO 3166-1 alpha-2 codes - All dates use
YYYY-MM-DDformat - Takedown deals have both
<StartDate>and<EndDate>set 48 hours in the past
Need help?
Section titled “Need help?”If you need assistance with DDEX integration, contact our support team with your technical requirements.
Not using LabelGrid yet?
Everything you just read about is available on our platform.
See what LabelGrid can do →