# MusicBrainz

> Look up music metadata in MusicBrainz, the open music encyclopedia: search for artists, albums, recordings, works and labels; read an artist's full discography or a label's catalogue; follow the relationships that record who played on what and where a release streams; identify a CD from its disc ID or a recording from its ISRC; fetch cover art; read your own collections; and submit tags, ratings, ISRCs and barcodes.

App · Music & Podcasts · 34 actions. Web page: https://docs.lodol.com/docs/integrations/musicbrainz

## Actions

### Add a barcode to a release

Attach the EAN or UPC printed on a release's packaging. Only GTIN codes are accepted, and the check digit is verified before sending so a typo is caught here rather than refused there. Unlike a tag or a rating this changes the database for everyone, so it opens an edit: it applies once it goes unopposed or its voting period expires.

**Inputs**

- Release ID (`release_id`, text, required): The release's MusicBrainz ID, or the address of its page. A release is one issue of an album; the ID of the album itself is a release group ID and will not be found here.
- Barcode (`barcode`, text, required): The 8, 12, 13 or 14 digit GTIN. Spaces and hyphens are ignored. Codes with a 2 or 5 digit add-on are not accepted by MusicBrainz.

**Outputs**

- `barcode` (text)
- `entity_type` (text)
- `mbid` (text)
- `name` (text)
- `opens_edit` (true/false)
- `submitted` (text)
- `url` (text)

**Example output**

```json
{
  "barcode": "720642442524",
  "entity_type": "release",
  "mbid": "8e061dc4-790e-4587-ba53-011e7852f88d",
  "name": "Nevermind",
  "opens_edit": true,
  "submitted": "a barcode",
  "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
}
```

### Add ISRCs to a recording

Attach one or more ISRCs to a recording. Each code is checked against the ISRC format first, and the hyphens a printed ISRC carries are dropped. Like a barcode this opens an edit rather than applying at once.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's MusicBrainz ID, or the address of its page. A recording is one performance, as it appears as a track.
- ISRCs (`isrcs`, list, required): The codes to attach: one per line, comma-separated, or a list from an earlier step. Hyphens are optional.

**Outputs**

- `entity_type` (text)
- `isrcs` (list)
- `mbid` (text)
- `name` (text)
- `opens_edit` (true/false)
- `submitted` (text)
- `url` (text)

**Example output**

```json
{
  "entity_type": "recording",
  "isrcs": [
    "USGF19942501"
  ],
  "mbid": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
  "name": "Smells Like Teen Spirit",
  "opens_edit": true,
  "submitted": "1 ISRC",
  "url": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7"
}
```

### Find recordings by ISRC

Find every recording carrying an ISRC. An ISRC is how a streaming service, a label or a royalty statement names a recording, so this is the bridge from those systems into MusicBrainz. Hyphens are optional. One code can be attached to more than one recording, so the answer is a list.

**Inputs**

- ISRC (`isrc`, text, required): The 12-character ISRC, with or without hyphens: two letters for the country, three for the registrant, two for the year and five for the recording.
- Also include (`include`, list): Extra data to bring back with each recording. One or more of: `releases` (Its releases), `release-groups` (Its release groups), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. 'Also the song's own relationships' reaches through to the work, which is where the composer and lyricist are recorded. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 4 more.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `isrc` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "recording",
  "isrc": "USGF19942501",
  "offset": 0,
  "output_detail": "full",
  "query": "ISRC USGF19942501",
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "disambiguation": null,
      "entity_type": "recording",
      "first_release_date": "1991-09-10",
      "id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "isrcs": [
        "USGF19942501"
      ],
      "length": "5:01",
      "length_ms": 301133,
      "name": "Smells Like Teen Spirit",
      "requested_includes": [
        "isrcs",
        "artist-credits"
      ],
      "title": "Smells Like Teen Spirit",
      "type": null,
      "url": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "video": false
    }
  ],
  "total_matches": 1
}
```

### Find what a web address is linked to

Give an artist's homepage, a Discogs page, a Wikidata item or a streaming link, and MusicBrainz answers with what it is attached to. Ask for relationships as well and the answer names the artist, release or label on the other end - which is how an outside link becomes a MusicBrainz ID. Up to 100 addresses in one step.

**Inputs**

- Web address (`resource`, text, required): The address to look up. Several can be given, one per line or comma-separated, up to 100.
- Also include (`include`, list): A URL entity carries nothing but the address itself, so these rarely add anything. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of entity the address is linked to. This is the point of the step: without it you get the URL and nothing about what it points at. Pick 'Artists' for an artist page, 'Releases' for a release one. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested` (list)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "url",
  "offset": 0,
  "output_detail": "full",
  "query": "https://www.discogs.com/artist/125246",
  "requested": [
    "https://www.discogs.com/artist/125246"
  ],
  "requested_includes": [
    "artist-rels"
  ],
  "result_count": 1,
  "results": [
    {
      "disambiguation": null,
      "entity_type": "url",
      "id": "81846eca-af41-43d0-bcae-b62dbf5cfa2f",
      "name": "https://www.discogs.com/artist/125246",
      "relations": [
        {
          "attributes": [],
          "begin_date": null,
          "direction": "backward",
          "end_date": null,
          "target_id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "target_name": "Nirvana",
          "target_type": "artist",
          "type": "discogs"
        }
      ],
      "resource": "https://www.discogs.com/artist/125246",
      "type": null,
      "url": "https://musicbrainz.org/url/81846eca-af41-43d0-bcae-b62dbf5cfa2f"
    }
  ],
  "total_matches": 1
}
```

### Find works by ISWC

Find every work carrying an ISWC. An ISWC names a composition rather than a recording of it, which is the level publishers and performing-rights societies work at. The punctuation is optional: T0702436916 and T-070.243.691-6 both work.

**Inputs**

- ISWC (`iswc`, text, required): The work's ISWC, with or without its punctuation.
- Also include (`include`, list): Extra data to bring back with each work. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `iswc` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "work",
  "iswc": "T-070.243.691-6",
  "offset": 0,
  "output_detail": "full",
  "query": "ISWC T-070.243.691-6",
  "result_count": 1,
  "results": [
    {
      "attributes": [
        {
          "type": "ASCAP ID",
          "type-id": "d833318c-6c6a-370e-8b16-9cb15873ba76",
          "value": "905650303"
        }
      ],
      "disambiguation": null,
      "entity_type": "work",
      "id": "9840e142-269d-3fa3-9805-041a9235c18a",
      "iswcs": [
        "T-070.243.691-6"
      ],
      "language": "eng",
      "languages": [
        "eng"
      ],
      "name": "Smells Like Teen Spirit",
      "relations": [
        {
          "attributes": [],
          "begin_date": null,
          "direction": "backward",
          "end_date": null,
          "target_id": "60a1f832-8ca6-4d75-ac59-cd8f7c9f0b3d",
          "target_name": "Kurt Cobain",
          "target_type": "artist",
          "type": "composer"
        }
      ],
      "requested_includes": [
        "artist-rels"
      ],
      "title": "Smells Like Teen Spirit",
      "type": "Song",
      "url": "https://musicbrainz.org/work/9840e142-269d-3fa3-9805-041a9235c18a"
    }
  ],
  "total_matches": 1
}
```

### Get a label

Look up one record label, with its LC code, country and the years it operated. Use "List a label's releases" to page through its catalogue.

**Inputs**

