POST /exchange, unauthenticated read queries via POST /info, and real-time event streaming over WebSocket. Use this documentation to integrate trading, account management, and market data into your application.
Quick Start
Make your first signed API call — register an account, place an order, and cancel it in minutes.
Authentication
Learn how to sign requests with EIP-712 ECDSA so the exchange can verify your identity.
Write API Reference
Full reference for all POST /exchange actions — orders, margins, collateral, and more.
Read API Reference
Query market data, account state, and order status without signing via POST /info.
WebSocket Streaming
Subscribe to real-time order book, trade, candle, and account update streams.
Error Codes
HTTP error codes and business-level error messages with remediation steps.
How the API Works
Upside DEX uses an action-based API design. Instead of distinct URL paths per operation, both the write and read endpoints route calls by anaction (write) or type (read) field in the request body.
POST /exchange
All write operations — orders, cancels, margin adjustments, collateral transfers. Requires ECDSA signature on every request.
POST /info
All read queries — market data, account balances, order status. No authentication required.
WebSocket
Real-time push streams for order book snapshots, trades, candles, and private order/fill updates.
Environments
The QA environment currently supports one contract: SOL1 (contract ID
1, quote currency USDT1). Prices must be integers with a maximum value of 10000. Refer to the introduction for full testnet constraints.Get Started in 3 Steps
1
Understand signing
All write operations require EIP-712 ECDSA signing. Read the Authentication guide to understand how to construct and sign the request envelope.
2
Register your account
Call
registerAccount with your wallet address to get an accountId. This is the unique identifier used across all API calls.3
Place your first order
With your account registered, follow the Quickstart to place a limit order and verify it appears in your active orders.