MusicBrainz Scraper · Artists, Releases, Labels & Recordings avatar

MusicBrainz Scraper · Artists, Releases, Labels & Recordings

Pricing

from $1.30 / 1,000 record returneds

Go to Apify Store
MusicBrainz Scraper · Artists, Releases, Labels & Recordings

MusicBrainz Scraper · Artists, Releases, Labels & Recordings

Extract comprehensive MusicBrainz data for artists, releases, labels, and recordings. Get structured MBID identifiers, release dates, genres, countries, and barcodes without browser automation.

Pricing

from $1.30 / 1,000 record returneds

Rating

0.0

(0)

Developer

Tarek Etman

Tarek Etman

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

reapX — public sources in, addressable records out

MusicBrainz Scraper · Artists, Releases, Labels & Recordings

The MusicBrainz scraper extracts comprehensive, structured music database records directly from the official MusicBrainz REST API (https://musicbrainz.org/ws/2/). Query artists, releases, record labels, and sound recordings with custom Lucene search queries, genre tags, ISO country codes, and release decades. Every row includes standard addressable entity slugs (slug), canonical MusicBrainz UUIDs (mbid), credit information, track counts, release dates, and barcodes.

Maintained by reapX. Every row cites the Apify run that produced it — nothing is inferred, modelled or filled in, and a field absent from the source is absent from the row. The extracted archive for this source is browsable at reapx.dev/data/musicbrainz-scraper/ and mirrored as an open dataset on Hugging Face and Kaggle. Questions: reapxdev@proton.me


Features

  • Multi-Entity Extraction: Retrieve structured data for Artists, Releases, Labels, and Recordings.
  • Addressable Entity Key: Emits a normalized slug (e.g. the-beatles, pink-floyd, abbey-road) for direct entity page routing and indexing across knowledge graphs.
  • Canonical MBIDs: Preserves exact 36-character MusicBrainz UUID identifiers in the mbid field.
  • Rich Lucene Search Support: Combine free-text queries, genre tags (tag:rock), country codes (country:GB), and decade ranges (date:[1970 TO 1979]).
  • Compliant Rate Limiting: Built-in 1 request per second throttling with automatic exponential backoff on HTTP 429 and 503 status codes.
  • No Headless Browser Overhead: Uses direct HTTP API calls for maximum efficiency and speed.
  • Pay-Per-Event Pricing: Billed strictly per valid record returned; rate-limited, empty, or failed requests cost $0.

⬇️ Input

Configure the MusicBrainz Scraper using the input parameters below.

ParameterTypeRequiredDefaultDescriptionExample
entityTypestringYes"artist"Select MusicBrainz entity category: artist, release, label, or recording."artist"
querystringNo"tag:rock AND country:GB"Free-text keyword query or custom Lucene search string."artist:Pink Floyd"
genrestringNo""Musical genre or community style tag filter."jazz"
countrystringNo""2-letter ISO 3166-1 alpha-2 country code."GB"
decadestringNo""Release or activity decade filter (e.g. 1970s, 1980s)."1970s"
maxResultsintegerYes50Maximum number of entity records to extract and push.50

Input Example

{
"entityType": "release",
"query": "tag:jazz AND country:US",
"genre": "jazz",
"country": "US",
"decade": "1960s",
"maxResults": 50
}

⬆️ Output

The scraper writes extracted records directly to the run's default dataset. Each row corresponds to a single MusicBrainz entity.

Output Dataset Fields

Field NameTypeDescriptionExample
slugstringNormalized URL-friendly slug derived from entity name or title."the-beatles"
mbidstringCanonical 36-character MusicBrainz UUID identifier."b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d"
namestringHuman-readable name of the artist, release, label, or recording."The Beatles"
entityTypestringCategory of entity (artist, release, label, recording)."artist"
typestringSubtype classification (e.g. Group, Person, Album, Single)."Group"
countrystringISO 3166-1 alpha-2 country code of origin."GB"
areastringAssociated geographic area or region name."United Kingdom"
disambiguationstringMusicBrainz comment distinguishing identical entity names."UK rock band"
datestringPrimary release date or activity start date."1969-09-26"
lifeSpanStartstringFormation or birth date."1960"
lifeSpanEndstringDissolution or death date."1970"
tagsstringComma-separated genre and style tags."rock, pop, classic rock"
scoreintegerSearch relevance score (0–100).100
barcodestringCommercial EAN/UPC barcode (releases)."077774644624"
artistCreditstringCredited artists or collaborators."The Beatles"
labelstringAssociated record label name(s)."Apple Records"
formatstringPhysical or digital format (e.g. Vinyl, CD)."Vinyl"
trackCountintegerTotal number of tracks on release.17
lengthintegerDuration in milliseconds (recordings).260000
urlstringCanonical MusicBrainz entity webpage URL."https://musicbrainz.org/artist/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d"

Sample Output Record

{
"slug": "pink-floyd",
"mbid": "83d91898-7763-47d7-b03b-b92132375c47",
"name": "Pink Floyd",
"entityType": "artist",
"type": "Group",
"country": "GB",
"area": "United Kingdom",
"disambiguation": "UK progressive rock band",
"date": "1965",
"lifeSpanStart": "1965",
"lifeSpanEnd": "2014",
"tags": "progressive rock, psychedelic rock, art rock",
"score": 100,
"barcode": "",
"artistCredit": "",
"label": "",
"format": "",
"trackCount": 0,
"length": 0,
"url": "https://musicbrainz.org/artist/83d91898-7763-47d7-b03b-b92132375c47"
}

How it works

  1. HTTP Query Execution: Sends direct GET requests to https://musicbrainz.org/ws/2/{entity} without launching headless browser instances.
  2. Lucene Search Integration: Translates input parameters (keywords, genre, country, decade) into standard MusicBrainz Lucene query syntax.
  3. Rate Limiting & Resiliency: Enforces a strict 1 request/second rule with User-Agent: reapx/1.0 ( reapxdev@proton.me ) and exponential backoff retry on HTTP 429 or 503 responses.
  4. Key Normalization: Automatically transforms entity names into clean, lowercased ASCII slugs (slug), while preserving exact MusicBrainz UUIDs (mbid).
  5. Streaming Output: Emits items row-by-row into the default dataset as they are fetched.

❓ FAQ

How are MusicBrainz rate limits handled?

MusicBrainz requires clients to limit requests to 1 per second and present a descriptive User-Agent header. This scraper enforces rate limits natively and retries transparently if temporary rate limit errors (HTTP 429/503) occur.

Can I search using complex Lucene queries?

Yes. You can supply full Lucene query strings in the query field, such as artist:"Miles Davis" AND type:Album AND date:[1950 TO 1960].

What is the slug field used for?

The slug field provides a clean, predictable URL identifier (e.g. pink-floyd) suitable for entity page routing, knowledge graph cross-linking, and dataset deduplication.

How does pricing work?

This actor runs under Pay-Per-Event pricing. You are charged a flat micro-fee per valid entity record returned. Searches yielding zero results or failing due to rate limits cost nothing.


💬 Your feedback

Have feature requests, questions, or bug reports? Reach out directly to reapx:


Disclaimer: Unofficial - not affiliated with MusicBrainz / MetaBrainz Foundation. Collects public data only. reapx. Contact reapxdev@proton.me.

🧪 Example input

A real, runnable configuration — this is an actual input this Actor has run with.

{
"entityType": "artist",
"query": "tag:rock AND country:US",
"genre": "rock",
"country": "US",
"decade": "1960s",
"maxResults": 50
}

📄 Sample output

One real row from a real run of this Actor, unedited.

{
"slug": "the-beatles",
"mbid": "b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d",
"name": "The Beatles",
"entityType": "artist",
"type": "Group",
"country": "GB",
"area": "United Kingdom",
"disambiguation": "UK rock band, “The Fab Four”",
"date": "1960-03-27",
"lifeSpanStart": "1960-03-27",
"lifeSpanEnd": "1970-04-10",
"tags": "rock, pop, progressive rock, 80s, heavy metal, pop-rock, orchestral, experimental, british, uk, 60s, hard rock, indie rock, folk rock, psychedelic rock, psychedelic, blues rock, britpop, art rock, folk-rock, baroque pop, classic rock, 1960s, psychedelic pop, experimental rock, pop rock, europop, british invasion, rock and roll, rock roll, beat, english, sunshine pop, folk pop, rock music, liverpool, parlophone, united kingdom, hair metal, europe, 1, bbc, film soundtrack, classic pop and rock, singer songwriter, classical pop, instrumental pop, merseybeat, adult alternative pop rock, tribute albums, british psychedelia, orchestral pop, pop-metal, psychedelia, male vocalists, the-beatles, mainstream rock, boys band, abbey road, rock & roll, pop/rock, rhythm & blues, overrated, psychedelic/garage, art pop, one beatles, n., popular music, a filk artist, british rhythm & blues, beat music, get back, favoritos, the beatles - primal colours, reino unido, rock groups, vyrzukhisuc-artiest",
"score": 100,
"barcode": "",
"artistCredit": "",
"label": "",
"format": "",
"trackCount": 0,
"length": 0,
"url": "https://musicbrainz.org/artist/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d"
}

⚠️ Run outcomes and error handling

This Actor reports what happened in the run's status message, and it always keeps whatever it collected. These are the outcomes you can get and what each one means.

OutcomeWhat it means
SuccessRows were returned and you were charged record-returned at $0.002 per row.
No matchesThe source returned nothing for your filters. Nothing is charged. Widen the date window or drop a filter.

What is guaranteed either way

  • Every row is pushed as it is built, not buffered to the end of the run. Anything that buffers output loses everything to a timeout, a block or a migration; this does not.
  • A field absent from the source is absent from the row. Nothing is inferred, modelled or filled in to make a row look complete.