MusicBrainz Scraper avatar

MusicBrainz Scraper

Pricing

Pay per event

Go to Apify Store
MusicBrainz Scraper

MusicBrainz Scraper

Search the MusicBrainz open music encyclopedia. Find artists, releases, and recordings with genres, tags, countries, dates, and MBIDs. Export as JSON/CSV. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

Search the MusicBrainz open music database. Find artists, releases (albums), and recordings (songs) with genres, tags, countries, dates, and unique identifiers.

What does MusicBrainz Scraper do?

MusicBrainz Scraper queries the MusicBrainz API to search for music entities. Search for artists to get their type, country, active years, and genre tags. Search for releases to find albums with track counts, barcodes, and release dates. Search for recordings to find songs with durations and associated releases.

MusicBrainz is the world's largest open music encyclopedia with data on millions of artists, albums, and recordings contributed by a global community.

Why use MusicBrainz Scraper?

  • Open music database — millions of artists, albums, and songs with community-curated data
  • Three entity types — search artists, releases, or recordings
  • Rich tags — genre tags with vote counts for accurate classification
  • Global coverage — music from every country with localized names and aliases
  • Unique identifiers — MusicBrainz IDs (MBIDs) for reliable entity linking
  • Structured output — clean JSON ready for analysis or integration

Use cases

  • Music research — find artist discographies, collaborations, and career timelines
  • Data enrichment — add MBIDs, genres, and metadata to music datasets
  • Genre analysis — analyze tag distributions and genre trends
  • Catalog building — build structured music catalogs with rich metadata
  • Content discovery — find recordings and releases matching specific criteria
  • Music apps — power search and recommendation features with reliable data

How to search MusicBrainz for music data

  1. Go to MusicBrainz Scraper on Apify Store.
  2. Add search terms to the Search queries list.
  3. Choose an Entity type (Artists, Releases, or Recordings).
  4. Click Start and wait for the run to finish.
  5. Download your data in JSON, CSV, or Excel format.

Input parameters

ParameterTypeRequiredDefaultDescription
searchQueriesarrayYesSearch terms (e.g., "Radiohead", "Abbey Road")
entityTypestringNoartistWhat to search: artist, release, or recording
maxResultsintegerNo25Max results per query (1–100)

Example input

{
"searchQueries": ["Radiohead", "Miles Davis"],
"entityType": "artist",
"maxResults": 25
}

Output example

Artist output

{
"mbid": "a74b1b7f-71a5-4011-9441-d0b5e4122711",
"name": "Radiohead",
"sortName": "Radiohead",
"type": "Group",
"country": "GB",
"area": "United Kingdom",
"beginDate": "1991",
"endDate": "",
"disambiguation": "",
"tags": "alternative rock, art rock, rock, british, experimental rock",
"tagDetails": [
{ "name": "alternative rock", "count": 15 },
{ "name": "art rock", "count": 8 }
],
"aliases": [],
"score": 100,
"musicBrainzUrl": "https://musicbrainz.org/artist/a74b1b7f-71a5-4011-9441-d0b5e4122711",
"searchQuery": "Radiohead",
"scrapedAt": "2026-03-03T05:47:07.573Z"
}

Recording output

{
"mbid": "32dcac4e-191c-4e86-a660-e3c9a0c04a60",
"title": "Bohemian Rhapsody",
"artistName": "Queen",
"length": 354000,
"lengthFormatted": "5:54",
"firstReleaseDate": "1975-10-31",
"releases": ["A Night at the Opera"],
"tags": "rock, classic rock, progressive rock",
"score": 100,
"musicBrainzUrl": "https://musicbrainz.org/recording/32dcac4e-...",
"searchQuery": "Bohemian Rhapsody",
"scrapedAt": "2026-03-03T05:50:00.000Z"
}

Output fields

Artist fields

FieldTypeDescription
mbidstringMusicBrainz unique identifier
namestringArtist name
sortNamestringName for alphabetical sorting
typestringEntity type (Group, Person, Orchestra, etc.)
countrystringCountry code (GB, US, JP, etc.)
areastringGeographic area name
beginDatestringCareer start date
endDatestringCareer end date (empty if active)
disambiguationstringClarifying note for similar names
tagsstringComma-separated genre/style tags
tagDetailsarrayTags with vote counts
aliasesarrayAlternative names and spellings
scorenumberSearch relevance score (0–100)

Recording fields

FieldTypeDescription
mbidstringMusicBrainz unique identifier
titlestringRecording title
artistNamestringArtist name(s)
lengthnumberDuration in milliseconds
lengthFormattedstringDuration as MM:SS
firstReleaseDatestringEarliest known release date
releasesarrayAlbums/releases containing this recording
tagsstringGenre/style tags

How much does it cost to scrape MusicBrainz?

MusicBrainz Scraper uses pay-per-event pricing:

EventPrice
Run started$0.001
Result extracted$0.001 per entity

Cost examples

ResultsCost
25 artists (1 search)$0.026
100 recordings (2 searches)$0.101

API usage

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/musicbrainz-scraper").call(
run_input={
"searchQueries": ["Radiohead"],
"entityType": "artist",
"maxResults": 10
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['name']} ({item['country']}) — {item['tags'][:60]}")

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/musicbrainz-scraper').call({
searchQueries: ['Radiohead'],
entityType: 'artist',
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(`${item.name} (${item.country}) — ${item.tags.substring(0, 60)}`);
});

Integrations

Connect MusicBrainz Scraper to your workflow with Apify integrations:

  • Webhooks — trigger actions when extraction completes
  • Google Sheets — export music data to spreadsheets
  • Zapier / Make — connect to 5,000+ apps and services
  • REST API — call the actor programmatically from any language

Tips and best practices

  • MusicBrainz has a 1 request/second rate limit — the actor handles this automatically
  • Use MBIDs to link entities across different music services (Spotify, Last.fm, etc.)
  • Tags are community-curated with vote counts — higher counts indicate more consensus
  • Search for releases to find specific albums; search recordings for individual songs
  • The score field (0–100) indicates how well each result matches your query

Use with AI agents via MCP

MusicBrainz Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Search MusicBrainz for albums by 'Radiohead'"
  • "Get discography data for this artist"
  • "Find all recordings of 'Bohemian Rhapsody' in the MusicBrainz database"

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~musicbrainz-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["Radiohead"],
"entityType": "artist",
"maxResults": 25
}'

FAQ

Why do some artists have low tag counts? MusicBrainz tags are community-curated. Less popular or newly added artists may have few or no tags. This does not mean the data is incomplete -- it reflects the community's contribution level for that entity.

The search returns duplicate-looking results. MusicBrainz distinguishes between different entities with the same name using the disambiguation field. For example, there may be multiple artists named "Genesis" -- check the disambiguation, country, and begin/end dates to identify the correct one.

Other entertainment and media scrapers