Skip to main content
The spot trading API provides endpoints for managing spot trading accounts, placing and canceling orders, and retrieving trade history.

GET /spot/exchangeInfo

Retrieve exchange information including available spot markets and their details.
Authentication: Not required
maker_fee_rate and taker_fee_rate here are outdated. The values returned in exchangeInfo are static, indicative defaults and do not reflect the fees actually applied to your account (fee tiers, promotions, etc.). For the authoritative, account-specific rates always use GET /spot/account/market-fee-rate.
Response:
Response Fields: Status Codes:
  • 200 - Exchange information retrieved successfully
  • 500 - Internal server error

GET /spot/networks

Retrieve supported blockchain networks and the tokens available for deposit and withdrawal on each network.
Authentication: Not required
Response:
Response Fields: Status Codes:
  • 200 - Networks retrieved successfully

GET /spot/accounts

Retrieve all spot accounts for the authenticated user.
Authentication: Required
Response:
Response Fields: Status Codes:
  • 200 - Accounts retrieved successfully
  • 401 - Authentication failed
  • 500 - Internal server error

GET /spot/account

Retrieve information for a specific spot account.
Authentication: Required
Query Parameters: Request:
Response:
Status Codes:
  • 200 - Account retrieved successfully
  • 400 - Missing app_session_id parameter
  • 401 - Authentication failed
  • 404 - Account not found
  • 500 - Internal server error

GET /spot/account/market-fee-rate

Retrieve the effective spot maker/taker fee rates for a single market on a given account.
Authentication: Required (read:spot scope)
Query Parameters: Request:
Response:
Response Fields: The response is a JSON array containing a single fee-rate object: Status Codes:
  • 200 - Fee rates retrieved successfully
  • 400 - Missing app_session_id or market parameter
  • 401 - Authentication failed
  • 500 - Internal server error

POST /spot/order

Create a new spot trading order.
Authentication: Required
Request Body:
Request Parameters: Response:
Response Fields: Status Codes:
  • 200 - Order created successfully
  • 400 - Invalid request parameters or validation failed (for example, insufficient balance)
  • 401 - Authentication failed
  • 500 - Internal server error
Error response (typical for 400):
  • error: Machine-readable error code (snake_case), e.g. insufficient_balance.
  • message: Human-readable detail.

DELETE /spot/order

Cancel an existing spot order.
Authentication: Required
Request Body:
Request Parameters: Response:
Status Codes:
  • 200 - Cancellation request sent successfully
  • 400 - Invalid request or missing parameters
  • 401 - Authentication failed
  • 500 - Internal server error

DELETE /spot/orders

Cancel all open spot orders for an account, optionally limited to a single market.
Authentication: Required (trade:spot scope)
Request Body:
Request Parameters: Response:
When there are no open orders to cancel:
Response Fields: Status Codes:
  • 200 - Cancellation requests sent (or no open orders to cancel)
  • 400 - Invalid request body or missing app_session_id
  • 401 - Authentication failed
  • 403 - Not authorized to cancel orders for this account
  • 404 - Spot account not found
  • 500 - Internal server error

GET /spot/open_orders

Retrieve open spot orders with cursor pagination.
Authentication: Required
Pagination: Spot list endpoints use cursor-based pagination. See Pagination for the shared model.
Query Parameters: Request (first page):
Request (next page):
Response:
Response Fields: Status Codes:
  • 200 - Orders retrieved successfully
  • 400 - Invalid query parameters (including malformed cursor)
  • 401 - Authentication failed
  • 500 - Internal server error

GET /spot/orders

Retrieve spot order history with cursor pagination.
Authentication: Required
Pagination: This endpoint uses cursor-based pagination. See Pagination.
Query Parameters: Request (first page):
Request (next page):
Response: Same format as /spot/open_orders but includes all orders (open, filled, and cancelled) Status Codes:
  • 200 - Orders retrieved successfully
  • 400 - Invalid query parameters (including malformed cursor)
  • 401 - Authentication failed
  • 500 - Internal server error

GET /spot/trades

Retrieve spot trade history with cursor pagination.
Authentication: Required
Pagination: This endpoint uses cursor-based pagination. See Pagination.
Query Parameters: Request (first page):
Request (next page):
Response:
Response Fields: Note: The API response only exposes the user’s own order ID and does not expose counterparty information for privacy reasons. It provides user-relative flags (is_buyer, is_maker) to indicate the user’s role in the trade. Status Codes:
  • 200 - Trades retrieved successfully
  • 400 - Invalid query parameters (including malformed cursor)
  • 401 - Authentication failed
  • 500 - Internal server error

GET /spot/deposits

Retrieve spot deposit history with cursor pagination.
Authentication: Required
Pagination: This endpoint uses cursor-based pagination. See Pagination.
Query Parameters: Request (first page):
Request (next page):
Response:
Response Fields: Status Codes:
  • 200 - Deposits retrieved successfully
  • 400 - Missing app_session_id parameter
  • 401 - Authentication failed
  • 500 - Internal server error

GET /spot/withdrawals

Retrieve spot withdrawal history with cursor pagination.
Authentication: Required
Pagination: This endpoint uses cursor-based pagination. See Pagination.
Query Parameters: Request (first page):
Request (next page):
Response:
Response Fields: Status Codes:
  • 200 - Withdrawals retrieved successfully
  • 400 - Missing app_session_id parameter
  • 401 - Authentication failed
  • 500 - Internal server error

POST /spot/withdrawal

Request a new spot withdrawal.
Authentication: Required
Known Issue: Server returns 500 instead of 400 when withdrawal amount exceeds available balance.
Request Body:
Request Parameters: Response:
Response Fields: Status Codes:
  • 200 - Withdrawal request accepted
  • 400 - Invalid request or insufficient funds
  • 401 - Authentication failed
  • 500 - Internal server error