curl --request POST \
--url https://api.rocksky.app/xrpc/app.rocksky.like.likeSong \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uri": "<string>"
}
'import requests
url = "https://api.rocksky.app/xrpc/app.rocksky.like.likeSong"
payload = { "uri": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uri: '<string>'})
};
fetch('https://api.rocksky.app/xrpc/app.rocksky.like.likeSong', 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.rocksky.app/xrpc/app.rocksky.like.likeSong",
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([
'uri' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.rocksky.app/xrpc/app.rocksky.like.likeSong"
payload := strings.NewReader("{\n \"uri\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.rocksky.app/xrpc/app.rocksky.like.likeSong")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uri\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rocksky.app/xrpc/app.rocksky.like.likeSong")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uri\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"artist": "<string>",
"albumArtist": "<string>",
"albumArt": "<string>",
"uri": "<string>",
"album": "<string>",
"duration": 123,
"trackNumber": 123,
"discNumber": 123,
"playCount": 1,
"likesCount": 1,
"liked": true,
"uniqueListeners": 1,
"albumUri": "<string>",
"artistUri": "<string>",
"sha256": "<string>",
"mbid": "<string>",
"isrc": "<string>",
"tags": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"artists": [
{
"id": "<string>",
"uri": "<string>",
"name": "<string>",
"picture": "<string>",
"sha256": "<string>",
"playCount": 1,
"uniqueListeners": 1,
"tags": [
"<string>"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"biography": "<string>",
"born": "2023-11-07T05:31:56Z",
"bornIn": "<string>",
"died": "2023-11-07T05:31:56Z",
"appleMusicLink": "<string>",
"spotifyLink": "<string>",
"tidalLink": "<string>",
"youtubeLink": "<string>",
"genres": [
"<string>"
],
"xataVersion": 123
}
],
"firstScrobble": {
"handle": "<string>",
"avatar": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"matches": [
{
"id": 123,
"title": "<string>",
"artist": "<string>",
"album": "<string>",
"albumArt": "<string>",
"isrc": "<string>",
"durationMs": 1,
"trackNumber": 123,
"discNumber": 123,
"link": "<string>",
"preview": "<string>",
"rank": 123,
"explicit": true,
"score": 50
}
],
"mbId": "<string>",
"updatedAt": "<string>",
"releaseDate": "<string>",
"year": 123,
"artistPicture": "<string>",
"genres": [
"<string>"
],
"mbArtists": [
{
"mbid": "<string>",
"name": "<string>"
}
],
"youtubeLink": "<string>",
"spotifyLink": "<string>",
"appleMusicLink": "<string>",
"tidalLink": "<string>",
"lyrics": "<string>",
"composer": "<string>",
"genre": "<string>",
"label": "<string>",
"copyrightMessage": "<string>",
"key": "<string>",
"acoustidFingerprint": "<string>",
"xataVersion": 123,
"bpm": 123
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Like a song
curl --request POST \
--url https://api.rocksky.app/xrpc/app.rocksky.like.likeSong \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uri": "<string>"
}
'import requests
url = "https://api.rocksky.app/xrpc/app.rocksky.like.likeSong"
payload = { "uri": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uri: '<string>'})
};
fetch('https://api.rocksky.app/xrpc/app.rocksky.like.likeSong', 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.rocksky.app/xrpc/app.rocksky.like.likeSong",
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([
'uri' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.rocksky.app/xrpc/app.rocksky.like.likeSong"
payload := strings.NewReader("{\n \"uri\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.rocksky.app/xrpc/app.rocksky.like.likeSong")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uri\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rocksky.app/xrpc/app.rocksky.like.likeSong")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uri\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"title": "<string>",
"artist": "<string>",
"albumArtist": "<string>",
"albumArt": "<string>",
"uri": "<string>",
"album": "<string>",
"duration": 123,
"trackNumber": 123,
"discNumber": 123,
"playCount": 1,
"likesCount": 1,
"liked": true,
"uniqueListeners": 1,
"albumUri": "<string>",
"artistUri": "<string>",
"sha256": "<string>",
"mbid": "<string>",
"isrc": "<string>",
"tags": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z",
"artists": [
{
"id": "<string>",
"uri": "<string>",
"name": "<string>",
"picture": "<string>",
"sha256": "<string>",
"playCount": 1,
"uniqueListeners": 1,
"tags": [
"<string>"
],
"createdAt": "<string>",
"updatedAt": "<string>",
"biography": "<string>",
"born": "2023-11-07T05:31:56Z",
"bornIn": "<string>",
"died": "2023-11-07T05:31:56Z",
"appleMusicLink": "<string>",
"spotifyLink": "<string>",
"tidalLink": "<string>",
"youtubeLink": "<string>",
"genres": [
"<string>"
],
"xataVersion": 123
}
],
"firstScrobble": {
"handle": "<string>",
"avatar": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
},
"matches": [
{
"id": 123,
"title": "<string>",
"artist": "<string>",
"album": "<string>",
"albumArt": "<string>",
"isrc": "<string>",
"durationMs": 1,
"trackNumber": 123,
"discNumber": 123,
"link": "<string>",
"preview": "<string>",
"rank": 123,
"explicit": true,
"score": 50
}
],
"mbId": "<string>",
"updatedAt": "<string>",
"releaseDate": "<string>",
"year": 123,
"artistPicture": "<string>",
"genres": [
"<string>"
],
"mbArtists": [
{
"mbid": "<string>",
"name": "<string>"
}
],
"youtubeLink": "<string>",
"spotifyLink": "<string>",
"appleMusicLink": "<string>",
"tidalLink": "<string>",
"lyrics": "<string>",
"composer": "<string>",
"genre": "<string>",
"label": "<string>",
"copyrightMessage": "<string>",
"key": "<string>",
"acoustidFingerprint": "<string>",
"xataVersion": 123,
"bpm": 123
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Rocksky bearer token.
Body
The unique identifier of the song to like
Response
Success
The unique identifier of the song.
The title of the song.
The artist of the song.
The artist of the album the song belongs to.
The URL of the album art image.
The URI of the song.
The album of the song.
The duration of the song in milliseconds.
The track number of the song in the album.
The disc number of the song in the album.
The number of times the song has been played.
x >= 0The number of users who have loved this song.
x >= 0Whether the authenticated user has loved this song. False when unauthenticated.
The number of unique listeners who have played the song.
x >= 0The URI of the album the song belongs to.
The URI of the artist of the song.
The SHA256 hash of the song.
The MusicBrainz ID of the song.
The International Standard Recording Code (ISRC) of the song.
The timestamp when the song was created.
Show child attributes
Show child attributes
The first scrobble of this song on Rocksky.
Show child attributes
Show child attributes
Ranked list of candidate matches from external metadata providers (e.g. Deezer). Additive field returned by matchSong; may be empty.
Show child attributes
Show child attributes
The MusicBrainz recording ID of the track, when available.
Show child attributes
Show child attributes
Production returns a nullable floating-point number. Lexicon has no float primitive; retained as an open extension without changing response data.