Discover/MusicBrainz API
live

MusicBrainz APImusicbrainz.org

Access MusicBrainz music metadata via 7 endpoints: search artists and recordings, fetch credits, genres, ISRCs, track listings, and release editions.

Endpoint health
verified 1d ago
search_artist
get_recording_details
get_artist_details
search_recording
get_release_group_details
7/7 passing latest checkself-healing
Endpoints
7
Updated
15d ago

What is the MusicBrainz API?

This API exposes 7 endpoints covering MusicBrainz's open music database, returning artist metadata, recording credits, release track listings, and release group editions. The get_recording_details endpoint alone surfaces musician instruments, producer and engineer credits, ISRC codes, work relationships (cover/original), and every release the recording appears on — all keyed by MusicBrainz UUID (MBID). Full-text search endpoints support Lucene query syntax for precise filtering across artists and recordings.

Try it
Maximum number of results (1-100).
Search query. Supports Lucene syntax: plain text ('Aretha Franklin'), field-specific ('area:"New York"'), or combined ('artist:"Beatles" AND type:Group').
Pagination offset for results.
api.parse.bot/scraper/b76d1d93-5af4-4108-bc84-5729f72c3ce5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b76d1d93-5af4-4108-bc84-5729f72c3ce5/search_artist?limit=5&query=Aretha+Franklin&offset=0' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace musicbrainz-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: MusicBrainz SDK — search artists, drill into albums, explore recordings and Muscle Shoals scene."""
from parse_apis.musicbrainz_music_metadata_api import MusicBrainz, EntityType, ResourceNotFound

mb = MusicBrainz()

# Search for artists and inspect summary fields
for artist in mb.artists.search(query="Massive Attack", limit=3):
    print(artist.name, artist.score, artist.country)

# Drill into the first artist for full details
summary = mb.artists.search(query="Radiohead", limit=1).first()
if summary:
    full = summary.details()
    print(full.name, full.type, full.country)
    if full.rating:
        print(full.rating.value, full.rating.votes_count)
    for genre in full.genres[:3]:
        print(genre.name, genre.count)
    # Walk release groups (albums/EPs)
    for rg in full.release_groups[:2]:
        print(rg.title, rg.primary_type, rg.first_release_date)
        # Drill into release group for all editions
        rg_full = rg.details()
        print(rg_full.title, rg_full.primary_type)
        for edition in rg_full.releases[:2]:
            print(edition.title, edition.date, edition.country)
            # Drill into a specific release for track listing
            release = edition.details()
            print(release.title, release.status)
            if release.cover_art_archive:
                print(release.cover_art_archive.front, release.cover_art_archive.count)
            for medium in release.media[:1]:
                print(medium.format, medium.track_count)
                for track in medium.tracks[:2]:
                    print(track.title, track.length_formatted, track.number)
        break

# Search recordings and get detailed credits
rec = mb.recordings.search(query='artist:"Massive Attack"', limit=1).first()
if rec:
    print(rec.title, rec.length_formatted, rec.score)
    for ac in rec.artist_credits:
        print(ac.name, ac.joinphrase)
    full_rec = rec.details()
    print(full_rec.title, full_rec.video)
    for credit in full_rec.credits[:3]:
        print(credit.type, credit.direction)
        if credit.artist:
            print(credit.artist.name, credit.artist.type)

# Discover Muscle Shoals music scene entities
scene = mb.muscleshowalsscenes.discover(entity_type=EntityType.ARTISTS)
print(scene.artists, scene.places, scene.labels)

# Typed error handling
try:
    bad = mb.artists.search(query="zzz_nonexistent_xyz", limit=1).first()
    if bad:
        bad.details()
except ResourceNotFound as exc:
    print(f"Not found: {exc.mbid}")

print("exercised: artists.search / details / release_groups.details / releases.details / recordings.search / recording.details / muscleshowalsscenes.discover")
All endpoints · 7 totalmissing one? ·

Full-text search over MusicBrainz artists. Supports Lucene query syntax for field-specific searches (e.g. area:"New York", type:Group). Returns paginated artist summaries with tags, genres, aliases, and life span. Each result includes an MBID usable with get_artist_details for full metadata.

Input
ParamTypeDescription
limitintegerMaximum number of results (1-100).
queryrequiredstringSearch query. Supports Lucene syntax: plain text ('Aretha Franklin'), field-specific ('area:"New York"'), or combined ('artist:"Beatles" AND type:Group').
offsetintegerPagination offset for results.
Response
{
  "type": "object",
  "fields": {
    "count": "integer, total number of matching artists",
    "offset": "integer, current pagination offset",
    "artists": "array of ArtistSummary objects"
  },
  "sample": {
    "data": {
      "count": 729,
      "offset": 0,
      "artists": [
        {
          "id": "2f9ecbed-27be-40e6-abca-6de49d50299e",
          "area": "United States",
          "name": "Aretha Franklin",
          "tags": [
            {
              "name": "soul",
              "count": 8
            }
          ],
          "type": "Person",
          "score": 100,
          "gender": "female",
          "genres": [],
          "aliases": [
            "Aretha Louise Franklin"
          ],
          "country": "US",
          "life_span": {
            "end": "2018-08-16",
            "begin": "1942-03-25",
            "ended": true
          },
          "sort_name": "Franklin, Aretha",
          "begin_area": "Memphis",
          "disambiguation": null
        }
      ]
    },
    "status": "success"
  }
}

About the MusicBrainz API

Search and Lookup

search_artist and search_recording both accept a query parameter with optional Lucene field syntax — for example area:"New York" or title:"Yesterday" AND artist:"The Beatles". Results are paginated via limit (1–100) and offset. Each hit returns a summary object including MBIDs, tags, genres, and aliases, which can be passed directly to the detail endpoints for deeper data.