- Label ID (`label_id`, text, required): The label's MusicBrainz ID, or the address of its page.
- Also include (`include`, list): Extra data to bring back with the label. One or more of: `releases` (Its releases), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "area": "United States",
  "begin_date": null,
  "country": "US",
  "disambiguation": null,
  "end_date": null,
  "ended": false,
  "entity_type": "label",
  "id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b",
  "ipis": [],
  "isnis": [],
  "label_code": 7266,
  "name": "Geffen Records",
  "requested_includes": [],
  "sort_name": "Geffen Records",
  "type": "Production",
  "url": "https://musicbrainz.org/label/0fadc2ce-f7de-4e27-bbe6-612b317e716b"
}
```

### Get a recording

Look up one recording: a single performance of a song, as it appears as a track, with its length and ISRCs. Ask for relationships to works to reach the composition, and for 'Also the song's own relationships' to get its composer and lyricist in the same request.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's MusicBrainz ID, or the address of its page. A recording is one performance, as it appears as a track.
- Also include (`include`, list): Extra data to bring back with the recording. One or more of: `releases` (Its releases), `release-groups` (Its release groups), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. 'Also the song's own relationships' reaches through to the work, which is where the composer and lyricist are recorded. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 4 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "artist_credit": "Nirvana",
  "artists": [
    {
      "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
      "join_phrase": "",
      "name": "Nirvana",
      "sort_name": "Nirvana"
    }
  ],
  "disambiguation": null,
  "entity_type": "recording",
  "first_release_date": "1991-09-10",
  "id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
  "isrcs": [
    "USGF19942501"
  ],
  "length": "5:01",
  "length_ms": 301133,
  "name": "Smells Like Teen Spirit",
  "requested_includes": [
    "isrcs",
    "artist-credits"
  ],
  "title": "Smells Like Teen Spirit",
  "type": null,
  "url": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
  "video": false
}
```

### Get a release

Look up one release: a specific issue of an album, with its own barcode, catalogue number, country, packaging and track list. Include "Discs, formats and track lists" to get the tracks themselves. For the album as a thing in its own right, across every issue of it, use "Get a release group" instead.

**Inputs**

- Release ID (`release_id`, text, required): The release's MusicBrainz ID, or the address of its page. A release is one issue of an album; the ID of the album itself is a release group ID and will not be found here.
- Also include (`include`, list): Extra data to bring back with the release. 'Discs, formats and track lists' is what returns the tracks. One or more of: `collections` (Collections it appears in), `labels` (The labels that issued it), `recordings` (Its recordings), `release-groups` (Its release groups), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. The last three options follow the relationships one hop further, into the release's tracks, its release group, and the songs those tracks are performances of - which is how 'who played guitar on track 4' is answered. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 6 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "artist_credit": "Nirvana",
  "artists": [
    {
      "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
      "join_phrase": "",
      "name": "Nirvana",
      "sort_name": "Nirvana"
    }
  ],
  "barcode": "0720642442524",
  "country": "US",
  "date": "1991-09-24",
  "disambiguation": null,
  "entity_type": "release",
  "id": "8e061dc4-790e-4587-ba53-011e7852f88d",
  "labels": [
    {
      "catalog_number": "GED24425",
      "label": "Geffen Records",
      "label_id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b"
    }
  ],
  "language": "eng",
  "media": [
    {
      "disc_ids": [
        "2y0jFMwYQP7gb9iSUKagmoT6DIw-"
      ],
      "format": "CD",
      "position": 1,
      "title": null,
      "track_count": 12,
      "tracks": [
        {
          "length": "5:01",
          "length_ms": 301133,
          "number": "1",
          "position": 1,
          "recording_id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
          "title": "Smells Like Teen Spirit"
        }
      ]
    }
  ],
  "name": "Nevermind",
  "packaging": "Jewel Case",
  "release_group_id": "1b022e01-4da6-387b-8658-8678046e4cef",
  "requested_includes": [
    "recordings",
    "release-groups",
    "media",
    "labels",
    "artist-credits"
  ],
  "script": "Latn",
  "status": "Official",
  "title": "Nevermind",
  "track_count": 12,
  "type": null,
  "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
}
```

### Get a release group

Look up one release group: an album, single or EP as a thing in its own right, with its type and the date it first came out. This is what to use when you mean 'the album' rather than one particular pressing of it.

**Inputs**

- Release group ID (`release_group_id`, text, required): The release group's MusicBrainz ID, or the address of its page. A release group is the album itself, across every issue of it.
- Also include (`include`, list): Extra data to bring back with the release group. One or more of: `releases` (Its releases), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "artist_credit": "Nirvana",
  "artists": [
    {
      "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
      "join_phrase": "",
      "name": "Nirvana",
      "sort_name": "Nirvana"
    }
  ],
  "disambiguation": null,
  "entity_type": "release-group",
  "first_release_date": "1991-09-24",
  "id": "1b022e01-4da6-387b-8658-8678046e4cef",
  "name": "Nevermind",
  "primary_type": "Album",
  "requested_includes": [],
  "secondary_types": [],
  "title": "Nevermind",
  "type": null,
  "url": "https://musicbrainz.org/release-group/1b022e01-4da6-387b-8658-8678046e4cef"
}
```

### Get a work

Look up one work: the composition itself, which every recording of it points back to, with its ISWCs and lyrics languages. Ask for relationships to artists to get the composer, lyricist and publisher.

**Inputs**

- Work ID (`work_id`, text, required): The work's MusicBrainz ID, or the address of its page. A work is the song as written, which every recording of it points back to.
- Also include (`include`, list): Extra data to bring back with the work. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "attributes": [
    {
      "type": "ASCAP ID",
      "type-id": "d833318c-6c6a-370e-8b16-9cb15873ba76",
      "value": "905650303"
    }
  ],
  "disambiguation": null,
  "entity_type": "work",
  "id": "9840e142-269d-3fa3-9805-041a9235c18a",
  "iswcs": [
    "T-070.243.691-6"
  ],
  "language": "eng",
  "languages": [
    "eng"
  ],
  "name": "Smells Like Teen Spirit",
  "relations": [
    {
      "attributes": [],
      "begin_date": null,
      "direction": "backward",
      "end_date": null,
      "target_id": "60a1f832-8ca6-4d75-ac59-cd8f7c9f0b3d",
      "target_name": "Kurt Cobain",
      "target_type": "artist",
      "type": "composer"
    }
  ],
  "requested_includes": [
    "artist-rels"
  ],
  "title": "Smells Like Teen Spirit",
  "type": "Song",
  "url": "https://musicbrainz.org/work/9840e142-269d-3fa3-9805-041a9235c18a"
}
```

### Get an artist

Look up everything MusicBrainz holds about one artist: their type, country, the years they were active, their aliases in other scripts, and their IPI and ISNI codes. Ask for relationships to URLs to get their official site, streaming pages and Discogs entry, or to artists to get the band's membership. Needs the artist's MusicBrainz ID, which "Search for artists" returns.

**Inputs**

- Artist ID (`artist_id`, text, required): The artist's MusicBrainz ID, or the musicbrainz.org address of their page. 'Search for artists' returns the ID of each match.
- Also include (`include`, list): Extra data to bring back with the artist. The linked lists are capped at 25 by MusicBrainz however many there are; use "List an artist's releases" and its siblings to page through them all. One or more of: `recordings` (Its recordings), `releases` (Its releases), `release-groups` (Its release groups), `works` (Its works), `discids` (Disc IDs of each release), `media` (Discs, formats and track lists), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `various-artists` (Only various-artist appearances), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "area": "United States",
  "begin_area": "Aberdeen",
  "begin_date": "1987",
  "country": "US",
  "disambiguation": "1980s-1990s US grunge band",
  "end_area": null,
  "end_date": "1994-04-05",
  "ended": true,
  "entity_type": "artist",
  "gender": null,
  "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "ipis": [],
  "isnis": [
    "0000000123486830"
  ],
  "name": "Nirvana",
  "rating": {
    "value": 4.6,
    "votes": 46
  },
  "requested_includes": [
    "tags",
    "ratings"
  ],
  "sort_name": "Nirvana",
  "tags": [
    {
      "count": 12,
      "name": "grunge"
    },
    {
      "count": 9,
      "name": "alternative rock"
    }
  ],
  "type": "Group",
  "url": "https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da"
}
```

