DocsREST APITrade
REST API

Trade

Place spot orders over REST. Every order executes immediately at the current market price — Nextbridge routes against a liquidity provider rather than running its own matching engine, so there's no resting order book to query or cancel from.

v1trade scope required

Authentication

POST endpoints require an API key with the trade scope. GET endpoints require read. Generate keys with the exact scopes you need from /settings/security.

Trade-bucket rate limits: 30 req/min, 500 req/day per key. See Rate limits.

Place an order POST /api/v1/orders

Buys or sells a spot pair against USDT. The order executes synchronously — the response includes the executed price and final balances.

Body fields:

  • coin — base symbol, e.g. BTC.
  • sideBUY or SELL.
  • modeCOIN_QTY (value is base quantity) or USDT_AMOUNT (value is USDT notional).
  • value — decimal string, meaning depends on mode.
bash
1curl -X POST https://nextbridge.exchange/api/v1/orders \
2 -H "Authorization: Bearer nbx_user_…" \
3 -H "Content-Type: application/json" \
4 -H "Idempotency-Key: $(uuidgen)" \
5 -d '{"coin":"BTC","side":"BUY","mode":"USDT_AMOUNT","value":"100"}'
json
1{
2 "order": {
3 "id": "ckl…",
4 "ts": "2026-05-22T12:00:00.000Z",
5 "coin": "BTC",
6 "side": "BUY",
7 "executedPrice": "67234.50",
8 "coinAmount": "0.00148729",
9 "usdtAmount": "100.00",
10 "status": "COMPLETED"
11 }
12}

List orders GET /api/v1/orders

Recent spot orders, newest first. Cursor-paginated. Requires read scope.

  • limit — 1 to 200. Default 50.
  • cursor — opaque token from a prior response's nextCursor.
bash
1curl "https://nextbridge.exchange/api/v1/orders?limit=10" \
2 -H "Authorization: Bearer nbx_user_…"

Idempotency

Send an Idempotency-Key header on every POST. Replays within 24h return the original response with X-Idempotency-Replay: true — your client can safely retry on network failure without double-executing. See Error handling for the full replay contract.

Cancel — not applicable

Nextbridge doesn't run a matching engine. Every order executes against the LP at the current market price and either fills completely or fails — there is no in-between state to cancel. If a future iteration adds limit orders or routes to multiple LPs, we'll add a cancel endpoint here.