Skip to main content
UpsideMAX provides a high-performance perpetuals exchange API with three channels: signed write operations via 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.

Exchange API Reference

Full reference for all POST /exchange actions — orders, margins, collateral, and more.

Info 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

UpsideMAX uses an action-based API design. Instead of distinct URL paths per operation, both the write and read endpoints route calls by an action (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

Registration on Devnet requires an alpha test invitation code. On Devnet, registerAccount must include a valid single-use inviteCode at the top level of the request envelope (alongside action, signature, and nonce — it is not part of the signature). A missing code is rejected with inviteCode required (400); an invalid or already-used one returns INVITE_CODE_INVALID (403). Request a code from the UpsideMAX team. See registerAccount. After a successful registration, Devnet automatically airdrops 10,000 USDC of test funds to your account within about 10 seconds — Devnet-only tokens with no real value. USDC is the only asset airdropped.
Discover the tradeable contracts from configs at runtime. The response includes delisted contracts alongside live ones, returned with a full parameter set and distinguishable only by status — keep only status: "Active", then match on name. contractId 1/2/3 do not map to any fixed pair. Prices and sizes are raw integers scaled by each contract’s own priceScale / qtyScale, which are often 0 — never hardcode them. See the introduction for full Devnet details.

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.