### Get any entity by ID

Look up any MusicBrainz entity by its kind and ID. The dedicated steps cover artists, releases, release groups, recordings, works and labels with options of their own; this one reaches the rest - areas, events, places, instruments, series, genres, URLs and collections.

**Inputs**

- Kind of thing (`entity_type`, text, required): Which kind of MusicBrainz entity the ID names. One of: `area` (Area - a country, city or region), `artist` (Artist - a person, group or orchestra), `event` (Event - a concert or festival), `genre` (Genre - one of MusicBrainz's genre entries), `instrument`, `label` (Label - a record label or imprint), `place` (Place - a venue, studio or stadium), `recording` (Recording - one performance, as a track), `release` (Release - one issue of an album, with its own barcode), `release-group` (Release group - an album, across all its issues), and 4 more.
- MusicBrainz ID (`mbid`, text, required): The entity's MusicBrainz ID, or the musicbrainz.org address of its page. It must be an ID of the kind chosen above: MusicBrainz IDs are not shared between kinds of entity.
- Also include (`include`, list): Extra data to bring back with the entity. These two are what every kind of entity accepts. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.

**Outputs**

- `address` (text)
- `aliases` (list)
- `annotation` (text)
- `area` (text)
- `artist_credit` (text)
- `artists` (list)
- `attributes` (list)
- `barcode` (text)
- `begin_area` (text)
- `begin_date` (text)
- `cancelled` (true/false)
- `collection_entity_type` (text)
- `country` (text)
- `date` (text)
- `disambiguation` (text)
- `editor` (text)
- `end_area` (text)
- `end_date` (text)
- `ended` (true/false)
- `entity_type` (text)
- `first_release_date` (text)
- `gender` (text)
- `genres` (list)
- `id` (text)
- `ipis` (list)
- `isnis` (list)
- `iso_3166_1_codes` (list)
- `iso_3166_2_codes` (list)
- `isrcs` (list)
- `iswcs` (list)
- `item_count` (number)
- `label_code` (number)
- `labels` (list)
- `language` (text)
- `languages` (list)
- `latitude` (number)
- `length` (text)
- `length_ms` (number)
- `longitude` (number)
- `media` (list)
- `name` (text)
- `packaging` (text)
- `primary_type` (text)
- `rating` (object)
- `recordings` (list)
- `relations` (list)
- `release_group_id` (text)
- `release_groups` (list)
- `releases` (list)
- `requested_includes` (list)
- `resource` (text)
- `score` (number)
- `script` (text)
- `secondary_types` (list)
- `setlist` (text)
- `sort_name` (text)
- `status` (text)
- `tags` (list)
- `time` (text)
- `title` (text)
- `track_count` (number)
- `type` (text)
- `url` (text)
- `user_genres` (list)
- `user_rating` (object)
- `user_tags` (list)
- `video` (true/false)
- `works` (list)

**Example output**

```json
{
  "address": "3 Abbey Road, St John\u2019s Wood, London",
  "area": "St John's Wood",
  "begin_date": "1931-11-12",
  "disambiguation": null,
  "end_date": null,
  "ended": false,
  "entity_type": "place",
  "id": "bd55aeb7-19d1-4607-a500-14b8479d3fed",
  "latitude": 51.53192,
  "longitude": -0.17835,
  "name": "Abbey Road Studios",
  "requested_includes": [],
  "type": "Studio",
  "url": "https://musicbrainz.org/place/bd55aeb7-19d1-4607-a500-14b8479d3fed"
}
```

### Get cover art

Fetch the artwork the Cover Art Archive holds for a release or an album. The archive is MusicBrainz's own image companion, keyed by the same IDs, and is where MusicBrainz's cover images come from. Each image comes back with its full-size address and both thumbnail sizes, so a workflow can put a cover straight into a message or a document without downloading it.

**Inputs**

- Artwork for (`entity_type`, text): Ask about a release group to get the album's representative artwork, whichever pressing it comes from; ask about a release to get that one issue's. One of: `release` (Release - the artwork of one specific issue), `release-group` (Release group - the album's representative artwork). Default: `release`.
- MusicBrainz ID (`mbid`, text, required): The release or release group's MusicBrainz ID, or the address of its page.
- Only this kind of image (`image_type`, text): Return only images the archive labels this way. Leave blank for all of them; the front cover is reported separately either way. One of: `Front`, `Back`, `Booklet`, `Medium`, `Tray`, `Obi`, `Spine`, `Track`, `Liner`, `Sticker`, and 4 more.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `front_image_url` (text)
- `front_thumbnail_url` (text)
- `image_count` (number)
- `image_type` (text)
- `images` (list)
- `mbid` (text)
- `output_detail` (text)
- `url` (text)

**Example output**

```json
{
  "entity_type": "release",
  "front_image_url": "https://coverartarchive.org/release/8e061dc4-790e-4587-ba53-011e7852f88d/1675283488.jpg",
  "front_thumbnail_url": "https://coverartarchive.org/release/8e061dc4-790e-4587-ba53-011e7852f88d/1675283488-500.jpg",
  "image_count": 1,
  "image_type": null,
  "images": [
    {
      "approved": true,
      "comment": null,
      "id": "1675283488",
      "image_url": "https://coverartarchive.org/release/8e061dc4-790e-4587-ba53-011e7852f88d/1675283488.jpg",
      "is_back": false,
      "is_front": true,
      "thumbnail_large_url": "https://coverartarchive.org/release/8e061dc4-790e-4587-ba53-011e7852f88d/1675283488-500.jpg",
      "thumbnail_small_url": "https://coverartarchive.org/release/8e061dc4-790e-4587-ba53-011e7852f88d/1675283488-250.jpg",
      "types": [
        "Front"
      ]
    }
  ],
  "mbid": "8e061dc4-790e-4587-ba53-011e7852f88d",
  "output_detail": "full",
  "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
}
```

### Get my MusicBrainz account

Report which MusicBrainz account this integration is connected as. The account name identifies an editor everywhere else in the API: it owns your collections, and it is whose tags and ratings the 'your tags' and 'your rating' includes return.

**Inputs**: None.

**Outputs**

- `email` (text)
- `gender` (text)
- `metabrainz_user_id` (number)
- `profile_url` (text)
- `timezone` (text)
- `username` (text)
- `website` (text)

**Example output**

```json
{
  "email": null,
  "gender": null,
  "metabrainz_user_id": 1234567,
  "profile_url": "https://musicbrainz.org/user/lodol_qa",
  "timezone": "UTC",
  "username": "lodol_qa",
  "website": null
}
```

### Identify a CD by disc ID

Turn a CD in a drive into the release it actually is. A disc ID is a hash of the disc's track layout, which every CD ripper computes; MusicBrainz matches it against the pressings it knows. Supply the table of contents as well and a disc MusicBrainz has never seen can still be matched against discs of a similar shape.

**Inputs**

- Disc ID (`disc_id`, text): The disc ID your CD ripper reported. Leave blank to match on the table of contents alone.
- Table of contents (`toc`, text): The disc's table of contents: the first track number, the number of tracks, the leadout offset, then each track's offset. Space- or plus-separated. Used to match a disc MusicBrainz does not hold the ID for.
- Also include (`include`, list): Extra data to bring back with each release. A disc ID lookup already carries each release's discs and track counts, which is what the disc was matched against. One or more of: `collections` (Collections it appears in), `labels` (The labels that issued it), `recordings` (Its recordings), `release-groups` (Its release groups), `discids` (Disc IDs of each release), `isrcs` (ISRCs of each recording), `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. The last three options follow the relationships one hop further, into the release's tracks, its release group, and the songs those tracks are performances of - which is how 'who played guitar on track 4' is answered. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 6 more.
- Include CD stubs (`include_cd_stubs`, true/false): Also return CD stubs: bare tracklists submitted for discs that have no release in MusicBrainz yet. On by default, which is MusicBrainz's own behaviour. Default: `true`.
- Match any medium (`any_media_format`, true/false): When matching on the table of contents, also consider media that are not CDs. Off by default. Default: `false`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `cd_stubs` (list)
- `disc_id` (text)
- `entity_type` (text)
- `offset` (number)
- `offsets` (list)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `sectors` (number)
- `total_matches` (number)

**Example output**

```json
{
  "cd_stubs": [],
  "disc_id": "2y0jFMwYQP7gb9iSUKagmoT6DIw-",
  "entity_type": "release",
  "offset": 0,
  "offsets": [
    150,
    22767,
    41887
  ],
  "output_detail": "full",
  "query": "disc ID 2y0jFMwYQP7gb9iSUKagmoT6DIw-",
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "barcode": "0720642442524",
      "country": "US",
      "date": "1991-09-24",
      "disambiguation": null,
      "entity_type": "release",
      "id": "8e061dc4-790e-4587-ba53-011e7852f88d",
      "labels": [
        {
          "catalog_number": "GED24425",
          "label": "Geffen Records",
          "label_id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b"
        }
      ],
      "language": "eng",
      "media": [
        {
          "disc_ids": [
            "2y0jFMwYQP7gb9iSUKagmoT6DIw-"
          ],
          "format": "CD",
          "position": 1,
          "title": null,
          "track_count": 12,
          "tracks": [
            {
              "length": "5:01",
              "length_ms": 301133,
              "number": "1",
              "position": 1,
              "recording_id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
              "title": "Smells Like Teen Spirit"
            }
          ]
        }
      ],
      "name": "Nevermind",
      "packaging": "Jewel Case",
      "release_group_id": "1b022e01-4da6-387b-8658-8678046e4cef",
      "requested_includes": [
        "recordings",
        "release-groups",
        "media",
        "labels",
        "artist-credits"
      ],
      "script": "Latn",
      "status": "Official",
      "title": "Nevermind",
      "track_count": 12,
      "type": null,
      "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
    }
  ],
  "sectors": 267225,
  "total_matches": 1
}
```

### List artists linked to something

List the artists linked to an area, a release, a recording, a work or a collection. Browsing an area's artists is how you get every act from a city.

**Inputs**

- Artists linked to (`linked_to`, text, required): What to list the artists of. One of: `area` (An area), `collection` (A collection), `recording` (A recording), `release` (A release), `release-group` (A release group), `work` (A work).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each artist. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "artist",
  "linked_id": "8e061dc4-790e-4587-ba53-011e7852f88d",
  "linked_to": "release",
  "offset": 0,
  "output_detail": "full",
  "query": "release 8e061dc4-790e-4587-ba53-011e7852f88d",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "area": "United States",
      "begin_area": "Aberdeen",
      "begin_date": "1987",
      "country": "US",
      "disambiguation": "1980s-1990s US grunge band",
      "end_area": null,
      "end_date": "1994-04-05",
      "ended": true,
      "entity_type": "artist",
      "gender": null,
      "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
      "ipis": [],
      "isnis": [
        "0000000123486830"
      ],
      "name": "Nirvana",
      "rating": {
        "value": 4.6,
        "votes": 46
      },
      "requested_includes": [
        "tags",
        "ratings"
      ],
      "sort_name": "Nirvana",
      "tags": [
        {
          "count": 12,
          "name": "grunge"
        },
        {
          "count": 9,
          "name": "alternative rock"
        }
      ],
      "type": "Group",
      "url": "https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da"
    }
  ],
  "total_matches": 1
}
```

### List collections

List an editor's collections with how many things are in each, and which kind of thing each one holds. Left blank, the editor is whichever account this integration is connected as. Name another editor to see their public collections; private ones are only ever visible to their owner. To read what is inside one, take its ID into a browse step and pick 'A collection' as what to list it for.

**Inputs**

- Editor (`editor`, text): A MusicBrainz account name. Leave blank for your own, which is read from the connection.
- Include my private collections (`include_private`, true/false): Include collections you have not made public. On by default, and it has no effect when another editor is named: theirs stay private to them. Default: `true`.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `editor` (text)
- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "editor": "lodol_qa",
  "entity_type": "collection",
  "offset": 0,
  "output_detail": "full",
  "query": "editor lodol_qa",
  "result_count": 1,
  "results": [
    {
      "collection_entity_type": "release",
      "disambiguation": null,
      "editor": "lodol_qa",
      "entity_type": "collection",
      "id": "f4784850-3844-11e0-9e42-0800200c9a66",
      "item_count": 42,
      "name": "Albums I own",
      "type": "Release",
      "url": "https://musicbrainz.org/collection/f4784850-3844-11e0-9e42-0800200c9a66"
    }
  ],
  "total_matches": 1
}
```

