Getting Started â
Installation â
sh
$ npm install @relatiohq/opencloudsh
$ pnpm add @relatiohq/opencloudsh
$ yarn add @relatiohq/opencloudsh
$ bun add @relatiohq/opencloudQuick Start â
typescript
import { OpenCloud } from "@relatiohq/opencloud";
// Initialize the client with your API key
const client = new OpenCloud({
apiKey: process.env.ROBLOX_API_KEY,
});
// Get user information
const user = await client.users.get("123456789");
console.log(user.displayName); // "John Doe"
// Get group details
const group = await client.groups.get("987654321");
console.log(group.displayName); // "My Group"Key Features â
- ð Type-Safe - Full TypeScript support with autocomplete
- ðŠķ Lightweight - Zero dependencies, tree-shakeable
- ð Auto-Retry - Built-in exponential backoff for failed requests
- ⥠Modern - Uses native
fetchAPI (Node.js 18+)
Common Examples â
Fetch User Inventory â
typescript
// Get a user's inventory items
const inventory = await client.users.listInventoryItems("123456789", {
maxPageSize: 50,
filter: "inventoryItemAssetTypes=HAT,CLASSIC_PANTS",
});
for (const item of inventory.inventoryItems) {
console.log(item.assetDetails.displayName);
}Generate User Thumbnail â
typescript
const thumbnail = await client.users.generateThumbnail("123456789", {
size: 420,
format: "PNG",
shape: "ROUND",
});
console.log(thumbnail.response.imageUri);List Group Members â
typescript
const members = await client.groups.listGroupMemberships("987654321", {
maxPageSize: 100,
filter: "role == 'groups/987654321/roles/12345678'",
});
console.log(`Total members: ${members.groupMemberships.length}`);