Skip to main content

Algo724 Cadenza Fermata API (3.0.1)

Download OpenAPI specification:Download

License: Proprietary

OpenAPI Specification for Algo724 Cadenza Fermata API

Utility

Utility endpoints

Root, Information about the API

Root endpoint providing API metadata, version information, and available endpoints

Authorizations:
SupabaseOAuth2BearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Health check

Health check endpoint for monitoring service status and dependencies. No authentication required - designed for load balancers, Kubernetes probes, and monitoring systems.

Responses

Response samples

Content type
application/json
{
  • "status": "healthy",
  • "timestamp": 1632933600000,
  • "isoDateTime": "2023-09-29T12:00:00.000Z",
  • "version": "3.0.1",
  • "checks": {
    }
}

Authentication

Authentication endpoints (Supabase GoTrue proxy)

Sign up new user

Create a new user account with email and password

Request Body schema: application/json
required
email
required
string <email>

User email address

password
required
string >= 8 characters

User password (minimum 8 characters)

object

Optional user metadata

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "securepassword123",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Login with email and password

Authenticate user and return access/refresh tokens

Request Body schema: application/json
required
email
required
string <email>

User email address

password
required
string

User password

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "securepassword123"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Logout user

Invalidate the current session

Authorizations:
SupabaseOAuth2BearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": "ok"
}

Refresh access token

Get new access token using refresh token

Request Body schema: application/json
required
refreshToken
required
string

Refresh token from previous login

Responses

Request samples

Content type
application/json
{
  • "refreshToken": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Get current user

Get the currently authenticated user's information

Authorizations:
SupabaseOAuth2BearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Update current user

Update the currently authenticated user's information

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
required
email
string <email>

New email address

password
string >= 8 characters

New password (minimum 8 characters)

object

User metadata to update

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "password": "stringst",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Request password recovery

Send password recovery email to user

Request Body schema: application/json
required
email
required
string <email>

Email address to send recovery link

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": "ok"
}

Trading

Trading

Submit trade order

Submit a new trade order

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

instrumentId
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

idempotencyKey
string (idempotencyKey)

Idempotency key to prevent duplicate request processing

clientOrderId
string (clientOrderId)

Client-provided order ID, used as idempotency key

orderSide
required
string (orderSide)
Enum: "BUY" "SELL" "UNKNOWN"

Order side (buy or sell)

orderType
required
string or null (orderType)
Enum: "MARKET" "LIMIT" "LIMIT_MAKER" "STOP" "STOP_LIMIT" "STOP_LOSS" "STOP_LOSS_LIMIT" "TAKE_PROFIT" "TAKE_PROFIT_LIMIT" "TRAILING_STOP" "QUOTED" "UNKNOWN"

Order type

limitPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

stopPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

quantity
required
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

quantityType
string (orderQuantityType)
Enum: "BASE" "QUOTE" "POSITION_RATIO" "POSITION_PERCENTAGE"

How order quantity is specified

quantityRounding
string (quantityRounding)
Default: ""
Enum: "" "UP" "DOWN" "NEAREST" "CEIL" "FLOOR" "HALF_UP" "HALF_DOWN" "HALF_EVEN"

Quantity rounding strategy to meet lot size requirements. Empty string means no rounding.

positionId
string <uuid> (uuidString)

UUID string

timeInForce
string or null (timeInForce)
Enum: "GTC" "IOC" "FOK" "GTD" "DAY" "GTX" "OPG" "CLS" "GFA" "GFS" "GTM" "MOO" "MOC" "EXT" "UNKNOWN"

Time in force - specifies how long an order remains active

expireAt
integer <int64> (millisecond)

Unix timestamp in milliseconds

quoteId
string <uuid> (uuidString)

UUID string

leverage
integer

Leverage

awaitClosed
boolean
Default: false

