Skip to main content
Every write operation on Upside — placing orders, cancelling positions, adjusting margin, managing collateral, and configuring your account — is submitted through a single endpoint: POST /exchange. The server inspects the action.type field in the request body to determine which operation to execute, then recovers your wallet address from the accompanying ECDSA signature to authorize it. This unified design means you only need one integration point for all state-changing calls.

Endpoint

Request Envelope

Every request shares the same top-level envelope structure:
Some actions accept additional envelope-level fields (such as inviteCode for registerAccount). These sit alongside action, signature, and nonce — not inside action — and are not included in the signed payload.

Authentication

All requests require a valid ECDSA signature. The server recovers your wallet address from the (r, s, v) tuple and uses it to authorize the operation — no API key header is needed. See the Authentication guide for details on what to sign and how to construct the signature.

Action Groups

Account

Register your wallet and enroll in market deployers.

Orders

Place, modify, and cancel perpetual orders.

Margin & Leverage

Adjust margin mode, leverage, and isolated margin balances.

Conditional Orders

Set and cancel take-profit, stop-loss, and other conditional orders.

Fee Settings & API Wallets

Configure fees and delegate signing to agent wallets.

All Available Actions

Account

Orders

Margin & Leverage

Conditional Orders

Collateral

Fee Settings

API Wallet

Response Shape

A successful request always returns HTTP 200 with "status": "ok":
"status": "ok" indicates the request was received and processed — it does not guarantee the business operation succeeded. Some actions embed an errorCode / errorMessage inside response. Always check those fields after a successful HTTP 200.