Currently in Beta - Limited to 75 servers Join Support Server

API Documentation

Access powerful Roblox group management features through our RESTful API. All endpoints require an API key to be included in the X-API-Key header.

Authentication

To use the readyRanking API, you first need to generate an API key using the readyRanking Discord bot.

/apikey generate

Run this command in your Discord server with the readyRanking bot. The bot will provide you with a unique API key that you can use to authenticate your API requests.

Make sure to keep your API key secure and do not share it publicly.

All API requests must include the API key in the X-API-Key header.

Endpoints

Get Groups

GET /groups

Get a list of all groups associated with your API key.

-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroups()
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups",
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroups()
print(result.data)

Response Example

{
    "success": true,
    "data": [
        {
            "id": 1234567,
            "name": "My Group",
            "description": "Group description",
            "created_at": "2024-01-01T00:00:00Z"
        }
    ]
}

Get Group

GET /groups/:groupId

Get detailed information about a specific group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroup(groupId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId,
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroup(1234567)
print(result.data)

Response Example

{
    "success": true,
    "data": {
        "id": 1234567,
        "name": "My Group",
        "description": "Group description",
        "created_at": "2024-01-01T00:00:00Z"
    }
}

Get Group Members

GET /groups/:groupId/members

Get a list of all members in a group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroupMembers(groupId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/members",
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroupMembers(1234567)
print(result.data)

Get Group Roles

GET /groups/:groupId/roles

Get a list of all roles in a group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroupRoles(groupId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/roles",
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroupRoles(1234567)
print(result.data)

Get Group Wall

GET /groups/:groupId/wall

Get the wall posts of a group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroupWall(groupId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/wall",
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroupWall(1234567)
print(result.data)

Get Group Audit Logs

GET /groups/:groupId/audit

Get the audit logs of a group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function getGroupAudit(groupId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/audit",
        Method = "GET",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = getGroupAudit(1234567)
print(result.data)

Set Rank

POST /groups/:groupId/setrank

Set a user's rank in the group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
userId number Yes The ID of the user to set rank for
rankId number Yes The ID of the rank to set
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function setRank(groupId, userId, rankId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/setrank",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key",
            ["Content-Type"] = "application/json"
        },
        Body = HttpService:JSONEncode({
            userId = userId,
            rankId = rankId
        })
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = setRank(1234567, 7654321, 2)
print(result.message)

Response Example

{
    "success": true,
    "message": "Successfully set rank for user 7654321 to rank 2",
    "data": {
        "userId": 7654321,
        "rankId": 2,
        "rankName": "Member"
    }
}

Promote User

POST /groups/:groupId/promote

Promote a user to the next rank in the group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
userId number Yes The ID of the user to promote
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function promoteUser(groupId, userId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/promote",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key",
            ["Content-Type"] = "application/json"
        },
        Body = HttpService:JSONEncode({
            userId = userId
        })
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = promoteUser(1234567, 7654321)
print(result.message)

Response Example

{
    "success": true,
    "message": "Successfully promoted user 7654321",
    "data": {
        "userId": 7654321,
        "oldRankId": 2,
        "newRankId": 3,
        "oldRankName": "Member",
        "newRankName": "Senior Member"
    }
}

Demote User

POST /groups/:groupId/demote

Demote a user to the previous rank in the group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
userId number Yes The ID of the user to demote
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function demoteUser(groupId, userId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/demote",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key",
            ["Content-Type"] = "application/json"
        },
        Body = HttpService:JSONEncode({
            userId = userId
        })
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = demoteUser(1234567, 7654321)
print(result.message)

Response Example

{
    "success": true,
    "message": "Successfully demoted user 7654321",
    "data": {
        "userId": 7654321,
        "oldRankId": 3,
        "newRankId": 2,
        "oldRankName": "Senior Member",
        "newRankName": "Member"
    }
}

Exile User

POST /groups/:groupId/exile

Remove a user from the group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
userId number Yes The ID of the user to exile
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function exileUser(groupId, userId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/exile",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key",
            ["Content-Type"] = "application/json"
        },
        Body = HttpService:JSONEncode({
            userId = userId
        })
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = exileUser(1234567, 7654321)
print(result.message)

Response Example

{
    "success": true,
    "message": "Successfully exiled user 7654321 from the group",
    "data": {
        "userId": 7654321,
        "previousRankId": 2,
        "previousRankName": "Member"
    }
}

Accept Join Request

POST /groups/:groupId/joinrequests/:requestId/accept

Accept a pending join request.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
requestId string Yes The ID of the join request to accept
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function acceptJoinRequest(groupId, requestId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/joinrequests/" .. requestId .. "/accept",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = acceptJoinRequest(1234567, "request-123")
print(result.message)

Response Example

{
    "success": true,
    "message": "Successfully accepted join request",
    "data": {
        "requestId": "request-123",
        "userId": 7654321,
        "username": "RobloxUser123"
    }
}

Deny Join Request

POST /groups/:groupId/joinrequests/:requestId/deny

Deny a pending join request.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
requestId string Yes The ID of the join request to deny
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function denyJoinRequest(groupId, requestId)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/joinrequests/" .. requestId .. "/deny",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key"
        }
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = denyJoinRequest(1234567, "request-123")
print(result.message)

Response Example

{
    "success": true,
    "message": "Join request denied successfully"
}

Group Shout

POST /groups/:groupId/shout

Post a shout message to the group.

Parameters

Parameter Type Required Description
groupId number Yes The ID of the Roblox group
message string Yes The shout message to post
-- Roblox Lua Example
local HttpService = game:GetService("HttpService")

local function postGroupShout(groupId, message)
    local response = HttpService:RequestAsync({
        Url = "https://readyranking.xyz/api/groups/" .. groupId .. "/shout",
        Method = "POST",
        Headers = {
            ["X-API-Key"] = "your-api-key",
            ["Content-Type"] = "application/json"
        },
        Body = HttpService:JSONEncode({
            message = message
        })
    })
    
    return HttpService:JSONDecode(response.Body)
end

-- Usage
local result = postGroupShout(1234567, "Hello, group!")
print(result.message)

Response Example

{
    "success": true,
    "message": "Group shout posted successfully",
    "data": {
        "message": "Hello, group!",
        "posted_at": "2024-01-01T00:00:00Z"
    }
}