musicbrainz.org APImusicbrainz.org ↗
Access MusicBrainz music metadata via 7 endpoints: search artists and recordings, fetch credits, genres, ISRCs, track listings, and release group details.
curl -X GET 'https://api.parse.bot/scraper/b76d1d93-5af4-4108-bc84-5729f72c3ce5/search_artist?limit=3&query=Beatles&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for artists by name, area, or advanced Lucene query syntax. Returns artist metadata including name, type, gender, country, tags, genres, aliases, and life span details. Results are paginated.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results (1-100). |
| queryrequired | string | Search query. Supports Lucene syntax: plain text ('Aretha Franklin'), field-specific ('area:"New York"'), or combined ('artist:"Beatles" AND type:Group'). |
| offset | integer | Pagination offset for results. |
{
"type": "object",
"fields": {
"count": "integer, total number of matching artists",
"offset": "integer, current pagination offset",
"artists": "array of artist objects with id, name, sort_name, type, gender, country, score, disambiguation, area, begin_area, life_span, tags, genres, aliases"
},
"sample": {
"data": {
"count": 274,
"offset": 0,
"artists": [
{
"id": "b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d",
"area": "United Kingdom",
"name": "The Beatles",
"tags": [
{
"name": "rock",
"count": 47
}
],
"type": "Group",
"score": 100,
"gender": null,
"genres": [],
"aliases": [
"披头士乐队"
],
"country": "GB",
"life_span": {
"end": "1970-04-10",
"begin": "1960",
"ended": true
},
"sort_name": "Beatles, The",
"begin_area": "Liverpool",
"disambiguation": "UK rock band"
}
]
},
"status": "success"
}
}About the musicbrainz.org API
This API exposes 7 endpoints covering the full MusicBrainz music metadata graph — from fuzzy artist search to deep per-recording credits. get_recording_details returns musician relationships, producer and engineer credits, ISRC codes, and linked work information (cover/original relationships). search_artist supports Lucene query syntax for precise filtering by name, area, and more.
Artist and Recording Search
search_artist accepts plain text, field-specific terms (e.g. area:"New York"), or full Lucene expressions. Results include type, gender, country, life_span, tags, genres, aliases, and a relevance score. Pagination is controlled via limit (1–100) and offset. search_recording works similarly for songs and tracks, returning artist_credits, first_release_date, length, and release associations per result.
Detailed Lookups by MBID
All four detail endpoints (get_artist_details, get_recording_details, get_release_details, get_release_group_details) take a UUID-format mbid. get_recording_details is the most granular: it returns a credits array with typed relationship objects covering instruments played, vocal roles, production roles, and work-level relationships (e.g. whether a recording is a cover). It also surfaces isrcs, genres, tags, and releases the recording appears on. get_release_details returns the full media array — disc-by-disc track listings with per-track length, recording links, and artist_credits.
Release Groups and Area-Based Discovery
get_release_group_details maps a release group (album, single, or EP, per primary_type) to all its individual pressings and editions via the releases array. Each edition includes country, date, status, barcode, and packaging. artist_credits within a release group include nested genres and tags for each credited artist.
search_muscle_shoals is a geographic entity search: it returns artists, places (studios and venues with coordinates and address), and labels associated with a named area. Setting include_releases to true adds release groups per artist and releases per label, at the cost of additional response time.
- Build a music credits database by pulling musician, producer, and engineer relationships from
get_recording_details - Populate an album page with full track listings, per-track durations, and label info using
get_release_details - Resolve a song title to its ISRC codes for rights management via
get_recording_details - Discover all pressings and regional editions of an album using
get_release_group_detailsreleases array - Find studios, venues, and artists tied to a specific city or region with
search_muscle_shoals - Tag a music catalog with community-verified genres and vote-weighted ratings from artist and release group detail endpoints
- Cross-reference artist ISNIs and IPIs for music rights and royalty workflows via
get_artist_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does MusicBrainz have an official developer API?+
What does `get_recording_details` return beyond basic track metadata?+
get_recording_details returns a credits array with typed relationship objects — covering instruments, vocal roles, production, and engineering — alongside isrcs, genres, tags, a community rating, a video boolean, and a releases array listing every release the recording appears on with date, status, and country.How does `search_muscle_shoals` work for areas other than Muscle Shoals?+
search_muscle_shoals is a general geographic entity search. You can query any area and filter results by entity_type (artists, places, labels, or all). The include_releases flag adds release groups and label releases to the response but increases latency.Does the API return streaming links, audio previews, or chart positions?+
Are there any coverage gaps in the recording credits data?+
credits arrays. The API returns exactly what MusicBrainz holds — it does not supplement missing credits from other sources. You can fork it on Parse and revise to add a fallback endpoint against a different music credits database.