Artist and Recording Details

get_artist_details takes an mbid and returns the artist's type (Person or Group), gender, area, isnis, ipis, genres, tags, community rating, and inline release_groups — albums, singles, and EPs — without requiring additional calls. get_recording_details returns length in milliseconds, isrcs, video flag, genres, and a credits array that captures instrument performers, producers, engineers, and work relationships including cover/original attribution. The releases array inside the response lists every release the recording appears on, with date, status, and country.

Release and Release Group Data

get_release_details returns a full track listing via the media array: each disc includes format, track_count, and a tracks array where every track carries its own recording MBID, duration, and per-track artist credits. Label info, barcode, packaging, and release events are also included. get_release_group_details lists all pressings and editions of an album across countries under a single releases array, alongside primary_type, secondary_types, artist_credits, and community rating.

Muscle Shoals Specialty Endpoint

search_muscle_shoals is a focused endpoint for discovering music industry entities tied to Muscle Shoals, Alabama. The entity_type parameter filters results to artists, places (studios like FAME and Muscle Shoals Sound), or labels. Setting include_releases to true adds release group data for artists and release data for labels. Results distinguish between artists based in the area and artists born there via separate arrays.

Reliability & maintenanceVerified

The MusicBrainz API is a managed, monitored endpoint for musicbrainz.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when musicbrainz.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official musicbrainz.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a musician credits database by chaining search_recording with get_recording_details to extract instrument and production credits per track.
  • Identify all international pressings and editions of an album using get_release_group_details and its releases array.
  • Enrich a music catalog with ISRC codes and duration data from get_recording_details for royalty tracking or fingerprinting.
  • Generate genre and tag profiles for artists using the genres and tags arrays returned by get_artist_details.
  • Map recording cover/original relationships from the credits work relationships in get_recording_details.
  • Compile a full tracklist with per-track recording MBIDs from get_release_details to link to deeper credit data.
  • Research the Muscle Shoals music ecosystem — studios, labels, and affiliated artists — using search_muscle_shoals with entity_type filtering.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does MusicBrainz have an official developer API?+
Yes. MusicBrainz provides an official public API documented at https://musicbrainz.org/doc/MusicBrainz_API. It uses REST endpoints and requires a User-Agent header. This Parse API wraps that data source into a consistent interface without requiring you to handle pagination quirks or relationship includes manually.
What does get_recording_details return beyond basic song metadata?+
Beyond title, length, and ISRCs, the credits array contains typed relationship objects covering musicians (with instrument attributes), producers, engineers, and vocal performers. It also includes work relationships that indicate whether a recording is a cover and links to the original work. The releases array lists every release the recording appears on, each with date, country, and status.
Does the API return cover art images for releases or artists?+
No image URLs are returned. get_release_details includes a cover art status field but does not return image URLs. MusicBrainz delegates cover images to the Cover Art Archive (coverartarchive.org), which is a separate service. You can fork this API on Parse and revise it to add a cover art endpoint that fetches from coverartarchive.org using the release MBID.
Are streaming platform links (Spotify, Apple Music) included in artist or recording responses?+
Not currently. The API returns MusicBrainz-native identifiers: MBIDs, ISNIs, IPIs, and ISRCs. External service links (such as Spotify artist IDs or streaming URLs) that some MusicBrainz entries carry as URL relationships are not exposed in the current response shapes. You can fork the API on Parse and revise it to include URL relationship fields from the MusicBrainz API's url entity type.
How fresh is the data, and is the full MusicBrainz catalog covered?+
MusicBrainz is a community-edited database with continuous updates, so individual entry quality varies — popular artists and releases are typically well-documented while niche entries may have sparse credits or missing release dates. The API reflects the current state of MusicBrainz at query time. There is no changelog or delta endpoint to retrieve recently edited entries; lookups are point-in-time by MBID or search query.
Page content last updated . Spec covers 7 endpoints from musicbrainz.org.
Related APIs in MusicSee all →
allmusic.com API
Search for music, browse artist biographies and discographies, and retrieve detailed album and song information all in one place. Discover new releases and access comprehensive metadata about artists and tracks.
metal-archives.com API
Search and explore music data including bands, albums, songs, and lyrics, with the ability to discover artist recommendations, view band members and discographies, and look up record label information. Get detailed information about musicians, their releases, and recommendations based on your musical interests.
merchbar.com API
Search and discover music merchandise across vinyls, CDs, apparel, and accessories, then track product details, new arrivals, and sales by artist. Find exactly what you're looking for with real-time product information and pricing updates.
rateyourmusic.com API
Search for albums, artists, and genres to retrieve detailed information including release dates, ratings, and chart rankings from Rate Your Music. Browse music charts and explore genre-specific data to discover trends across the catalog.
lyrics.com API
Search and retrieve song lyrics, artist biographies, and album information across multiple genres and artists. Browse music content by artist, letter, or genre, and discover new or random songs to explore.
musixmatch.com API
Search for song lyrics, metadata, and translations while discovering artist profiles, discographies, and album details all in one place. Build music apps that let you retrieve complete song information, explore artist catalogs, and discover new music through curated feeds.
amoeba.com API
Search and browse Amoeba Music's catalog of vinyl records and CDs, including used listings, to find product details and discover new releases. Check store information to plan your visits to Amoeba's physical locations.
beatport.com API
Search and discover electronic music tracks, releases, and artists on Beatport while accessing detailed metadata, audio previews, genre listings, and top 10 charts. Get comprehensive information about specific tracks, releases, artists, and labels to power music discovery and curation applications.