is an object oriented, asynchronous wrapper for the Roblox Web API (and other Roblox-related APIs) with many new and interesting features. allows you to automate much of what you would do on the Roblox website and on other Roblox-related websites.

Update: rewrite

We are currently working on a complete rewrite, and as such we are not accepting feature requests until the rewrite branch is on par with the main branch.
If you'd like to give suggestions on design decisions, you can join the Discord.

Get Started

To begin, first import the client, which is the most essential part of, and initialize it like so:

from ro_py import Client
client = Client()

Next, import asyncio at the top of your file:

import asyncio

Next, create an async method main() and run it with asyncio:

async def main():
	# keep this empty for the next step!


Next, read the documentation for the Client to grab objects and interact with the API.

If you are looking for a full tutorial on, check out the new DevForum article!


  • httpx (for sending requests)
  • iso8601 (for parsing dates)
  • signalrcore (for recieving notifications)
  • lxml (for parsing documentation, might be made optional soon)

Previous Requirements

  • cachecontrol (for caching requests)
  • requests-async (for sending requests, might be updated to a new lib soon)
  • pytweening (for animations, see below)
  • wxPython (for the "prompts" extension, optional)
  • wxasync (see above)

Prompts Extension Requirements

You'll need to install wxPython, wxasync and pytweening to use the prompts extension. If it is not present, an error will be raised.


We are not responsible for any malicious use of this library.
If you use this library in a way that violates the Roblox Terms of Use your account may be punished.
If you use code from in your own library, please credit us! We're working our hardest to deliver this library, and crediting us is the best way to help support the project.