> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aegi.run/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aegi.run/_mcp/server.

# Roblox

## Users

```
GET /v1/roblox/user/{target}
```

`{target}` accepts a numeric user id or a username — a non-numeric value is
resolved through Roblox's username API first, so either works:

```ts
await aegis.roblox.user('Builderman')
await aegis.roblox.user(1)
```

```ts
const user = await aegis.roblox.user('Builderman')

user.id
user.username
user.displayName
user.description
user.followers
user.followings
user.friends
user.isVerified
user.isBanned
user.createdAt
user.avatar // 420x420 PNG URL
user.avatarHeadshot // 150x150 PNG URL
```

Both avatar fields are `null` when the user has not set one.

## Games

```
GET /v1/roblox/game/{target}
```

`{target}` is a **universe id or a place id** — and unlike the user route, it
must be numeric. A place id is resolved to its universe first.

```ts
const game = await aegis.roblox.game(1537690962)

game.universeId
game.rootPlaceId
game.name
game.description
game.url
game.iconUrl // 512x512 PNG URL, or null
game.creator // { id, name, type, hasVerifiedBadge }
game.playing
game.visits
game.favoritedCount
game.maxPlayers
game.price // in Robux, or null if free
game.genre
game.createdAt
```

A non-numeric `{target}` answers `400`; an unknown id answers `404`.

## Caching and cost

Both endpoints cache for five minutes, and both are `cheap`. Polling live
player counts from a bot is fine — see [rate limits](/rate-limits).