Complete python wrapper for osu! api v2 and v1.
Project description
ossapi (documentation)
ossapi is a python wrapper for the osu! api which has complete coverage of both api v2 and api v1. ossapi provides both sync (Ossapi
) and async (OssapiAsync
) versions for api v2.
If you need support or would like to contribute, feel free to ask in the #ossapi
channel of the circleguard discord.
Installation
To install:
pip install ossapi
# or, if you want to use OssapiAsync:
pip install ossapi[async]
To upgrade:
pip install -U ossapi
To get started, read the docs: https://circleguard.github.io/ossapi/.
Quickstart
The docs have an in depth quickstart, but here's a super short version for api v2:
from ossapi import Ossapi
# create a new client at https://osu.ppy.sh/home/account/edit#oauth
api = Ossapi(client_id, client_secret)
# see docs for full list of endpoints
print(api.user("tybug2").username)
print(api.user(12092800, mode="osu").username)
print(api.beatmap(221777).id)
Async
ossapi provides an async variant, OssapiAsync
, which has an identical interface to Ossapi
:
import asyncio
from ossapi import Ossapi
api = Ossapi(client_id, client_secret)
async def main():
await api.user("tybug2")
asyncio.run(main())
Read more about OssapiAsync on the docs.
Endpoints
All endpoints for api v2.
- Beatmaps
- Beatmapsets
- Changelog
- Chat
- Comments
- Forums
- Friends
- Home
- Matches
- Me
- News
- Oauth
- Rankings
- Rooms
- Scores
- Seasonal Backgrounds
- Spotlights
- Users
- Wiki
API v1 Usage
You can get your api v1 key at https://osu.ppy.sh/p/api/. Note that due to a redirection bug, you may need to log in and wait 30 seconds before being able to access the api page through the above link.
Basic usage:
from ossapi import OssapiV1
api = OssapiV1("key")
print(api.get_beatmaps(user=53378)[0].submit_date)
print(api.get_match(69063884).games[0].game_id)
print(api.get_scores(221777)[0].username)
print(len(api.get_replay(beatmap_id=221777, user=6974470)))
print(api.get_user(12092800).playcount)
print(api.get_user_best(12092800)[0].pp)
print(api.get_user_recent(12092800)[0].beatmap_id)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.