MusicBrainz Scraper - Artists, Releases & Labels avatar

MusicBrainz Scraper - Artists, Releases & Labels

Pricing

from $0.19 / 1,000 items

Go to Apify Store
MusicBrainz Scraper - Artists, Releases & Labels

MusicBrainz Scraper - Artists, Releases & Labels

Search MusicBrainz for artists, releases, recordings, release groups and labels. Every row carries the MBID, a permanent ID you can join on later, plus the name or title, type, dates, country, credits and a link. Keywords or Lucene syntax. No login. $0.20 per 1,000 records.

Pricing

from $0.19 / 1,000 items

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Share

Search MusicBrainz for artists, releases, recordings, albums and labels and get flat rows back, each with its MBID, the permanent ID you can join on later, plus the name, type, dates, country and a direct link. No API key, no login.

One thing to know before you plan a big pull: MusicBrainz serves at most 500 records for one search, however many it matched, so a run returns 500 at most. For more, split the search into narrower ones and run each. It also asks callers to go slowly, so this reads 100 records a page with about a second between pages.

InputAn entity type and a search term
OutputOne row per record: MBID, link, relevance score, and the name or title, type, dates, country and credits for that kind of record
Ceiling500 records per search, all MusicBrainz serves for one search
Account neededNone, and no API key
Price$0.20 per 1,000 records on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 25,000

๐Ÿ” What MusicBrainz Scraper does

It runs one search against MusicBrainz and pages through the answers until it has the number you asked for, the catalogue runs out, or it reaches 500, the most MusicBrainz serves for one search. Rows are deduplicated on MBID as it goes, so a paginated pull never hands you the same record twice.

entity decides what kind of thing you get back, and the five kinds are genuinely different:

entityWhat it is
artistA band, a performer or a composer.
releaseOne specific edition of an album or single, the actual product.
recordingA single track.
release-groupAn album as a concept, tying its editions together.
labelA record label.

query takes plain keywords like ok computer, and it also takes MusicBrainz's own Lucene syntax, so artist:radiohead and country:GB both work.

๐Ÿ“‹ What data you get from each MusicBrainz record

Five fields are on every row, whatever you searched for:

What you getField
The MusicBrainz IDmbid
The musicbrainz.org page for that recordurl
Which kind of record the row isentity
MusicBrainz's own relevance score for your search, 0 to 100score
The short note that tells same-named records apartdisambiguation

The rest depend on the entity:

EntityFields you also get
artistname, sortName, type, country, lifeSpan, beginDate, endDate, ended, tags
releasetitle, status, artistCredit, date, country, trackCount, primaryType
recordingtitle, artistCredit, date, firstReleaseDate, length in milliseconds, lengthFormatted as m:ss
release-grouptitle, type, primaryType, secondaryTypes, artistCredit, date, firstReleaseDate
labelname, type, country, lifeSpan, beginDate, endDate, labelCode

โ–ถ๏ธ How to scrape MusicBrainz

  1. Open MusicBrainz Scraper and click Try for free.
  2. Pick an Entity type. Artist is the default.
  3. Type your term into Search query.
  4. Set Max results. Start around 10 to see the shape of the output, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

๐Ÿ’ฐ How much does it cost to scrape MusicBrainz?

$0.20 per 1,000 records on the Free plan. Paid plans pay a little less: $0.198 on Starter, $0.196 on Scale and $0.194 on Business. On the free plan, the $5 Apify gives you each month covers about 25,000 records.

You pay per record delivered. Duplicate MBIDs across pages are dropped before anything is charged, and diagnostic rows are not charged. Set a maximum cost on the run and it stops when it gets there.

๐Ÿ“ฅ What you give it

{
"entity": "release-group",
"query": "ok computer",
"maxItems": 50
}
FieldDefaultWhat it is
entityartistartist, release, recording, release-group or label.
querynone, the form starts with radioheadThe text to search for. Keywords or Lucene syntax. An API call has to send its own.
maxItems1001 to 10,000, counted after deduplication. One search still returns at most 500: that is all MusicBrainz serves for a single search.
notionConnectornoneOptional. Writes one Notion page per record when the run finishes.
notionParentIdnoneOptional. The Notion data source to write into. Leave it empty and the pages land privately in your workspace.
proxyConfigurationoffOptional network settings. A normal run does not need them.

Send an empty query and the run returns a BAD_INPUT row instead of records.

๐Ÿ“ค What you get back

A real artist row from a run on 2 October 2026, with the tag list cut short because it runs to dozens:

