@woksteamapi/client
v1.2.0
Published
Dependency-free server-side ESM client for the WOK Steam API
Maintainers
Readme
WOK API client for JavaScript
Dependency-free, server-side ESM client for the
WOK Steam API. It uses the fetch implementation
built into Node.js and includes TypeScript declarations.
Requirements
- Node.js 18 or newer
- A WOK API key
For development, the Free Developer plan provides 1,000 requests per calendar month, a 100-request daily guard and 30 requests per minute. Create a key at https://woksteamapi.com/pricing.
Keep the API key on the server. Do not bundle it into browser code or expose it to clients.
Install
npm install @woksteamapi/clientUsage
import WokApi, { WokApiError } from "@woksteamapi/client";
const client = new WokApi({ apiKey: process.env.WOK_API_KEY });
const steamId = process.env.STEAM_ID;
if (!steamId) throw new Error("Set STEAM_ID in the environment");
try {
const inventory = await client.inventory(steamId, {
game: "cs2",
top: 25,
});
console.log(inventory);
} catch (error) {
if (error instanceof WokApiError) {
console.error(error.status, error.message, error.retryAfter);
} else {
throw error;
}
}The client also exposes methods for profiles, friends, catalog prices, price history, CS2 inspection, crawl jobs, FACEIT data, and service health. See the API reference for request and response shapes.
Render a modern CS2 inspect certificate as PNG bytes:
import { writeFile } from "node:fs/promises";
const png = await client.cs2Screenshot({
certificate: process.env.CS2_INSPECT_CERTIFICATE,
theme: "wok",
itemName: "AK-47 | Redline (Field-Tested)",
});
await writeFile("wok-cs2-inspect.png", png);WokApiError provides status, payload, retryAfter, rateLimit,
rateRemaining, and rateReset. Wait at least retryAfter seconds after HTTP
429. Network failures and timeouts use status 0.
The default timeout is 35 seconds so the 25-second synchronous inventory batch
can finish. Do not configure /v1/inventories with a timeout below 30 seconds.
For testing or a compatible deployment, pass baseUrl, timeoutMs, or a
custom fetchImpl to the constructor.
Verify the package
npm run check
npm pack --dry-run