Get User
Get detailed information about an Osu! player.
Endpoint
Query Parameters
Player username (use either username or user_id)
Player ID (use either username or user_id)
Game mode. Options: osu, taiko, fruits, mania
Example Request
curl -X GET "https://rocks.rive.wtf/api/osu/user?username=peppy&mode=osu" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"id": 2,
"username": "peppy",
"join_date": "2007-08-28T03:09:12+00:00",
"country_code": "AU",
"avatar_url": "https://a.ppy.sh/2?1657169614.png",
"cover_url": "https://assets.ppy.sh/user-profile-covers/2/baba245ef60834b769694178f8f6d4f6166c5188c740de084656ad2b80f1eea7.jpeg",
"is_online": false,
"is_supporter": true,
"mode": "osu",
"badges": [],
"statistics": {
"level": 67,
"level_progress": 51,
"pp": 1188.72,
"global_rank": 751674,
"country_rank": 15440,
"ranked_score": 464614954,
"accuracy": 96.7969,
"play_count": 7761,
"play_time": 744444,
"total_score": 2029450214,
"total_hits": 839285,
"max_combo": 746,
"replays_watched": 16673,
"grade_counts": {
"ss": 15,
"ssh": 0,
"s": 67,
"sh": 0,
"a": 178
}
}
}
Response Fields
Account creation date (ISO 8601 format)
URL to player’s avatar image
URL to player’s profile cover image
Whether the player is currently online
Whether the player has supporter status
Array of badge objects earned by the player
Player statistics
Progress to next level (0-100)
Overall accuracy percentage
Total play time in seconds
Total score across all plays
Number of replays watched by others
Count of grades achieved
ss - SS rank count
ssh - Silver SS rank count
s - S rank count
sh - Silver S rank count
a - A rank count
Get Recent Plays
Get a player’s recent plays.
Endpoint
Query Parameters
Game mode. Options: osu, taiko, fruits, mania
Number of recent plays to return (max 50)
Example Request
curl -X GET "https://rocks.rive.wtf/api/osu/user/recent?username=peppy&mode=osu&limit=5" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"count": 0,
"scores": []
}
If the player has no recent plays, the scores array will be empty.
Get Best Plays
Get a player’s top/best plays.
Endpoint
Query Parameters
Game mode. Options: osu, taiko, fruits, mania
Number of best plays to return (max 100)
Example Request
curl -X GET "https://rocks.rive.wtf/api/osu/user/best?username=peppy&mode=osu&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"count": 10,
"scores": [
{
"id": 1720541511,
"accuracy": 1,
"created_at": "2014-03-25T03:58:04Z",
"max_combo": 450,
"mods": ["PF"],
"pp": 73.2294,
"rank": "X",
"score": 2669868,
"beatmap": {
"id": 22423,
"difficulty_rating": 3.58485,
"version": "Hard"
},
"beatmapset": {
"id": 3720,
"title": "Tori no Uta -Ethereal House Mix-",
"artist": "Lix",
"creator": "James",
"cover_url": "https://assets.ppy.sh/beatmaps/3720/covers/cover.jpg?1622021201"
}
}
]
}
Response Fields
Total number of scores returned
Array of score objects
Play accuracy (0-1, where 1 = 100%)
When the score was set (ISO 8601 format)
Array of mod abbreviations used (e.g., [“HD”, “DT”])
Performance points awarded
Grade achieved (X, S, A, B, C, D)
Beatmap information
id - Beatmap ID
difficulty_rating - Star rating
version - Difficulty name
Beatmap set information
id - Beatmap set ID
title - Song title
artist - Song artist
creator - Map creator username
cover_url - Cover image URL
Search Beatmaps
Search for beatmaps by query.
Endpoint
GET /api/osu/beatmaps/search
Query Parameters
Search query (song name, artist, mapper, etc.)
Filter by game mode. Options: osu, taiko, fruits, mania
Example Request
curl -X GET "https://rocks.rive.wtf/api/osu/beatmaps/search?query=freedom%20dive&mode=osu" \
-H "Authorization: Bearer YOUR_API_KEY"
Response Example
{
"beatmapsets": [
{
"id": 2370527,
"title": "Vector to the Heavens (Xion) (Cityyy Remix)",
"artist": "Yoko Shimomura",
"creator": "Cityyy",
"cover_url": "https://assets.ppy.sh/beatmaps/2370527/covers/cover.jpg?1769392934",
"status": "RANKED",
"play_count": 1880,
"favourite_count": 49,
"beatmaps": [
{
"id": 5115566,
"version": "In the Ethereal Silence Between Passion & Serenity, We Shatter",
"difficulty_rating": 7.54478,
"mode": "STANDARD"
}
]
}
],
"total": 50
}
Response Fields
Array of beatmap set objects
Ranked status (RANKED, QUALIFIED, LOVED, etc.)
Array of individual beatmap difficultiesShow Beatmap difficulty fields
id - Beatmap ID
version - Difficulty name
difficulty_rating - Star rating
mode - Game mode (STANDARD, TAIKO, CTB, MANIA)
Total number of results found (limited to 50)
Game Modes
| Mode | String Value | Description |
|---|
| osu! (Standard) | osu | Original click-the-circles mode |
| Taiko | taiko | Drum rhythm mode |
| Catch the Beat | fruits | Catch falling fruits mode |
| osu!mania | mania | Piano/rhythm game mode |
Grade Ranks
| Rank | Description |
|---|
| X (SS) | 100% accuracy |
| XH (SSH) | 100% accuracy with HD/FL |
| S | >95% accuracy |
| SH | >95% accuracy with HD/FL |
| A | >90% accuracy |
| B | >80% accuracy |
| C | >70% accuracy |
| D | >70% accuracy |
Common Mods
| Mod | Name | Effect |
|---|
| NF | No Fail | Cannot fail |
| EZ | Easy | Easier gameplay |
| HD | Hidden | Circles fade out |
| HR | Hard Rock | Harder gameplay |
| DT | Double Time | 1.5x speed |
| HT | Half Time | 0.75x speed |
| NC | Nightcore | DT with pitch shift |
| FL | Flashlight | Limited vision |
| SO | Spun Out | Auto-spin |
| PF | Perfect | SS or retry |
Play time is returned in seconds. Convert to hours with play_time / 3600.
Accuracy is returned as a decimal (0-1). Multiply by 100 for percentage display.