{
"ok": true,
"mbid": "a74b1b7f-71a5-4011-9441-d0b5e4122711",
"entity": "artist",
"url": "https://musicbrainz.org/artist/a74b1b7f-71a5-4011-9441-d0b5e4122711",
"score": 100,
"disambiguation": null,
"name": "Radiohead",
"sortName": "Radiohead",
"type": "Group",
"country": "GB",
"artistCredit": null,
"date": null,
"lifeSpan": "1991 โ€“",
"beginDate": "1991",
"endDate": null,
"ended": null,
"tags": ["alternative rock", "art rock", "rock", "electronic", "british", "..."]
}
FieldHow to read it
mbidStable and unique, and the reason most people run this.
disambiguationThe second match for radiohead in the same run was "On a Friday", with the note preโ€Radiohead group, until 1991. That note is how you tell records apart.
artistCreditThe credited string the way MusicBrainz writes it, so A feat. B stays A feat. B.
tagsSorted by vote count, and user-made, so expect the odd strange one far down the list.

A field MusicBrainz has no value for comes back null rather than missing.

๐Ÿงพ Reading the output

Two kinds of row land in your dataset.

RowHow to spot itBilled
A recordok: true and an mbidyes
A diagnosticok: false and an errorCodeno
CodeWhat it means
BAD_INPUTquery was empty, entity was not one of the five, or MusicBrainz turned the search down as invalid (its own words are in details).
NO_RESULTSThe search ran and matched nothing.
SEARCH_LIMITThe search matched more than the 500 records MusicBrainz serves for one search, and you asked for more. The records delivered are complete and charged; this row is free, and reportedTotal says how many the search matched.
NETWORKMusicBrainz was unreachable or answered badly. Re-run it.
TIME_LIMITThe run got close to its time limit and stopped on its own. The records delivered before that are complete and charged. Give the run more time, or ask for fewer records, to get the rest.

A run that ends on one of these rows still finishes as succeeded, except one: when the time limit stopped the run before any record came back, it ends as failed, with a TIME_LIMIT row saying so.

A malformed Lucene query can come back as NO_RESULTS rather than an error. If a search you expected to match returns nothing, check the syntax before you conclude the record is not there.

๐Ÿ’ก What people use it for

  • Resolving a messy catalogue of artist or album names to MBIDs, so everything downstream has one key to join on.
  • Filling in release dates, countries and label codes for a back catalogue.
  • Pulling a genre slice with Lucene syntax, then sorting on score to see what actually matched.
  • Checking whether a release exists in the open catalogue at all before adding it by hand.

๐Ÿšง What it does not do

  • Search only. No lookup by MBID, no browsing an artist's releases, no track listings.
  • No more than 500 records from one search. That cap is MusicBrainz's own. Several narrower searches get you more.
  • No audio, no cover art, no chart positions.
  • Relevance ordering is MusicBrainz's. score is its search score, not a popularity measure.
  • Large runs are slow on purpose. The pacing is what MusicBrainz asks of callers, and this actor keeps to it.
  • If a page fails partway through a long run, the run ends with a diagnostic row and the records already collected do not land. On big pulls, several smaller runs are safer than one huge one.
  • A malformed query reads as no results, not as a syntax error.
  • It is not an official MusicBrainz tool. Dami's Studio is independent and is not affiliated with or endorsed by MusicBrainz, or by any other company named on this page.

๐Ÿงญ Which film, TV, music or game scraper do you need?

If you wantUse
IMDb IDs for films, shows and peopleIMDb Search Scraper
Critic and audience scores for a film or showRotten Tomatoes Scraper
TV shows, full episode lists and main castTV Show Scraper
Artists, releases, recordings and labels, with their MBIDsThis one
Steam games, store details and player reviewsSteam Scraper
Goodreads ratings and rating counts for booksGoodreads Books Scraper
Wikidata Q-ids and claims for the same people and worksWikidata Scraper

โ“ Questions people ask

Do I need a MusicBrainz account or key?

No. The search API is open.

What is an MBID for?

It is a permanent identifier for one record. Store it once and you can re-find or re-join that artist, album or track later even if the name changes.

Can I look a record up by its MBID?

Not with this one. It searches by text.

Why did my run stop at 500 records?

MusicBrainz serves at most 500 records for one search, however many it matched. The run stops there, delivers them, and adds a free SEARCH_LIMIT row with the number the search matched. To get the rest, split it into narrower searches with Lucene syntax, love AND tag:rock for example, and run each one.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/musicbrainz-scraper. Either way the run happens on your Apify account at the same price.

Can I use MusicBrainz data commercially?

MusicBrainz core data is CC0 and the rest sits under its own data licences. Read those and credit MusicBrainz when you redistribute. Apify's write-up on the legality of web scraping covers the wider question, and we are not lawyers.

๐Ÿ†˜ If something breaks

Open the Issues tab on the actor page. Send the entity, the exact query and the run ID. The errorCode on the diagnostic row usually names the problem on its own.