SX Users

Account Data

Read a user's crypto balances and transaction history across all their wallets.

Read a user's account data: their balances per currency and their full transaction history. Both endpoints aggregate across all the user's wallets, so you get one consolidated view per user without walking wallet by wallet. This is the per-user version (with userId in the path) of Account Management.

Authentication: every endpoint on this page accepts your Owner API Key in x-api-key or the user's token in Authorization: Bearer. All requests accept an optional x-trace-id header for request tracking.

x-api-key: YOUR_OWNER_API_KEY
Authorization: Bearer YOUR_USER_TOKEN

Monetary fields come back as numbers.


Get Balance

GEThttps://api.sandbox.sovera.io/sovx/v1/users/:userId/accounts/balance

Get the user's balance for every currency they hold. Same shape as the owner balance. Each entry carries the total balance, the available amount you can move or withdraw right now, and the held amount locked in pending operations.

Path Parameters

ParameterTypeRequiredDescription
userIdstring (uuid)YesThe user's user_id.

No body.

GET https://api.sandbox.sovera.io/sovx/v1/users/{userID}/accounts/balance

Success Response (200 OK):

data is a flat array. Each item carries currency, balance, available, and held as numbers.

{
  "success": true,
  "data": [
    {
      "currency": "USD",
      "balance": 25000,
      "available": 24000,
      "held": 1000
    }
  ],
  "meta": {
    "timestamp": "2026-01-15T10:30:00.000Z",
    "version": "v1",
    "trace_id": "5b8f3a9d-2c7e-4a1b-9f6d-0e3c2b1a4d5f"
  }
}
curl -X GET "https://api.sandbox.sovera.io/sovx/v1/users/{userID}/accounts/balance" \
  -H "x-api-key: YOUR_OWNER_API_KEY"

Errors: 401 invalid key · 404 user not found · 500 server error.


Get Transactions

GEThttps://api.sandbox.sovera.io/sovx/v1/users/:userId/accounts/transactions

List the user's transactions, newest first, across every wallet. Same response and same filters as /accounts/transactions, with pagination under meta.pagination.

Query Parameters

Path param userId. Filters live under filter[...].

ParameterTypeRequiredDescription
filter[limit]numberNoItems per page (default: 20, max: 100).
filter[skip]numberNoOffset.
filter[sort]stringNoSort by date: ASC or DESC (default DESC).
filter[where][type]stringNoType/action (e.g. DEPOSIT, WITHDRAWAL, CONVERSION). Accepts a comma-separated list.
filter[where][currency]stringNoCurrency code (e.g. btc, usdc).
filter[where][status]stringNoTransaction status (e.g. pending, done).
filter[where][from]numberNoStart date, Unix timestamp in ms (inclusive).
filter[where][to]numberNoEnd date, Unix timestamp in ms (inclusive).
filter[where][amount][gte]numberNoAmount ≥ value.
filter[where][amount][lte]numberNoAmount ≤ value.
GET https://api.sandbox.sovera.io/sovx/v1/users/{userID}/accounts/transactions?filter[limit]=20&filter[skip]=0

Success Response (200 OK):

Each item carries id and balance at the root, and a transaction object with the rest of the detail.

FieldTypeDescription
idnumberNumeric transaction ID in sFox.
balancenumberResulting account balance after the transaction.
transactionobjectOrder and transaction detail.
transaction.order_idstringOrder ID (numeric string; empty when not applicable).
transaction.trade_idstringTrade ID (numeric string; empty when not applicable).
transaction.client_idstring (uuid)Associated client (injected by the backend).
transaction.idempotency_idstring (uuid)|nullIdempotency ID.
transaction.symbolstring|nullTrading pair (e.g. btc/usd), or null.
transaction.created_atstring (ISO 8601)Creation date.
transaction.hashstringOn-chain hash (empty when not applicable).
transaction.actionstringMovement type (e.g. Deposit, Sell, Charge).
transaction.currencystringMovement currency.
transaction.memostringNote.
transaction.amountnumberAmount (negative for outflows).
transaction.net_proceedsnumberNet amount.
transaction.pricenumberApplied price.
transaction.feesnumberFees.
transaction.statusstringStatus (e.g. done).
transaction.descriptionstring|nullDescription.
{
  "success": true,
  "data": [
    {
      "id": 99938268,
      "balance": 49071.06877634,
      "transaction": {
        "order_id": "11637477",
        "trade_id": "71847575",
        "client_id": "76f0b5a8-a683-4ee3-8b13-af3c807df325",
        "idempotency_id": null,
        "symbol": "usdt/usd",
        "created_at": "2026-05-19T20:24:01.000Z",
        "hash": "",
        "action": "Sell",
        "currency": "usd",
        "memo": "",
        "amount": 1004.95049505,
        "net_proceeds": 1004.95049505,
        "price": 1.00720535,
        "fees": 10.04950495,
        "status": "done",
        "description": ""
      }
    }
  ],
  "meta": {
    "timestamp": "2026-01-15T10:30:00.000Z",
    "version": "v1",
    "trace_id": "5b8f3a9d-2c7e-4a1b-9f6d-0e3c2b1a4d5f",
    "pagination": {
      "records": { "skip": 0, "has_next": false, "has_previous": false, "total": 1, "limit": 20 },
      "navigation": {
        "first": "/users/{userID}/accounts/transactions?filter[limit]=20&filter[skip]=0",
        "last": "/users/{userID}/accounts/transactions?filter[limit]=20&filter[skip]=0",
        "previous": null,
        "next": null
      }
    }
  }
}
curl -X GET "https://api.sandbox.sovera.io/sovx/v1/users/{userID}/accounts/transactions?filter[limit]=20&filter[skip]=0" \
  -H "x-api-key: YOUR_OWNER_API_KEY"

Errors: 400 filter[limit] exceeds 100 · 401 invalid key · 404 user not found · 500 server error.

On this page