Get a musical work's recordings
curl --request POST \
--url 'https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=' \
--header 'Content-Type: application/json' \
--data '
{
"iswc": "T9214745718"
}
'import requests
url = "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey="
payload = { "iswc": "T9214745718" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({iswc: 'T9214745718'})
};
fetch('https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'iswc' => 'T9214745718'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey="
payload := strings.NewReader("{\n \"iswc\": \"T9214745718\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=")
.header("Content-Type", "application/json")
.body("{\n \"iswc\": \"T9214745718\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"iswc\": \"T9214745718\"\n}"
response = http.request(request)
puts response.read_body{
"message": {
"header": {
"status_code": 200,
"execute_time": 0.652
},
"body": {
"pagination": {
"available": 34,
"returned_elements": 25,
"current_page": 1,
"page_size": 25,
"total_pages": 2
},
"result_list": [
{
"isrc": "USRC17607839",
"title": "Rolling in the Deep",
"artist_list": [
"Adele"
]
},
{
"isrc": "USUM71618176",
"title": "Rolling in the Deep",
"artist_list": [
"Linkin Park"
]
}
]
}
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}Musical works
Get a musical work's recordings
One ISWC in, the recordings of that musical work out, 25 to a page.
The reverse of the administrators lookup, by the same rule: a recording appears here only where this work’s registration is the one governing it. So every ISRC returned is one the administrators lookup will report administrators for.
An ISWC we do not hold is an empty result_list, never a 404.
POST
/
ws
/
1.1
/
recording.musicalwork.details.search.post
Get a musical work's recordings
curl --request POST \
--url 'https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=' \
--header 'Content-Type: application/json' \
--data '
{
"iswc": "T9214745718"
}
'import requests
url = "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey="
payload = { "iswc": "T9214745718" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({iswc: 'T9214745718'})
};
fetch('https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'iswc' => 'T9214745718'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey="
payload := strings.NewReader("{\n \"iswc\": \"T9214745718\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=")
.header("Content-Type", "application/json")
.body("{\n \"iswc\": \"T9214745718\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.musixmatch.com/ws/1.1/recording.musicalwork.details.search.post?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"iswc\": \"T9214745718\"\n}"
response = http.request(request)
puts response.read_body{
"message": {
"header": {
"status_code": 200,
"execute_time": 0.652
},
"body": {
"pagination": {
"available": 34,
"returned_elements": 25,
"current_page": 1,
"page_size": 25,
"total_pages": 2
},
"result_list": [
{
"isrc": "USRC17607839",
"title": "Rolling in the Deep",
"artist_list": [
"Adele"
]
},
{
"isrc": "USUM71618176",
"title": "Rolling in the Deep",
"artist_list": [
"Linkin Park"
]
}
]
}
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}{
"message": {
"header": {
"status_code": 123,
"execute_time": 123,
"hint": "<string>",
"hint_code": "invalid_request"
},
"body": [
"<unknown>"
]
}
}Authorizations
Query Parameters
The 1-based page to return. A page past the end is an empty result_list, not an error.
Required range:
x >= 1Body
application/json
The musical work's ISWC, accepted hyphenated, e.g. T9214745718 or T-921.474.571-8
Response
One page of the work's recordings.
Show child attributes
Show child attributes
Was this page helpful?