If true, the API will wait up to 1 second for the order to reach a closed/finalized state (FILLED, REJECTED, EXPIRED, CANCELLED) before responding. If false or omitted, returns immediately with the initial order state. Useful for market orders that typically fill immediately.

takeProfitPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

takeProfitLimitPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

stopLossPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

stopLossLimitPrice
string (decimal) ^-?\d+(\.\d+)?$

Decimal value as string to preserve precision

takeProfitTimeInForce
string or null (timeInForce)
Enum: "GTC" "IOC" "FOK" "GTD" "DAY" "GTX" "OPG" "CLS" "GFA" "GFS" "GTM" "MOO" "MOC" "EXT" "UNKNOWN"

Time in force - specifies how long an order remains active

stopLossTimeInForce
string or null (timeInForce)
Enum: "GTC" "IOC" "FOK" "GTD" "DAY" "GTX" "OPG" "CLS" "GFA" "GFS" "GTM" "MOO" "MOC" "EXT" "UNKNOWN"

Time in force - specifies how long an order remains active

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391",
  • "instrumentId": "BINANCE:BTC/USDT",
  • "idempotencyKey": "my_unique_request_id",
  • "clientOrderId": "client_order_12345",
  • "orderSide": "BUY",
  • "orderType": "LIMIT",
  • "limitPrice": "1234.56789000",
  • "stopPrice": "1234.56789000",
  • "quantity": "1234.56789000",
  • "quantityType": "BASE",
  • "quantityRounding": "DOWN",
  • "positionId": "da3402dc-13f8-45f9-83a6-bde06dd8eb35",
  • "timeInForce": "GTC",
  • "expireAt": 1632933600000,
  • "quoteId": "826e5192-f8c6-4e24-aab3-3910e46c52b7",
  • "leverage": 0,
  • "awaitClosed": true,
  • "takeProfitPrice": "1234.56789000",
  • "takeProfitLimitPrice": "1234.56789000",
  • "stopLossPrice": "1234.56789000",
  • "stopLossLimitPrice": "1234.56789000",
  • "takeProfitTimeInForce": "GTC",
  • "stopLossTimeInForce": "GTC"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Cancel trade order

Cancel an existing trade order

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

tradeOrderId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391",
  • "tradeOrderId": "85df4133-2159-4db1-a117-d20455178752"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List trade orders

List trade orders with filtering options

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
tradeOrderId
string <uuid> (uuidString)

Trade order ID

orderListId
string

Filter by order list ID to retrieve child orders of an OCO/OTO/OTOCO parent

orderStatus
string or null (orderStatus)
Enum: "CREATED" "SUBMITTED" "ACCEPTED" "PARTIALLY_FILLED" "FILLED" "CANCELLED" "PENDING_CANCEL" "REPLACED" "PENDING_REPLACE" "REJECTED" "EXPIRED" "REVOKED" "UNKNOWN"
Example: orderStatus=FILLED

Order status

tradingAccountId
string <uuid> (uuidString)

Trading account ID

instrumentId
string (instrumentId)
Example: instrumentId=BINANCE:BTC/USDT

Instrument ID

startTime
integer <int64> (millisecond)
Example: startTime=1632933600000

Start time (in unix milliseconds), of the created at field

endTime
integer <int64> (millisecond)
Example: endTime=1632933600000

End time (in unix milliseconds), of the created at field

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

ascending
boolean
Default: false

Return records in ascending order

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Request for Quote

Request a firm quote from the RFQ dealer. The quote is a bilateral contract between the user and the dealer with a guaranteed execution price and validity period.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

traderAccountId
string <uuid> (uuidString)

UUID string

instrumentId
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

baseAsset
string

Base asset to trade. Used with quoteAsset for symbol-based venues.

quoteAsset
string

Quote asset (payment currency). Used with baseAsset for symbol-based venues.

orderSide
required
string (orderSide)
Enum: "BUY" "SELL" "UNKNOWN"