### List events linked to something

List the concerts and festivals linked to an artist, a venue, an area or a collection. An event carries its date and, when an editor has added one, its setlist.

**Inputs**

- Events linked to (`linked_to`, text, required): What to list the events of. One of: `area` (An area), `artist` (An artist), `collection` (A collection), `place` (A place).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each event. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "event",
  "linked_id": "bd55aeb7-19d1-4607-a500-14b8479d3fed",
  "linked_to": "place",
  "offset": 0,
  "output_detail": "full",
  "query": "place bd55aeb7-19d1-4607-a500-14b8479d3fed",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "begin_date": "1994-06-24",
      "cancelled": false,
      "disambiguation": null,
      "end_date": "1994-06-26",
      "ended": true,
      "entity_type": "event",
      "id": "fe4ba1b3-1c1a-4d0c-b0fa-4e4bf46b1e3e",
      "name": "Glastonbury Festival 1994",
      "setlist": null,
      "time": null,
      "type": "Festival",
      "url": "https://musicbrainz.org/event/fe4ba1b3-1c1a-4d0c-b0fa-4e4bf46b1e3e"
    }
  ],
  "total_matches": 12
}
```

### List genres

List MusicBrainz's own genre vocabulary, alphabetically, with the ID of each. Genres are the curated part of the tag vocabulary, so these are the values worth filtering a search by. There are a couple of thousand, so the list is paged.

**Inputs**

- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `genres` (list)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "genre",
  "genres": [
    {
      "disambiguation": null,
      "entity_type": "genre",
      "id": "ed7a92ce-25f6-4b4a-9d5b-1a3b9c9bd1cf",
      "name": "grunge",
      "type": null,
      "url": "https://musicbrainz.org/genre/ed7a92ce-25f6-4b4a-9d5b-1a3b9c9bd1cf"
    }
  ],
  "offset": 0,
  "output_detail": "full",
  "result_count": 1,
  "results": [
    {
      "disambiguation": null,
      "entity_type": "genre",
      "id": "ed7a92ce-25f6-4b4a-9d5b-1a3b9c9bd1cf",
      "name": "grunge",
      "type": null,
      "url": "https://musicbrainz.org/genre/ed7a92ce-25f6-4b4a-9d5b-1a3b9c9bd1cf"
    }
  ],
  "total_matches": 2192
}
```

