MusicBrainz API: Get song identifiers
Finds the best-matching studio recording on MusicBrainz for a song title and artist. Returns its ISRCs, first release date and up to 25 of its earliest releases.
Unofficial. Not affiliated with or endorsed by MusicBrainz.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Song, required
song Song title, for example Bohemian Rhapsody.
Smells Like Teen Spirit
- Artist, required
artist Performing artist, for example Queen.
Nirvana
Input as JSON
{ "song": "Smells Like Teen Spirit", "artist": "Nirvana"}Output
{ "title": "Smells Like Teen Spirit", "artist": "Nirvana", "length": "4:39", "releases": [ { "date": "1991", "label": "DGC Records", "format": "12\" Vinyl", "barcode": null, "country": "United States", "release_id": "d57797a6-b862-3e01-8a6c-9d5dd42a1ef0", "release_title": "Smells Like Teen Spirit", "musicbrainz_link": "https://musicbrainz.org/release/d57797a6-b862-3e01-8a6c-9d5dd42a1ef0" }, { "date": "1991", "label": "DGC Records", "format": "12\" Vinyl", "barcode": "720642171219", "country": "Germany", "release_id": "e272dc1c-fe22-3653-87ea-d4e4fef00b4d", "release_title": "Smells Like Teen Spirit", "musicbrainz_link": "https://musicbrainz.org/release/e272dc1c-fe22-3653-87ea-d4e4fef00b4d" }, { "date": "1991", "label": "DGC Records", "format": "Vinyl", "barcode": "720642171219", "country": "France", "release_id": "f2a55fcb-ccc5-3a59-9214-d080af2c5911", "release_title": "Smells Like Teen Spirit", "musicbrainz_link": "https://musicbrainz.org/release/f2a55fcb-ccc5-3a59-9214-d080af2c5911" } ], "isrc_codes": [], "recording_id": "0ef2f43e-51d4-4930-9052-3820358044d5", "musicbrainz_link": "https://musicbrainz.org/recording/0ef2f43e-51d4-4930-9052-3820358044d5" , "first_release_date": "1991-09-10", "length_milliseconds": 279933}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"musicbrainz.org/get_song_identifiers","input":{"song":"Smells Like Teen Spirit","artist":"Nirvana"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "musicbrainz.org/get_song_identifiers" , "input": { "song": "Smells Like Teen Spirit", "artist": "Nirvana" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "musicbrainz.org/get_song_identifiers" , "input": { "song": "Smells Like Teen Spirit", "artist": "Nirvana" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run musicbrainz.org/get_song_identifiers# with {"song":"Smells Like Teen Spirit","artist":"Nirvana"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "song", "artist" ], "properties": { "song": { "type": "string", "minLength": 1, "description": "Song title, for example Bohemian Rhapsody." }, "artist": { "type": "string", "minLength": 1, "description": "Performing artist, for example Queen." } }}Output schema
{ "type": "object", "required": [ "title", "artist", "length", "isrc_codes", "first_release_date", "musicbrainz_link", "recording_id", "length_milliseconds", "releases" ], "properties": { "title": { "type": "string" }, "artist": { "type": "string" }, "length": { "type": [ "string", "null" ] }, "releases": { "type": "array", "items": { "type": "object", "properties": { "date": { "type": [ "string", "null" ] }, "label": { "type": [ "string", "null" ] }, "format": { "type": [ "string", "null" ] }, "barcode": { "type": [ "string", "null" ] }, "country": { "type": [ "string", "null" ] }, "release_id": { "type": "string" }, "release_title": { "type": "string" }, "musicbrainz_link": { "type": "string" } } } }, "isrc_codes": { "type": "array", "items": { "type": "string" } }, "recording_id": { "type": "string" }, "musicbrainz_link": { "type": "string" }, "first_release_date": { "type": [ "string", "null" ] }, "length_milliseconds": { "type": [ "integer", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
musicbrainz.org/get_song_identifiers- Returns
- title, artist, length, ISRCs, first release date, recording link, earliest releases
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method musicbrainz.org/get_song_identifiers with the inputs above.
Ask your agent
- Find the ISRC codes for the song Bohemian Rhapsody by Queen
- What is the first release date of Hotel California by the Eagles?
- Get the earliest releases and recording link for Smells Like Teen Spirit by Nirvana on MusicBrainz
- Look up the studio recording length and ISRCs for Imagine by John Lennon
- When was Billie Jean by Michael Jackson first released, and what were its earliest releases?
See more
All MusicBrainz methodsLooks up an artist or band on MusicBrainz by name, optionally narrowed by country, and returns reference details, recorded members, aliases, genres and official links.
musicbrainz.org/get_artistGets a Deezer song's tempo, ISRC, loudness gain and recording details from its title, track link or track ID. An artist name helps pick the right recording.
deezer.com/get_song_detailsFinds a Spotify song by title (optionally narrowed by artist), track link, URI or track ID and returns its public play count and details. Without an artist, the most-played exact title match wins. Previews and ISRC may be unavailable for some tracks.
open.spotify.com/get_songFinds the best SongBPM match for a song title and artist and returns its tempo, musical key, Camelot key, length and time signature.
songbpm.com/get_song_tempo_and_keyFinds a Discogs release by title, artist or release link and returns its edition details, tracks, community counts, current price and sold price statistics.
discogs.com/get_releaseSearches the Apple Music song catalog by title and artist words, returning matching tracks in relevance order with prices and previews when available.
music.apple.com/search_songsLists an artist's songs on Genius by popularity or newest release date, with featured artists, release dates, page views and song art. The artist can be given by name or by Genius artist link; dates or views may be unavailable.
genius.com/list_artist_songsGets an artist's upcoming concerts and tour dates on Songkick, optionally filtered by country, with ticket links and start times when listed.
songkick.com/get_artist_tour_dates