osu! ascent
API
Build on osu! ascent
Read-only JSON, CORS-enabled, 120 requests/minute per IP. Other Discord bots and community projects are welcome.
GET /api/v1/player/{id}Player snapshot (rank, pp, accuracy, peak…)
GET /api/v1/player/{id}/history?days=90Rank/pp/accuracy snapshots over time
GET /api/v1/player/{id}/top-playsTop 100 plays
GET /api/v1/player/{id}/recentRecent plays
GET /api/v1/player/{id}/eventsCareer events (top plays, milestones, peaks…)
GET /api/v1/player/{id}/skillsSkill profile with derivations and limitations
GET /api/v1/map/{id}Beatmap + leaderboard of tracked players
GET /api/v1/leaderboard?country=US&sort=gain7dRankings (sort: rank, pp, accuracy, playcount, gain7d, peak)
GET /api/v1/tournamentAll tournaments
GET /api/v1/tournament/{slug}Tournament, settings and entrants
GET /api/v1/tournament/{slug}/bracketEvery match with links (for embeds/overlays)
GET /api/v1/tournament/{slug}/standingsRound robin / swiss / group standings
GET /api/v1/match/{id}Match, maps and its ⭐ market
GET /api/v1/markets[/{id}]Open prediction markets with live odds
GET /api/v1/starsStar economy stats
GET /api/v1/server/{id}[/highlights|/awards]Public server dashboards only
GET /api/v1/events?after=ID&types=NEW_TOP_PLAY&min=50The global event stream (poll, or use SSE below)
GET /api/events/stream?after=IDServer-Sent Events: the live feed
GET /api/v1/bible[?q=streams]Bible chapters (metadata) or search
GET /api/v1/bible/{slug}One chapter, including HTML and citations
GET /api/v1/search?q=Global search
Responses are { data } or { error }. Rows from the sandbox carry is_demo: 1 — never present them as real osu! data. osu! data originates from the official osu! API; respect ppy's terms when you reuse it.
API · osu! ascent