### List labels linked to something

List the labels based in an area, the labels that issued one release, or the contents of a collection of labels.

**Inputs**

- Labels linked to (`linked_to`, text, required): What to list the labels of. One of: `area` (An area), `collection` (A collection), `release` (A release).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each label. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "label",
  "linked_id": "8e061dc4-790e-4587-ba53-011e7852f88d",
  "linked_to": "release",
  "offset": 0,
  "output_detail": "full",
  "query": "release 8e061dc4-790e-4587-ba53-011e7852f88d",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "area": "United States",
      "begin_date": null,
      "country": "US",
      "disambiguation": null,
      "end_date": null,
      "ended": false,
      "entity_type": "label",
      "id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b",
      "ipis": [],
      "isnis": [],
      "label_code": 7266,
      "name": "Geffen Records",
      "requested_includes": [],
      "sort_name": "Geffen Records",
      "type": "Production",
      "url": "https://musicbrainz.org/label/0fadc2ce-f7de-4e27-bbe6-612b317e716b"
    }
  ],
  "total_matches": 1
}
```

### List places linked to something

List the venues, studios and stadiums in an area, or the contents of a collection of places. Each place carries its address and coordinates.

**Inputs**

- Places linked to (`linked_to`, text, required): What to list the places of. One of: `area` (An area), `collection` (A collection).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each place. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "place",
  "linked_id": "f03d09b3-39dc-4083-afd6-159e3f0d462f",
  "linked_to": "area",
  "offset": 0,
  "output_detail": "full",
  "query": "area f03d09b3-39dc-4083-afd6-159e3f0d462f",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "address": "3 Abbey Road, St John\u2019s Wood, London",
      "area": "St John's Wood",
      "begin_date": "1931-11-12",
      "disambiguation": null,
      "end_date": null,
      "ended": false,
      "entity_type": "place",
      "id": "bd55aeb7-19d1-4607-a500-14b8479d3fed",
      "latitude": 51.53192,
      "longitude": -0.17835,
      "name": "Abbey Road Studios",
      "requested_includes": [],
      "type": "Studio",
      "url": "https://musicbrainz.org/place/bd55aeb7-19d1-4607-a500-14b8479d3fed"
    }
  ],
  "total_matches": 2422
}
```

### List recordings linked to something

List the recordings linked to an artist, the tracks on a release, every recording of one work, or the contents of a collection. Listing a work's recordings is how you find every cover and live version of a song.

**Inputs**

- Recordings linked to (`linked_to`, text, required): What to list the recordings of. One of: `artist` (An artist), `collection` (A collection), `release` (A release), `work` (A work).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each recording. One or more of: `artist-credits` (Who each one is credited to), `isrcs` (ISRCs of each recording), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "recording",
  "linked_id": "9840e142-269d-3fa3-9805-041a9235c18a",
  "linked_to": "work",
  "offset": 0,
  "output_detail": "full",
  "query": "work 9840e142-269d-3fa3-9805-041a9235c18a",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "disambiguation": null,
      "entity_type": "recording",
      "first_release_date": "1991-09-10",
      "id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "isrcs": [
        "USGF19942501"
      ],
      "length": "5:01",
      "length_ms": 301133,
      "name": "Smells Like Teen Spirit",
      "requested_includes": [
        "isrcs",
        "artist-credits"
      ],
      "title": "Smells Like Teen Spirit",
      "type": null,
      "url": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "video": false
    }
  ],
  "total_matches": 318
}
```

### List release groups linked to something

List an artist's albums, singles and EPs, the release groups one release belongs to, or the contents of a collection. Filter by type to get just the studio albums and leave out the singles and compilations.

**Inputs**

- Release groups linked to (`linked_to`, text, required): What to list the release groups of. One of: `artist` (An artist), `collection` (A collection), `release` (A release).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Type (`release_type`, text): Only list release groups of this kind. One of: `album`, `single`, `ep`, `broadcast`, `other`, `audio drama`, `audiobook`, `compilation`, `demo`, `dj-mix`, and 7 more.
- Also include (`include`, list): Extra data to bring back with each release group. One or more of: `artist-credits` (Who each one is credited to), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "release-group",
  "linked_id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "linked_to": "artist",
  "offset": 0,
  "output_detail": "full",
  "query": "artist 5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "disambiguation": null,
      "entity_type": "release-group",
      "first_release_date": "1991-09-24",
      "id": "1b022e01-4da6-387b-8658-8678046e4cef",
      "name": "Nevermind",
      "primary_type": "Album",
      "requested_includes": [],
      "secondary_types": [],
      "title": "Nevermind",
      "type": null,
      "url": "https://musicbrainz.org/release-group/1b022e01-4da6-387b-8658-8678046e4cef"
    }
  ],
  "total_matches": 433
}
```

### List releases linked to something

List every release directly linked to one thing: an artist's discography, a label's catalogue, every issue of an album, or the contents of a collection. Filter to just the official albums, or just the live bootlegs. This is a direct lookup rather than a search, so it needs that thing's MusicBrainz ID.

**Inputs**

- Releases linked to (`linked_to`, text, required): What to list the releases of. 'An artist credited on a track only' finds the compilations and guest spots an artist appears on without being credited for the release as a whole. One of: `area` (An area), `artist` (An artist), `collection` (A collection), `label` (A label), `track` (A track), `track_artist` (An artist credited on a track only), `recording` (A recording), `release-group` (A release group).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Status (`status`, text): Only list releases of this status. 'Official' is what excludes bootlegs and promos. One of: `official`, `promotion` (Promotional), `bootleg`, `pseudo-release` (Pseudo-release (a translation or transliteration)), `withdrawn`, `cancelled`.
- Type (`release_type`, text): Only list releases of this kind. One of: `album`, `single`, `ep`, `broadcast`, `other`, `audio drama`, `audiobook`, `compilation`, `demo`, `dj-mix`, and 7 more.
- Also include (`include`, list): Extra data to bring back with each release. One or more of: `artist-credits` (Who each one is credited to), `labels` (The labels that issued it), `recordings` (Its recordings), `release-groups` (Its release groups), `media` (Discs, formats and track lists), `discids` (Disc IDs of each release), `isrcs` (ISRCs of each recording), `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "release",
  "linked_id": "1b022e01-4da6-387b-8658-8678046e4cef",
  "linked_to": "release-group",
  "offset": 0,
  "output_detail": "full",
  "query": "release-group 1b022e01-4da6-387b-8658-8678046e4cef",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "barcode": "0720642442524",
      "country": "US",
      "date": "1991-09-24",
      "disambiguation": null,
      "entity_type": "release",
      "id": "8e061dc4-790e-4587-ba53-011e7852f88d",
      "labels": [
        {
          "catalog_number": "GED24425",
          "label": "Geffen Records",
          "label_id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b"
        }
      ],
      "language": "eng",
      "media": [
        {
          "disc_ids": [
            "2y0jFMwYQP7gb9iSUKagmoT6DIw-"
          ],
          "format": "CD",
          "position": 1,
          "title": null,
          "track_count": 12,
          "tracks": [
            {
              "length": "5:01",
              "length_ms": 301133,
              "number": "1",
              "position": 1,
              "recording_id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
              "title": "Smells Like Teen Spirit"
            }
          ]
        }
      ],
      "name": "Nevermind",
      "packaging": "Jewel Case",
      "release_group_id": "1b022e01-4da6-387b-8658-8678046e4cef",
      "requested_includes": [
        "recordings",
        "release-groups",
        "media",
        "labels",
        "artist-credits"
      ],
      "script": "Latn",
      "status": "Official",
      "title": "Nevermind",
      "track_count": 12,
      "type": null,
      "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
    }
  ],
  "total_matches": 92
}
```

