# MusicBrainz API

> MusicBrainz returns song identifiers and artist details, available as a workflow and API.

Get song identifiers finds a matching studio recording, its identifiers, and listed releases using a song title and artist. Get artist returns reference details and available links for an artist or band using its name, with an optional country to distinguish artists.

- Page: https://fous.com/tools/musicbrainz
- Handle: `@musicbrainz`
- Category: [Entertainment](https://fous.com/tools/category/entertainment)
- Source website: https://musicbrainz.org
- Last verified: Sep 29, 2026

## Methods

### Get artist

Operation `get_artist`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get an artist or band’s reference details by name, optionally choosing a country. Includes recorded members and selected website, encyclopedia, social, and streaming links when available.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `artist` | string | yes | `"Nirvana"` | Artist or band name, for example Nirvana. |
| `country` | string | no | `"US"` | Two-letter country code to distinguish artists with the same name, for example US. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "artist"
  ],
  "properties": {
    "artist": {
      "type": "string",
      "description": "Artist or band name, for example Nirvana.",
      "examples": [
        "Nirvana",
        "Björk"
      ]
    },
    "country": {
      "type": "string",
      "default": "",
      "examples": [
        "US"
      ],
      "description": "Two-letter country code to distinguish artists with the same name, for example US."
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "artist": "Nirvana"
    },
    {
      "artist": "Nirvana",
      "country": "GB"
    },
    {
      "artist": "Björk"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `name` | string | `"Nirvana"` |  |
| `type` | string or null | `"Group"` |  |
| `gender` | string or null | `"Female"` |  |
| `genres` | array |  |  |
| `aliases` | array |  |  |
| `country` | string or null | `"US"` |  |
| `members` | array |  |  |
| `members[].link` | string | `"https://musicbrainz.org/artist/86d3f2c7-2a19-4249-ad7c-6feec74118d7"` |  |
| `members[].name` | string | `"Aaron Burckhard"` |  |
| `members[].years` | string or null | `"1987–1987"` |  |
| `members[].instruments` | array |  |  |
| `end_date` | string or null | `"1994-04-05"` |  |
| `home_area` | string or null | `"Aberdeen"` |  |
| `ipi_codes` | array |  |  |
| `begin_date` | string or null | `"1987"` |  |
| `isni_codes` | array |  |  |
| `official_links` | array |  |  |
| `official_links[].link` | string | `"https://music.amazon.com/artists/B001DTD5NQ"` |  |
| `official_links[].label` | string | `"Amazon Music"` |  |
| `musicbrainz_link` | string | `"https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da"` |  |
| `musicbrainz_artist_id` | string | `"5b11f4ce-a62d-471e-81fc-a69a8278c7da"` |  |

**Example input**

```json
{
  "artist": "Nirvana"
}
```

**Example output**

```json
{
  "name": "Nirvana",
  "type": "Group",
  "gender": null,
  "genres": [
    "acoustic rock",
    "alternative metal",
    "alternative pop"
  ],
  "aliases": [
    "Nirvana",
    "Nirvana US",
    "ニルヴァーナ"
  ],
  "country": "US",
  "members": [
    {
      "link": "https://musicbrainz.org/artist/86d3f2c7-2a19-4249-ad7c-6feec74118d7",
      "name": "Aaron Burckhard",
      "years": "1987–1987",
      "instruments": [
        "drums (drum set)"
      ]
    },
    {
      "link": "https://musicbrainz.org/artist/e2f28104-72bb-4c8f-b0f9-78d4eaf492fd",
      "name": "Chad Channing",
      "years": "1988–1990",
      "instruments": [
        "drums (drum set)"
      ]
    },
    {
      "link": "https://musicbrainz.org/artist/9b93a71b-1484-4bea-b096-f660c1161f8a",
      "name": "Dale Crover",
      "years": "1987–1990",
      "instruments": [
        "drums (drum set)"
      ]
    }
  ],
  "end_date": "1994-04-05",
  "home_area": "Aberdeen",
  "ipi_codes": [],
  "begin_date": "1987",
  "isni_codes": [
    "0000000123486830"
  ],
  "official_links": [
    {
      "link": "https://music.amazon.com/artists/B001DTD5NQ",
      "label": "Amazon Music"
    },
    {
      "link": "https://music.apple.com/us/artist/112018",
      "label": "Apple Music"
    },
    {
      "link": "https://nirvana.bandcamp.com/",
      "label": "Bandcamp"
    }
  ],
  "musicbrainz_link": "https://musicbrainz.org/artist/5b11f4ce-a62d-471e-81fc-a69a8278c7da",
  "musicbrainz_artist_id": "5b11f4ce-a62d-471e-81fc-a69a8278c7da"
}
```

### Get song identifiers

Operation `get_song_identifiers`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find the best-matching studio recording by song title and artist, with ISRCs, first release date, and up to 25 of its earliest listed releases. Release dates and some label, country, barcode, or format details may be incomplete in MusicBrainz.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `song` | string | yes | `"Smells Like Teen Spirit"` | Song title, for example Bohemian Rhapsody. |
| `artist` | string | yes | `"Nirvana"` | Performing artist, for example Queen. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "song",
    "artist"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Song title, for example Bohemian Rhapsody.",
      "examples": [
        "Smells Like Teen Spirit",
        "Bohemian Rhapsody"
      ]
    },
    "artist": {
      "type": "string",
      "description": "Performing artist, for example Queen.",
      "examples": [
        "Nirvana",
        "Queen"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "song": "Smells Like Teen Spirit",
      "artist": "Nirvana"
    },
    {
      "song": "Bohemian Rhapsody",
      "artist": "Queen"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string | `"Smells Like Teen Spirit"` | Recording title. |
| `artist` | string | `"Nirvana"` | Credited recording artist. |
| `length` | string or null | `"5:01"` | Recording length in minutes and seconds, for example 5:55. |
| `releases` | array |  | Up to 25 earliest releases carrying the recording, oldest first. |
| `releases[].date` | string or null | `"1991"` | Release date as listed; may be a year or year-month if incomplete. |
| `releases[].label` | string or null | `"Geffen"` |  |
| `releases[].format` | string or null | `"CD"` |  |
| `releases[].barcode` | string or null | `"720642442548"` |  |
| `releases[].country` | string or null | `"United States"` |  |
| `releases[].release_id` | string | `"1cf8a7f1-735a-4416-88ae-da9360b2871f"` |  |
| `releases[].release_title` | string | `"Earphoria"` |  |
| `releases[].musicbrainz_link` | string | `"https://musicbrainz.org/release/1cf8a7f1-735a-4416-88ae-da9360b2871f"` |  |
| `isrc_codes` | array |  | Official ISRC identifiers assigned to this recording. |
| `recording_id` | string | `"5fb524f1-8cc8-4c04-a921-e34c0a911ea7"` | MusicBrainz recording ID. |
| `musicbrainz_link` | string | `"https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7"` | MusicBrainz recording page. |
| `first_release_date` | string or null | `"1991-09-10"` | First known release date (YYYY-MM-DD or year). |
| `length_milliseconds` | integer or null | `301133` | Recording length in milliseconds. |

**Example input**

```json
{
  "song": "Smells Like Teen Spirit",
  "artist": "Nirvana"
}
```

**Example output**

```json
{
  "title": "Smells Like Teen Spirit",
  "artist": "Nirvana",
  "length": "5:01",
  "releases": [
    {
      "date": "1991",
      "label": "Geffen",
      "format": "CD",
      "barcode": null,
      "country": "United States",
      "release_id": "1cf8a7f1-735a-4416-88ae-da9360b2871f",
      "release_title": "Earphoria",
      "musicbrainz_link": "https://musicbrainz.org/release/1cf8a7f1-735a-4416-88ae-da9360b2871f"
    },
    {
      "date": "1991",
      "label": "DGC Records, Stallions Records",
      "format": "Cassette",
      "barcode": "720642442548",
      "country": "Saudi Arabia",
      "release_id": "201d5e28-2de4-4e6f-830a-d55c98e57641",
      "release_title": "Nevermind",
      "musicbrainz_link": "https://musicbrainz.org/release/201d5e28-2de4-4e6f-830a-d55c98e57641"
    },
    {
      "date": "1991",
      "label": "BMG Direct Marketing, Inc., DGC Records",
      "format": "CD",
      "barcode": null,
      "country": "United States",
      "release_id": "347666eb-86f7-488a-a427-895f6f7ac203",
      "release_title": "Nevermind",
      "musicbrainz_link": "https://musicbrainz.org/release/347666eb-86f7-488a-a427-895f6f7ac203"
    }
  ],
  "isrc_codes": [
    "USGF19942501"
  ],
  "recording_id": "5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
  "musicbrainz_link": "https://musicbrainz.org/recording/5fb524f1-8cc8-4c04-a921-e34c0a911ea7",
  "first_release_date": "1991-09-10",
  "length_milliseconds": 301133
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@musicbrainz",
  "visibility": "public",
  "operation": "get_artist",
  "version": 1,
  "input": {
    "artist": "Nirvana"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@musicbrainz\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_artist\",\n  \"version\": 1,\n  \"input\": {\n    \"artist\": \"Nirvana\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@musicbrainz",
  "visibility": "public",
  "operation": "get_artist",
  "version": 1,
  "input": {
    "artist": "Nirvana"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/musicbrainz`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_artist`: Get artist. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_song_identifiers`: Get song identifiers. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-musicbrainz https://api.fous.com/mcp/tools/musicbrainz --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Match songs to their ISRC identifiers
- Review a recording’s listed releases and dates
- Find reference details for an artist or band
- Collect available links for an artist

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this MusicBrainz tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a MusicBrainz account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from musicbrainz.org when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What ISRC identifiers are assigned to a recording?

Get song identifiers returns ISRC identifiers for the best-matching studio recording using a song title and artist.

### When was a recording first released?

Get song identifiers returns the first known release date and listed releases for the matching recording.

### What members are recorded for an artist?

Get artist returns recorded members, including their names, years, and instruments when available.

## Related

- [Apple Music API](https://fous.com/tools/apple-music.md): Apple Music returns albums, tracks, artist profiles, latest releases, top music, matching songs, and current charts; prices, previews, and older albums may be unavailable.
- [Last.fm API](https://fous.com/tools/last-fm.md): Last.fm provides listening statistics, artist profiles, discovery, up to 50 tracks or albums, similar artists without percentages, and upcoming events that may be absent.
- [Spotify API](https://fous.com/tools/spotify.md): Spotify returns public artist profiles, album credits and ordered tracks, song details and play counts, up to 500 playlist songs, keyword results, and country-based podcast charts; dates and regional options vary.
- [Genius API](https://fous.com/tools/genius.md): Genius provides lyrics, annotations, credits, and music knowledge, plus song stories, relationships, page details, and artist song lists by popularity or release date; dates and views may be unavailable.
- [SongBPM API](https://fous.com/tools/songbpm.md): Song tempo and key information for music listeners, performers and DJs.
- [Bandsintown API](https://fous.com/tools/bandsintown.md): Bandsintown provides artist tour dates and concert listings with venues, lineups and ticket or event links; results reflect listed upcoming shows and may include nearby venues.
- [Discogs API](https://fous.com/tools/discogs.md): Discogs provides releases, collections and marketplace information, including edition and track details, community counts, available price statistics, and artists’ discographies; sold prices may be unavailable.
- [Deezer API](https://fous.com/tools/deezer.md): Deezer provides albums with ordered tracklists, song recording details, and current worldwide charts or official country-playlist tracks; previews and some tempo data may be unavailable or expire.
- [All Entertainment tools](https://fous.com/tools/category/entertainment)
