In today’s fast-evolving cryptocurrency trading landscape, developers need reliable, lightweight, and flexible tools to interact with exchanges programmatically. One such powerful solution is a modern asynchronous OKX API wrapper built specifically for performance, portability, and ease of use across environments — from Node.js to Cloudflare Workers and web browsers.
This comprehensive guide explores a cutting-edge TypeScript-based library designed to simplify interactions with the OKX v5 API, offering full support for both REST and WebSocket protocols while eliminating dependencies and maximizing compatibility.
👉 Discover how to integrate advanced trading automation seamlessly into your projects.
Why This OKX API Wrapper Stands Out
Unlike traditional wrappers that rely on environment-specific packages like axios, ws, or node:crypto, this library leverages universal web standards:
- Uses the Fetch API for HTTP requests
- Relies on
globalThis.WebSocketfor real-time data streaming - Implements Web Crypto API for secure, asynchronous signature generation
These design choices eliminate platform lock-in, making it one of the few API clients capable of running natively in Cloudflare Workers, Bun runtimes, modern browsers, and Node.js (v22+) — all without modifications.
Developed using Bun and written in TypeScript, the package ensures type safety, developer productivity, and runtime efficiency out of the box.
Core Features at a Glance
- ✅ Zero external dependencies
- ✅ Full implementation of OKX v5 REST and WebSocket APIs
- ✅ Native support for Cloudflare Workers and edge computing
- ✅ Built-in auto-reconnect logic for WebSocket connections
- ✅ Promisified order operations (place, cancel, amend)
- ✅ Strong TypeScript typing for every endpoint
- ✅ Lightweight and modular architecture
These capabilities make it ideal for building automated trading bots, real-time dashboards, risk management systems, and more — all with minimal overhead.
Installation Made Simple
Getting started takes just one command, whether you're using npm or Bun:
# Using npm
npm install okex-api
# Using Bun
bun install okex-apiNo additional configuration or polyfills required. Once installed, you can immediately begin integrating with OKX's full suite of trading and account management endpoints.
👉 Start building high-performance trading tools today.
Working with the REST API
The HttpApi class provides full access to OKX’s REST endpoints. Due to the use of the asynchronous Web Crypto API for request signing, initialization must occur within an async context.
Here’s how to get account balances and instrument lists:
import { HttpApi } from 'okex-api';
const api = await HttpApi.create(
process.env.API_KEY!,
process.env.API_SECRET!,
process.env.PASSPHRASE!
);
// Fetch BTC balance
console.log(await api.getBalance({ ccy: 'BTC' }));
// Get all swap instruments
console.log(await api.getAccountInstruments({ instType: 'SWAP' }));Every method corresponds directly to an official OKX v5 endpoint, with precise parameter typing to prevent errors during development.
For detailed documentation on available endpoints, refer to the OKX REST API Docs, then locate the matching method in the HttpApi.ts source file.
Real-Time Data with WebSocket Integration
For low-latency market updates and private account events, the library includes two dedicated WebSocket clients:
WsPublic: For subscribing to public channels like tickers, order books, and tradesWsPrivate: For receiving private updates such as positions, orders, and balance changes
Public Channel Example
import { WsPublic } from 'okex-api';
const ws = new WsPublic();
ws.addEventListener('open', () => {
console.log('Connected to public channel');
ws.subscribe({ channel: 'tickers', instId: 'ETH-USD-SWAP' });
});
ws.addEventListener('tickers', (event) => {
console.log('Ticker update:', event.data);
});
ws.connect();Private Channel & Order Management
import { WsPrivate } from 'okex-api';
const wsPrivate = await WsPrivate.create(
process.env.API_KEY!,
process.env.API_SECRET!,
process.env.PASSPHRASE!
);
wsPrivate.addEventListener('positions', (event) => {
console.log('Position update:', event.data);
});
// Place and cancel orders via WebSocket
const order = await wsPrivate.order({
instId: 'ETH-USD-SWAP',
tdMode: 'cross',
side: 'sell',
posSide: 'short',
ordType: 'market',
sz: '1'
});
const ordId = order.data[0].ordId;
await wsPrivate.cancelOrder({ instId: 'ETH-USD-SWAP', ordId });The private client handles authentication automatically, including token refresh and reconnection logic — crucial for maintaining uptime in production environments.
Setting Up Your API Credentials
Before using the library, generate your API keys through the OKX platform:
- Log in to your OKX account
- Navigate to My API settings: OKX My-API
- Create a new key with appropriate permissions (trading, reading, etc.)
- Restrict IP addresses if possible for enhanced security
- Store credentials securely using environment variables
Never expose your API secret or passphrase in version control or client-side code.
Frequently Asked Questions
Is this library compatible with Cloudflare Workers?
Yes. Thanks to its reliance on standard web APIs (Fetch, WebSocket, Web Crypto), this wrapper runs natively in Cloudflare Workers without requiring polyfills or workarounds.
Does it support both spot and derivatives trading?
Absolutely. The library implements nearly all endpoints from the OKX v5 API, including spot, margin, futures, swaps, and options trading across multiple asset classes.
Can I use it in a browser-based application?
Yes. You can integrate it into frontend applications for live portfolio tracking or market analysis dashboards. However, never expose private keys in client-side code — consider routing sensitive operations through a secure backend.
How does it handle connection drops in WebSocket?
The WsPrivate and WsPublic clients include built-in auto-reconnect functionality. Upon disconnection, they will attempt to re-establish the connection and resubscribe to active channels automatically.
Why does HttpApi.create() need to be awaited?
Because the library uses the Web Crypto API for signing requests — which is asynchronous — the creation process must await cryptographic key preparation. This differs from libraries using synchronous Node.js crypto modules.
Is there a rate limiter included?
No built-in rate limiter is provided. Developers should implement their own throttling logic based on OKX’s documented rate limits per endpoint and IP tier.
Final Thoughts
This modern asynchronous OKX API client fills a critical gap in the ecosystem by offering true cross-platform compatibility without sacrificing performance or functionality. By embracing web standards over platform-specific modules, it enables developers to deploy trading logic anywhere — from local servers to edge networks — with confidence.
Whether you're building a high-frequency trading bot, a personal analytics tool, or a scalable financial service, this library delivers the foundation you need.
👉 Unlock next-generation trading automation with seamless API integration.