Order side (buy or sell)

quantity
string (positiveDecimal) ^\d+(\.\d+)?$

Positive decimal value as string

quoteQuantity
string (positiveDecimal) ^\d+(\.\d+)?$

Positive decimal value as string

quoteRequestId
string

Client-provided reference for idempotency and tracking

ttl
integer (quoteTtl) [ 1 .. 300 ]
Default: 10

Time to live in seconds

expireAt
string <date-time>

Absolute expiry timestamp (ISO 8601). Mutually exclusive with ttl. If neither ttl nor expireAt is set, defaults to 10 seconds from quote creation.

pricingProfileId
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd",
  • "traderAccountId": "2e173e50-ed49-4269-84d6-d3463e0bb168",
  • "instrumentId": "BINANCE:BTC/USDT",
  • "baseAsset": "BTC",
  • "quoteAsset": "USDT",
  • "orderSide": "BUY",
  • "quantity": "100.50",
  • "quoteQuantity": "100.50",
  • "quoteRequestId": "my-quote-request-001",
  • "ttl": 10,
  • "expireAt": "2026-03-31T12:00:10Z",
  • "pricingProfileId": "b18fd0b4-983a-433d-9bff-9f0bc5f09b3e"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Trading Account

Trading Account Management

Connect trading account

Connect to a trading account. Returns 409 Conflict if the external account is already connected by another user.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
venue
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"

Trading venue identifier. UAT/sandbox environments are treated as separate venues. Note: _SANDBOX and _PAPER suffixes are deprecated. Use _UAT suffix for new integrations.

credentialIds
Array of strings <uuid> (uuidString) [ items <uuid > ]

Credential IDs for exchange venues. Not required for Fermata.

externalTradingAccountId
string

External trading account ID. Not required for Fermata.

dealerAccountId
string <uuid> (uuidString)

UUID string

nickname
string

Nickname of the trading account

Responses

Request samples