### List works linked to something

List the works linked to an artist, or the contents of a collection of works. An artist's works are the songs they wrote or performed, as compositions rather than recordings.

**Inputs**

- Works linked to (`linked_to`, text, required): What to list the works of. One of: `artist` (An artist), `collection` (A collection).
- Its MusicBrainz ID (`linked_id`, text, required): The MusicBrainz ID of the thing chosen above, or the address of its page. Browsing needs the ID: it is a direct lookup of what is linked to that one thing, not a search by name.
- Also include (`include`, list): Extra data to bring back with each work. One or more of: `aliases` (Alternate and localised names), `annotation` (The editors' annotation).
- Include community data (`community`, list): What other MusicBrainz editors have said about it. 'Your' tags, genres and rating are the ones this connected account submitted, and are the only way to read those back. One or more of: `tags` (Tags everyone has applied), `genres` (Genres everyone has applied), `ratings` (The community's average rating), `user-tags` (Tags you applied), `user-genres` (Genres you applied), `user-ratings` (Your own rating).
- Include relationships to (`relationships`, list): Which kinds of linked entity to bring back. Relationships are how MusicBrainz records who played on what, which label released it, and where its official site and streaming pages are; pick 'URLs' to get the links out to other services. One or more of: `area` (Areas), `artist` (Artists (members, producers, performers)), `event` (Events), `genre` (Genres), `instrument` (Instruments), `label` (Labels), `place` (Places), `recording` (Recordings), `release` (Releases), `release-group` (Release groups), and 3 more.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `linked_id` (text)
- `linked_to` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `requested_includes` (list)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "work",
  "linked_id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "linked_to": "artist",
  "offset": 0,
  "output_detail": "full",
  "query": "artist 5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "requested_includes": [],
  "result_count": 1,
  "results": [
    {
      "attributes": [
        {
          "type": "ASCAP ID",
          "type-id": "d833318c-6c6a-370e-8b16-9cb15873ba76",
          "value": "905650303"
        }
      ],
      "disambiguation": null,
      "entity_type": "work",
      "id": "9840e142-269d-3fa3-9805-041a9235c18a",
      "iswcs": [
        "T-070.243.691-6"
      ],
      "language": "eng",
      "languages": [
        "eng"
      ],
      "name": "Smells Like Teen Spirit",
      "relations": [
        {
          "attributes": [],
          "begin_date": null,
          "direction": "backward",
          "end_date": null,
          "target_id": "60a1f832-8ca6-4d75-ac59-cd8f7c9f0b3d",
          "target_name": "Kurt Cobain",
          "target_type": "artist",
          "type": "composer"
        }
      ],
      "requested_includes": [
        "artist-rels"
      ],
      "title": "Smells Like Teen Spirit",
      "type": "Song",
      "url": "https://musicbrainz.org/work/9840e142-269d-3fa3-9805-041a9235c18a"
    }
  ],
  "total_matches": 118
}
```

### Rate something

Rate a MusicBrainz entity out of five stars as the connected account. Ratings take effect at once and feed the community average. Choosing no rating removes yours rather than recording a bad one. Areas, places, releases and series cannot be rated: rate the release group rather than one of its issues.

**Inputs**

- Kind of thing (`entity_type`, text, required): Which kind of entity the ID names. One of: `artist` (Artist - a person, group or orchestra), `event` (Event - a concert or festival), `instrument`, `label` (Label - a record label or imprint), `recording` (Recording - one performance, as a track), `release-group` (Release group - an album, across all its issues), `work` (Work - the composition itself, behind its recordings).
- MusicBrainz ID (`mbid`, text, required): The entity's MusicBrainz ID, or the musicbrainz.org address of its page. It must be an ID of the kind chosen above: MusicBrainz IDs are not shared between kinds of entity.
- Rating (`rating`, text, required): How many stars to give it. MusicBrainz stores this out of 100 behind the scenes; whole stars are all it ever collects. One of: `5` (5 stars), `4` (4 stars), `3` (3 stars), `2` (2 stars), `1` (1 star), `0` (No rating (removes mine)).

**Outputs**

- `entity_type` (text)
- `mbid` (text)
- `name` (text)
- `rating` (number)
- `stars` (number)
- `submitted` (true/false)
- `url` (text)

**Example output**

```json
{
  "entity_type": "release-group",
  "mbid": "1b022e01-4da6-387b-8658-8678046e4cef",
  "name": "Nevermind",
  "rating": 100,
  "stars": 5,
  "submitted": true,
  "url": "https://musicbrainz.org/release-group/1b022e01-4da6-387b-8658-8678046e4cef"
}
```

### Search any index

Search any MusicBrainz index with a query you write yourself. The dedicated searches build the query from labelled fields; this one takes MusicBrainz's own search syntax and reaches the indexes they do not cover - areas, events, places, instruments, series, URLs, annotations, tags and CD stubs. The query is sent exactly as written, so its syntax is yours to get right; MusicBrainz documents the fields each index accepts.

**Inputs**

- Search which index (`entity_type`, text, required): Which MusicBrainz index to search. One of: `annotation` (Annotation - an editor's free-text note), `area` (Area - a country, city or region), `artist` (Artist - a person, group or orchestra), `cdstub` (CD stub - a tracklist submitted without a release), `event` (Event - a concert or festival), `instrument`, `label` (Label - a record label or imprint), `place` (Place - a venue, studio or stadium), `recording` (Recording - one performance, as a track), `release` (Release - one issue of an album, with its own barcode), and 5 more.
- Search query (`query`, text, required): A MusicBrainz search query. Plain words search the index's default fields; 'field:value' searches one field, and clauses can be joined with AND, OR and NOT.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "place",
  "offset": 0,
  "output_detail": "full",
  "query": "place:\"Abbey Road Studios\"",
  "result_count": 1,
  "results": [
    {
      "address": "3 Abbey Road, St John\u2019s Wood, London",
      "area": "St John's Wood",
      "begin_date": "1931-11-12",
      "disambiguation": null,
      "end_date": null,
      "ended": false,
      "entity_type": "place",
      "id": "bd55aeb7-19d1-4607-a500-14b8479d3fed",
      "latitude": 51.53192,
      "longitude": -0.17835,
      "name": "Abbey Road Studios",
      "requested_includes": [],
      "type": "Studio",
      "url": "https://musicbrainz.org/place/bd55aeb7-19d1-4607-a500-14b8479d3fed"
    }
  ],
  "total_matches": 9
}
```

### Search for artists

Find artists by name and narrow the match by type, country, gender, area, genre or the years they were active. Searching is how a workflow gets its first MusicBrainz ID: every other step needs one, and only a search works from a name. Each filter is combined with AND, and every value is escaped, so a band called AC/DC or !!! searches for itself.

**Inputs**

- Artist name (`name`, text): All or part of the artist's name. Accents are ignored, so 'bjork' finds Bjork.
- Alias (`alias`, text): Match a name the artist is also known by, including their name in other scripts.
- Type (`artist_type`, text): Only match artists of this kind. One of: `person`, `group`, `orchestra`, `choir`, `character` (Character (a fictional performer)), `other`.
- Gender (`gender`, text): Only match artists recorded with this gender. Groups and ensembles are recorded as 'not applicable'. One of: `male`, `female`, `non-binary`, `not applicable` (Not applicable (a group or an ensemble)).
- Country (`country`, text): The two-letter country code the artist is mainly associated with.
- Area (`area`, text): The name of the area the artist is associated with, which can be narrower than a country.
- Genre (`genre`, text): Only match things carrying this genre, chosen from MusicBrainz's own genre list. Genres are the curated part of the tag vocabulary.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- Formed or born on or after (`began_from`, date): Only match artists whose begin date falls on or after this. For a person that is their date of birth; for a group, when it formed.
- Formed or born on or before (`began_to`, date): Only match artists whose begin date falls on or before this.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "artist",
  "offset": 0,
  "output_detail": "full",
  "query": "artist:Nirvana AND country:US",
  "result_count": 1,
  "results": [
    {
      "area": "United States",
      "begin_area": "Aberdeen",
      "begin_date": "1987",
      "country": "US",
      "disambiguation": "1980s-1990s US grunge band",
      "end_area": null,
      "end_date": "1994-04-05",
      "ended": true,
      "entity_type": "artist",
      "gender": null,
      "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
      "ipis": [],
      "isnis": [
        "0000000123486830"
      ],
      "name": "Nirvana",
      "rating": {
        "value": 4.6,
        "votes": 46
      },
      "requested_includes": [
        "tags",
        "ratings"
      ],
      "sort_name": "Nirvana",
      "tags": [
        {
          "count": 12,
          "name": "grunge"
        },
        {
          "count": 9,
          "name": "alternative rock"
        }
      ],
      "type": "Group",
      "url": "https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da"
    }
  ],
  "total_matches": 4
}
```

### Search for labels

Find record labels by name, LC code, country or type. The LC code may be given with or without its 'LC' prefix and leading zeros.

**Inputs**

- Label name (`name`, text): All or part of the label's name.
- Label code (LC) (`label_code`, text): The label's LC code, as printed on a release. 'LC 07266', '07266' and '7266' all work.
- Country (`country`, text): The two-letter code of the label's country.
- Type (`label_type`, text): Only match labels of this kind, e.g. Imprint, Distributor, Publisher or Original Production.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "label",
  "offset": 0,
  "output_detail": "full",
  "query": "label:\"Geffen Records\"",
  "result_count": 1,
  "results": [
    {
      "area": "United States",
      "begin_date": null,
      "country": "US",
      "disambiguation": null,
      "end_date": null,
      "ended": false,
      "entity_type": "label",
      "id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b",
      "ipis": [],
      "isnis": [],
      "label_code": 7266,
      "name": "Geffen Records",
      "requested_includes": [],
      "sort_name": "Geffen Records",
      "type": "Production",
      "url": "https://musicbrainz.org/label/0fadc2ce-f7de-4e27-bbe6-612b317e716b"
    }
  ],
  "total_matches": 5
}
```

