Ranking API - RoUtilities

Ranking API

8 min read Developers Updated: September 2026

The Ranking API lets you change Roblox group ranks from your own website, bot, or game server. Each key is locked to one RoUtilities group, so requests never include a group ID. Ranking is performed by the Roblox bot already connected to that group.

Ranking API is a $2.50 lifetime add-on per group. Beta groups get it free. Unlock it from the group dashboard or the shop, then generate a key.

Before you start

  1. Purchase Ranking API for the group ($2.50 lifetime), or use a beta group for free access.
  2. Connect a Roblox bot in Rank Management.
  3. Give that bot a rank high enough to set the ranks you need.
  4. Open the group dashboard and go to Ranking API.
  5. Generate a key, copy it immediately, then set a max rank.

The key is shown once

RoUtilities stores a hash of the key, not the key itself. If you lose it, regenerate it. Regenerating immediately invalidates the old key.

Authentication

Base URL: https://api.routilities.com

Send the key on every request. Do not put a group ID in the path or body.

Authorization: Bearer ruk_your_key_here X-API-Key: ruk_your_key_here

Either header works. Prefer Authorization: Bearer.

Set a rank

POST /v1/ranking/set

FieldRequiredDescription
usernameOne of username or userIdRoblox username
userIdOne of username or userIdRoblox user ID
rankYesRoblox role ID (preferred), rank number, or rank name. rankId is also accepted.

cURL

curl -X POST https://api.routilities.com/v1/ranking/set \ -H "Authorization: Bearer ruk_your_key_here" \ -H "Content-Type: application/json" \ -d '{"username":"Player","rank":"Moderator"}'

JavaScript

const res = await fetch("https://api.routilities.com/v1/ranking/set", { method: "POST", headers: { "Authorization": "Bearer ruk_your_key_here", "Content-Type": "application/json" }, body: JSON.stringify({ userId: 12345678, rank: 50 }) }); const data = await res.json();

Roblox module

After you purchase Ranking API, the dashboard gives you a demo Script that requires the published module. Place it in ServerScriptService and turn on HTTP requests.

local RoUtilities = require(94381254273314) RoUtilities:Init({ ApiKey = "ruk_your_key_here", }) -- Rank IDs are preferred. Names and rank numbers also work. local result = RoUtilities:Rank(player, 12345678) local result = RoUtilities:Rank(player, "Moderator") local result = RoUtilities:Rank(123456789, 50)

Raw HttpService

local HttpService = game:GetService("HttpService") local response = HttpService:RequestAsync({ Url = "https://api.routilities.com/v1/ranking/set", Method = "POST", Headers = { ["Authorization"] = "Bearer ruk_your_key_here", ["Content-Type"] = "application/json" }, Body = HttpService:JSONEncode({ userId = 12345678, rank = 2551234 -- Roblox role ID }) }) print(response.Body)

Success

{ "success": true, "message": "Set Player to Moderator.", "data": { "user": { "id": 12345678, "username": "Player" }, "from": { "id": 1, "name": "Member", "rank": 1 }, "to": { "id": 2, "name": "Moderator", "rank": 50 } } }

List ranks

GET /v1/ranking/ranks returns every non-guest, non-owner rank for the keyed group. allowed is false when the rank is above your max rank setting.

curl https://api.routilities.com/v1/ranking/ranks \ -H "Authorization: Bearer ruk_your_key_here"

Check status

GET /v1/ranking/status confirms the key works and returns the Roblox group ID, max rank, and connected bot username. Use this to verify a key without ranking anyone.

Limits and errors

  • 30 ranking requests per key per minute.
  • The key can only rank the group it was created for.
  • Ranks above the dashboard max rank are rejected.
  • The bot must be in the group and ranked higher than the target rank.
  • Guest (0) and owner (255) cannot be set.
HTTPMeaning
200Rank changed
400Bad request, missing bot, or user not in group
401Missing or invalid key
402Ranking API is not purchased for this group
403Key disabled, max rank exceeded, or bot rank too low
404Roblox user not found
429Rate limited
502Roblox rejected the rank change

Keep the key on a server

Do not put the key in a Roblox LocalScript, a public GitHub repo, or a Discord bot that other people can dump. Treat it like a password.

Dashboard settings

  • Generate / regenerate — creates a new key and shows it once.
  • Revoke — deletes the key. Requests fail until you generate another.
  • Enabled — pause the API without destroying the key.
  • Max rank — highest Roblox rank number this key may set.