Skip to main content

Complete python wrapper for osu! api v2 and v1.

Project description

ossapi (documentation) PyPI version

ossapi is the definitive python wrapper for the osu! api. ossapi has complete coverage of api v2 and api v1, and 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://tybug.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("tybug").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 OssapiAsync

api = OssapiAsync(client_id, client_secret)

async def main():
    await api.user("tybug")

asyncio.run(main())

Read more about OssapiAsync on the docs.

Other domains

You can use ossapi to interact with the api of other deployments of the osu website, such as https://dev.ppy.sh.

from ossapi import Ossapi

api = Ossapi(client_id, client_secret, domain="dev")
# get the dev server pp leaderboards
ranking = api.ranking("osu", "performance").ranking
# pearline06, as of 2023
print(ranking[0].user.username)

Read more about domains on the docs.

Endpoints

All endpoints for api v2.

API v1 Usage

You can get your api v1 key at https://osu.ppy.sh/home/account/edit#legacy-api.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ossapi-4.0.0b1.tar.gz (95.5 kB view details)

Uploaded Source

Built Distribution

ossapi-4.0.0b1-py3-none-any.whl (92.6 kB view details)

Uploaded Python 3

File details

Details for the file ossapi-4.0.0b1.tar.gz.

File metadata

  • Download URL: ossapi-4.0.0b1.tar.gz
  • Upload date:
  • Size: 95.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for ossapi-4.0.0b1.tar.gz
Algorithm Hash digest
SHA256 d2f7d32145f9bbc4309237c1bc6fc9895816e0a0e9d146ff23fdb8cb73c52226
MD5 51be1550436c291b5699eeaf0df1c136
BLAKE2b-256 f906a996c79ba006008749bd413a4f7b01730a9ca395015163ef0fdbd0d6e68f

See more details on using hashes here.

File details

Details for the file ossapi-4.0.0b1-py3-none-any.whl.

File metadata

  • Download URL: ossapi-4.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 92.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for ossapi-4.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c32b229aa3696ee0f1c2d352ef463993de392c85f503c22f11007d16b192d07
MD5 2f833e43870e3def8a9f4c15186f3dd6
BLAKE2b-256 baca722ed7f477a8f85561d9f0ade6087bd58d20dabcce1e30d3eb86b61b9908

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page