About • Features • Installation • Usage • Credits • Disclaimer
RoZod
is a TypeScript package designed to simplify fetching data from the Roblox API. It provides the functions fetchApi
, fetchApiPages
, and fetchApliSplit
.
These allow you to get fully typesafe data from the Roblox API with minimal effort. You can also make custom endpoints to use in any context.
To install the package, run the following command:
npm install rozod
First, import the necessary functions and an example endpoint from the RoZod package:
import { fetchApi, fetchApiSplit, fetchApiPages, fetchApiPagesGenerator } from 'rozod';
import { getTradesTradestatustype } from 'rozod/lib/endpoints/tradesv1';
To make a simple API request, use the fetchApi
function, and any endpoint from our exports:
const response = await fetchApi(getTradesTradestatustype, { tradeStatusType: 1 });
console.log(response);
To split a request into multiple requests based on specified parameters, use the fetchApiSplit
function:
const data = await fetchApiSplit(getGamesIcons, { universeIds: [1534453623, 65241, ...] }, { universeIds: 100 });
console.log(data);
To fetch all pages of a paginated endpoint, use the fetchApiPages
function:
const allPages = await fetchApiPages(getGroupsGroupidWallPosts, { groupId: 11479637 });
console.log(allPages);
To fetch pages one at a time using an async generator, use the fetchApiPagesGenerator
function:
const pages = fetchApiPagesGenerator(getGroupsGroupidWallPosts, { groupId: 11479637 });
for await (const page of pages) {
console.log(page);
}
To create a custom endpoint, define an EndpointSchema object and export it. Here's an example of an endpoint from tradesv1.ts:
import { z, endpoint } from 'zod';
export const getV1tradesTradeStatusType = endpoint({
method: 'get' as const,
path: '/v1/trades/:tradeStatusType', // Path parameters are optional
baseUrl: 'https://trades.roblox.com',
requestFormat: 'json' as const,
parameters: {
tradeStatusType: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]),
limit: z
.union([z.literal(10), z.literal(25), z.literal(50), z.literal(100)])
.optional()
.default(10),
cursor: z.string().optional(),
sortOrder: z.enum(['Asc', 'Desc']).optional().default('Asc'),
}, // Parameters are optional
response: ..., // Zod schema
};
You can then use the endpoint with the fetchApi
function:
const response = await fetchApi(getV1tradesTradeStatusType, { tradeStatusType: 1 });
console.log(response);
This repository is maintained by Alrovi ApS, the company behind RoGold.
RoZod is not affiliated with, maintained, authorized, endorsed, or sponsored by Roblox Corporation or any of its affiliates.