RoZod - TypeScript Roblox API Client (750+ Endpoints)

:package: npm β€’ :books: docs β€’ :wrench: github


RoZod is the most complete and production-ready Roblox API client for TypeScript/JavaScript. It powers RoGold, a browser extension serving 800,000+ active users with millions of daily API requests.

:rocket: Why Choose RoZod?

  • :white_check_mark: 750+ Endpoints - Complete coverage (650+ Classic + 95+ OpenCloud APIs)
  • :white_check_mark: Production Proven - Battle-tested at massive scale (800k+ users)
  • :white_check_mark: Enterprise Security - Automatic CSRF, Hardware-Backed Auth, Challenge handling
  • :white_check_mark: Full Type Safety - Native Zod validation catches errors at compile time
  • :white_check_mark: Universal Runtime - Works seamlessly in NodeJS, Bun, Deno, and browsers
  • :white_check_mark: Zero Configuration - Automatic authentication in browsers, simple setup for servers

:bar_chart: API Coverage Comparison

Library Classic APIs OpenCloud APIs Total Production Scale
RoZod 650+ 95+ 750+ :white_check_mark: 800k+ users
noblox.js ~200 :cross_mark: None ~200 Limited
openblox ~200 ~90 ~290 Unknown

All endpoints are code-generated from official Roblox documentation for guaranteed accuracy and completeness.

:shield: Enterprise-Grade Security

RoZod automatically handles Roblox’s complex security requirements:

  • XCSRF Token Management - Automatic retrieval and caching per user
  • Hardware-Backed Authentication - Full HBA signature support via roblox-bat
  • Challenge Handling - Captchas, 2FA, and authentication challenges
  • Cookie Security - Secure parsing and validation

:bullseye: Developer Experience

Full TypeScript Support with complete type safety and autocomplete!

πŸ’» Code Examples & Usage
import { fetchApi } from 'rozod';
import { getUsersUserdetails } from 'rozod/lib/endpoints/usersv1';

// Full type safety - errors caught at compile time!
const userInfo = await fetchApi(getUsersUserdetails, { userIds: [1, 123456] });
console.log(userInfo.data[0].displayName); // Fully typed autocomplete

Automatic Authentication (Browsers):

// No setup needed - cookies sent automatically!
const response = await fetchApi(getGamesIcons, { universeIds: [1534453623] });

Server Authentication:

// Simple cookie setup for Node.js/Bun/Deno
const response = await fetchApi(
  getUsersUserdetails,
  { userIds: [123456] },
  {
    headers: { 'Cookie': '.ROBLOSECURITY=your_cookie_here' }
  }
);

OpenCloud Support:

import { v2 } from 'rozod/lib/opencloud';

const universeInfo = await fetchApi(
  v2.getCloudV2UniversesUniverseId,
  { universe_id: '123456789' },
  { headers: { 'x-api-key': 'your_api_key_here' } }
);
πŸ”„ Advanced Features

Automatic Pagination:

import { fetchApiPages } from 'rozod';
import { getGroupsGroupidWallPosts } from 'rozod/lib/endpoints/groupsv2';

// Automatically fetches all pages
const allPosts = await fetchApiPages(getGroupsGroupidWallPosts, { groupId: 11479637 });

Batch Processing:

import { fetchApiSplit } from 'rozod';

// Automatically splits large requests to avoid API limits
const data = await fetchApiSplit(
  getGamesIcons,
  { universeIds: [/* hundreds of IDs */] },
  { universeIds: 100 } // Split into batches of 100
);

Smart Error Handling:

import { isAnyErrorResponse } from 'rozod';

const response = await fetchApi(endpoint, params);
if (isAnyErrorResponse(response)) {
  console.error(response.message); // Structured error handling
} else {
  console.log(response.data); // Success case
}

:chart_increasing: Production Success Story

RoGold uses RoZod to serve 800,000+ users daily:

  • :white_check_mark: Handles millions of API requests per day
  • :white_check_mark: Zero authentication issues with automatic CSRF/HBA handling
  • :white_check_mark: Type-safe development prevents runtime errors
  • :white_check_mark: Complete API coverage eliminates the need for multiple libraries
  • :white_check_mark: Automatic pagination and batching for optimal performance
  • :white_check_mark: Respect Roblox captchas and let the actual users solve them

:rocket: Getting Started

  1. Install RoZod:
npm install rozod
# or
yarn add rozod
# or  
pnpm add rozod
  1. Basic Usage:
import { fetchApi } from 'rozod';
import { getUsersUserdetails } from 'rozod/lib/endpoints/usersv1';

const userInfo = await fetchApi(getUsersUserdetails, { userIds: [1, 123456] });
console.log(userInfo.data[0].displayName);
  1. That’s it! RoZod handles authentication, CSRF tokens, and all the complex stuff automatically.

:counterclockwise_arrows_button: Migrating from noblox.js?

RoZod offers a superior developer experience with minimal migration effort:

noblox.js:

const noblox = require('noblox.js');
await noblox.setCookie('cookie');
const user = await noblox.getPlayerInfo(123456);

RoZod:

import { fetchApi } from 'rozod';
import { getUsersUserdetails } from 'rozod/lib/endpoints/usersv1';

// Cookie handled automatically in browsers, or set via headers
const user = await fetchApi(getUsersUserdetails, { userIds: [123456] });

:books: Documentation & Resources

:speech_balloon: Support & Community

  • GitHub Issues - Bug reports and feature requests
  • Documentation - Comprehensive API reference
  • Discord - You can join our RoGold Discord for anything else

RoZod is maintained by Alrovi ApS, the company behind RoGold. We’re committed to providing a reliable and complete Roblox API client for the developer community.

RoZod is not affiliated with, maintained, authorized, endorsed, or sponsored by Roblox Corporation.

10 Likes