---
title: "Music Recording Schema · Unhead"
meta:
  "og:description": "Use defineMusicRecording() to add MusicRecording structured data. Display song info with artist, album, and duration in search results."
  "og:title": "Music Recording Schema · Unhead"
  description: "Use defineMusicRecording() to add MusicRecording structured data. Display song info with artist, album, and duration in search results."
---

**Schema**

# **Music Recording Schema**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/music-recording.md)

Last updated **Jan 19, 2026** by [Harlan Wilton](https://github.com/harlan-zw) in [docs: sync](https://github.com/unjs/unhead/commit/d2f86454774aa60706628b46a850653e1e4d56d9).

**On this page **

- [Schema.org MusicRecording](#schemaorg-musicrecording)
- [Useful Links](#useful-links)
- [Required properties](#required-properties)
- [Recommended Properties](#recommended-properties)
- [Defaults](#defaults)
- [Examples](#examples)
- [Types](#types)
- [Related Schemas](#related-schemas)

## [Schema.org MusicRecording](#schemaorg-musicrecording)

**Type**: `defineMusicRecording(input?: MusicRecording)`

Describes an individual music track or song.

## [Useful Links](#useful-links)

- [**MusicRecording - Schema.org**](https://schema.org/MusicRecording)

## [Required properties](#required-properties)

- **name** `string`The name of the song/track.
- **url** `string`The URL where the song can be accessed.

## [Recommended Properties](#recommended-properties)

- **byArtist** `NodeRelations<Person | MusicGroup | string>`The artist(s) who performed the song. Resolves to [**Person**](https://unhead.unjs.io/docs/schema-org/api/schema/person) or [**MusicGroup**](https://unhead.unjs.io/docs/schema-org/api/schema/music-group).
- **inAlbum** `NodeRelation<MusicAlbum>`Reference to the album this recording is part of.
- **duration** `string`The duration of the track in ISO 8601 format (e.g., "PT3M45S" for 3 minutes 45 seconds).
- **isrcCode** `string`International Standard Recording Code for the track.

## [Defaults](#defaults)

- **@type**: `MusicRecording`
- **@id**: `${canonicalHost}#music-recording`

## [Examples](#examples)

### [Minimal](#minimal)

```
defineMusicRecording({
  name: 'Bohemian Rhapsody',
  url: 'https://example.com/tracks/bohemian-rhapsody',
  byArtist: 'Queen',
})
```

### [Complete](#complete)

```
defineMusicRecording({
  name: 'Bohemian Rhapsody',
  url: 'https://example.com/tracks/bohemian-rhapsody',
  audio: 'https://example.com/audio/bohemian-rhapsody.mp3',
  byArtist: {
    name: 'Queen',
  },
  inAlbum: {
    name: 'A Night at the Opera',
  },
  duration: 'PT5M55S', // 5 minutes 55 seconds
  isrcCode: 'GBUM71029604',
  datePublished: new Date(1975, 9, 31),
  genre: 'Progressive Rock',
  image: 'https://example.com/tracks/bohemian-rhapsody-cover.jpg',
})
```

## [Types](#types)

```
export interface MusicRecordingSimple extends Thing {
  name: string
  description?: string
  url?: string
  audio?: string
  byArtist?: NodeRelations<Person | MusicGroup | string>
  inAlbum?: NodeRelation<MusicAlbum>
  inPlaylist?: NodeRelations<string>
  duration?: string
  isrcCode?: string
  recordingOf?: NodeRelation<string>
  datePublished?: ResolvableDate
  genre?: string | string[]
  image?: NodeRelations<string | ImageObject>
  aggregateRating?: NodeRelation<AggregateRating>
}
```

## [Related Schemas](#related-schemas)

- [**MusicAlbum**](https://unhead.unjs.io/docs/schema-org/api/schema/music-album) - Album containing track
- [**MusicGroup**](https://unhead.unjs.io/docs/schema-org/api/schema/music-group) - Performing artist
- [**Person**](https://unhead.unjs.io/docs/schema-org/api/schema/person) - Individual artist

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/5.api/9.schema/music-recording.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/music-recording.md)

**Did this page help you? **

[**Music Playlist Schema** Use defineMusicPlaylist() to add MusicPlaylist structured data. Display playlist info with track count, creator, and song list in search.](https://unhead.unjs.io/docs/schema-org/api/schema/music-playlist) [**Organization** Add Organization structured data with Unhead. JSON-LD examples for company identity, logo, sameAs social profiles, and Google Knowledge Panel setup.](https://unhead.unjs.io/docs/schema-org/api/schema/organization)

**On this page **

- [Schema.org MusicRecording](#schemaorg-musicrecording)
- [Useful Links](#useful-links)
- [Required properties](#required-properties)
- [Recommended Properties](#recommended-properties)
- [Defaults](#defaults)
- [Examples](#examples)
- [Types](#types)
- [Related Schemas](#related-schemas)