curl --request GET \
--url https://api.recoupable.dev/api/research/similarimport requests
url = "https://api.recoupable.dev/api/research/similar"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.recoupable.dev/api/research/similar', 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.recoupable.dev/api/research/similar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.recoupable.dev/api/research/similar"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.recoupable.dev/api/research/similar")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.dev/api/research/similar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "success",
"artists": [
{
"id": "wjcgfd9i",
"name": "Drake",
"avatar": "<string>",
"site_url": "<string>"
}
],
"total": 123
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"error": "insufficient_credits",
"remaining_credits": 0,
"required_credits": 50000,
"billingUrl": "https://app.recoupable.dev"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Request failed with status 501"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}Similar Artists
Read unweighted related artists. The accepted audience, genre, mood and musicality values (high/medium/low) do not currently change the ranking. No similarity score is calculated. A positive integer limit slices the returned list; invalid or non-positive limits are ignored.
Use your Recoup API key (x-api-key) or supported bearer credential. Successful artist and track research reads cost $0.05 (50,000 micro-dollar credits). Recoup manages the data connections. Coverage and rate limits vary; see Research availability.
curl --request GET \
--url https://api.recoupable.dev/api/research/similarimport requests
url = "https://api.recoupable.dev/api/research/similar"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.recoupable.dev/api/research/similar', 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.recoupable.dev/api/research/similar",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.recoupable.dev/api/research/similar"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.recoupable.dev/api/research/similar")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.recoupable.dev/api/research/similar")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"status": "success",
"artists": [
{
"id": "wjcgfd9i",
"name": "Drake",
"avatar": "<string>",
"site_url": "<string>"
}
],
"total": 123
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"error": "insufficient_credits",
"remaining_credits": 0,
"required_credits": 50000,
"billingUrl": "https://app.recoupable.dev"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Request failed with status 501"
}{
"status": "error",
"error": "Missing required parameter: artist"
}{
"status": "error",
"error": "Missing required parameter: artist"
}Query Parameters
Artist name; Recoup resolves the first provider search match. Required unless id is supplied. Recoup artist UUID resolution is not implemented here.
Audience overlap weight.
high, medium, low Genre similarity weight.
high, medium, low Mood similarity weight.
high, medium, low Musicality similarity weight.
high, medium, low Optional raw string; no Recoup default. For similar artists, only a positive integer limits the returned list; for playlists it passes through to the provider.
Research artist ID returned by search or lookup; treat it as an opaque string. Required unless artist is supplied; takes precedence when both are provided. This is not a Recoup artist/account ID.
^[A-Za-z0-9][A-Za-z0-9._:-]*$"artist_123"
Response
Unweighted related artists with provider fields; no overlap scores are computed.
Was this page helpful?
