Look up music artist metadata

When the user asks about a music artist — members, instruments, genres, lifespan, disambiguation, or how to tell same-named artists apart — reach for MusicBrainz. Unauthenticated JSON API with Lucene search and rich entity detail.

look-up-music-artist-metadata · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/look-up-music-artist-metadata. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/look-up-music-artist-metadata/SKILL.md.

When to use this skill

When the user asks about a music artist — who was in the band, what instruments they played, what genre tags apply, when the group formed or ended, or how to tell two artists with the same name apart — reach for MusicBrainz. It is an open music encyclopedia that models artist relationships with instrument credits, crowd-sourced genre tags, and community ratings. For lyrics, audio, or chart positions, this is the wrong skill.

Your best first call

curl "https://musicbrainz.org/ws/2/artist?query=artist%3Adaft+punk&fmt=json&limit=10"

No auth. No key. But you must include fmt=json or you get XML. The query parameter supports Lucene syntax — artist:nirvana AND country:US narrows by field. Returns a paginated result with artists array, each entry carrying id (the MBID), name, disambiguation, country, type, score (0–100 match quality), and life-span. The disambiguation field is MusicBrainz's answer to name collisions — at least five artists share the name "Nirvana", and each gets a unique parenthetical like "1980s-1990s US grunge band".

When you have the MBID, a detail lookup with inc= returns everything the bare response hides — member relations with instrument credits, genre tags, and community ratings:

curl "https://musicbrainz.org/ws/2/artist/056e4f3e-d505-4dad-8ec1-d04f521cbb56?fmt=json&inc=artist-rels+tags+ratings"

Key fields in the detail response: relations (member-of with attributes listing specific instruments — Thomas Bangalter played bass, keyboard, synthesizer; Guy-Manuel de Homem-Christo played drums, guitar, synthesizer), tags (genre names with vote counts — higher is more established), rating (community score 0–5), and life-span (with begin, end, ended).

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can look up music artist metadata — members, instruments, genres, lifespan, disambiguation — from MusicBrainz in unauthenticated JSON requests, and it is uniquely good at telling apart artists who share a name.

APIs this skill uses

MusicBrainz API · primary · verified

MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public. This API provides access to artist, release, recording, label, and other music-related data.

Generated from

MusicBrainz API tutorial Getting Started with MusicBrainz

SKILL.md source (frontmatter + body)
---
name: look-up-music-artist-metadata
description: When the user asks about a music artist — members, instruments, genres, lifespan, disambiguation, or how to tell same-named artists apart — reach for MusicBrainz. Unauthenticated JSON API with Lucene search and rich entity detail.
---

## When to use this skill

When the user asks about a music artist — who was in the band, what instruments they played, what genre tags apply, when the group formed or ended, or how to tell two artists with the same name apart — reach for MusicBrainz. It is an open music encyclopedia that models artist relationships with instrument credits, crowd-sourced genre tags, and community ratings. For lyrics, audio, or chart positions, this is the wrong skill.

## Your best first call

```bash
curl "https://musicbrainz.org/ws/2/artist?query=artist%3Adaft+punk&fmt=json&limit=10"
```

No auth. No key. But you must include `fmt=json` or you get XML. The `query` parameter supports Lucene syntax — `artist:nirvana AND country:US` narrows by field. Returns a paginated result with `artists` array, each entry carrying `id` (the MBID), `name`, `disambiguation`, `country`, `type`, `score` (0–100 match quality), and `life-span`. The `disambiguation` field is MusicBrainz's answer to name collisions — at least five artists share the name "Nirvana", and each gets a unique parenthetical like "1980s-1990s US grunge band".

When you have the MBID, a detail lookup with `inc=` returns everything the bare response hides — member relations with instrument credits, genre tags, and community ratings:

```bash
curl "https://musicbrainz.org/ws/2/artist/056e4f3e-d505-4dad-8ec1-d04f521cbb56?fmt=json&inc=artist-rels+tags+ratings"
```

Key fields in the detail response: `relations` (member-of with `attributes` listing specific instruments — Thomas Bangalter played bass, keyboard, synthesizer; Guy-Manuel de Homem-Christo played drums, guitar, synthesizer), `tags` (genre names with vote counts — higher is more established), `rating` (community score 0–5), and `life-span` (with `begin`, `end`, `ended`).

## Fallbacks (when the best call isn't enough)

- **You already have the artist's MBID** → `/ws/2/artist/{mbid}?fmt=json&inc=artist-rels+tags+ratings` skips the search and returns full detail directly.
- **You have an ISRC code, not an artist name** → `/ws/2/isrc/{isrc}?fmt=json` resolves the code to a recording, from which you can follow `artist` relations. One of the few public APIs that resolves ISRCs directly.
- **MusicBrainz is down** → No fallback — no other public API models artist relationships with instrument credits or provides the same disambiguation quality.

## Pitfalls

- **`fmt=json` is not optional.** Omit it and you get XML. Every request must include it.
- **MBIDs are opaque UUIDs.** You cannot derive an artist's MBID from their name — you must search first, then use the `id` from the result. Calling `/artist/{made-up-uuid}` returns 404, not an empty result.
- **Rate limit is 1 request/second** and requires a `User-Agent` header identifying your application. MusicBrainz will block IPs that exceed this. Include a contact URL or email in your `User-Agent`.
- **Search `count` is total matches, not page size.** A search returning `"count": 266` with `"limit": 10` has 266 total results across 27 pages. Use `offset` to paginate — do not assume `count` is the length of the array you received.

## One-line summary for the user

I can look up music artist metadata — members, instruments, genres, lifespan, disambiguation — from MusicBrainz in unauthenticated JSON requests, and it is uniquely good at telling apart artists who share a name.

« Back to all skills