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.
Why Choose RoZod?
750+ Endpoints - Complete coverage (650+ Classic + 95+ OpenCloud APIs)
Production Proven - Battle-tested at massive scale (800k+ users)
Enterprise Security - Automatic CSRF, Hardware-Backed Auth, Challenge handling
Full Type Safety - Native Zod validation catches errors at compile time
Universal Runtime - Works seamlessly in NodeJS, Bun, Deno, and browsers
Zero Configuration - Automatic authentication in browsers, simple setup for servers
API Coverage Comparison
| Library | Classic APIs | OpenCloud APIs | Total | Production Scale |
|---|---|---|---|---|
| RoZod | 650+ | 95+ | 750+ | |
| noblox.js | ~200 | ~200 | Limited | |
| openblox | ~200 | ~90 | ~290 | Unknown |
All endpoints are code-generated from official Roblox documentation for guaranteed accuracy and completeness.
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
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 }
Production Success Story
RoGold uses RoZod to serve 800,000+ users daily:
Handles millions of API requests per day
Zero authentication issues with automatic CSRF/HBA handling
Type-safe development prevents runtime errors
Complete API coverage eliminates the need for multiple libraries
Automatic pagination and batching for optimal performance
Respect Roblox captchas and let the actual users solve them
Getting Started
- Install RoZod:
npm install rozod # or yarn add rozod # or pnpm add rozod - 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); - Thatβs it! RoZod handles authentication, CSRF tokens, and all the complex stuff automatically.
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] });
Documentation & Resources
- Complete Documentation - Full API reference
- GitHub Repository - Source code and issues
- npm Package - Latest releases
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.
