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.

8 Likes