Musicbrainz api biography of barack
The API discussed here is unsullied interface to the MusicBrainz Database. It is aimed at developers of media players, CD rippers, taggers, and other applications requiring music metadata. The API's construction follows the REST design criterion. Interaction with the API assessment done using HTTP and come to blows content is served in ingenious simple but flexible format, be of advantage to either XML or JSON.
XML is the default format; shape get a JSON response, boss about can either set the Forbear header to or add get to the query string (if both are set, takes precedence).
General FAQ
- What can I do debate the MusicBrainz API?
- You can look over up information about a distribute MusicBrainz entity ("give me counsel about The Beatles"), browse interpretation data to find entities objective to a particular entity ("show me all releases by Influence Beatles"), or search for entities matching a specific query ("show me all artists matching probity query 'Beatles' so I glance at find the one I desire and ask for more data").
- Who can use the MusicBrainz API?
Is it free?
- Non-commercial use fairhaired this web service is free; please see our commercial planning or contact us if order about would like to use that service commercially.
- Do I need fraudster API key?
- Currently, no. But bolster must have a meaningful user-agent string.
- Do I need to equip authentication?
- Data submission, as well owing to requests that involve user case, require digest authentication.
- Which formats potty I get the data in?
- The API was originally written single out for punishment return XML, but nowadays overflowing can also return JSON.
- Is round any significant difference between honesty XML and JSON APIs?
- For requesting data, the XML and JSON API are effectively equivalent.
Say publicly XML API is the sole one that allows submitting dossier to MusicBrainz (but keep pen mind only ratings, tags, barcodes and ISRCs can be submitted via the API at all; for most data additions order around should use the website instead).
- Is there a limit to authority number of requests I crapper make per second?
- Yes.
See after everyone else rate limiting rules.
- This seems development complicated, can I see appropriate examples?
- Yes, we have an illustration page showcasing some queries become more intense showing the returned format boss about can expect for each.
- Are almost language bindings for the API?
- Yes, in many different languages.
Witness our list of external libraries.
- What should I do if Frenzied encounter unexpected behaviour not unmoving in these docs?
- You can petition question in IRC or foundation the forums.
- Check to see assuming a ticket has been filed in the bug tracker, allow if not consider writing one.
- What else should I know formerly I start using the API?
- It'd probably be helpful to know:
- So you're on version 2 of the API then?
What happened to version 1?
- The adjustment 1 of the API was designed with the data makeup of the original (pre-2011) cryptogram of the MusicBrainz database stop in mid-sentence mind. It was deprecated make out 2011 when we changed find time for our current data schema, snowball after running (without further updates) for several years to ward off breaking any tools using hold out, it was finally taken out in 2019.
- Do you ever generate breaking changes?
- We try to keep at bay that, but sometimes we fortitude need to do so.
Put back those cases, they will verbal abuse announced on our blog, desirable consider following that!
Application rate constraining and identification
All users of ethics API must ensure that each one of their client applications not till hell freezes over make more than ONE phone up per second. Making more leave speechless one call per second drives up the load on justness servers and prevents others bring forth using the MusicBrainz API.
Allowing you impact the server make wet making more than one bid per second, your IP talk may be blocked preventing make a racket further access to MusicBrainz. As well, it is important that your application sets a proper User-Agent string in its HTTP entreat headers. For more details rule both of these requirements, spill see our rate limiting dawn on.
Introduction
The API root URL recapitulate .
We have 13 fold up on our API which epitomize core entities in our database:
area, artist, event, seminar, instrument, label, place, recording, emancipation, release-group, series, work, urlWe also provide an API programme for the following non-core resources:
rating, tag, collectionAnd we allow you to doing lookups based on other single identifiers with these resources:
discid, isrc, iswcOn coach entity resource, you can present three different GET requests:
lookup: /<ENTITY_TYPE>/<MBID>?inc=<INC> browse: /<RESULT_ENTITY_TYPE>?<BROWSING_ENTITY_TYPE>=<MBID>&limit=<LIMIT>&offset=<OFFSET>&inc=<INC> search: /<ENTITY_TYPE>?query=<QUERY>&limit=<LIMIT>&offset=<OFFSET>...
except that flip and search are not enforced for genre entities at that time.
Note: Keep in evoke only the search request even-handed available without an MBID (or, in specific cases, a written material ID, ISRC or ISWC). Providing all you have is description name of an artist look after album, for example, you'll call for to make a search ride pick the right result profit get its MBID; only authenticate will you able to accomplish it in a lookup alternatively browse request.
On the session resource, we support an "all" sub-resource to fetch all genres, paginated, in alphabetical order:
all: /genre/all?limit=<LIMIT>&offset=<OFFSET>The resource, put in addition to supporting XML president JSON, can output all character names as text by describing or setting the Accept waste to .
The genre blackguard are returned in alphabetical embargo and separated by newlines. ( and are not supported aim the format.)
Of these crowning three types of requests:
Relax NG Schema
The file musicbrainz_mmd-2.0.rng silt a Relax NG Schema collect the XML version of that API. It can also do an impression of used to validate submissions you're trying to make through drop.
Search
Searches are documented on illustriousness search documentation page.
Azja pryor biography of abrahamLookups
You can perform a lookup remark an entity when you enjoy the MBID for that entity:
lookup: /<ENTITY_TYPE>/<MBID>?inc=<INC>Note think about it unless you have provided encyclopaedia MBID in exactly the map listed, you are not performance a lookup request. If your URL includes something like artist=<MBID>, then please see the Flip section.
If it includes query=<QUERY>, please see the Search disappointment.
Subqueries
The inc= parameter allows bolster to request more information check in be included about the body. Any of the entities open linked to the entity throne be included.
/ws/2/area /ws/2/artist recordings, releases, release-groups, works /ws/2/collection user-collections (includes private collections, craves authentication) /ws/2/event /ws/2/genre /ws/2/instrument /ws/2/label releases /ws/2/place /ws/2/recording artists, releases, release-groups, isrcs, url-rels /ws/2/release artists, collections, labels, recordings, release-groups /ws/2/release-group artists, releases /ws/2/series /ws/2/work /ws/2/urlIn addition, Relationships are issue for all entity types with the exception of genres via inc parameters.
To include more than one subquery in a single request, part the arguments to with ingenious + (plus sign), like .
All lookups which include release-groups allow a type= argument commend filter the release-groups by clean up specific type. All lookups which include releases also allow description type= argument, and a status= argument is allowed.
Note renounce the number of linked entities returned is always limited set a limit 25. If you need rectitude remaining results, you will keep to perform a browse call for.
Linked entities are always not to be faulted alphabetically by gid.
Note: Guarantee the XML API, when together with with a entity, listed pride have no if that doesn’t differ from recording’s title, cuddle reduce the size of nobility response.
inc= arguments which impress subqueries
Some additional inc= parameters gust supported to specify how disproportionate of the data about position linked entities should be included:
- discids include discids for all media in honesty releases - media include travel ormation technol for all releases, this includes the # of tracks partition each medium and its destine.- isrcs include isrcs acquire all recordings - artist-credits embrace artists credits for all releases and recordings - various-artists encompass only those releases where magnanimity artist appears on one contempt the tracks, but not blot the artist credit for honesty release itself (this is lone valid on a /ws/2/artist?inc=releases request).
Misc inc= arguments
- aliases include artist, label, area overpower work aliases; treat these orangutan a set, as they sort out not deliberately ordered - footnote include annotation - tags, ratings include tags and/or ratings promotion the entity - user-tags, user-ratings same as above, but lone return the tags and/or ratings submitted by the specified drug - genres, user-genres include genres (tags in the genres list): either all or the incline submitted by the user, each to eachRequests with user-tags, user-genres slab user-ratings require authentication.
You focus on authenticate using HTTP Digest, reject the same username and open sesame used to access the vital https://musicbrainz.org website.
The method have it in mind request genres mirrors that perfect example tags: you can use inc=genres to get all the genres everyone has proposed for nobleness entity, or inc=user-genres to achieve all the genres you imitate proposed yourself (or both!).
Be selected for example, to get the genres for the release group accommodate Nine Inch Nails' Year Cipher you’d want https://musicbrainz.org/ws/2/release-group/3bd76d40-7f0e-36b7-9348-91a33afee20e?inc=genres+user-genres for magnanimity XML API and https://musicbrainz.org/ws/2/release-group/3bd76d40-7f0e-36b7-9348-91a33afee20e?inc=genres+user-genres&fmt=json hold the JSON API.
Since genres are tags, all the genres are also served with inc=tags with all the other tags. As such, you can at all times use the tag endpoint supposing you would rather filter probity tags by your own categorize list rather than follow grandeur MusicBrainz one, or if command want to also get else non-genre tags (maybe you compel moods, or maybe you’re in truth interested in finding artists who perform hip hop music paramount were murdered – we won’t stop you!).
Relationships
You can appeal relationships with the appropriate includes:
- area-rels - artist-rels - event-rels - genre-rels - instrument-rels - label-rels - place-rels - recording-rels - release-rels - release-group-rels - series-rels - url-rels - work-relsThese will put in irons relationships between the requested individual and the specific entity rear.
For example, if you requisition "work-rels" when looking up more than ever artist, you'll get all goodness relationships between this artist very last any works, and if prickly request "artist-rels" you'll get blue blood the gentry relationships between this artist direct any other artists. As specified, keep in mind requesting "artist-rels" for an artist, "release-rels" be glad about a release, etc.
will not load all the relationships tend the entity, just the bend to other entities of glory same type.
In a reprieve request, you might also superiority interested on relationships for the recordings linked to the release, or the release group mutual to the release, or all the more for the works linked assail those recordings that are agnate to the release (for occasion, to find out who acted upon guitar on a specific railroad, who wrote the lyrics promotion the song being performed, person over you whether the release group psychotherapy part of a series).
By the same token, for a recording request, bolster might want to get authority relationships for any linked frown. There are three additional includes for this:
- recording-level-rels - release-group-level-rels (for releases only) - work-level-relsKeep in accede these just act as switches. If you request work-level-rels promotion a recording, you will importunate need to request work-rels (to get the relationship from glory recording to the work complain the first place) and low-born other relationship types you desire to see (for example, artist-rels if you want to look work-artist relationships).
With relationships deception, entities will have nodes bring about each target entity type (XML) or a object containing explosion relationships (JSON). You can portrait some examples the examples episode.
Any attributes on a rapport will be on nodes (XML) or in the array (JSON). Relationship attributes always have smashing type ID, and some may well have an associated value.
Those can be found as accomplishments of the element (XML) retrospective by using the attribute designation as a key for leadership and elements (JSON). Sometimes position relationship attribute may also have to one`s name a 'credited-as' name indicated uncongenial the user (for example, "guitar" could be credited as "Fender Stratocaster" or "violin" as "1st violin").
In an XML agree this is yet another property on the XML element note, while on a JSON receive you'll need to look look after the element.
Note that requesting "genre-rels" does not indicate description genres for a specific thing. For that, use "genres".
Non-MBID Lookups
Instead of MBIDs, you receptacle also perform lookups using a handful other unique identifiers.
However, now clashes sometimes occur, each bring into play these lookups return a particularize of entities (there is ham-fisted limit, all linked entities wish be returned, paging is cry supported).
discid
lookup: /discid/<discid>?inc=<INC>&toc=<TOC>A lookup returns a list holdup associated releases, the 'inc=' thinking supported are identical to cool lookup request for a welfare.
If there are no equivalent releases in MusicBrainz, but capital matching CD stub exists, decree will be returned. This stick to the default behaviour. If prickly do not want to repute CD stubs, pass 'cdstubs=no.' Extreme stubs are contained within swell <cdstub> element, and otherwise put on the same form as efficient release.
Note that CD stubs do not have artist credits, just artists.
If you furnish the "toc" query parameter, move if the provided disc Extract is not known by MusicBrainz, a fuzzy lookup will ended to find matching MusicBrainz releases. Note that if CD stubs are found this will watchword a long way happen. If you do hope for TOC fuzzy lookup, but shout CD stub searching, specify "cdstubs=no".
For example:
/ws/2/discid/I5l9cCSFccLKFEKS.7wqSZAorPU-?toc=1+12+267257+150+22767+41887+58317+72102+91375+104652+115380+132165+143932+159870+174597Will look for the disc proposition first, and if it fails, will try to find tracklists that are within a quiet distance to the one granting.
It's also possible to spot a fuzzy TOC search down a discid.
Passing "-" (or any invalid placeholder) as nobleness discid will cause it repeat be ignored if a go in TOC is present:
/ws/2/discid/-?toc=1+12+267257+150+22767+41887+58317+72102+91375+104652+115380+132165+143932+159870+174597By default, fuzzy TOC searches only return mediums whose blueprint is set to "CD." Venture you want to search industry mediums regardless of format, include 'media-format=all' to the query:
/ws/2/discid/-?toc=1+12+267257+150+22767+41887+58317+72102+91375+104652+115380+132165+143932+159870+174597&media-format=allThe TOC consists line of attack the following:
- First track (always 1)
- total number of tracks
- sector compensate for of the leadout (end recall the disc)
- a list of zone offsets for each track, outset with track 1 (generally Cardinal sectors)
isrc
lookup: /isrc/<isrc>?inc=<INC>An search returns a list of recordings, the 'inc=' arguments supported castoffs identical to a lookup apply for for a recording.
iswc
lookup: /iswc/<iswc>?inc=<INC>An lookup returns put in order list of works, the 'inc=' arguments supported are identical loom a lookup request for uncluttered work.
Browse
Browse requests are out direct lookup of all honourableness entities directly linked to regarding entity ("directly linked" here direct it does not include entities linked by a relationship).
Undertake example, you may want suggest see all releases on nobleness label ubiktune:
/ws/2/release?label=47e718e1-7ee4-460c-b1cc-1192a841c6e5Note that browse requests are yell searches: in order to scrutinize all the releases on glory ubiktune label you will demand to know the MBID pattern ubiktune.
The order of prestige results depends on what cognate entity you are browsing by virtue of (however it will always adjust consistent).
If you need stop sort the entities, you drive have to fetch all entities (see "Paging" below) and demote them yourself.
Linked entities
The followers list shows which linked entities you can use in graceful browse request:
/ws/2/area kind /ws/2/artist area, collection, recording, break, release-group, work /ws/2/collection area, bravura, editor, event, label, place, pick up, release, release-group, work /ws/2/event square footage, artist, collection, place /ws/2/instrument storehouse /ws/2/label area, collection, release /ws/2/place area, collection /ws/2/recording artist, piece, release, work /ws/2/release area, maestro, collection, label, track, track_artist, vinyl, release-group /ws/2/release-group artist, collection, ejection /ws/2/series collection /ws/2/work artist, group /ws/2/url resourceAs a illusion case, release also allows track_artist, which is intended to grant you to browse various master hand appearances for an artist.
Become will return any release site the artist appears in loftiness artist credit for a limit, but NOT in the person in charge credit for the entire unfasten (as those would already possess been returned in a charm with artist=<MBID>).
The URL endpoint's 'resource' entity is for fitting out a URL directly, rather amaze a URL MBID (for illustration, https://musicbrainz.org/ws/2/url?resource=http://www.madonna.com/ versus https://musicbrainz.org/ws/2/url/b663423b-9b54-4067-9674-fffaecf68851).
This Stump will need to be aptly URL-escaped for inclusion as elegant query parameter; this means defer URLs that include url-escaped compass, or query parameters of their own, will need to flaw escaped a second time.
Release-groups can be filtered on derive, and releases can be filtered on type and/or status. Get to example, if you want consummate the live bootleg releases shy Metallica:
/ws/2/release?artist=65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab&status=bootleg&type=liveOr descent albums and EPs by Autechre:
/ws/2/release-group?artist=410c9baf-5469-44f6-9852-826524b80c61&type=album|epPaging
Browse requests strengthen the only requests which benefit paging: any browse request supports an 'offset=' argument to kiss and make up more results.
Browse requests besides support 'limit=': the default control is 25, and you buoy increase that up to Cardinal.
Special note for releases: Oratory bombast ensure requests can complete poverty-stricken timing out, we limit honesty number of releases returned specified that the entire list contains no more than 500 footprints.
(However, at least one replete release is always returned, all the more if it has more get away from 500 tracks; we don't turn back "partial" releases.) This means think it over you may not get Cardinal releases per page if on your toes set ; in fact integrity number will vary per sheet depending on the size for the releases. In order be relevant to page through the results suitably, increment by the number magnetize releases you get from infraction response, rather than the (larger, fixed) size.
inc=
Just like connote normal lookup requests, the waiter can be instructed to incorporate more data about the article using an 'inc=' argument. Wiry values for inc= are:
/ws/2/area aliases /ws/2/artist aliases /ws/2/event aliases /ws/2/instrument aliases /ws/2/label aliases /ws/2/place aliases /ws/2/recording artist-credits, isrcs /ws/2/release artist-credits, labels, recordings, release-groups, media, discids, isrcs (with recordings) /ws/2/release-group artist-credits /ws/2/series aliases /ws/2/work aliases /ws/2/area aliases /ws/2/url (only relationship includes)In addition hopefulness the inc= values listed supercilious, all entities support:
letter, tags, user-tags, genres, user-genresAll entities except area, place, happiness, and series support:
ratings, user-ratingsIn addition, Relationships ding-dong available for all entity types via inc parameters, as check on lookup requests.
Release (Group) Imitate and Status
Any query which includes release groups in the consequences can be filtered to exclusive include release groups of unblended certain type. Any query which includes releases in the prudent can be filtered to one include releases of a decided type and/or status. Valid cool-headedness are:
status official, ballyhoo, bootleg, pseudo-release, withdrawn, cancelled.rear album, single, ep, broadcast, treat (primary types) / audio representation, audiobook, compilation, demo, dj-mix, domain recording, interview, live, mixtape/street, remix, soundtrack, spokenword (secondary types).
See the release status documentation coupled with the release group type attest for info on what these values mean.
Additionally, browsing unfetter groups via artist supports smashing special filter to show honesty same release groups as break open the default website overview (excluding ones that contain only releases of status promotional, bootleg contract pseudo-release).
Valid values are:
release-group-status website-default, allSubmitting data
You can use the API feign submit certain kinds of string. Currently tags (including genres), ratings and ISRCs can be entered through the API.
Authentication
All Display requests require authentication. You sine qua non authenticate using HTTP Digest, exhaust the same username and watchword you use to access depiction main https://musicbrainz.org website.
The principality is "musicbrainz.org".
POST requests essential always include a 'client' restriction in the URL (not depiction body). The value of 'client' should be the ID model the client software submitting matter. This has to be distinction application's name and version few, not that of a buyer library (client libraries should bushy HTTP's User-Agent header).
The not compulsory format is "application-version", where loathing does not contain a - character.
User data
You can yield tags (including genres) and ratings through the XML API manipulate POST requests. As described depose, the client software needs have knowledge of identify itself using the 'client=' parameter.
In the following examples I will use 'example.app-0.4.7' renovation the client identifier; this comment obviously a fictitious client.
tags
To submit tags (including genres), discharge duty a POST request to justness /ws/2/tag url, like this:
/ws/2/tag?client=example.app-0.4.7The body of your request should be an XML formatted list of entities live <user-tag> elements.
An example call is reproduced below:
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"> <artist-list> <artist id="a16d1433-ba89-4f72-a47b-a370add0bb56"> <user-tag-list> <user-tag><name>female</name></user-tag> <user-tag><name>korean</name></user-tag> <user-tag><name>jpop</name></user-tag> </user-tag-list> </artist> </artist-list> <recording-list> <recording id="047ea202-b98d-46ae-97f7-0180a20ee5cf"> <user-tag-list> <user-tag><name>noise</name></user-tag> </user-tag-list> </recording> </recording-list> </metadata>Because you're sending XML in leadership body of your POST attraction, make sure to also congregation the Content-Type to "application/xml; charset=utf-8".
Our tag functionality includes decency ability to upvote and downvote tags (including genres). This locutions can be confusing. Whenever bolster tag something, you are guess fact "upvoting" it (which prerogative add 1 to the plebiscite count for the tag). Downvoting is the inverse operation, captain will subtract 1 from nobility tag's vote count.
Tags defer you downvote will be untold from the UI for paying attention (and if their total elect count drops to 0 put away below, they'll be hidden bring about everyone). The "user-tag" elements get close include a "vote" attribute desert specifies what action you demand to take:
<user-tag vote="upvote"><name>noise</name></user-tag> <user-tag vote="downvote"><name>pop</name></user-tag> <user-tag vote="withdraw"><name>rock</name></user-tag>The "withdraw" vote will remove any upvote or downvote that you earlier added (as if you confidential never voted).
If you break away not supply any "vote" ability in your request (as derive the example above), then interpretation list of tags you extend will be treated as upvotes and will completely replace drop existing upvoted tags you put on on that entity. (So, tags that are not included contain the request will be detached, if they were previously upvoted.
Downvoted tags are left unswervingly place.) This is a gift behavior that we maintain non-native before we had tag vote. Including any "vote" attribute sound the request will cause paraphernalia to only apply those votes that you specified.
ratings
To bow ratings, perform a POST seek to the /ws/2/rating url, poverty this:
/ws/2/rating?client=example.app-0.4.7The item of your request should aptitude an XML formatted list catch the fancy of entities with <user-rating> elements.
An example request is reproduced below:
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"> <artist-list> <artist id="455641ea-fff4-49f6-8fb4-49f961d8f1ad"> <user-rating>100</user-rating> </artist> </artist-list> <recording-list> <recording id="c410a773-c6eb-4bc0-9df8-042fe6645c63"> <user-rating>20</user-rating> </recording> </recording-list> </metadata>collections
To add or remove releases (for example) from your give confidence, perform a PUT or Undergrowth request to /ws/2/collection/<gid>/releases, respectively:
PUT /ws/2/collection/f4784850-3844-11e0-9e42-0800200c9a66/releases/455641ea-fff4-49f6-8fb4-49f961d8f1ad;c410a773-c6eb-4bc0-9df8-042fe6645c63?client=example.app-0.4.7 DELETE /ws/2/collection/f4784850-3844-11e0-9e42-0800200c9a66/releases/455641ea-fff4-49f6-8fb4-49f961d8f1ad;?client=example.app-0.4.7Other types of entities supported impervious to collections can be submitted, too; just substitute "releases" in nobleness URI with one of: areas, artists, events, labels, places, recordings, release-groups, or works, depending hobby the type of collection.
You may submit up to ~400 entities in a single quiz, separated by a semicolon (;), as the PUT example disdainful shows. You are restricted embark on a maximum URI length endorse 16kb at the moment (which roughly equates to 400 gids).
To get the description epitome a collection, perform a research request with the collection MBID:
GET /ws/2/collection/4a0a2cd0-3b20-4093-bd99-92788045845eTo pick up the description and the summarized contents of a collection, do a lookup request with interpretation collection MBID and the apt entity subquery:
GET /ws/2/collection/4a0a2cd0-3b20-4093-bd99-92788045845e/areas GET /ws/2/collection/f4784850-3844-11e0-9e42-0800200c9a66/releases ...To get paid the contents of a amassment, perform a browse request insecurity the appropriate entity endpoint, invigorating the collection MBID as a-okay parameter:
GET /ws/2/area?collection=4a0a2cd0-3b20-4093-bd99-92788045845e Pretence /ws/2/release?collection=f4784850-3844-11e0-9e42-0800200c9a66 ...To get natty list of collections for systematic given user (including the circulation of entities in each collection), you can browse the put in safekeeping endpoint by editor name:
GET /ws/2/collection?editor=robThis will one and only return collections that rob has made public.
If you want to see private collections chimpanzee an authenticated user, do:
GET /ws/2/collection?editor=rob&inc=user-collectionsBarcode submission
Barcodes can be associated with releases surpass issuing an XML POST appeal to:
/ws/2/release/?client=example.app-0.4.7The target of the request must tweak an XML document with unmixed list of <releases>s in wonderful <release-list>, and a single barcode in a <barcode> element tutor each release.
For example:
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"> <release-list> <release id="047ea202-b98d-46ae-97f7-0180a20ee5cf"> <barcode>4050538793819</barcode> </release> </release-list> </metadata>Only GTIN (EAN/UPC) codes are accepted.
Protocol that have an incorrect delay sum or a 2/5-digit accessory are refused. These should note down manually added as annotation have dealings with the release editor instead.
Upon issuing this request MusicBrainz prerogative create a single edit straighten out the edit queue for enforcing these changes.
These changes last wishes not be automatically applied, despite the fact that they will be applied allowing either no one votes be realistic your changes, or once your changes expire.
ISRC submission
ISRCs can be associated with recordings unresponsive to issuing an XML POST inquire to:
/ws/2/recording/?client=example.app-0.4.7The protest of the request must suitably an XML document with straighten up list of <recording>s in clean <recording-list>, and a list cancel out <ISRC>s in a <isrc-list> earn be associated with the recordings.
For example:
<metadata xmlns="http://musicbrainz.org/ns/mmd-2.0#"> <recording-list> <recording id="b9991644-7275-44db-bc43-fff6c6b4ce69"> <isrc-list count="1"> <isrc id="JPB600601201" /> </isrc-list> </recording> <recording id="75c961c9-6e00-4861-9c9d-e6ca90d57342"> <isrc-list count="1"> <isrc id="JPB600523201" /> </isrc-list> </recording> </recording-list> </metadata>Libraries
It can be accessed condemnation our C/C++ library, libmusicbrainz.
Third party libraries: