Get Playlist
GET /playlist/:playlistId
Fetch a playlist in Beat Saber format.
The playlist ID (with optional file extension like .bplist or .json)
Beat Saber playlist object with songs and metadata
Example Request
curl https://api.scoresaber.com/playlist/my-playlist.bplist
Example Response
{
"playlistTitle": "My Playlist",
"playlistAuthor": "SSR",
"playlistDescription": "Custom playlist description",
"image": "data:image/png;base64,...",
"songs": [
{
"hash": "abc123def456",
"songName": "Song Name",
"difficulties": [
{
"characteristic": "Standard",
"name": "ExpertPlus"
}
]
}
]
}
Create Custom Ranked Playlist
GET /playlist/scoresaber-custom-ranked-maps
Generate a custom playlist of ranked maps based on configuration criteria.
JSON-encoded configuration string specifying playlist criteria (star range, count, sort order, etc.)
Generated Beat Saber playlist with ranked maps matching the criteria
Example Request
curl "https://api.scoresaber.com/playlist/scoresaber-custom-ranked-maps?config=%7B%22minStars%22%3A8%2C%22maxStars%22%3A10%2C%22count%22%3A50%7D"
Config Schema
The config parameter should be a URL-encoded JSON string with the following structure:
{
"minStars": 8,
"maxStars": 10,
"count": 50,
"sort": "stars_desc"
}
Example Response
{
"playlistTitle": "Custom Ranked Maps (8-10 stars)",
"playlistAuthor": "ScoreSaber Reloaded",
"playlistDescription": "50 ranked maps between 8 and 10 stars",
"image": "data:image/png;base64,...",
"songs": [
{
"hash": "abc123def456",
"songName": "Reality Check Through The Skull",
"difficulties": [
{
"characteristic": "Standard",
"name": "ExpertPlus"
}
]
}
]
}
Create Snipe Playlist
GET /playlist/snipe
Generate a playlist of maps where you can improve your score or rank compared to another player.
Your ScoreSaber player ID
The player ID you want to compete against
JSON-encoded settings for filtering and customizing the snipe playlist
Beat Saber playlist with maps optimized for score competition
Example Request
curl "https://api.scoresaber.com/playlist/snipe?user=76561198059961776&toSnipe=76561198012345678"
Settings Schema
The optional settings parameter can be a URL-encoded JSON string:
{
"maxMaps": 100,
"minPpDifference": 10,
"rankedOnly": true
}
Example Response
{
"playlistTitle": "Snipe Playlist: You vs TargetPlayer",
"playlistAuthor": "ScoreSaber Reloaded",
"playlistDescription": "Maps where you can improve against TargetPlayer",
"image": "data:image/png;base64,...",
"songs": [
{
"hash": "abc123def456",
"songName": "Song To Beat",
"difficulties": [
{
"characteristic": "Standard",
"name": "ExpertPlus"
}
],
"levelAuthorName": "Mapper Name"
}
],
"customData": {
"yourScore": 950000,
"theirScore": 987654,
"ppDifference": 15.5
}
}