### Search for recordings

Find individual performances of a song by title, artist, the release they appear on, or ISRC. A popular song has hundreds of recordings - studio, live, remixed, remastered - so filter by the release or the date to reach the one you mean.

**Inputs**

- Recording title (`title`, text): All or part of the recording's title.
- Artist name (`artist`, text): Only match recordings credited to this artist.
- Appears on (`release`, text): Only match recordings that appear on a release with this title.
- ISRC (`isrc`, text): An exact ISRC. Hyphens are optional. To go straight from a code to its recordings, use "Find recordings by ISRC" instead.
- Country (`country`, text): The two-letter code of a country the recording was released in.
- Videos only (`video`, true/false): On to match only video recordings, off to match only audio ones. Leave unset to match both.
- Genre (`genre`, text): Only match things carrying this genre, chosen from MusicBrainz's own genre list. Genres are the curated part of the tag vocabulary.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- First released on or after (`first_released_from`, date): Only match recordings first released on or after this day.
- First released on or before (`first_released_to`, date): Only match recordings first released on or before this day.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "recording",
  "offset": 0,
  "output_detail": "full",
  "query": "recording:\"Smells Like Teen Spirit\" AND artist:Nirvana",
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "disambiguation": null,
      "entity_type": "recording",
      "first_release_date": "1991-09-10",
      "id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "isrcs": [
        "USGF19942501"
      ],
      "length": "5:01",
      "length_ms": 301133,
      "name": "Smells Like Teen Spirit",
      "requested_includes": [
        "isrcs",
        "artist-credits"
      ],
      "title": "Smells Like Teen Spirit",
      "type": null,
      "url": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
      "video": false
    }
  ],
  "total_matches": 481
}
```

### Search for release groups

Find albums, singles and EPs as things in their own right, independent of how many times they have been reissued. Filter by artist, type, genre, or when the album first came out. This is usually the right search for 'what albums are there called X'.

**Inputs**

- Album title (`title`, text): All or part of the release group's title.
- Artist name (`artist`, text): Only match albums credited to this artist.
- Type (`primary_type`, text): Only match release groups of this kind. One of: `album`, `single`, `ep`, `broadcast`, `other`.
- Also tagged as (`secondary_types`, list): Only match release groups carrying every one of these secondary types. A live album is an Album that is also Live, so both are recorded. One or more of: `audio drama`, `audiobook`, `compilation`, `demo`, `dj-mix`, `field recording`, `interview`, `live`, `mixtape/street` (Mixtape / street), `remix`, `soundtrack`, `spokenword` (Spoken word).
- Genre (`genre`, text): Only match things carrying this genre, chosen from MusicBrainz's own genre list. Genres are the curated part of the tag vocabulary.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- First released on or after (`first_released_from`, date): Only match albums whose first release falls on or after this day.
- First released on or before (`first_released_to`, date): Only match albums whose first release falls on or before this day.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "release-group",
  "offset": 0,
  "output_detail": "full",
  "query": "releasegroup:Nevermind AND artist:Nirvana",
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "disambiguation": null,
      "entity_type": "release-group",
      "first_release_date": "1991-09-24",
      "id": "1b022e01-4da6-387b-8658-8678046e4cef",
      "name": "Nevermind",
      "primary_type": "Album",
      "requested_includes": [],
      "secondary_types": [],
      "title": "Nevermind",
      "type": null,
      "url": "https://musicbrainz.org/release-group/1b022e01-4da6-387b-8658-8678046e4cef"
    }
  ],
  "total_matches": 6
}
```

### Search for releases

Find specific issues of an album by title, artist, barcode, catalogue number, label, country, format or release date. Searching by barcode is how a scanned product becomes a MusicBrainz release. For the album itself, rather than one pressing of it, use "Search for release groups".

**Inputs**

