osu! API Backend

A RESTful API for interacting with osu! data, built with Node.js and Express.

Introduction

This API provides access to various data points from the official osu! API v2. It allows you to retrieve information about users, beatmaps, scores, and more.

To use this API, you will need to obtain an API key from osu!. (This API is a proxy, so you don't need an API key to use this proxy, but this proxy needs a key to talk to osu!.)

Available Endpoints

Here are some examples of available endpoints:

User Endpoints

  • GET /api/user/{id}: Get user data by ID.
  • GET /api/user/username/{username}: Get user data by username.
  • GET /api/user/{id}/recent?limit=5&mode=osu: Get user's recent scores.
  • GET /api/user/:id/kudosu: Get user's kudosu history.
  • GET /api/user/search?query=peppy: Search user by name
  • GET /api/user/:id/best: Get user top scores.

Beatmap Endpoints

  • GET /api/beatmap/{beatmapID}: Get beatmap data.
  • GET /api/beatmap/:beatmapID/global: Get beatmap scores
  • GET /api/beatmap/:beatmapID/mods/:modName: Get beatmap scores with specified mods.
  • GET /api/beatmap/search?query=artist:Camellia: Search for beatmaps.
  • GET /api/beatmap/beatmapsets/:beatmapsetId
  • POST /api/beatmap/{beatmapID}/attributes: Get beatmap attributes (with mods). POST
    Example body: { "mods": ["HD", "HR"] }

Response