API Structure
Is divided into three main sections:Market Data
Public, Read-onlyReal-time and historical market data. No authentication required.
Account Queries
Public, UnsignedQuery account state without signatures.
Trading
Authenticated, SignedState-mutating operations requiring Ed25519 signatures. Use bulk-keychain (Node, browser, Python, Rust) for signing.
Base URLs
Quick Start
Get Testnet Funds
Request testnet funds for testing. See Request Faucet for details.
Place Your First Order
Sign and submit a transaction with the official bulk-keychain library (Node, browser, Python, Rust) or see Transaction Signing for the protocol details.
Field Notation
Bulk uses compact field names to minimize bandwidth :| Short | Full Name | Description |
|---|---|---|
s | symbol | Market symbol (e.g., BTC-USD) |
c | coin | Market symbol in orders |
px | price | Price level |
sz | size | Order/position size |
b | is_buy | Buy/sell direction (true=buy) |
r | reduce_only | Order only reduces position |
t | type | Order type object |
oid | order_id | Order identifier |
tif | time_in_force | Order lifetime (GTC/IOC/ALO) |
Order Types
| Type | Description | Use Case |
|---|---|---|
| GTC | Good Till Cancel | Standard limit order, rests on book |
| IOC | Immediate or Cancel | Market order (aggressive price) |
| ALO | Add Liquidity Only | Maker-only (post-only) |
| Trigger | Market Order | Immediate execution (use triggerPx: 0.0) |
Timestamp Format
All timestamps are in milliseconds since Unix epoch (int64) for both HTTP and WebSocket APIs.Nonce for Signed Transactions: Use nanoseconds for the
nonce field: BigInt(Date.now()) * 1_000_000nResources
Download OpenAPI Spec
Download the complete OpenAPI 3.0 specification file
API Changelog
View API updates and version history