Get songs
curl --request GET \
--url https://api.rocksky.app/xrpc/app.rocksky.song.getSongs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rocksky.app/xrpc/app.rocksky.song.getSongs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rocksky.app/xrpc/app.rocksky.song.getSongs', 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.song.getSongs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.rocksky.app/xrpc/app.rocksky.song.getSongs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rocksky.app/xrpc/app.rocksky.song.getSongs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rocksky.app/xrpc/app.rocksky.song.getSongs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"songs": [
{
"id": "<string>",
"title": "<string>",
"artist": "<string>",
"albumArtist": "<string>",
"albumArt": "<string>",
"uri": "<string>",
"album": "<string>",
"duration": 123,
"trackNumber": 123,
"discNumber": 123,
"playCount": 1,
"uniqueListeners": 1,
"albumUri": "<string>",
"artistUri": "<string>",
"sha256": "<string>",
"mbid": "<string>",
"isrc": "<string>",
"tags": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<unknown>",
"message": "<string>"
}app.rocksky.song
Get songs
GET
/
app.rocksky.song.getSongs
Get songs
curl --request GET \
--url https://api.rocksky.app/xrpc/app.rocksky.song.getSongs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rocksky.app/xrpc/app.rocksky.song.getSongs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rocksky.app/xrpc/app.rocksky.song.getSongs', 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.song.getSongs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.rocksky.app/xrpc/app.rocksky.song.getSongs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.rocksky.app/xrpc/app.rocksky.song.getSongs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rocksky.app/xrpc/app.rocksky.song.getSongs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"songs": [
{
"id": "<string>",
"title": "<string>",
"artist": "<string>",
"albumArtist": "<string>",
"albumArt": "<string>",
"uri": "<string>",
"album": "<string>",
"duration": 123,
"trackNumber": 123,
"discNumber": 123,
"playCount": 1,
"uniqueListeners": 1,
"albumUri": "<string>",
"artistUri": "<string>",
"sha256": "<string>",
"mbid": "<string>",
"isrc": "<string>",
"tags": [
"<string>"
],
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<unknown>",
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
The maximum number of songs to return
Required range:
x >= 1The offset for pagination
Required range:
x >= 0The genre to filter artists by
Filter songs by MusicBrainz ID
Filter songs by International Standard Recording Code (ISRC)
Filter songs by Spotify track ID (resolved internally to the Spotify track URL)
Response
OK
Show child attributes
Show child attributes
Get song recent listeners ordered by most recent scrobbleMatches a song against Rocksky’s music database and external metadata providers to resolve the best canonical track, artist, and album
⌘I