Metadata-Version: 2.4
Name: roblox-account-manager
Version: 1.0.1
Summary: Async Python SDK for the Roblox Account Manager local web API
Project-URL: Homepage, https://github.com/NotTahaAli/RobloxAccountManagerSDK
Project-URL: Documentation, https://github.com/NotTahaAli/RobloxAccountManagerSDK/tree/main/docs
Project-URL: Upstream API docs, https://ic3w0lf22.gitbook.io/roblox-account-manager
Author: NotTahaAli
License: MIT
Keywords: account-manager,async,httpx,roblox,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: httpx>=0.27
Description-Content-Type: text/markdown

# roblox-account-manager

Async Python SDK for the local web API of
[Roblox Account Manager](https://github.com/ic3w0lf22/Roblox-Account-Manager) (RAM).

Fully typed, `httpx`-based, no runtime dependencies beyond `httpx`. Every one of the 22
documented endpoints is wrapped, plus `Account` objects with bound methods and a typed
exception hierarchy.

## Security warning

This API can hand out `.ROBLOSECURITY` cookies, launch games, and edit accounts. Anyone
who can reach the port can do those things. Before exposing it:

- change `WebServerPort` from its default
- set a `Password` (6+ characters, **letters and numbers only** — RAM rejects symbols)
- turn on `EveryRequestRequiresPassword`
- leave `AllowGetCookie` / `AllowGetAccounts` / `AllowLaunchAccount` off unless you need them

Never point this SDK at a host you do not control.

## Requirements

- Python 3.12+
- A running Roblox Account Manager with `EnableWebServer` turned on (gear icon → settings)

## Install

```bash
uv add roblox-account-manager     # or: pip install roblox-account-manager
```

## Quickstart

```python
import asyncio

from roblox_account_manager import RobloxAccountManager


async def main() -> None:
    async with RobloxAccountManager("http://127.0.0.1:7963", password="hunter2000") as ram:
        for account in await ram.get_accounts_json():
            print(account.username, account.last_used_at)
            await account.launch(1818)


asyncio.run(main())
```

The password is attached to every request, so this works whether or not
`EveryRequestRequiresPassword` is enabled.

## Documentation

| Page | What's in it |
| --- | --- |
| [Getting started](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/getting-started.md) | RAM setup, settings that gate each endpoint, first call |
| [API reference](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/api-reference.md) | All 22 methods, parameters, return types, underlying HTTP call |
| [Accounts](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/accounts.md) | `Account` / `BlockedList` fields and bound-method sugar |
| [Errors](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/errors.md) | Exception hierarchy, what each status really means, retry rules |
| [Examples](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/examples.md) | Concurrent launches, custom ports, fields as a state store |
| [Contributing](https://github.com/NotTahaAli/RobloxAccountManagerSDK/blob/main/docs/contributing.md) | Dev setup, test layout, adding an endpoint |

Upstream API docs: <https://ic3w0lf22.gitbook.io/roblox-account-manager>

## License

MIT