- Release title (`title`, text): All or part of the release's title.
- Artist name (`artist`, text): Only match releases credited to this artist.
- Barcode (`barcode`, text): The EAN or UPC printed on the packaging. An exact match, and usually the fastest way to the one release you have in your hand.
- Catalogue number (`catalog_number`, text): The number the label printed on the release.
- Label (`label`, text): Only match releases issued by this label.
- Country (`country`, text): The two-letter code of the country it was released in.
- Status (`status`, text): Only match releases of this status. 'Official' excludes bootlegs and promos. One of: `official`, `promotion` (Promotional), `bootleg`, `pseudo-release` (Pseudo-release (a translation or transliteration)), `withdrawn`, `cancelled`.
- Type (`primary_type`, text): Only match releases of this kind. One of: `album`, `single`, `ep`, `broadcast`, `other`.
- Format (`media_format`, text): Only match releases on this medium. MusicBrainz records around a hundred formats, so this is free text rather than a list.
- Genre (`genre`, text): Only match things carrying this genre, chosen from MusicBrainz's own genre list. Genres are the curated part of the tag vocabulary.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- Released on or after (`released_from`, date): Only match releases dated on or after this day.
- Released on or before (`released_to`, date): Only match releases dated on or before this day.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "release",
  "offset": 0,
  "output_detail": "full",
  "query": "release:Nevermind AND artist:Nirvana",
  "result_count": 1,
  "results": [
    {
      "artist_credit": "Nirvana",
      "artists": [
        {
          "id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
          "join_phrase": "",
          "name": "Nirvana",
          "sort_name": "Nirvana"
        }
      ],
      "barcode": "0720642442524",
      "country": "US",
      "date": "1991-09-24",
      "disambiguation": null,
      "entity_type": "release",
      "id": "8e061dc4-790e-4587-ba53-011e7852f88d",
      "labels": [
        {
          "catalog_number": "GED24425",
          "label": "Geffen Records",
          "label_id": "0fadc2ce-f7de-4e27-bbe6-612b317e716b"
        }
      ],
      "language": "eng",
      "media": [
        {
          "disc_ids": [
            "2y0jFMwYQP7gb9iSUKagmoT6DIw-"
          ],
          "format": "CD",
          "position": 1,
          "title": null,
          "track_count": 12,
          "tracks": [
            {
              "length": "5:01",
              "length_ms": 301133,
              "number": "1",
              "position": 1,
              "recording_id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
              "title": "Smells Like Teen Spirit"
            }
          ]
        }
      ],
      "name": "Nevermind",
      "packaging": "Jewel Case",
      "release_group_id": "1b022e01-4da6-387b-8658-8678046e4cef",
      "requested_includes": [
        "recordings",
        "release-groups",
        "media",
        "labels",
        "artist-credits"
      ],
      "script": "Latn",
      "status": "Official",
      "title": "Nevermind",
      "track_count": 12,
      "type": null,
      "url": "https://musicbrainz.org/release/8e061dc4-790e-4587-ba53-011e7852f88d"
    }
  ],
  "total_matches": 21
}
```

### Search for works

Find compositions by title, the artist who wrote or performed them, ISWC or type. A work is the song as written, which is the level royalties and publishing are tracked at.

**Inputs**

- Work title (`title`, text): All or part of the work's title.
- Artist name (`artist`, text): Only match works linked to this artist, as writer or performer.
- ISWC (`iswc`, text): An exact ISWC, e.g. T-070.243.691-6. To go straight from a code to its works, use "Find works by ISWC".
- Type (`work_type`, text): Only match works of this kind. MusicBrainz records around thirty, mostly classical forms, so this is free text.
- Tag (`tag`, text): Only match things carrying this tag. Tags are free text applied by editors, so anything from 'seattle' to 'guilty pleasure' may be there.
- Extra search syntax (`query`, text): An optional raw search clause, combined with the fields above using AND. Use it for anything the fields do not cover, e.g. 'ended:false' or 'comment:tribute'. Written as-is, so its syntax is yours to get right.
- Number of results (`limit`, number): How many results to return (1 to 100). MusicBrainz caps a page at 100 and defaults to 25. From 1 to 100. Default: `25`.
- Skip this many (`offset`, number): How many results to skip, for reading past the first page. Leave at 0 for the first page, set to 25 for the second, and so on. At least 0. Default: `0`.
- Show in the run (`output_detail`, text): How much to print into the run output for a person to read. This only changes what is displayed, never what is saved: a later step reads every result either way. Defaults to every result. One of: `summary` (The first few results), `full` (Every result). Default: `full`.

**Outputs**

- `entity_type` (text)
- `offset` (number)
- `output_detail` (text)
- `query` (text)
- `result_count` (number)
- `results` (list)
- `total_matches` (number)

**Example output**

```json
{
  "entity_type": "work",
  "offset": 0,
  "output_detail": "full",
  "query": "work:\"Smells Like Teen Spirit\"",
  "result_count": 1,
  "results": [
    {
      "attributes": [
        {
          "type": "ASCAP ID",
          "type-id": "d833318c-6c6a-370e-8b16-9cb15873ba76",
          "value": "905650303"
        }
      ],
      "disambiguation": null,
      "entity_type": "work",
      "id": "9840e142-269d-3fa3-9805-041a9235c18a",
      "iswcs": [
        "T-070.243.691-6"
      ],
      "language": "eng",
      "languages": [
        "eng"
      ],
      "name": "Smells Like Teen Spirit",
      "relations": [
        {
          "attributes": [],
          "begin_date": null,
          "direction": "backward",
          "end_date": null,
          "target_id": "60a1f832-8ca6-4d75-ac59-cd8f7c9f0b3d",
          "target_name": "Kurt Cobain",
          "target_type": "artist",
          "type": "composer"
        }
      ],
      "requested_includes": [
        "artist-rels"
      ],
      "title": "Smells Like Teen Spirit",
      "type": "Song",
      "url": "https://musicbrainz.org/work/9840e142-269d-3fa3-9805-041a9235c18a"
    }
  ],
  "total_matches": 2
}
```

### Tag something

Add tags to a MusicBrainz entity, hide ones you disagree with, or take back a vote you cast before. Tags are public and attributed to your account, and take effect at once. Genres are submitted the same way: a tag drawn from MusicBrainz's genre list counts as a genre.

**Inputs**

- Kind of thing (`entity_type`, text, required): Which kind of entity the ID names. One of: `area` (Area - a country, city or region), `artist` (Artist - a person, group or orchestra), `event` (Event - a concert or festival), `genre` (Genre - one of MusicBrainz's genre entries), `instrument`, `label` (Label - a record label or imprint), `place` (Place - a venue, studio or stadium), `recording` (Recording - one performance, as a track), `release` (Release - one issue of an album, with its own barcode), `release-group` (Release group - an album, across all its issues), and 3 more.
- MusicBrainz ID (`mbid`, text, required): The entity's MusicBrainz ID, or the musicbrainz.org address of its page. It must be an ID of the kind chosen above: MusicBrainz IDs are not shared between kinds of entity.
- Tags (`tags`, list, required): The tags to submit: one per line, comma-separated, or a list from an earlier step. Tags are stored in lower case.
- What to do with them (`vote`, text): Adding is the default. Hiding a tag subtracts a vote from it and hides it from you; if its total falls to zero it is hidden from everyone. One of: `upvote` (Add the tags (upvote)), `downvote` (Hide the tags (downvote)), `withdraw` (Take back my earlier vote). Default: `upvote`.

**Outputs**

- `entity_type` (text)
- `mbid` (text)
- `name` (text)
- `submitted` (true/false)
- `tags` (list)
- `url` (text)
- `vote` (text)

**Example output**

```json
{
  "entity_type": "artist",
  "mbid": "5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "name": "Nirvana",
  "submitted": true,
  "tags": [
    "grunge",
    "seattle"
  ],
  "url": "https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "vote": "upvote"
}
```
