---
title: Rone Arena Python SDK
url: https://rone.dev/projects/rone-arena-python
description: pip install rone-arena — the whole API surface behind four sub-clients.
language: en-US
updated: 2026-09-27
translations:
  id: https://rone.dev/id/projects/rone-arena-python
---

# Rone Arena Python SDK

pip install rone-arena — the whole API surface behind four sub-clients.

[Projects](https://rone.dev/projects) / [Tooling](https://rone.dev/projects/category/tooling)

Live · Started 2026 · 0 GitHub stars · 0 Forks

rone-arena is the Python client for the Rone Arena API. Each of the API’s forty-seven operations is a method on one of four sub-clients, hung off a single facade that shares one HTTP session, timeout and user agent. Its only runtime dependency is requests.

## Numbers

* **1.0.0** Version
* **47** Methods
* **1** Runtime dependencies

## Project facts

|          |                                                                                                                                                              |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Status   | Live                                                                                                                                                         |
| Category | Tooling                                                                                                                                                      |
| Started  | 2026                                                                                                                                                         |
| Role     | Sole maintainer                                                                                                                                              |
| Stack    | Python, requests, setuptools, PyPI, GitHub Actions                                                                                                           |
| Licence  | BSD-3-Clause                                                                                                                                                 |
| Links    | [PyPI](https://pypi.org/project/rone-arena/) · [Source](https://github.com/ridwaanhall/rone-arena-python) · [API reference](https://arena.rone.dev/api/docs) |

## Overview

A client library for an API that already documents itself well should be thin. This one mirrors the API’s own grouping exactly — academy, heroes, user, addon — as four sub-clients on a single object, so a reader who knows the endpoint knows the method, and one transport underneath owns the session, the timeout and the user agent.

Parameters pass through as keyword arguments and responses come back as parsed JSON. There is no second schema to keep in step with the first, which is the part that usually rots in a generated client.

## Making unavailability catchable

The API answers 503 while it is in maintenance or shedding load, and names an alternative host in the body. Handled naively that reached callers as a JSON decode failure somewhere inside response parsing — technically true, entirely unhelpful, and impossible to write a retry against.

A 503 now raises a dedicated exception carrying the status message and the failover host, both read out of the body defensively so a differently shaped error page cannot turn a service outage into a KeyError. Callers handle it where they already handle network failures.

## The rename, and a version that goes backwards

The package was previously published as OpenMLBB, and that name was removed from the index rather than aliased. There is no transitional shim: the install name changed, the import changed, and the class changed, so this is a breaking change stated as one.

The version number also goes backwards. The old package had reached 4.2.0; this is a new package, so it restarts at 1.0.0. A 4.2.0 was briefly published under the new name by mistake and has since been yanked, which is why the migration guidance is to avoid a pin that reaches for anything above 4.

<CardGroup cols={2}>
  <Card title="Previous: Arena Card" href="https://rone.dev/projects/arena-card">
    A signed-in profile card: ranked statistics, battle highlights and recent matches.
  </Card>

  <Card title="Next: Shopping Log Bot" href="https://rone.dev/projects/shopping-log-bot">
    A Telegram bot that reads receipt photos with Gemini and files them into a spreadsheet.
  </Card>
</CardGroup>
