BYTETOOLS

MusicBrainz API

Free MusicBrainz API with no key: open music encyclopaedia with artists, releases, recordings, labels and relationships. The reference music database. Tested.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 20 Aug 2026

What is the MusicBrainz API?

The MusicBrainz API is a free, key-free API into the open music encyclopaedia, providing artists, releases, recordings, labels, works and the relationships between them, maintained by a global volunteer community.

MusicBrainz is the reference open music database, and its identifiers (MBIDs) are used across the music industry as stable keys for artists and releases. If you need to reconcile music metadata between systems, MBIDs are how.

Two rules are strictly enforced: you must send a descriptive User-Agent identifying your application, and you must not exceed one request per second. Both are checked, and violations get blocked — the project runs on donated infrastructure.

Quick facts

Base URL
https://musicbrainz.org/ws/2
Authentication
No API key, but a descriptive User-Agent with contact details is mandatory and enforced.
Rate limit
One request per second, strictly enforced by IP.
Pricing
Free. Core data is public domain (CC0); some supplementary data is CC BY-NC-SA.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the MusicBrainz API

Every request below was executed against the live API on 20 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Search for an artist

GET https://musicbrainz.org/ws/2/artist/?query=radiohead&fmt=json&limit=1

curl
curl 'https://musicbrainz.org/ws/2/artist/?query=radiohead&fmt=json&limit=1'
JavaScript (fetch)
const res = await fetch("https://musicbrainz.org/ws/2/artist/?query=radiohead&fmt=json&limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://musicbrainz.org/ws/2/artist/?query=radiohead&fmt=json&limit=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "created": "2026-08-19T21:11:23.496Z",
  "count": 29,
  "offset": 0,
  "artists": [
    {
      "id": "a74b1b7f-71a5-4011-9441-d0b5e4122711",
      "type": "Group",
      "type-id": "e431f5f6-b5d2-343d-8b36-72607fffb74b",
      "score": 100,
      "name": "Radiohead",
      "sort-name": "Radiohead",
      "country": "GB",
      "area": {
        "id": "8a754a16-0027-3a29-b6d7-2b40ea0481ed",
        "type": "Country",
        "type-id": "06dd0ae4-8c74-30bb-b43d-95dcedf961de",
        "name": "United Kingdom",
        "sort-name": "United Kingdom",
        "life-span": {
          "ended": null
        }
      },
      "begin-area": {
        "id": "d840d4b3-8987-4626-928b-398de760cc24",
        "type": "City",
        "type-id": "6fd8f29a-3d0a-32fc-980d-ea697b69da78",
        "name": "Abingdon-on-Thames",
        "sort-name": "Abingdon-on-Thames",
        "life-span": {
          "ended": null
        }
      },
      "isnis": [
        "0000000115475162"
      ],
      "life-span": {
        "begin": "1991",
        "ended": null
      },
      "aliases": [
        {
          "sort-name": "r/head",
          "type-id": "1937e404-b981-3cb7-8151-4c86ebfc8d8e",
          "name": "r/head",
          "locale": null,
          "type": "Search hint",
          "primary": null,
          "begin-date": null,
          "end-date": null
        },
        {
          "sort-name": "电台司令",
          "type-id": "894afba6-2816-3c24-8072-eadb66bd04bc",
          "name": "电台司令",
          "locale": "zh",
          "type": "Artist name",
          "primary": true,
          "begin-date"

Parameters

ParameterTypeRequiredDescription
<entity>pathRequiredartist, release, recording, label, work or release-group. artist
querystringOptionalLucene-style search query. radiohead
fmtstringRequiredSet to `json`; the default is XML. json
limit / offsetintegerOptionalPagination, max 100 per page. 10
incstringOptionalInclude related entities such as releases or tags. releases

Response fields

countinteger
Total matching entities.
artists[].idstring
MBID — the stable global identifier for the artist.
artists[].namestring
Artist name.
artists[].typestring
Person, Group, Orchestra or Choir.
artists[].countrystring
Country code.
artists[].life-spanobject
Begin and end dates.
artists[].scoreinteger
Search relevance score.

What you can build with the MusicBrainz API

  • Reconcile music metadata across systems using MBIDs
  • Build a music library organiser or tagger
  • Look up canonical artist and release information
  • Link recordings to cover art via the Cover Art Archive

Common errors and how to fix them

503 with a rate limit message

More than one request per second.

Fix: Throttle strictly to 1 req/sec — MusicBrainz enforces this and will block persistent offenders.

403

Missing or generic User-Agent.

Fix: Send a User-Agent naming your application and a contact address, as the policy requires.

XML instead of JSON

XML is the default format.

Fix: Always pass fmt=json.

MusicBrainz API — frequently asked questions

Is the MusicBrainz API free?

Yes, free with no API key. Core data is public domain, but a descriptive User-Agent is mandatory and the one-request-per-second limit is strictly enforced.

What is an MBID?

A MusicBrainz Identifier — a stable UUID for an artist, release or recording. They are widely used across the music industry as canonical keys for reconciling metadata.

Why am I getting 503 errors?

You are exceeding one request per second. MusicBrainz runs on donated infrastructure and enforces the limit strictly; throttle your client.

How do I get album artwork?

Use the Cover Art Archive, a companion service that serves artwork keyed by MusicBrainz release MBIDs.

Tools that pair with this API

Alternatives to MusicBrainz API

If MusicBrainz does not fit, these music apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
iTunes SearchFree Apple iTunes Search API with no key: search songs, albums, artists, apps, podcasts and books with artwork and preview URLs. Tested curl example.No keyYes19 Aug 2026
Lyrics.ovhFree song lyrics API with no key. Fetch full lyrics by artist and title with a single GET request. CORS enabled. Tested curl example and live response.No keyYes19 Aug 2026
DeezerFree Deezer API with no key for public data: artists, albums, tracks, charts and 30-second previews. Rich metadata and images. Tested curl example.No keyNo19 Aug 2026
TheAudioDBFree music metadata API with a public test key: artist biographies, album artwork, track listings, banners and logos for media libraries. Tested example.No keyYes19 Aug 2026
Open OpusFree classical music API with no key: composers, their complete works, periods and genres, curated for classical music applications. Tested curl example.No keyYes20 Aug 2026
OpenwhydFree curated playlist API with no key: human-picked tracks by genre, each linking to YouTube, SoundCloud or Bandcamp, with repost and like counts. Tested example included.No keyNo21 Aug 2026
All Music APIs

MusicBrainz is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 20 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.