# Roblox Stats API
> Live Roblox profile and game stats as an API — community and engagement data from Roblox, the massive user-generated gaming platform. Look up any user by username or id for their profile (display name, description, account age, verified and banned flags) and social reach — friends, followers and followings counts. Look up any experience (game) by its universe id or place id for its live stats: players online right now, all-time visits, favourites, up and down votes and like ratio, max players, genre and creator. The Roblox profile-and-game-stats layer for gaming, social and dashboard apps. Live, no key. Distinct from store-catalogue gaming APIs — this is live Roblox community and engagement data.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/roblox-api/..."
```

## Pricing
- **Free** (Free) — 12,000 calls/Mo, 5 req/s
- **Starter** ($7/Mo) — 150,000 calls/Mo, 15 req/s
- **Pro** ($19/Mo) — 750,000 calls/Mo, 40 req/s
- **Scale** ($46/Mo) — 3,800,000 calls/Mo, 100 req/s

## Endpoints

### User

#### `GET /v1/user` — User profile + social counts

**Parameters:**
- `username` (query, optional, string) — Roblox username (or pass id=) Example: `builderman`
- `id` (query, optional, string) — Numeric user id (alternative to username) Example: `156`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/roblox-api/v1/user?username=builderman&id=156"
```

**Response:**
```json
{
    "data": {
        "id": 156,
        "created": "2006-03-08T17:17:52.9Z",
        "friends": 0,
        "username": "builderman",
        "followers": 71280938,
        "is_banned": false,
        "followings": 67856004,
        "description": null,
        "profile_url": "https://www.roblox.com/users/156/profile",
        "display_name": "builderman",
        "account_age_days": 7397,
        "has_verified_badge": true
    },
    "meta": {
        "timestamp": "2026-06-09T03:02:25.248Z",
        "request_id": "bd95db06-0917-47ef-939b-592d81227879"
    },
    "status": "ok",
    "message": "User retrieved successfully",
    "success": true
}
```

### Game

#### `GET /v1/game` — Experience live stats

**Parameters:**
- `universeId` (query, optional, string) — Universe id (or pass placeId=) Example: `994732206`
- `placeId` (query, optional, string) — Place id (alternative to universeId)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/roblox-api/v1/game?universeId=994732206"
```

**Response:**
```json
{
    "data": {
        "name": "Blox Fruits",
        "genre": "Adventure",
        "visits": 61994382169,
        "created": "2019-01-16T03:29:19.433Z",
        "creator": {
            "name": "Gamer Robot Inc",
            "type": "Group",
            "verified": true
        },
        "playing": 230695,
        "updated": "2026-06-03T16:09:24.821Z",
        "game_url": "https://www.roblox.com/games/2753915549",
        "up_votes": 12182186,
        "favorites": 19058536,
        "down_votes": 1041297,
        "description": "Welcome to Blox Fruits! Become a master swordsman or a powerful blox fruit user as you train to become the strongest player to ever live. You can choose to fight against tough enemies or have powerful boss battles while sailing across the ocean to find hidden secrets. Current level cap: 2800 Current fruits in the game: Rocket, Spin, Blade, Spring, Bomb, Smoke, Spike, Flame, Ice, Sand, Dark, Eagle,",
        "max_players": 12,
        "universe_id": 994732206,
        "root_place_id": 2753915549,
        "like_ratio_pct": 92.1
    },
    "meta": {
        "timestamp": "2026-06-09T03:02:25.494Z",
        "request_id": "aaa40558-ba64-40d6-b5f2-d9681cdc0df6"
    },
    "status": "ok",
    "message": "Game retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/roblox-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "Roblox public web APIs (live)",
        "service": "roblox-api",
        "endpoints": {
            "GET /v1/game": "Experience live stats (universeId=994732206 or placeId=).",
            "GET /v1/meta": "This document.",
            "GET /v1/user": "User profile + social counts (username=builderman or id=156)."
        },
        "description": "Live Roblox profile and game stats: look up any user by username or id (display name, description, account age, verified/banned flags, plus friends/followers/followings counts) and any experience by universe id or place id (players online now, all-time visits, favourites, up/down votes and like ratio, max players, genre and creator). Live, no key. Distinct from store-catalogue gaming APIs — this is live Roblox community and engagement data.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-09T03:02:25.715Z",
        "request_id": "3a42296e-56ad-48f3-992a-0c58c3f97fba"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```

### Games

#### `GET /v1/servers` — Live public servers for a game

**Parameters:**
- `universeId` (query, optional, string) — Universe id (or pass placeId=) Example: `994732206`
- `placeId` (query, optional, string) — Place id (alternative to universeId)
- `limit` (query, optional, string) — Max servers (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/roblox-api/v1/servers?universeId=994732206&limit=25"
```

**Response:**
```json
{
    "data": {
        "count": 25,
        "servers": [
            {
                "id": "f6179e57-ede0-449a-85cf-4e0753a900cb",
                "fps": 56,
                "ping_ms": 137,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "5ca6c0f5-087b-47fb-928c-77f40c6f58d5",
                "fps": 60,
                "ping_ms": 138,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "6f7c790b-f321-4ddd-9f64-71d7aba9fdd2",
                "fps": 60,
                "ping_ms": 218,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "75dcabd7-b51e-4340-a156-da2747d2dafe",
                "fps": 60,
                "ping_ms": 1670,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "c54aea0c-078a-4874-a6de-55221383005a",
                "fps": 53,
                "ping_ms": 159,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "552f4942-7f5c-4c26-9255-bcab5131e74b",
                "fps": 60,
                "ping_ms": 229,
                "playing": 12,
                "max_players": 12
            },
            {
                "id": "dbc4a019-c708-4f51-b821-78191ef1391d",
                "fps": 60,
                "ping_ms": 58,
                "
…(truncated, see openapi.json for full schema)
```

### Groups

#### `GET /v1/group` — A group/community by id

**Parameters:**
- `groupId` (query, required, string) — Numeric Roblox group id Example: `1`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/roblox-api/v1/group?groupId=1"
```

**Response:**
```json
{
    "data": {
        "name": "RobloHunks",
        "owner": {
            "user_id": 1179762,
            "username": "RobloTim",
            "display_name": "RobloTim"
        },
        "roles": [
            {
                "name": "Guest",
                "rank": 0,
                "member_count": 0
            },
            {
                "name": "Member",
                "rank": 1,
                "member_count": 290642
            },
            {
                "name": "--",
                "rank": 1,
                "member_count": 290911
            },
            {
                "name": "-",
                "rank": 180,
                "member_count": 0
            },
            {
                "name": "DOOM",
                "rank": 200,
                "member_count": 2
            },
            {
                "name": "&",
                "rank": 254,
                "member_count": 0
            },
            {
                "name": "TREX",
                "rank": 255,
                "member_count": 1
            }
        ],
        "group_id": 1,
        "verified": false,
        "group_url": "https://www.roblox.com/groups/1",
        "description": null,
        "member_count": 290642,
        "public_entry_allowed": true
    },
    "meta": {
        "timestamp": "2026-06-13T14:10:30.156Z",
        "request_id": "2a4ed798-a060-4a92-8c2d-72a58cb25de3"
    },
    "status": "ok",
    "message": "Group retrieved successfully",
    "success
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/roblox-api
OpenAPI spec: https://www.oanor.com/api/roblox-api/openapi.json
