Auro Digital API Overview
The Auro Digital API employs WebSockets for communication between the front-end and back-end services, allowing real-time data exchange. For developers aiming to programmatically interact with Auro Digital, a direct WebSocket connection to the back-end service can be established.
Please note, this API was initially designed for internal use, primarily for front-end development. Therefore, it may possess some complex payloads. Furthermore, it is subject to potential changes based on the evolving needs of the front-end application.
Connection Details Base URL
Assuming your Auro Digital URL is https://test.aurodigital.ai/, your corresponding WebSocket URL would be: wss://test-backend.aurodigital.ai/v2.
The backend service adheres to the same IP whitelist policies as the front-end service. If you need to add (static) IP addresses to the whitelist, please contact our support team.
Pricing
Free
$0 /month
125K API credits included
No additional API credits
1 RPS
7 Days Trial
25000 Web3 RPC Calls
1 User(s)
Get started ›
Starter
$899 /month ($999 for premium RPC)
1M API credits included
$250 /1M API credits
5 RPS
50,000 Web3 RPC Calls
2 User(s)
30 days retention
Get started ›
Most Popular
Growth
$3199 /month ($3299 for premium RPC)
5M API credits included
$250 /1M API credits
20 RPS
100,000 Web3 RPC Calls
3 User(s)
30 days retention
Get started ›
Business
$6899 /month ($6999 for premium RPC)
15M API credits included
$225 /1M API credits
50 RPS
250,000 Web3 RPC Calls
5 User(s)
90 days retention
Get started ›
×
Request plan
Fill in your details and our team will reach out shortly.
JSON-RPC Schemagit
Name
Type
Description
jsonrpc
string
Only "2.0" is supported
id
string
This will be echoed back in responses or subscription payloads
method
string
Establishing the specific API to connect to. Documented below
params
string
Details regarding the specific API call. Documented below
API_GATEWAY Login
Login to an account. Returns a token.
{
"jsonrpc" : "2.0" ,
"id" : "9cc1e382-ba9a-4992-80aa-fc77628a14d" ,
"method" : "login" ,
"params" : {
"username" : "admin" ,
"password" : "Admin@123"
}
}
Request
Name
Type
Description
username
string
The user's login name.
password
string
The user's password.
{
"jsonrpc" : "2.0" ,
"id" : "9cc1e382-ba9a-4992-80aa-fc77628a14d" ,
"result" : {
"token" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL210dWF0LWJh"
}
}
Response
Name
Type
Description
token
string
JSON Web Token.
Subscribe_get_pair
Subscribe to a pair. Returns updates on all metrics of that pair on the given exchanges as well as consolidated order books and other metrics across the given exchanges.
{
"jsonrpc" : "2.0" ,
"id" : "6c1985bf-80ad-4bbc-86d0-6e682cdb764d" ,
"method" : "subscribe_get_pair" ,
"params" : {
"pair" : "BTC/USD" ,
"exchanges" : [
"coinbasepro"
]
}
}
Request
Name
Type
Description
pair
string
The normalized symbol.
exchange
array of object
A list of cryptocurrency exchanges to use.
{
"jsonrpc" : "2.0" ,
"id" : "6c1985bf-80ad-4bbc-86d0-6e682cdb764d" ,
"result" : {
"pair" : "BTC/USD" ,
"exchanges" : [
"coinbasepro"
],
"order_book" : {
"columns" : [
"Price" ,
"Size" ,
"Exchange"
],
"bids" : [
[
32800562.00007545 ,
10897.2 ,
"coinbasepro"
],
[
84791055.49007545 ,
10897.1938683967 ,
"coinbasepro"
],
[
150392079.09007546 ,
10897.1878189978 ,
"coinbasepro"
]
],
"asks" : [
[
32798972.124043528 ,
10897.22 ,
"coinbasepro"
],
[
84789656.45404352 ,
10897.2261317227 ,
"coinbasepro"
],
[
150391041.25404352 ,
10897.2321811358 ,
"coinbasepro"
]
],
"commission" : 0.0 ,
"timestamps" : {
"coinbasepro" : 1600246762328
},
"done_at" : [
[
"fetch_order_book" ,
1600246763260
]
],
"time_elapsed_after" : [
[
"fetch_order_book" ,
{
"coinbasepro" : 932
}
]
]
},
"other_info" : [
{
"title" : "Liquidity Metrics" ,
"columns" : [
"bid" ,
"ask" ,
],
"values" : [
[
10897.2 ,
10897.22 ,
]
]
}
],
"is_inverse" : false ,
"time" : 1600246763302
}
}
Response
Name
Type
Description
pair
string
The normalized symbol.
exchange
array of object
A list of cryptocurrency exchanges to use.
order_book
object
A list of cryptocurrency exchanges to use.
-- columns
array of string
Description of the format in bids and asks.
-- bids
array of string or number
Bids aggregated across the specified exchanges.
-- asks
array of string or number
Asks aggregated across the specified exchanges.
-- commission
number
The administrator-defined fee that is applied on the order book prices.
-- timestamps
number
Unix timestamp in milliseconds.
-- done_at
array of string or number
Internal data structure. Please do not rely on this.
-- time_elapsed_after
array of string or number
Internal data structure. Please do not rely on this.
other_info
array of object
Internal data structure. Please do not rely on this.
is_inverse
boolean
Whether this is an inverse futures contract.
time
number
The Unix timestamp (in milliseconds) when the data in this payload is fetched.
get_tickers
feed of best bid and ask values for a specified crypto pair on the provided Liquidity venue(s).
{
"id" : "b1b61f11-d34b-408b-ba46-cd6c1907252b" ,
"jsonrpc" : "2.0" ,
"method" : "get_tickers" ,
"params" : {
"pair" : "ETH/BTC" ,
"exchanges" : [ "okx-new_test" ]
}
}
Request
Name
Type
Description
pair
string
The normalized symbol.
exchange
array of object
A list of cryptocurrency liquidity venue to use.
{
"id" : "b1b61f11-d34b-408b-ba46-cd6c1907252b" ,
"jsonrpc" : "2.0" ,
"result" : {
"best_bid" : {
"price" : 0.06296 ,
"size" : 86.378417 ,
"exchange" : "okx-new_test" ,
"timestamp" : 1691055448
},
"display_name" : "okx-new_test"
}
}
Request
Name
Type
Description
best_bid
Object
Contains the best bid data.(price,size,exchange,timestamps).
exchange
array of object
A list of cryptocurrency exchanges to use.
get_all_markets
Use the get_all_markets method to retrieve a list of all available exchanges and trading symbols. Please note, changes in the availability of symbols on the exchanges may not be immediately reflected in the response, so we recommend calling this method periodically.
{
"jsonrpc" : "2.0" ,
"id" : "22ad7310-b318-4eee-8618-b3c47ca2f225" ,
"method" : "get_all_markets"
}
Request {
"jsonrpc" : "2.0" ,
"id" : "22ad7310-b318-4eee-8618-b3c47ca2f225" ,
"result" : [
{
"type" : "SPOT" ,
"normalized_symbol" : "BTC/USDT" ,
"exchange_id" : "binance" ,
"base" : "BTC" ,
"quote" : "USDT" ,
"is_inverse" : false
}
]
}
Response
Name
Type
Description
type
string
SPOT or FUTURES.
normalized_symbol
string
The unique identifier for a symbol in Access.
exchange_id
string
The name of the exchange as configured by your administrator.
base
string
The base currency.
quote
string
The quote currency.
is_inverse
boolean
Whether this is an inverse futures contract.
get_algo_executions
get all active orders
{
"jsonrpc" : "2.0" ,
"id" : "c407195b-4c35-483d-93f5-798b391dc710" ,
"method" : "get_algo_executions" ,
"params" : {
"start_time" : "2018-09-07T16:00:00.000Z" ,
"end_time" : "2020-09-07T16:00:00.000Z" ,
"filters" : [
{
"exchange_id" : "coinbasepro" ,
"normalized_symbol" : "BTC/USD"
}
],
"algos_only" : false ,
"status" : "ALL"
}
}
Request
Name
Type
Description
start_time
timestamp
A list of cryptocurrency exchanges to use.
end_time
timestamp
The amount of the Auro Digital Trading order.
exchange_id
string
The price of the Auro Digital Trading order.
normalized_symbol
string
Start datetime of algo processing
algo_only
Boolean
End datetime of algo processing
status
string
Staus of order that we want("OPEN", "CLOSE", "ALL")
{
"jsonrpc" : "2.0" ,
"id" : "c407195b-4c35-483d-93f5-798b391dc710" ,
"result" : {
"executions" : [
{
"id" : 7333 ,
"name" : null ,
"algo_type" : "LMT" ,
"status" : "CLOSED" ,
"data" : {
"pair" : "BTC/USD" ,
"side" : "sell" ,
"price" : "9150" ,
"volume" : "0.01" ,
"end_time" : "2020-07-16T08:05:52.785000+00:00" ,
"exchange" : "coinbasepro" ,
"start_time" : "2020-07-16T07:06:58.104273+00:00" ,
"active_order_path" : [
"coinbasepro" ,
"21f1206c-60b6-4323-8d99-233ebbe79c45"
],
"active_order_amount" : "0.01" ,
"canceled_order_paths" : []
},
"start_time" : 1594883218000 ,
"end_time" : 1594886752000 ,
"exchanges" : [
{
"exchange_id" : "coinbasepro" ,
"side" : "sell"
}
],
"pairs" : [
{
"pair" : "BTC/USD" ,
"side" : "sell"
}
],
"side" : "sell" ,
"price" : 9150.0 ,
"price_net" : 9150.0 ,
"volume" : 0.01 ,
"leg_room" : null ,
"slippage" : null ,
"filled" : 0.01 ,
"average" : 9156.02 ,
"average_net" : 9156.02 ,
"updated_at" : 1594883227000
}
]
}
}
Response
Name
Type
Description
id
number
The ID of the Auro Digital Trading order.
name
null
Currently unused field.
algo_type
string
Abbreviated order type.
status
string
Status of the algo execution.
data
object
Internal data structure, please avoid relying on this.
pair
string
The normalized symbol.
side
string
The side of the trade (buy or sell).
price
number
The price of the Auro Digital Trading order.
volume
number
The amount of the Auro Digital Trading order.
start_time
timestamp
Start datetime of algo processing
end_time
timestamp
End datetime of algo processing
exchange
string
The name of the exchange as configured by your administrator.
active_order_path
list
Currently working orders
active_order_amount
string
Amount of those orders
canceled_order_paths
list
Orders canceled by this Algorithm
start_time
number
Unix timestamp in milliseconds.
end_time
number or null
Unix timestamp in milliseconds.
exchange
array of object
A list of cryptocurrency exchanges to use.
exchange_id
string
The name of the exchange as configured by your administrator.
side
string
buy or sell.
pairs
array of object
A list of normalized symbols.
pair
string
buy or sell.
side
string
buy or sell.
price
number
The price of the Auro Digital Trading order.
price_net
number or null
The price, net of a fixed commission (if configured).
volume
number
The amount of the Auro Digital Trading order.
leg_room
number or null
Price adjustment before sending an order to the exchange.
slippage
number or null
Slippage, if applicable.
filled
number
The filled amount of the Auro Digital Trading order.
average
number
The average price of the filled amount.
average_net
number or null
The average price, net of a fixed commission (if configured).
updated_at
number
Unix timestamp in milliseconds.
place_orders
The place_orders method allows you to place LIMIT orders on an exchange.
A LIMIT order is an order to buy or sell a cryptocurrency at a specific price or better. It allows you to set a precise price at which you want to trade.
{
"jsonrpc" : "2.0" ,
"id" : "6c44a8f0-8196-40d0-8f39-620710bae10f" ,
"method" : "place_orders" ,
"params" : {
"orders" : [
{
"pair" : "BTC/USD" ,
"side" : "BUY" ,
"price" : 1234 ,
"volume" : 0.01 ,
"exchange" : "coinbasepro" ,
"end_time" : "2020-09-10T10:44:02.187Z"
}
]
}
}
Request
Name
Type
Description
pair
string
The trading pair, represented as a normalized symbol
side
string
Indicates whether you want to "buy" or "sell".
price
number
Specifies the price at which you want to execute the order.
volume
number
Represents the amount (in base currency) you want to order.
exchange
string
The identifier of the exchange where the order will be placed, as configured by your administrator.
end_time
timestamp
The time at which the order will expire if not fulfilled.
{
"jsonrpc" : "2.0" ,
"id" : "6c44a8f0-8196-40d0-8f39-620710bae10f" ,
"result" : "ok"
}
Response
Name
Type
Description
result
string
Confirmation of request. “ok“ indicates positive confirmation. Negative confirmation will display an “error” field instead of “result”
get_balances
get all balances for the given exchanges.
{
"jsonrpc" : "2.0" ,
"id" : "6c1985bf-80ad-4bbc-86d0-6e682cdb764d" ,
"method" : "get_balances" ,
"params" : {
"pair" : "BTC/USD" ,
"exchanges" : [ "coinbasepro" ],
"from_mid_agg" : 0 ,
"cutoff" : 1
}
}
Request
Name
Type
Description
pair
string
The normalized symbol.
exchanges
array of object
A list of cryptocurrency exchanges to use.
from_mid_agg
number
Filter for Consolidated Orderbooks
cutoff
number
Filter for Consolidated Orderbooks
{
"jsonrpc" : "2.0" ,
"id" : "6c1985bf-80ad-4bbc-86d0-6e682cdb764d" ,
"result" : {
"pair" : "BTC/USD" ,
"exchanges" : [ "coinbasepro" ],
"balances" : {
"coinbasepro" : {
"BTC" : {
"free" : 215.52433665 ,
"used" : 0 ,
"total" : 215.52433665
},
"ETH" : {
"free" : 883.80160773 ,
"used" : 0 ,
"total" : 883.80160773
},
"USD" : {
"free" : 363332.4740171202 ,
"used" : 0 ,
"total" : 363332.4740171202
},
"USDC" : {
"free" : 70000.0 ,
"used" : 0 ,
"total" : 70000.0
}
}
},
"is_inverse" : false ,
"time" : 1600246763302
}
}
Response
Name
Type
Description
pair
string
The normalized symbol.
exchanges
array of object
A list of cryptocurrency exchanges to use.
balances
object
The balances on the exchanges configured by your administrator.
exchange_id (as key)
object
The name of the exchange as configured by your administrator.
currency_id (as key)
object
The currency ID.
free
number
Money available for trading.
used
number
Money on hold due to e.g., open orders.
total
number
free + used.
is_inverse
boolean
Whether this is an inverse futures contract.
time
number
The Unix timestamp (in milliseconds) when the data in this payload is fetched.
DEX APIs
This document outlines the APIs used to fetch quotes and place orders for token swaps on decentralized exchanges (DEX). The supported algorithm type is SWAP, and the response contains information on the price and slippage.
Base URL
Assuming your Auro Digital URL is https://mtuat.aurodigital.ai/, your corresponding WebSocket URL would be: wss://mtuat-backend.aurodigital.ai/v2.
The backend service adheres to the same IP whitelist policies as the front-end service. If you need to add (static) IP addresses to the whitelist, please contact our support team.
JSON-RPC Schema
Name
Type
Description
jsonrpc
string
Only "2.0" is supported
id
string
This will be echoed back in responses or subscription payloads
method
string
Establishing the specific API to connect to. Documented below
params
string
Details regarding the specific API call. Documented below
place_order_pre_processing_dex (Fetch Quotes)
This API is used to fetch token swap quotes for a given trading pair.
{
"id" : "cd728c5d-b8ca-40ee-a9cf-895a91cf2571" ,
"jsonrpc" : "2.0" ,
"method" : "place_order_pre_processing_dex" ,
"params" : {
"pair" : "ETH/USDC" ,
"side" : "SELL" ,
"amount" : 1 ,
"exchange_ids" : [ "dex-arbitrum.Test" ],
"type" : "SPOT" ,
"unit" : "ETH" ,
"slippage" : 1 ,
"algo_type" : "SWAP" ,
"price" : 0
}
}
Request
Name
Type
Description
jsonrpc
string
Only "2.0" is supported
id
string
This will be echoed back in responses or subscription payloads
method
string
Establishing the specific API to connect to. Documented below
params
string
Details regarding the specific API call. Documented below
params.pair
string
Trading pair (e.g., "USDC/SOL"), specifying the assets involved in the trade
params.side
string
The side of the order: "BUY" or "SELL"
params.amount
number
The amount of the base currency to trade
params.type
string
The type of trade: "SPOT"
params.unit
string
Denomination of the base amount
params.slippage
number
Maximum allowed slippage percentage
params.algo_type
string
Type of algorithm used for the trade. In this case, "SWAP" for decentralized swaps
params.price
number
Price limit for the trade (set to 0 for swap orders)
Response {
"jsonrpc" : "2.0" ,
"id" : "cd728c5d-b8ca-40ee-a9cf-895a91cf2571" ,
"result" : {
"total_volume" : "1.0000" ,
"base_amount" : 1.0 ,
"quote_amount" : 2669.771179 ,
"usd_amount" : 3066.624755859375 ,
"usd_base_amount" : 3066.624755859375 ,
"usd_quote_amount" : 2669.3294320025893 ,
"plan" : [
{
"exchange" : "Arbitrum" ,
"exchange_id" : "dex-arbitrum.Test" ,
"step_price" : null ,
"step_volume" : null ,
"base_amount" : 1.0 ,
"quote_amount" : 2669.771179 ,
"base_amount_usd" : 2750.2073 ,
"quote_amount_usd" : 2669.8470005014833 ,
"gas_amount" : 0.0 ,
"gas_unit" : "ETH" ,
"percent" : 100 ,
"slippage" : "1.0000" ,
"route_amounts" : [
"1000000000000000000" ,
"2669771179"
],
"route_path_symbol" : [
"WETH" ,
500 ,
"UNISWAP_V3" ,
"USDC"
],
"route_path_address" : [
"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" ,
500 ,
"UNISWAP_V3" ,
"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
],
"amm_configs" : [ null ],
"pool_states" : [ "0xC6962004f452bE9203591991D15f6b388e09E8D0" ],
"token_mints" : [
"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1" ,
"0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
],
"token_vaults" : [ null , null ],
"token_programs" : [ null , null ],
"observation_states" : [ null ],
"remaining_accounts" : [[]],
"zero_for_ones" : [ true ],
"route_dex_ids" : [ "UNISWAP_V3" ],
"total_raw_base_amount" : 1000000000000000000 ,
"total_raw_quote_amount" : 2669771179 ,
"volume" : "1.0000" ,
"price" : "2669.7712" ,
"base" : {
"unit" : "ETH" ,
"volume" : 1.0 ,
"volume_usd" : 2750.2073
},
"quote" : {
"unit" : "USDC" ,
"volume" : 2669.771179 ,
"volume_usd" : 2669.8470005014833
},
"usd_volume" : "3066.6248" ,
"gas_amount_usd" : 0.0
}
]
}
}
Name
Type
Description
jsonrpc
string
The JSON-RPC version, typically "2.0".
id
string
The ID from the request, echoed back in the response.
result
object
Contains the results of the fetch quotes operation.
result.total_volume
string
The total volume of the trade represented as a string.
result.base_amount
number
The base amount specified for the quote.
result.quote_amount
number
The amount of the quote currency corresponding to the base amount.
result.usd_amount
number
The equivalent amount in USD for the base amount.
result.usd_base_amount
number
The USD equivalent of the base amount.
result.usd_quote_amount
number
The USD equivalent of the quote amount.
result.plan
array
An array of execution plans used for placing the order, with details for each step.
place_market_orders (Place Orders)
This API is used to place market orders for a token swap, using the quotes fetched in the previous step. Orders can either allow partial fill (enabling partial execution in case of liquidity constraints) or require full execution (ensuring the entire order is completed as planned).
Request main fields
Name
Type
Description
id
string
Unique identifier for the request.
jsonrpc
string
JSON-RPC version, typically "2.0".
method
string
The method name, always "place_market_orders".
params
object
The parameters for placing market orders.
params.orders[]
Name
Type
Description
pair
string
The trading pair (e.g., "ETH/USDC").
side
string
"BUY" or "SELL".
volume
number
Amount of the base asset being traded.
price
number
Execution price (set to 0 for market orders).
exchange
string
The exchange name where the order will be executed.
start_time
string
Start time of the order (ISO 8601 format).
end_time
string
Expiration time of the order (ISO 8601 format).
timezone
string
The timezone of the order timestamps.
timestamp
number
Epoch timestamp of when the order was created.
params
object
Object containing order details
Execution Strategy Partial Fill Enabled (partialFill: true)
Partial fill only applies if a swap route consists of multiple main route parts. It allows for partial execution, preventing the transaction from being reversed if the market price moves out of favor.
- The plan is taken directly from the place_order_pre_processing_dex API response without modification.
- The entire volume is allocated to a single execution plan.
- If the market changes, only a portion of the trade might be executed.
Request (Partial Fill Enabled) {
"id" : "508cf9f6-b49f-4d36-a84a-b775570f62f0" ,
"jsonrpc" : "2.0" ,
"method" : "place_market_orders" ,
"params" : {
"orders" : [ // list containing all orders
{
"pair" : "ETH/USDC" ,
"side" : "SELL" ,
"volume" : 1 ,
"price" : 0 ,
"exchange" : "dex-arbitrum.Test" ,
"end_time" : "2025-02-04T06:36:09.344Z" ,
"start_time" : "2025-02-04T05:36:09.344Z" ,
"timezone" : "Asia/Calcutta" ,
"timestamp" : 1738647371663 ,
"params" : {
"partialFill" : true ,
"plan" : { .. } // Taken directly from fetch quotes API
}
}
]
}
}
Partial Fill Disabled (partialFill: false)
When partial fill is disabled, the entire order must be executed as planned.
The execution plan is split into multiple parts.
Each plan executes a portion of the trade at a defined percentage.
If any part fails, the entire order is canceled.
Request (Partial Fill Disabled) {
"id" : "7bdac2f7-2b23-42db-94f3-d8963156ef74" ,
"jsonrpc" : "2.0" ,
"method" : "place_market_orders" ,
"params" : {
"orders" : [
{
"pair" : "ETH/USDC" ,
"side" : "SELL" ,
"volume" : 1 ,
"price" : 0 ,
"exchange" : "dex-arbitrum.Test" ,
"start_time" : "2025-02-04T06:28:11.128Z" ,
"end_time" : "2025-02-04T07:28:11.128Z" ,
"timezone" : "Asia/Calcutta" ,
"timestamp" : 1738650536207 ,
"params" : {
"partialFill" : false ,
"plans" : [
{ "plan" : { ... } }, // Plan 1
{ "plan" : { ... } } // Plan 2
]
}
}
]
}
}
Note: Execution Plan (plan or plans[])
The execution plan is taken directly from the response of the place_order_pre_processing_dex API without modifications.
Partial Fill Handling
If partialFill: true, there is only one plan corresponding to each order. This allows for partial execution and prevents transaction failures if the market price moves out of favor.
If partialFill: false, the trade is split into multiple plans[], each executing part of the order to ensure full execution.
Whitelabel
The Master Hub is the top-level administration API for white-label partners. It exposes a WebSocket endpoint speaking JSON-RPC 2.0 , from which a Master can manage Admins, Users, Exchanges, Credits, Markups, Instrument Segments, RBAC, and consume real-time subscription streams.
Session & Auth
Every method (except ping, login, authenticate_with_token, forgot_password, reset_password) requires the caller to first login or authenticate_with_token on the same WebSocket connection.
ping
Connectivity heartbeat.
Request { "jsonrpc" : "2.0" , "id" : "1" , "method" : "ping" }
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier echoed in response. method string Method name: ping.
Response { "jsonrpc" : "2.0" , "id" : "1" , "result" : "pong" }
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result string Returns pong when service is reachable.
login
Authenticate as a master. Supports regular and stealth credentials.
Request {
"jsonrpc" : "2.0" ,
"id" : "2" ,
"method" : "login" ,
"params" : { "username" : "master_acme" , "password" : "correct-horse-battery-staple" }
}
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier. method string Method name: login. params.username string Master username. params.password string Master password.
Response {
"jsonrpc" : "2.0" ,
"id" : "2" ,
"result" : {
"token" : "eyJhbGciOiJIUzI1NiIs..." ,
"session_uuid" : "a7e7a4a0-...-..." ,
"uses_master_exchanges" : true ,
"permissions" : { "manage_admins" : true , "manage_credits" : true }
}
}
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result.token string JWT used for authenticated calls. result.session_uuid string Server-issued session identifier. result.uses_master_exchanges boolean Whether master-level exchange configuration is enabled. result.permissions object Permission map granted to this session.
authenticate_with_token
Resume a session using the JWT returned from login.
Request { "jsonrpc" : "2.0" , "id" : "3" , "method" : "authenticate_with_token" ,
"params" : { "auth_token" : "eyJhbGciOiJIUzI1NiIs..." } }
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier. method string Method name: authenticate_with_token. params.auth_token string JWT token received from login.
Response { "jsonrpc" : "2.0" , "id" : "3" , "result" : { "status" : "ok" , "permissions" : { "manage_admins" : true } } }
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result.status string Authentication status, typically ok. result.permissions object Permission map active for the resumed session.
change_password
Change the current master's password.
Request { "jsonrpc" : "2.0" , "id" : "4" , "method" : "change_password" ,
"params" : { "username" : "master_acme" , "password" : "old-pw" , "new_password" : "new-pw" } }
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier. method string Method name: change_password. params.username string Master username. params.password string Current password. params.new_password string New password to set.
Response { "jsonrpc" : "2.0" , "id" : "4" , "result" : "ok" }
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result string Returns ok when password update succeeds.
forgot_password
Request a password reset token (emailed to the master).
Request { "jsonrpc" : "2.0" , "id" : "5" , "method" : "forgot_password" ,
"params" : { "email" : "ops@acme.com" } }
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier. method string Method name: forgot_password. params.email string Email address associated with the master account.
Response { "jsonrpc" : "2.0" , "id" : "5" , "result" : "ok" }
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result string Returns ok if reset flow is initiated.
reset_password
Complete a reset using the token from forgot_password.
Request { "jsonrpc" : "2.0" , "id" : "6" , "method" : "reset_password" ,
"params" : { "token" : "a3b2...reset-token" , "new_password" : "new-pw" } }
Name Type Description jsonrpc string Only "2.0" is supported. id string Client-supplied request identifier. method string Method name: reset_password. params.token string Password reset token from forgot-password flow. params.new_password string New password to set.
Response { "jsonrpc" : "2.0" , "id" : "6" , "result" : "ok" }
Name Type Description jsonrpc string JSON-RPC protocol version. id string Echoed request identifier. result string Returns ok when reset is successful.
Admin Management
Admin lifecycle and listing operations for creating, updating, activating/deactivating, and auditing managed admins.
add_admin
Create a new admin under the current master.
Request { "jsonrpc" : "2.0" , "id" : "10" , "method" : "add_admin" ,
"params" : { "username" : "acme_desk_1" , "password" : "InitialPw!23" , "email" : "desk1@acme.com" , "name" : "Acme Desk 1" , "uses_master_exchanges" : true } }
Name Type Description method string add_adminparams.username string Admin username. params.password string Initial admin password. params.email string Admin email. params.name string Admin display name. params.uses_master_exchanges boolean Whether admin inherits master exchange setup.
Response { "jsonrpc" : "2.0" , "id" : "10" ,
"result" : { "admin" : { "id" : 42 , "username" : "acme_desk_1" , "email" : "desk1@acme.com" , "name" : "Acme Desk 1" , "active" : true , "uses_master_exchanges" : true } } }
Name Type Description result.admin object Created admin object. result.admin.id number New admin identifier. result.admin.active boolean Current admin status.
update_admin
Update admin details.
Request { "jsonrpc" : "2.0" , "id" : "11" , "method" : "update_admin" ,
"params" : { "admin_id" : 42 , "email" : "new@acme.com" , "name" : "Acme Desk One" } }
Name Type Description method string update_adminparams.admin_id number Target admin id. params.email string Updated admin email. params.name string Updated admin display name.
Response { "jsonrpc" : "2.0" , "id" : "11" ,
"result" : { "admin" : { "id" : 42 , "username" : "acme_desk_1" , "email" : "new@acme.com" , "name" : "Acme Desk One" } } }
Name Type Description result.admin object Updated admin object. result.admin.id number Admin identifier.
get_admins
List all admins this master manages.
Request { "jsonrpc" : "2.0" , "id" : "12" , "method" : "get_admins" }
Name Type Description method string get_admins
Response { "jsonrpc" : "2.0" , "id" : "12" ,
"result" : { "admins" : [{ "id" : 42 , "username" : "acme_desk_1" , "email" : "desk1@acme.com" ,
"active" : true , "name" : "Acme Desk 1" , "num_users" : 3 , "user_names" : [ "alice" , "bob" , "carol" ] }] } }
Name Type Description result.admins array of object Managed admin list. result.admins[].num_users number User count under each admin. result.admins[].user_names array of string Usernames under each admin.
get_users
List all admins plus the users under each.
Request { "jsonrpc" : "2.0" , "id" : "13" , "method" : "get_users" }
Name Type Description method string get_users
Response { "jsonrpc" : "2.0" , "id" : "13" ,
"result" : { "admins" : [{ "id" : 42 , "username" : "acme_desk_1" , "active" : true ,
"users" : [{ "id" : 100 , "username" : "alice" , "email" : "alice@acme.com" , "active" : true }] }] } }
Name Type Description result.admins array of object Admin objects with nested users. result.admins[].users array of object Users belonging to each admin.
make_admin_inactive
Deactivate an admin (cascades to their users).
Request { "jsonrpc" : "2.0" , "id" : "14" , "method" : "make_admin_inactive" , "params" : { "admin_id" : 42 } }
Name Type Description method string make_admin_inactiveparams.admin_id number Admin id to deactivate.
Response { "jsonrpc" : "2.0" , "id" : "14" , "result" : "ok" }
Name Type Description result string Returns ok when deactivation succeeds.
make_admin_active
Reactivate an admin.
Request { "jsonrpc" : "2.0" , "id" : "15" , "method" : "make_admin_active" , "params" : { "admin_id" : 42 } }
Name Type Description method string make_admin_activeparams.admin_id number Admin id to reactivate.
Response { "jsonrpc" : "2.0" , "id" : "15" , "result" : "ok" }
Name Type Description result string Returns ok when activation succeeds.
change_admin_password
Reset an admin's password.
Request { "jsonrpc" : "2.0" , "id" : "16" , "method" : "change_admin_password" ,
"params" : { "admin_id" : 42 , "new_password" : "NewStrongPw!9" } }
Name Type Description method string change_admin_passwordparams.admin_id number Admin id whose password is being reset. params.new_password string New password value.
Response { "jsonrpc" : "2.0" , "id" : "16" , "result" : "ok" }
Name Type Description result string Returns ok when password reset succeeds.
Admin Exchanges
Admin exchange assignment controls, including per-admin access grants and exchange mapping governance.
add_admin_exchange
Create a new exchange key on the master and assign it to managed admins.
Request { "jsonrpc":"2.0","id":"20","method":"add_admin_exchange","params":{"name":"binance_prod_1","info":{"api_key":"AKxxx","secret":"SSxxx","exchange":"binance"},"admins":[42,43],"always_active":true} }
Name Type Description params.name string Exchange key name. params.info object Exchange credentials payload. params.admins array of number Admin ids to grant. params.always_active boolean Marks exchange always active.
Response { "jsonrpc":"2.0","id":"20","result":{"exchanges":[{"id":7,"name":"binance_prod_1","display_name":"Binance Prod 1","info":{"exchange":"binance"},"always_active":true}]}} }
Name Type Description result.exchanges array of object Created exchange records.
get_admin_exchange
Fetch master-owned exchanges (all, or by id).
Request { "jsonrpc":"2.0","id":"21","method":"get_admin_exchange","params":{"id":7} }
Name Type Description params.id number Optional exchange id filter.
Response { "jsonrpc":"2.0","id":"21","result":{"exchanges":[{"id":7,"name":"binance_prod_1","display_name":"Binance Prod 1","always_active":true,"admins":[{"admin_id":42,"admin_username":"acme_desk_1","admin_name":"Acme Desk 1"}]}]}} }
Name Type Description result.exchanges[].admins array of object Admin assignments for exchange.
update_admin_exchange
Edit an exchange key.
Request { "jsonrpc":"2.0","id":"22","method":"update_admin_exchange","params":{"id":7,"name":"binance_prod_renamed","always_active":false,"admins":[42]} }
Name Type Description params.id number Exchange id. params.name string Updated name. params.admins array of number New admin assignments.
Response { "jsonrpc":"2.0","id":"22","result":{"exchanges":[{"id":7,"name":"binance_prod_renamed","always_active":false}]}} }
Name Type Description result.exchanges array of object Updated exchanges.
delete_admin_exchange
Delete an exchange key.
Request { "jsonrpc":"2.0","id":"23","method":"delete_admin_exchange","params":{"id":7} }
Name Type Description params.id number Exchange id to delete.
Response { "jsonrpc":"2.0","id":"23","result":"ok" }
Name Type Description result string Returns ok on success.
get_admin_exchange_access
List exchanges granted to a specific admin.
Request { "jsonrpc":"2.0","id":"24","method":"get_admin_exchange_access","params":{"admin_id":42} }
Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"24","result":{"admin_id":42,"admin_username":"acme_desk_1","admin_name":"Acme Desk 1","exchanges":[{"id":7,"name":"binance_prod_1","display_name":"Binance Prod 1","always_active":true}]}} }
Name Type Description result.exchanges array of object Accessible exchanges for admin.
add_admin_exchange_access
Grant an admin access to additional exchanges.
Request { "jsonrpc":"2.0","id":"25","method":"add_admin_exchange_access","params":{"admin_id":42,"exchanges":["binance_prod_1","deribit_prod_1"]} }
Name Type Description params.exchanges array of string Exchange names to grant.
Response { "jsonrpc":"2.0","id":"25","result":{"admin_id":42,"added":["binance_prod_1","deribit_prod_1"]} }
Name Type Description result.added array of string Successfully granted exchanges.
remove_admin_exchange_access
Revoke an admin's access to specific exchanges.
Request { "jsonrpc":"2.0","id":"26","method":"remove_admin_exchange_access","params":{"admin_id":42,"exchanges":["deribit_prod_1"]} }
Name Type Description params.exchanges array of string Exchange names to revoke.
Response { "jsonrpc":"2.0","id":"26","result":{"admin_id":42,"removed":["deribit_prod_1"]} }
Name Type Description result.removed array of string Successfully revoked exchanges.
Credits
Credit controls including limits, manual adjustments, transaction ledger visibility, and utilisation tracking.
set_client_credit
Set a credit limit on an admin's pool.
Request { "jsonrpc":"2.0","id":"30","method":"set_client_credit","params":{"admin_id":42,"credit_limit":1000000} }
Name Type Description params.admin_id number Admin id. params.credit_limit number New total credit limit.
Response { "jsonrpc":"2.0","id":"30","result":{"admin_id":42,"credit_limit":1000000,"balance":1000000} }
Name Type Description result.balance number Current available balance after setting.
get_client_credits
Current credit balances (single or all admins).
Request { "jsonrpc":"2.0","id":"31","method":"get_client_credits" }
Name Type Description method string get_client_credits
Response { "jsonrpc":"2.0","id":"31","result":{"credits":[{"admin_id":42,"admin_name":"Acme Desk 1","credit_limit":1000000,"balance":850000,"used":150000}]}} }
Name Type Description result.credits array of object Credit snapshot per admin.
adjust_client_credit
Manual deposit / withdrawal on an admin's credit pool.
Request { "jsonrpc":"2.0","id":"32","method":"adjust_client_credit","params":{"admin_id":42,"amount":-50000,"reason":"withdrawal settlement"} }
Name Type Description params.amount number Positive=deposit, negative=withdrawal. params.reason string Ledger reason note.
Response { "jsonrpc":"2.0","id":"32","result":{"admin_id":42,"new_balance":800000,"transaction_id":9101} }
Name Type Description result.new_balance number Balance after adjustment. result.transaction_id number Created ledger transaction id.
get_credit_ledger
Paginated credit transaction history.
Request { "jsonrpc":"2.0","id":"33","method":"get_credit_ledger","params":{"admin_id":42,"limit":50,"offset":0} }
Name Type Description params.limit number Page size. params.offset number Result offset.
Response { "jsonrpc":"2.0","id":"33","result":{"transactions":[{"id":9101,"admin_id":42,"type":"adjustment","amount":-50000,"balance_after":800000,"reason":"withdrawal settlement","timestamp":"2026-04-21T12:15:00Z"}]}} }
Name Type Description result.transactions array of object Credit ledger entries.
get_credit_utilization
Credit usage broken down by SPOT and F&O.
Request { "jsonrpc":"2.0","id":"34","method":"get_credit_utilization","params":{"admin_id":42} }
Name Type Description params.admin_id number Admin id filter.
Response { "jsonrpc":"2.0","id":"34","result":{"utilization":[{"admin_id":42,"admin_name":"Acme Desk 1","spot":{"used":100000,"available":400000},"fno":{"used":50000,"available":250000}}]}} }
Name Type Description result.utilization[].spot object SPOT usage split. result.utilization[].fno object F&O usage split.
User Management
User lifecycle APIs for adding, updating, activating/deactivating, and listing users under admin scopes.
add_user
Create a user under an admin.
Request { "jsonrpc":"2.0","id":"40","method":"add_user","params":{"admin_id":42,"username":"alice","password":"AlicePw!23","email":"alice@acme.com","name":"Alice","is_stealth_user":false} }
Name Type Description params.admin_id number Parent admin id. params.username string User login id. params.is_stealth_user boolean Whether user is stealth mode.
Response { "jsonrpc":"2.0","id":"40","result":{"user":{"id":100,"username":"alice","email":"alice@acme.com","active":true,"is_stealth_user":false,"name":"Alice"}} }
Name Type Description result.user object Created user object.
update_user
Edit user details.
Request { "jsonrpc":"2.0","id":"41","method":"update_user","params":{"user_id":100,"email":"alice.new@acme.com"} }
Name Type Description params.user_id number User id. params.email string Updated email.
Response { "jsonrpc":"2.0","id":"41","result":{"user":{"id":100,"username":"alice","email":"alice.new@acme.com"}} }
Name Type Description result.user object Updated user object.
make_user_inactive
Deactivate a user.
Request { "jsonrpc":"2.0","id":"42","method":"make_user_inactive","params":{"user_id":100} }
Name Type Description params.user_id number User id to deactivate.
Response { "jsonrpc":"2.0","id":"42","result":"ok" }
Name Type Description result string Returns ok on success.
make_user_active
Reactivate a user.
Request { "jsonrpc":"2.0","id":"43","method":"make_user_active","params":{"user_id":100} }
Name Type Description params.user_id number User id to activate.
Response { "jsonrpc":"2.0","id":"43","result":"ok" }
Name Type Description result string Returns ok on success.
Admin Markups
Markup management with support for flat markups, aggregated reports, and PnL-oriented reporting workflows.
set_admin_markup
Add or update a markup for a specific admin-instrument.
Request { "jsonrpc":"2.0","id":"50","method":"set_admin_markup","params":{"admin_id":42,"instrument_id":"BTC/USDT","base_instrument_id":"BTC/USDT","bps":25,"enabled":true} }
Name Type Description params.admin_id number Admin id. params.instrument_id string Instrument pair. params.bps number Markup in basis points. params.enabled boolean Enable/disable markup.
Response { "jsonrpc":"2.0","id":"50","result":{"markup":{"id":501,"admin_id":42,"instrument_id":"BTC/USDT","bps":25,"enabled":true}} }
Name Type Description result.markup object Saved markup object.
delete_admin_markup
Delete admin markup by id.
Request { "jsonrpc":"2.0","id":"51","method":"delete_admin_markup","params":{"markup_id":501} }
Name Type Description params.markup_id number Markup id to delete.
Response { "jsonrpc":"2.0","id":"51","result":"ok" }
Name Type Description result string Returns ok on success.
get_admin_markups
All markups for one admin.
Request { "jsonrpc":"2.0","id":"52","method":"get_admin_markups","params":{"admin_id":42} }
Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"52","result":{"markups":[{"id":501,"admin_id":42,"instrument_id":"BTC/USDT","bps":25,"enabled":true}]}} }
Name Type Description result.markups array of object Admin markup list.
get_aggregated_admin_markups
Markups aggregated per instrument (min bps on overlap).
Request { "jsonrpc":"2.0","id":"53","method":"get_aggregated_admin_markups","params":{"admin_id":42} }
Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"53","result":{"markups":[{"instrument_id":"BTC/USDT","bps":25,"enabled":true}]}} }
Name Type Description result.markups array of object Aggregated markup list.
get_all_managed_admin_markups
All markups across every admin the master manages.
Request { "jsonrpc":"2.0","id":"54","method":"get_all_managed_admin_markups" }
Name Type Description method string get_all_managed_admin_markups
Response { "jsonrpc":"2.0","id":"54","result":{"markups":[{"admin_id":42,"admin_name":"Acme Desk 1","instrument_id":"BTC/USDT","bps":25,"enabled":true}]}} }
Name Type Description result.markups array of object Flattened markups across all managed admins.
get_markup_pnl_report
P&L report for a single admin.
Request { "jsonrpc":"2.0","id":"55","method":"get_markup_pnl_report","params":{"admin_id":42,"period_type":"monthly","anchor_date":"2026-04-01"} }
Name Type Description params.period_type string Period granularity (daily/monthly/etc). params.anchor_date string Report anchor date.
Response { "jsonrpc":"2.0","id":"55","result":{"report":{"period":{"from":"2026-04-01","to":"2026-04-30"},"totals":{"quantity":123.45,"markup_pnl":5432.10},"instruments":[{"instrument_id":"BTC/USDT","qty":10.5,"markup_pnl":2100.0}]}} }
Name Type Description result.report.totals object Aggregate pnl totals. result.report.instruments array of object Instrument-wise pnl rows.
get_all_managed_admin_markup_pnl_report
P&L across every managed admin.
Request { "jsonrpc":"2.0","id":"56","method":"get_all_managed_admin_markup_pnl_report","params":{"period_type":"daily"} }
Name Type Description params.period_type string Requested aggregation period.
Response { "jsonrpc":"2.0","id":"56","result":{"reports":[{"admin_id":42,"admin_name":"Acme Desk 1","period":{"from":"2026-04-21","to":"2026-04-21"},"totals":{"markup_pnl":321.0},"instruments":[]}]}} }
Name Type Description result.reports array of object PnL reports grouped by admin.
Markup Templates / Tiers / Overrides
Template-driven markup configuration, tier definitions, assignment, and admin-level overrides.
create_markup_template
Request { "jsonrpc":"2.0","id":"60","method":"create_markup_template","params":{"name":"Gold Tier","description":"High-volume tiered markup"} }
Name Type Description params.name string Template name. params.description string Template description.
Response { "jsonrpc":"2.0","id":"60","result":{"template":{"id":12,"name":"Gold Tier","description":"High-volume tiered markup","tiers":[]}} }
get_markup_template
Request { "jsonrpc":"2.0","id":"61","method":"get_markup_template","params":{"template_id":12} }
Name Type Description params.template_id number Template id.
Response { "jsonrpc":"2.0","id":"61","result":{"template":{"id":12,"name":"Gold Tier","tiers":[{"id":300,"tier_level":1,"min_threshold":0,"bps":30}]}} }
Name Type Description result.template object Template with tier list.
update_markup_template
Request { "jsonrpc":"2.0","id":"62","method":"update_markup_template","params":{"template_id":12,"name":"Platinum Tier"} }
Name Type Description params.template_id number Template id. params.name string Updated template name.
Response { "jsonrpc":"2.0","id":"62","result":{"template":{"id":12,"name":"Platinum Tier"}} }
Name Type Description result.template object Updated template object.
delete_markup_template
Request { "jsonrpc":"2.0","id":"63","method":"delete_markup_template","params":{"template_id":12} }
Name Type Description params.template_id number Template id to delete.
Response { "jsonrpc":"2.0","id":"63","result":{"deleted":true} }
Name Type Description result.deleted boolean Deletion status.
add_template_tier
Request { "jsonrpc":"2.0","id":"64","method":"add_template_tier","params":{"template_id":12,"tier_level":2,"min_threshold":100000,"bps":20} }
Name Type Description params.template_id number Template id. params.tier_level number Tier order. params.min_threshold number Minimum threshold for tier. params.bps number Tier markup bps.
Response { "jsonrpc":"2.0","id":"64","result":{"tier":{"id":301,"template_id":12,"tier_level":2,"min_threshold":100000,"bps":20}} }
Name Type Description result.tier object Created tier object.
get_template_tiers
Request { "jsonrpc":"2.0","id":"65","method":"get_template_tiers","params":{"template_id":12} }
Name Type Description params.template_id number Template id.
Response { "jsonrpc":"2.0","id":"65","result":{"tiers":[{"id":300,"tier_level":1,"min_threshold":0,"bps":30},{"id":301,"tier_level":2,"min_threshold":100000,"bps":20}]}} }
Name Type Description result.tiers array of object All tiers under template.
update_template_tier
Request { "jsonrpc":"2.0","id":"66","method":"update_template_tier","params":{"tier_id":301,"bps":18} }
Name Type Description params.tier_id number Tier id. params.bps number Updated bps.
Response { "jsonrpc":"2.0","id":"66","result":{"tier":{"id":301,"tier_level":2,"min_threshold":100000,"bps":18}} }
Name Type Description result.tier object Updated tier object.
delete_template_tier
Request { "jsonrpc":"2.0","id":"67","method":"delete_template_tier","params":{"tier_id":301} }
Name Type Description params.tier_id number Tier id to delete.
Response { "jsonrpc":"2.0","id":"67","result":"ok" }
Name Type Description result string Returns ok on success.
assign_markup_template_to_admin
Request { "jsonrpc":"2.0","id":"68","method":"assign_markup_template_to_admin","params":{"admin_id":42,"template_id":12,"enabled":true} }
Name Type Description params.admin_id number Admin id. params.template_id number Template id. params.enabled boolean Assignment enabled state.
Response { "jsonrpc":"2.0","id":"68","result":{"assignment":{"id":900,"admin_id":42,"template_id":12,"enabled":true}} }
Name Type Description result.assignment object Created assignment object.
unassign_markup_template_from_admin
Request { "jsonrpc":"2.0","id":"69","method":"unassign_markup_template_from_admin","params":{"admin_id":42,"template_id":12} }
Name Type Description params.admin_id number Admin id. params.template_id number Template id.
Response { "jsonrpc":"2.0","id":"69","result":"ok" }
Name Type Description result string Returns ok on success.
add_admin_markup_override
Request { "jsonrpc":"2.0","id":"70","method":"add_admin_markup_override","params":{"admin_id":42,"instrument_id":"ETH/USDT","base_instrument_id":"ETH/USDT","bps":15,"enabled":true} }Name Type Description params.admin_id number Admin id. params.instrument_id string Instrument symbol. params.base_instrument_id string Base instrument symbol. params.bps number Markup in basis points. params.enabled boolean Override enabled state.
Response { "jsonrpc":"2.0","id":"70","result":{"override":{"id":777,"admin_id":42,"instrument_id":"ETH/USDT","bps":15,"enabled":true}} }Name Type Description result.override object Created override object.
update_admin_markup_override
Request { "jsonrpc":"2.0","id":"71","method":"update_admin_markup_override","params":{"override_id":777,"bps":10} }Name Type Description params.override_id number Override id. params.bps number Updated bps value.
Response { "jsonrpc":"2.0","id":"71","result":{"override":{"id":777,"admin_id":42,"instrument_id":"ETH/USDT","bps":10,"enabled":true}} }Name Type Description result.override object Updated override object.
delete_admin_markup_override
Request { "jsonrpc":"2.0","id":"72","method":"delete_admin_markup_override","params":{"override_id":777} }Name Type Description params.override_id number Override id to delete.
Response { "jsonrpc":"2.0","id":"72","result":"ok" }Name Type Description result string Returns ok on success.
list_markup_templates
Request { "jsonrpc":"2.0","id":"73","method":"list_markup_templates" }
Response { "jsonrpc":"2.0","id":"73","result":{"templates":[{"id":12,"name":"Gold Tier","description":"..."}]}} }Name Type Description result.templates array of object All markup templates.
list_admin_markup_assignments
Request { "jsonrpc":"2.0","id":"74","method":"list_admin_markup_assignments","params":{"admin_id":42} }Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"74","result":{"assignments":[{"id":900,"admin_id":42,"template_id":12,"enabled":true}]}} }Name Type Description result.assignments array of object Template assignments for the admin.
list_admin_markup_overrides
Request { "jsonrpc":"2.0","id":"75","method":"list_admin_markup_overrides","params":{"admin_id":42} }Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"75","result":{"overrides":[{"id":777,"admin_id":42,"instrument_id":"ETH/USDT","bps":10,"enabled":true}]}} }Name Type Description result.overrides array of object Per-instrument overrides for the admin.
Instrument Segments
Segment management APIs used to organize and control instrument universes exposed to downstream users.
list_instrument_segments
Request { "jsonrpc":"2.0","id":"80","method":"list_instrument_segments" }
Response { "jsonrpc":"2.0","id":"80","result":{"segments":[{"id":5,"name":"Majors","description":"BTC/ETH majors","member_count":2}]}} }Name Type Description result.segments array of object All instrument segments with member counts.
create_instrument_segment
Request { "jsonrpc":"2.0","id":"81","method":"create_instrument_segment","params":{"name":"Altcoins","description":"Mid-cap alts"} }Name Type Description params.name string Segment name. params.description string Segment description.
Response { "jsonrpc":"2.0","id":"81","result":{"segment":{"id":6,"name":"Altcoins","description":"Mid-cap alts","member_count":0}} }Name Type Description result.segment object Created segment object.
update_instrument_segment
Request { "jsonrpc":"2.0","id":"82","method":"update_instrument_segment","params":{"segment_id":6,"name":"Alt Coins"} }Name Type Description params.segment_id number Segment id. params.name string Updated segment name.
Response { "jsonrpc":"2.0","id":"82","result":{"segment":{"id":6,"name":"Alt Coins","description":"Mid-cap alts","member_count":0}} }Name Type Description result.segment object Updated segment object.
delete_instrument_segment
Request { "jsonrpc":"2.0","id":"83","method":"delete_instrument_segment","params":{"segment_id":6} }Name Type Description params.segment_id number Segment id to delete.
Response { "jsonrpc":"2.0","id":"83","result":"ok" }Name Type Description result string Returns ok on success.
list_instrument_segment_members
Request { "jsonrpc":"2.0","id":"84","method":"list_instrument_segment_members","params":{"segment_id":5} }Name Type Description params.segment_id number Segment id.
Response { "jsonrpc":"2.0","id":"84","result":{"members":[{"id":1000,"instrument_id":"BTC/USDT"},{"id":1001,"instrument_id":"ETH/USDT"}]}} }Name Type Description result.members array of object Instruments in the segment.
add_instrument_segment_member
Request { "jsonrpc":"2.0","id":"85","method":"add_instrument_segment_member","params":{"segment_id":5,"instrument_id":"SOL/USDT"} }Name Type Description params.segment_id number Segment id. params.instrument_id string Instrument symbol to add.
Response { "jsonrpc":"2.0","id":"85","result":{"member":{"id":1002,"segment_id":5,"instrument_id":"SOL/USDT"}} }Name Type Description result.member object Added member object.
remove_instrument_segment_member
Request { "jsonrpc":"2.0","id":"86","method":"remove_instrument_segment_member","params":{"segment_id":5,"instrument_id":"SOL/USDT"} }Name Type Description params.segment_id number Segment id. params.instrument_id string Instrument symbol to remove.
Response { "jsonrpc":"2.0","id":"86","result":"ok" }Name Type Description result string Returns ok on success.
set_admin_markup_by_segment
Request { "jsonrpc":"2.0","id":"87","method":"set_admin_markup_by_segment","params":{"admin_id":42,"segment_id":5,"bps":25} }Name Type Description params.admin_id number Admin id. params.segment_id number Segment id. params.bps number Markup bps to apply to every instrument in the segment.
Response { "jsonrpc":"2.0","id":"87","result":{"updated_count":2} }Name Type Description result.updated_count number Number of instruments updated.
Vendors allowlist
Controls for allowlisting vendor integrations and restricting access to approved external providers.
get_allowed_vendors_for_admin
Request { "jsonrpc":"2.0","id":"90","method":"get_allowed_vendors_for_admin","params":{"admin_id":42} }Name Type Description params.admin_id number Admin id.
Response { "jsonrpc":"2.0","id":"90","result":{"admin_id":42,"vendors":["binance","deribit"]} }Name Type Description result.admin_id number Admin id. result.vendors array of string Allowlisted vendor identifiers.
set_allowed_vendors_for_admin
Request { "jsonrpc":"2.0","id":"91","method":"set_allowed_vendors_for_admin","params":{"admin_id":42,"vendors":["binance","okx"]} }Name Type Description params.admin_id number Admin id. params.vendors array of string Vendor identifiers to allow.
Response { "jsonrpc":"2.0","id":"91","result":{"admin_id":42,"vendors":["binance","okx"]} }Name Type Description result.admin_id number Admin id. result.vendors array of string Updated vendor allowlist.
Exchange metadata APIs for retrieving capabilities, identifiers, and display-level information required by clients.
get_exc_info
Return supported exchanges and required credential fields.
Request { "jsonrpc":"2.0","id":"100","method":"get_exc_info" }
Response { "jsonrpc":"2.0","id":"100","result":{"info":[{"name":"binance","api_key":"true","secret":"true","passphrase":"false"},{"name":"deribit","api_key":"true","secret":"true"}]}} }Name Type Description result.info array of object Supported exchanges and required credential fields.
Real-time Subscriptions
Subscriptions are long-lived and push multiple responses with the same request id, each including seq_nr. Cancel with unsubscribe.
subscribe_balances
Request { "jsonrpc":"2.0","id":"bal-1","method":"subscribe_balances","params":{"incremental":true} }Name Type Description params.incremental boolean If true, only deltas are pushed after the initial snapshot.
Initial push { "jsonrpc":"2.0","id":"bal-1","result":{"seq_nr":1,"exchanges":["binance_prod_1"],"balances":{"binance_prod_1":{"USDT":{"free":1000,"used":0,"total":1000}}},"other_balances":{},"is_inverse":false}} }Name Type Description result.seq_nr number Monotonic sequence number for this subscription. result.exchanges array of string Connected exchange account identifiers. result.balances object Per-exchange balance map keyed by asset. result.other_balances object Auxiliary balance buckets (staking, earn, etc.). result.is_inverse boolean Whether balances are in inverse-contract units.
subscribe_algo_executions
Request { "jsonrpc":"2.0","id":"algo-1","method":"subscribe_algo_executions","params":{} }
Push { "jsonrpc":"2.0","id":"algo-1","result":{"seq_nr":1,"executions":[{"id":501,"algo_id":77,"status":"running","filled_qty":0.5,"timestamp":"2026-04-21T12:30:00Z"}]}} }Name Type Description result.seq_nr number Monotonic sequence number for this subscription. result.executions array of object Algo execution snapshots.
subscribe_algo_execution_logs
Request { "jsonrpc":"2.0","id":"alog-1","method":"subscribe_algo_execution_logs","params":{} }
Push { "jsonrpc":"2.0","id":"alog-1","result":{"seq_nr":1,"logs":[{"id":9001,"algo_id":77,"level":"INFO","message":"child order sent","timestamp":"2026-04-21T12:30:00Z"}]}} }Name Type Description result.seq_nr number Monotonic sequence number for this subscription. result.logs array of object Algo execution log entries.
unsubscribe
Request { "jsonrpc":"2.0","id":"bal-1","method":"unsubscribe" }
Response { "jsonrpc":"2.0","id":"bal-1","result":"ok" }Name Type Description result string Returns ok on success. The id identifies which subscription to cancel.
RBAC
Role-based access control APIs including role definitions, permission overrides, and effective permission reads.
get_roles
Request { "jsonrpc":"2.0","id":"110","method":"get_roles" }
Response { "jsonrpc":"2.0","id":"110","result":{"roles":[{"id":1,"name":"super_admin","permissions":["manage_admins","manage_credits","manage_markups"]},{"id":2,"name":"ops","permissions":["manage_credits"]}]}} }Name Type Description result.roles array of object Defined roles with their permission lists.
set_master_role
Request { "jsonrpc":"2.0","id":"111","method":"set_master_role","params":{"master_id":3,"role_id":2} }Name Type Description params.master_id number Master id. params.role_id number Role id to assign.
Response { "jsonrpc":"2.0","id":"111","result":{"master_id":3,"role_id":2,"role_name":"ops"} }Name Type Description result.master_id number Master id. result.role_id number Assigned role id. result.role_name string Assigned role name.
set_master_permission_overrides
Request { "jsonrpc":"2.0","id":"112","method":"set_master_permission_overrides","params":{"master_id":3,"permissions":{"manage_markups":true,"delete_master":false}} }Name Type Description params.master_id number Master id. params.permissions object Map of permission key to boolean overriding the role default.
Response { "jsonrpc":"2.0","id":"112","result":{"master_id":3,"overrides":{"manage_markups":true,"delete_master":false}} }Name Type Description result.master_id number Master id. result.overrides object Final override map applied to the master.
get_master_permissions
Request { "jsonrpc":"2.0","id":"113","method":"get_master_permissions","params":{"master_id":3} }Name Type Description params.master_id number Master id.
Response { "jsonrpc":"2.0","id":"113","result":{"permissions":{"manage_admins":false,"manage_credits":true,"manage_markups":true}} }Name Type Description result.permissions object Effective permission map for the master.
get_my_permissions
Request { "jsonrpc":"2.0","id":"114","method":"get_my_permissions" }
Response { "jsonrpc":"2.0","id":"114","result":{"permissions":{"manage_admins":true,"manage_credits":true}} }Name Type Description result.permissions object Effective permission map for the current caller.
Master CRUD
Master-level create/read/delete operations for super-admin flows.
create_master
Request { "jsonrpc":"2.0","id":"120","method":"create_master","params":{"username":"master_ops","password":"Pw!23","email":"ops@acme.com","name":"Ops Master"} }Name Type Description params.username string Login username. params.password string Initial password. params.email string Contact email. params.name string Display name.
Response { "jsonrpc":"2.0","id":"120","result":{"master":{"id":4,"username":"master_ops","email":"ops@acme.com","active":true,"name":"Ops Master"}} }Name Type Description result.master object Created master object.
get_masters
Request { "jsonrpc":"2.0","id":"121","method":"get_masters" }
Response { "jsonrpc":"2.0","id":"121","result":{"masters":[{"id":1,"username":"master_acme","email":"main@acme.com","active":true,"name":"Acme Root"}]}} }Name Type Description result.masters array of object All masters.
delete_master
Request { "jsonrpc":"2.0","id":"122","method":"delete_master","params":{"master_id":4} }Name Type Description params.master_id number Master id to delete.
Response { "jsonrpc":"2.0","id":"122","result":"ok" }Name Type Description result string Returns ok on success.