Content type
application/json
{
  • "venue": "BINANCE",
  • "credentialIds": [
    ],
  • "externalTradingAccountId": "string",
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd",
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Disconnect trading account

Disconnect from a trading account, all trading functions and the event stream notification will be stopped. The trading account will be archived and no longer available for trading. If the same trading account need to be connected again, please use the connect trading account API to create another new trading account.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Update trading account

Update trading account information

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

nickname
string

New nickname for the trading account

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391",
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List trading accounts

List all trading accounts

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
tradingAccountId
string <uuid> (uuidString)

Trading account ID

venue
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"
Example: venue=BINANCE

Exchange type

accountStatus
string (tradingAccountStatus)
Enum: "NEW" "CREATED" "ACTIVE" "INACTIVE" "LOCKED" "DISCONNECTED" "UNAVAILABLE"
Example: accountStatus=ACTIVE

Account status

userId
string <uuid> (uuidString)

Filter by user ID

tenantId
string

Filter by tenant ID

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Disable trading account

Disable a trading account, the trading account will be disabled and no longer available for trading.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Enable trading account

Enable a trading account, the trading account will be enabled and available for trading.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List trading account operations

List operations history for trading accounts

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
tradingAccountId
string <uuid> (uuidString)

Trading account ID

operationType
string (operationType)
Enum: "CONNECT" "DISCONNECT" "ENABLE" "DISABLE" "UPDATE" "CREDENTIAL_REVOKE" "CREDENTIAL_ROTATE"

Operation type

startTime
integer <int64> (millisecond)
Example: startTime=1632933600000

Start time (in unix milliseconds), of the created at field

endTime
integer <int64> (millisecond)
Example: endTime=1632933600000

End time (in unix milliseconds), of the created at field

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Trading Account Credential

Trading Account Credential Management

List trading account credentials

List all credentials for a trading account

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
credentialType
string or null (credentialType)
Enum: "API_KEY" "TOKEN" "HMAC" "OAUTH" "RSA" "ED25519"
Example: credentialType=API_KEY

Credential type

credentialStatus
string (credentialStatus)
Enum: "CREATED" "ACTIVE" "EXPIRED" "REVOKED"
Example: credentialStatus=CREATED

Credential status

credentialIds
Array of strings

credentialId array

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Create trading account credential

Create credentials for a trading account

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
venue
required
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"

Trading venue identifier. UAT/sandbox environments are treated as separate venues. Note: _SANDBOX and _PAPER suffixes are deprecated. Use _UAT suffix for new integrations.

nickname
string

Nickname of the credential

credentialType
required
string or null (credentialType)
Enum: "API_KEY" "TOKEN" "HMAC" "OAUTH" "RSA" "ED25519"

Type of API credential

apiKey
string
apiSecret
string
apiPassphrase
string

Responses

Request samples

Content type
application/json
{
  • "venue": "BINANCE",
  • "nickname": "string",
  • "credentialType": "API_KEY",
  • "apiKey": "my_api_key",
  • "apiSecret": "my_api_secret",
  • "apiPassphrase": "my_api_passphrase"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Revoke trading account credential

Revoke credentials for a trading account.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
credentialId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "credentialId": "f568fec0-10b6-4b94-9daf-e62c50c9bf3e"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Rotate trading account credential

Rotate credentials for a trading account, the credential will be rotated to the new api key, api secret and api passphrase, other fields are not editable.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
credentialId
required
string <uuid> (uuidString)

UUID string

apiKey
string
apiSecret
string
apiPassphrase
string

Responses

Request samples

Content type
application/json
{
  • "credentialId": "f568fec0-10b6-4b94-9daf-e62c50c9bf3e",
  • "apiKey": "my_api_key",
  • "apiSecret": "my_api_secret",
  • "apiPassphrase": "my_api_passphrase"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Verify trading account credential

Verify credentials and list all supported trading accounts that the credential have permissions to access. Each returned account includes a status indicating its state relative to Cadenza: NEW (not yet connected), ACTIVE or current status (connected by the current user), or UNAVAILABLE (connected by another user).

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
credentialIds
required
Array of strings <uuid> (uuidString) [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "credentialIds": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Trading Account Subscription

Trading Account Subscription Management

Subscribe to trading account updates

Subscribe to real-time trading account updates

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Unsubscribe from trading account updates

Unsubscribe from real-time trading account updates

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
subscriptionId
string <uuid> (uuidString)

UUID string

tradingAccountId
string <uuid> (uuidString)

UUID string

instrumentId
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391",
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List trading account subscriptions

List active trading account subscriptions

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
tradingAccountId
string <uuid> (uuidString)

Trading account ID

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Trading Account Portfolio

Trading Account Portfolio Management

List trading account portfolios

List portfolios across all trading accounts

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
tradingAccountId
string <uuid> (uuidString)

Trading account ID

venue
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"
Example: venue=BINANCE

Exchange type

currency
string (assetSymbol)
Example: currency=USDT

Currency

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Market

Market data and instruments

List market venues

List available market venues/exchanges

Authorizations:
SupabaseOAuth2BearerAuth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Sync market instruments

Synchronize market instruments from exchanges

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
venue
required
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"

Trading venue identifier. UAT/sandbox environments are treated as separate venues. Note: _SANDBOX and _PAPER suffixes are deprecated. Use _UAT suffix for new integrations.

symbols
required
Array of strings

symbol list, example ["BTC/ETH","BTC/USDT"]

Responses

Request samples

Content type
application/json
{
  • "venue": "BINANCE",
  • "symbols": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Delete market instrument

Delete a market instrument

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
instrumentId
required
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "errno": 0,
  • "error": "string",
  • "data": "ok"
}

Enable market instrument

Enable a market instrument for trading

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
instrumentId
required
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Disable market instrument

Disable a market instrument for trading

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
instrumentId
required
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List market instruments

List available market instruments

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
venue
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"
Example: venue=BINANCE

Exchange type

symbols
Array of strings
Example: symbols=BTC/USDT

Instrument Symbols array

securityType
string (securityType)
Enum: "STOCK" "CRYPTO" "CURRENCY" "COMMODITY" "INDEX" "BOND" "OPTION" "FUTURES" "PERPETUAL"
Example: securityType=CRYPTO

Security type

instrumentStatus
string (instrumentStatus)
Enum: "ACTIVE" "INACTIVE" "DISABLED" "DELISTED"

Instrument status

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Sync market securities

Synchronize financial securities from exchanges

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
venue
required
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"

Trading venue identifier. UAT/sandbox environments are treated as separate venues. Note: _SANDBOX and _PAPER suffixes are deprecated. Use _UAT suffix for new integrations.

Responses

Request samples

Content type
application/json
{
  • "venue": "BINANCE"
}

Response samples

Content type
application/json
{
  • "errno": 0,
  • "error": "string",
  • "data": "ok"
}

Delete market security

Delete a financial security

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
securityId
required
string

Security ID in the format of venue:symbol

Responses

Request samples

Content type
application/json
{
  • "securityId": "BINANCE:BTC"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List market securities

List available financial securities

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
venue
string (venue)
Enum: "BINANCE" "B2C2" "WINTERMUTE" "BLOCKFILLS" "STONEX" "CUMBERLAND" "IBKR" "DERIBIT" "BITFINEX" "OKX" "BINANCE_UAT" "B2C2_UAT" "WINTERMUTE_UAT" "BLOCKFILLS_UAT" "STONEX_UAT" "CUMBERLAND_UAT" "IBKR_UAT" "DERIBIT_UAT" "BITFINEX_UAT" "OKX_UAT" "BINANCE_SANDBOX" "B2C2_SANDBOX" "IBKR_PAPER" "FERMATA" "MOCK" "PAPER"
Example: venue=BINANCE

Exchange type

securityId
string (securityId)
Example: securityId=BINANCE:BTC

Security ID

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Get market order book

Get order book for a specific instrument.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentId
string (instrumentId)
Example: instrumentId=BINANCE:BTC/USDT

Instrument ID

depth
integer [ 1 .. 1000 ]
Default: 10

Order book depth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List market order books

List order books for multiple instruments. Filter by instrumentIds.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentIds
Array of strings (instrumentId)
Example: instrumentIds=BINANCE:BTC/USDT

Instrument ID array. Repeat the param to pass multiple values.

depth
integer [ 1 .. 1000 ]
Default: 10

Order book depth

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Get market ticker

Get ticker for a specific instrument.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentId
string (instrumentId)
Example: instrumentId=BINANCE:BTC/USDT

Instrument ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List market tickers

List tickers for screening — filter by instrumentIds.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentIds
Array of strings (instrumentId)
Example: instrumentIds=BINANCE:BTC/USDT

Instrument ID array. Repeat the param to pass multiple values.

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Get market kline

Get klines (candlestick data) for a specific instrument and interval. Returns a single kline object containing an array of OHLCV candles.

Returns isClosed: true for historical-only queries; isClosed: false only when the queried range includes the live (currently forming) bar.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentId
string (instrumentId)
Example: instrumentId=BINANCE:BTC/USDT

Instrument ID

interval
required
string (klineInterval)
Enum: "1s" "1m" "3m" "5m" "15m" "30m" "1h" "2h" "4h" "6h" "8h" "12h" "1d" "3d" "1w" "1M"
Example: interval=1m

Kline interval (e.g. 1m, 5m, 1h, 1d)

from
integer <int64> (millisecond)
Example: from=1632933600000

Range start (Unix timestamp in milliseconds, inclusive)

to
integer <int64> (millisecond)
Example: to=1632933600000

Range end (Unix timestamp in milliseconds, inclusive)

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Market Subscription

Market data subscription management

Subscribe to order book updates

Subscribe to real-time order book updates

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
instrumentId
required
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Unsubscribe from order book updates

Unsubscribe from real-time order book updates

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
subscriptionId
string <uuid> (uuidString)

UUID string

tradingAccountId
string <uuid> (uuidString)

UUID string

instrumentId
string (instrumentId)

Instrument ID in format {VENUE}:{BASE}/{QUOTE}

Responses

Request samples

Content type
application/json
{
  • "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391",
  • "instrumentId": "BINANCE:BTC/USDT"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List order book subscriptions

List active order book subscriptions

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
instrumentId
string (instrumentId)
Example: instrumentId=BINANCE:BTC/USDT

Instrument ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ]
}

Fermata

RFQ Dealer venue management (dealer accounts, wallets, quotes)

Create dealer

Create a new dealer account in the Fermata venue. Admin only. Provisions a Trading Account (venue=FERMATA), a dealer wallet in the Formance Ledger, and dealer configuration.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
name
required
string

Human-readable dealer name

baseCurrencies
required
Array of strings

Base currencies the dealer settles in

riskThreshold
string (positiveDecimal) ^\d+(\.\d+)?$

Positive decimal value as string

object

Additional dealer configuration

Responses

Request samples

Content type
application/json
{
  • "name": "Main Dealer",
  • "baseCurrencies": [
    ],
  • "riskThreshold": "100.50",
  • "config": { }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Get dealer

Get a single dealer by ID, including configuration and linked accounts.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
dealerAccountId
required
string <uuid> (uuidString)

Dealer account ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List dealers

List dealers with optional status filter. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
status
string (dealerStatus)
Enum: "ACTIVE" "PAUSED" "ARCHIVED"
Example: status=ACTIVE

Filter by dealer status

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Pause dealer

Pause a dealer — stops quoting but continues hedging open positions. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Resume dealer

Resume a paused dealer — restores quoting capability. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Archive dealer

Archive a dealer — permanently stops all operations. All open positions must be closed before archiving. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Link exchange account to dealer

Link an existing exchange trading account to the dealer as a liquidity provider for hedging.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd",
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "errno": 0,
  • "error": "string",
  • "data": "ok"
}

Unlink exchange account from dealer

Unlink an exchange trading account from the dealer.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
dealerAccountId
required
string <uuid> (uuidString)

UUID string

tradingAccountId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "dealerAccountId": "5e0fc0f8-d3b2-4073-bd08-7b6f82f0cfdd",
  • "tradingAccountId": "14f773c5-2079-41e0-90e4-340a7b4d3391"
}

Response samples

Content type
application/json
{
  • "errno": 0,
  • "error": "string",
  • "data": "ok"
}

Create wallet

Create a new wallet in the Fermata ledger.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
nickname
string

Nickname for the new wallet

Responses

Request samples

Content type
application/json
{
  • "nickname": "string"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Get wallet

Get a single wallet by ID, including balances and status.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
walletId
required
string <uuid> (uuidString)

Wallet ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

List wallets

List wallets by type, owner, or dealer.

Authorizations:
SupabaseOAuth2BearerAuth
query Parameters
walletType
string (walletType)
Enum: "DEALER" "CLIENT" "EXCHANGE" "ACCOUNTING"
Example: walletType=CLIENT

Filter by wallet type

limit
integer [ 1 .. 1000 ]
Default: 50
Example: limit=100

Limit the number of returned results

offset
integer >= 0
Default: 0
Example: offset=0

Offset of the returned results

cursor
string

Cursor for next page

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

Transfer between wallets

Transfer assets between wallets owned by the same user under the same dealer.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
sourceWalletId
required
string <uuid> (uuidString)

UUID string

destWalletId
required
string <uuid> (uuidString)

UUID string

asset
required
string

Asset to transfer

amount
required
string (positiveDecimal) ^\d+(\.\d+)?$

Positive decimal value as string

Responses

Request samples

Content type
application/json
{
  • "sourceWalletId": "8eb8f949-9055-4761-bc14-436e54978e6c",
  • "destWalletId": "1cfa15b0-1c77-4cdf-b7ea-f6c29911da4c",
  • "asset": "USDT",
  • "amount": "100.50"
}

Response samples

Content type
application/json
{
  • "errno": 0,
  • "error": "string",
  • "data": "ok"
}

Freeze wallet

Freeze a wallet, blocking all transactions. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
walletId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Unfreeze wallet

Unfreeze a previously frozen wallet, restoring transaction capabilities. Admin only.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
walletId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

Close wallet

Close a wallet. Terminal state — only a final withdrawal to zero balance is allowed after closing.

Authorizations:
SupabaseOAuth2BearerAuth
Request Body schema: application/json
walletId
required
string <uuid> (uuidString)

UUID string

Responses

Request samples

Content type
application/json
{
  • "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "errno": 0,
  • "error": "string",
  • "details": {
    },
  • "data": {
    }
}

WebSocket

WebSocket message specifications

WebSocket Connection

This endpoint documents the WebSocket API protocol, not a REST endpoint.

Connect to the Cadenza WebSocket API using the Centrifugo protocol. Use the WebSocket servers listed above (wss://cadenza-ws.algo724.com/connection/websocket for production or wss://cadenza-ws-uat.algo724.com/connection/websocket for UAT).

Connection Flow

  1. Establish WebSocket connection to the server URL
  2. Send connect command with authentication token
  3. Receive connect result with client ID and session info
  4. Subscribe to channels for real-time updates
  5. Receive push messages with data updates

Authentication

Include your JWT token in the connect command:

{
  "connect": {
    "token": "your-jwt-token",
    "name": "your-client-name"
  },
  "id": 1
}

Available Channels

Subscribe to channels for real-time updates:

Channel Pattern Payload Schema Description
tradingAccount:{accountId} Trading account updates (orders, portfolio, balances)
market:orderbook:{venue}:{symbol} orderBook Order book updates (updateType ∈ SNAPSHOT | DIFF | DELTA)
market:ticker:{venue}:{symbol} ticker Per-instrument ticker updates
market:ticker:{venue} ticker Venue-wide ticker fanout (live screening)
market:kline:{venue}:{symbol}:{interval} kline Kline updates (isClosed: false while live, true on bar close)
market:trade:{venue}:{symbol} Trade updates for an instrument

Channel publications carry the same orderBook / ticker / kline schemas used by REST and WebSocket RPC.

Message Format

All WebSocket messages follow the Centrifugo JSON protocol format. See the WebSocket schemas section for detailed message structures.

For complete protocol documentation, refer to:

Request Body schema: application/json

WebSocket command (sent after WebSocket connection is established)

id
required
integer

Unique command ID for request-response correlation

object (wsConnectRequest)

Connect request sent after WebSocket connection is established

object (wsSubscribeRequest)

Subscribe to a channel for real-time updates

object (wsUnsubscribeRequest)

Unsubscribe from a channel

object (wsPublishRequest)

Publish a message to a channel

object (wsPresenceRequest)

Request presence information for a channel

object (wsPresenceStatsRequest)

Request presence statistics for a channel

object (wsHistoryRequest)

Request publication history for a channel

ping
object (wsPingRequest)

Ping request to keep connection alive

object (wsSendRequest)

Send asynchronous message (no reply expected)

object (wsRPCRequest)

Remote procedure call request

object (wsRefreshRequest)

Refresh connection credentials

object (wsSubRefreshRequest)

Refresh subscription credentials

Responses

Request samples

Content type
application/json
Example
{
  • "id": 1,
  • "connect": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": 1,
  • "connect": {
    }
}