MusicBrainz API
Free MusicBrainz API with no key: open music encyclopaedia with artists, releases, recordings, labels and relationships. The reference music database. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
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 2026-08-20, 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 'https://musicbrainz.org/ws/2/artist/?query=radiohead&fmt=json&limit=1'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);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()){
"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
| Parameter | Type | Required | Description |
|---|---|---|---|
<entity> | path | Required | artist, release, recording, label, work or release-group. artist |
query | string | Optional | Lucene-style search query. radiohead |
fmt | string | Required | Set to `json`; the default is XML. json |
limit / offset | integer | Optional | Pagination, max 100 per page. 10 |
inc | string | Optional | Include 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
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
XML Formatter
Format and beautify XML online with proper indentation, or minify it to a single line. Parse errors are reported clearly — free, fast and fully private.
MusicBrainz is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.