Типи TypeScript
Типи відповідей, запитів і кадрів стріму.
Decimal
type Decimal = stringДесяткове число так, як його надсилає термінал: "67000.10" лишається
"67000.10". Ніколи не перетворюйте його через Number() — для
арифметики візьміть бібліотеку десяткових чисел.
Timestamp
type Timestamp = numberМілісекунди UTC від початку епохи, ціле число.
InstrumentAddress
type InstrumentAddress = stringАдреса інструмента: exchange:market:symbol, біржа малими літерами.
Side
type Side = "buy" | "sell"Сторона угоди.
Scope
type Scope = "market:read" | "connections:read" | "account:read" | "trading:write" | OpenStringПрава токена, відомі v1. У межах v1 можуть з’являтися нові права.
MarketTopic
type MarketTopic = "trades" | "ticker" | "mark_price" | "book.top" | "clusters"Ринкові топіки: під час підписки instrument обов’язковий, connection_id вибирається за загальним правилом.
AccountTopic
type AccountTopic = "account.orders" | "account.positions" | "account.balances" | "account.fills"Топіки рахунку: під час підписки connection_id обов’язковий, instrument не використовується.
TerminalTopic
type TerminalTopic = "workspace" | "settings"Власні топіки термінала: один на термінал, підписка без інструмента й підключення.
WorkspaceTopic
type WorkspaceTopic = "workspace"Topic
type Topic = MarketTopic | AccountTopic | TerminalTopicТопіки стріму, відомі v1.
ErrorCode
type ErrorCode = | "unauthorized"
| "forbidden"
| "forbidden_scope"
| "not_found"
| "invalid_request"
| "unsupported"
| "not_active"
| "rate_limited"
| "not_tradable"
| "unavailable"
| OpenStringКоди помилок контракту. У межах v1 можуть з’являтися нові коди.
ConnectionState
type ConnectionState = "disabled" | "enabled" | "connecting" | "connected" | "failed"status.state підключення.
OrderType
type OrderType = "limit" | "market"Тип заявки: limit потребує ціни, market її не приймає.
OrderStatus
type OrderStatus = "pending" | "open" | "partially_filled"Статус відкритої заявки.
TriggerType
type TriggerType = "stop_loss" | "take_profit" | "stop"Вид тригерної заявки.
TriggerRule
type TriggerRule = "price_above_or_equal" | "price_below_or_equal"Коли спрацьовує тригер.
TriggerStatus
type TriggerStatus = "open" | "finished" | "inactive" | "invalid"Статус тригерної заявки.
PositionSide
type PositionSide = "long" | "short"Сторона позиції.
TimeInForce
type TimeInForce = "gtc" | "ioc" | "fok" | "post_only"Строк дії поставленої заявки; відсутній — типове значення біржі.
ErrorEnvelope
Конверт помилки, який містить кожна відповідь не 2xx.
| Поле | Тип | Опис |
|---|---|---|
error | { code: ErrorCode; message: string; } |
List
Списки загортаються в { data: [...] }.
| Поле | Тип | Опис |
|---|---|---|
data | T[] |
Limits
Ліміти, які друкує /v1/meta.
| Поле | Тип | Опис |
|---|---|---|
ws_connections_per_token | number | |
subscriptions_per_connection | number | |
api_only_instruments | number | |
exchange_subscriptions_per_second | number | |
commands_per_secondнеобов’язковий | number | Торгових команд на секунду на листенер. Відсутній у терміналах, старших за етап запису Local API. |
workspace_commands_per_secondнеобов’язковий | number | Команд робочого простору на секунду на листенер. Відсутній до етапу «Вікно». |
settings_commands_per_secondнеобов’язковий | number | Записів налаштувань на секунду на листенер. Відсутній до етапу «Налаштування». |
Meta
GET /v1/meta.
| Поле | Тип | Опис |
|---|---|---|
api_version | string | "1" для цього контракту. |
app_version | string | |
build_hash | string | |
build_env | string | |
features | string | Увімкнені можливості збірки одним рядком. |
scopes | Scope[] | Права, надані токену, яким зроблено запит. |
limits | Limits | |
topics | Topic[] | Порожній, якщо термінал зібрано без відводу ринкових даних. |
Health
GET /v1/health.
| Поле | Тип | Опис |
|---|---|---|
status | string | |
uptime_ms | number | |
clients | number | Відкриті з’єднання стріму. |
streams | number | Пари, які тримає хаб. |
api_only_instruments | number | Пари, відкриті лише для API. |
dropped_events | number | Події, які хаб не прийняв із циклу ринкових даних. |
dropped_frames | number | Кадри, які не вмістилися в черги клієнтів. |
overflow_closes | number | Клієнти, закриті з кодом 4008. |
stream_available | boolean | false, якщо збірка не має відводу ринкових даних. |
ConnectionEvent
Останній запис історії підключення.
| Поле | Тип | Опис |
|---|---|---|
code | string | Код із тієї самої стрічки, яку показує Settings App. |
ts | Timestamp |
ConnectionStatus
Статус підключення, виведений із перемикача і стрічки історії.
| Поле | Тип | Опис |
|---|---|---|
state | ConnectionState | |
last_eventнеобов’язковий | ConnectionEvent | Відсутній, якщо в цій сесії підключення не має записів історії. |
Connection
Підключення термінала. Не містить секретів: ні ключів, ні адреси, ні маски.
| Поле | Тип | Опис |
|---|---|---|
id | number | |
exchange | string | Назва біржі малими літерами, як в адресах інструментів. |
market | string | spot, futures, … |
label | string | |
enabled | boolean | |
read_only | boolean | Підключення без облікових даних, створене терміналом для ринкових даних. |
has_credentials | boolean | |
proxy_bound | boolean | |
status | ConnectionStatus |
Instrument
Інструмент із довідника біржі.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
exchange | string | |
market | string | |
symbol | string | |
base | string | |
quote | string | |
status | string | Як повідомила біржа: active, inactive, … |
tick_size | Decimal | null | null, якщо біржа його не повідомила. |
lot_size | Decimal | null | |
min_size | Decimal | null | |
contract_value | Decimal | null |
InstrumentsPage
Одна сторінка GET /v1/instruments.
| Поле | Тип | Опис |
|---|---|---|
exchange | string | |
market | string | |
data | Instrument[] | |
next_cursor | string | null | Передається як cursor для наступної сторінки; на останній сторінці — null. |
Candle
Свічка; ts — час відкриття бара, volume — у базовій монеті.
| Поле | Тип | Опис |
|---|---|---|
ts | Timestamp | |
open | Decimal | |
high | Decimal | |
low | Decimal | |
close | Decimal | |
volume | Decimal | |
quote_volume | Decimal | |
closed | boolean |
Candles
GET /v1/market/candles.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_id | number | |
interval | string | |
data | Candle[] |
Interval
Інтервал, який знає термінал; duration_ms — номінальна тривалість (30 днів для 1M).
| Поле | Тип | Опис |
|---|---|---|
id | string | |
duration_ms | number |
Intervals
GET /v1/market/intervals.
| Поле | Тип | Опис |
|---|---|---|
candles | Interval[] | |
clusters | Interval[] |
Trade
Угода. ts — момент, коли вона пройшла через термінал.
| Поле | Тип | Опис |
|---|---|---|
id | string | null | Ідентифікатор угоди на біржі; у v1 завжди null. |
price | Decimal | |
qty | Decimal | |
side | Side | |
ts | Timestamp | |
exchange_ts | Timestamp |
Trades
GET /v1/market/trades, від старих до нових.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_id | number | |
data | Trade[] |
Level
type Level = [price: Decimal, size: Decimal]Рівень стакана як [price, size].
Ticker
24-годинний тікер.
| Поле | Тип | Опис |
|---|---|---|
price | Decimal | |
change_24h_pct | Decimal | null | |
volume_24h | Decimal | |
high_24h | Decimal | null | |
low_24h | Decimal | null | |
best_bid | Decimal | null | |
best_ask | Decimal | null | |
ts | Timestamp |
MarkPrice
Ціна маркування, data події mark_price.
| Поле | Тип | Опис |
|---|---|---|
mark_price | Decimal | |
ts | Timestamp |
Snapshot
GET /v1/market/snapshot: найсвіжіше, що хаб знає про пару.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_id | number | |
ts | Timestamp | |
best_bid | Level | null | Зі стакана хаба; null, поки не надійшов знімок стакана. |
best_ask | Level | null | |
last_trade | Trade | null | |
mark_price | Decimal | null | |
ticker | Ticker | null |
BookTop
Верх стакана: біди від найкращої ціни вниз, аски від найкращої вгору.
| Поле | Тип | Опис |
|---|---|---|
ts | Timestamp | |
depth | number | |
bids | Level[] | |
asks | Level[] |
Orderbook
interface Orderbook extends BookTopGET /v1/market/orderbook.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_id | number |
ClusterLevel
Один ціновий рівень бакета кластерів.
| Поле | Тип | Опис |
|---|---|---|
price | Decimal | |
volume | Decimal | |
buy_volume | Decimal | |
sell_volume | Decimal | |
buy_trades | number | |
sell_trades | number |
ClusterBucket
Бакет кластерів; levels ідуть від найнижчої ціни до найвищої.
| Поле | Тип | Опис |
|---|---|---|
interval | string | |
ts | Timestamp | Початок бакета. |
end_ts | Timestamp | |
volume | Decimal | |
buy_volume | Decimal | |
sell_volume | Decimal | |
trades | number | |
vwap | Decimal | null | null для бакета без угод. |
min_price | Decimal | null | |
max_price | Decimal | null | |
completed | boolean | |
last_trade_ts | Timestamp | 0 для бакета з історії без часу угоди. |
levels | ClusterLevel[] |
Clusters
GET /v1/market/clusters, від старих до нових, не більше десяти бакетів.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_id | number | |
interval | string | Інтервал, вибраний для інструмента в терміналі. |
ts | Timestamp | |
data | ClusterBucket[] |
Order
Відкрита заявка підключення.
| Поле | Тип | Опис |
|---|---|---|
key | string | null | Ключ заявки в терміналі (t-…); null, поки невідомий. |
exchange_id | string | null | Ідентифікатор заявки на біржі; null, поки невідомий. |
instrument | InstrumentAddress | |
side | Side | |
type | OrderType | |
price | Decimal | |
size | Decimal | У базовій монеті. |
filled | Decimal | |
remaining | Decimal | |
notional | Decimal | null | Сума у валюті котирування, яку ввів трейдер; null для заявки зі знімка біржі. |
status | OrderStatus | |
created_ts | Timestamp |
TriggerOrder
Тригерна заявка (стоп-лос, тейк-профіт, стоп) підключення.
| Поле | Тип | Опис |
|---|---|---|
id | string | |
instrument | InstrumentAddress | |
type | TriggerType | |
trigger_price | Decimal | |
rule | TriggerRule | |
size | Decimal | null | |
notional | Decimal | null | |
status | TriggerStatus | |
order_type | string | null | Заявка, яка ставиться, коли тригер спрацьовує; null, якщо невідома. |
client_id | string | null | |
created_ts | Timestamp | null |
AccountOrders
GET /v1/account/orders: відкриті заявки й тригерні заявки одного підключення.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
data | Order[] | |
triggers | TriggerOrder[] |
Position
Відкрита позиція.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
side | PositionSide | |
size | Decimal | У базовій монеті; на MOEX — у лотах. |
lot_size | Decimal | Базових одиниць в одному лоті. |
entry_price | Decimal | |
notional | Decimal | У валюті котирування. |
unrealized_pnl | Decimal | Як рахує термінал. |
mark_price | Decimal | null | Ціна маркування термінала: найкращий bid для лонга, найкращий ask для шорта; null до першого тика стакана. |
AccountPositions
GET /v1/account/positions.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
data | Position[] |
Balance
Останній баланс однієї валюти, як його повідомила біржа.
| Поле | Тип | Опис |
|---|---|---|
currency | string | |
total | Decimal | |
available | Decimal | null | null, якщо біржа його не повідомляє. |
locked | Decimal | null | |
ts | Timestamp | Час біржі, де він є, інакше — час отримання. |
AccountBalances
GET /v1/account/balances: валюти, які змінилися відтоді, як увімкнено API.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
data | Balance[] |
Fill
Виконання власної заявки підключення.
| Поле | Тип | Опис |
|---|---|---|
trade_id | string | |
order_id | string | |
instrument | InstrumentAddress | |
side | Side | |
price | Decimal | |
qty | Decimal | |
fee | Decimal | |
fee_currency | string | |
position_side | PositionSide | null | long / short на біржах із режимом хеджування, інакше — null. |
ts | Timestamp |
AccountFills
GET /v1/account/fills, від старих до нових.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
data | Fill[] |
PlaceOrderRequest
Тіло POST /v1/orders, як воно надсилається.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
side | Side | |
type | OrderType | |
priceнеобов’язковий | Decimal | Обов’язкова для limit, відсутня для market. |
sizeнеобов’язковий | Decimal | Кількість у базовій монеті; рівно одне з size і notional. |
notionalнеобов’язковий | Decimal | Сума у валюті котирування; рівно одне з size і notional. |
reduce_onlyнеобов’язковий | boolean | |
post_onlyнеобов’язковий | boolean | |
time_in_forceнеобов’язковий | TimeInForce | |
client_keyнеобов’язковий | string | Ключ ідемпотентності: повтор із тим самим ключем повертає попередню відповідь. |
InstrumentCommandRequest
Тіло POST /v1/orders/cancel-all, POST /v1/orders/trigger/cancel-all і POST /v1/positions/close.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress |
PlaceTriggerRequest
Тіло POST /v1/orders/trigger. stop_loss і take_profit ставляться
на відкриту позицію (сторона, розмір і правило беруться з неї); stop
несе власні side, notional і необов’язкове rule.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
kind | TriggerType | |
trigger_price | Decimal | |
sideнеобов’язковий | Side | Лише для stop. |
notionalнеобов’язковий | Decimal | Лише для stop: сума у валюті котирування. |
ruleнеобов’язковий | TriggerRule | Лише для stop; без нього — вище ринку для купівлі, нижче для продажу. |
client_keyнеобов’язковий | string | Ключ ідемпотентності, як у POST /v1/orders. |
AmendTriggerRequest
Тіло PATCH /v1/orders/trigger/{id}: нова тригерна ціна.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
kind | TriggerType | |
trigger_price | Decimal | |
sideнеобов’язковий | Side | Лише для stop. |
ruleнеобов’язковий | TriggerRule | Лише для stop. |
LeverageMode
type LeverageMode = "manual" | "max" | "smart"Режим плеча інструмента в терміналі, а не на біржі.
MarginMode
type MarginMode = "cross" | "isolated"Режим маржі ф’ючерсного інструмента.
Leverage
GET /v1/account/leverage: плече і режим маржі одного ф’ючерсного
інструмента з кешу термінала. Інструмент, якого термінал ще не торкався,
відповідає 409 not_active.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
leverage | number | |
max_leverage | number | |
mode | LeverageMode | |
margin_mode | MarginMode |
SetLeverageRequest
Тіло POST /v1/account/leverage: рівно одне з leverage і mode.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
leverageнеобов’язковий | number | Ціле число, не менше за 1. |
modeнеобов’язковий | "max" | "smart" |
SetMarginModeRequest
Тіло POST /v1/account/margin-mode.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
margin_mode | MarginMode |
Accepted
Відповідь на кожну торгову команду: прийнято терміналом, а не біржею.
Підтвердження, виконання або відмова біржі надходять через
account.orders у стрімі або GET /v1/account/orders.
| Поле | Тип | Опис |
|---|---|---|
accepted | boolean | |
operation_id | string | Операція у файлі операцій термінала. |
key | string | null | Ключ термінала, під яким заявка (t-…) або тригер (sl_…, tp_…,
stop_…) з’являється в account.orders; null для скасувань, змін і
плеча. |
connection_id | number | |
instrument | InstrumentAddress |
CellPosition
Комірка сітки вкладки: колонка зліва направо, рядок згори донизу, комірка в рядку.
| Поле | Тип | Опис |
|---|---|---|
column | number | |
row | number | |
cell | number |
Stack
Стек — стакан зі стрічкою угод і кластерами — у вкладці. widget_id
глобальний для цього запуску термінала; instrument і connection_id
дорівнюють null, поки стек empty; position дорівнює null для
стека, схованого в групі стеків.
| Поле | Тип | Опис |
|---|---|---|
widget_id | number | |
instrument | InstrumentAddress | null | |
connection_id | number | null | |
empty | boolean | |
frozen | boolean | |
position | CellPosition | null |
Chart
Графік у вкладці; owner_widget_id — стек, за яким він іде, null для самостійного графіка.
| Поле | Тип | Опис |
|---|---|---|
widget_id | number | |
instrument | InstrumentAddress | null | |
connection_id | number | null | |
interval | string | Код інтервалу свічок (1m, 5m, …). |
owner_widget_id | number | null | |
position | CellPosition | null |
Tab
Вкладка вікна: id нумерується в кожному вікні з 1; рівно одна вкладка вікна active.
| Поле | Тип | Опис |
|---|---|---|
id | number | |
name | string | |
active | boolean | |
stacks | Stack[] | |
charts | Chart[] |
WindowGeometry
Положення і розмір вікна в логічних пікселях екрана.
| Поле | Тип | Опис |
|---|---|---|
x | number | |
y | number | |
width | number | |
height | number | |
maximized | boolean |
Window
Вікно термінала; main через API закрити не можна, chart_window — відокремлений графік.
| Поле | Тип | Опис |
|---|---|---|
id | number | |
main | boolean | |
chart_window | boolean | |
focused | boolean | |
geometry | WindowGeometry | |
monitor | string | null | Назва монітора в ОС або null. |
tabs | Tab[] |
WorkspaceSnapshot
data у GET /v1/workspace і в події workspace: усі вікна за зростанням id.
| Поле | Тип | Опис |
|---|---|---|
windows | Window[] |
Workspace
GET /v1/workspace. Ідентифікатори внутрішні для цього запуску термінала.
| Поле | Тип | Опис |
|---|---|---|
data | WorkspaceSnapshot |
WorkspaceWindow
GET /v1/workspace/windows/{id}.
| Поле | Тип | Опис |
|---|---|---|
data | Window |
OpenTarget
type OpenTarget = "new_tab" | "new_window"Куди потрапляє відкрите в робочому просторі.
OpenStackRequest
Тіло POST /v1/workspace/stacks.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_idнеобов’язковий | number | |
chartнеобов’язковий | boolean | Графік того самого інструмента над стеком. |
targetнеобов’язковий | OpenTarget | new_tab (типово) або new_window. |
window_idнеобов’язковий | number | Вікно для нової вкладки; без нього — вікно у фокусі. |
activateнеобов’язковий | boolean | false відкриває вкладку у фоні; нове вікно завжди отримує фокус. |
OpenMultiviewRequest
Тіло POST /v1/workspace/multiview.
| Поле | Тип | Опис |
|---|---|---|
base | string | Монета (BTC) або пара (BTC/USDT). |
targetнеобов’язковий | OpenTarget | Без нього вирішує налаштування «Відкривати» мультив’ю. |
window_idнеобов’язковий | number | |
activateнеобов’язковий | boolean |
TabItemRequest
Одна колонка POST /v1/workspace/tabs і …/tabs/{tab}/stacks: стек і, з chart, графік над ним.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_idнеобов’язковий | number | |
chartнеобов’язковий | boolean |
OpenTabRequest
Тіло POST /v1/workspace/tabs: колонка на кожен елемент, від одного до п’ятдесяти.
| Поле | Тип | Опис |
|---|---|---|
items | TabItemRequest[] | |
nameнеобов’язковий | string | До 64 символів; без неї термінал називає вкладку за інструментами. |
targetнеобов’язковий | OpenTarget | |
window_idнеобов’язковий | number | |
activateнеобов’язковий | boolean |
AddStacksRequest
Тіло POST /v1/workspace/windows/{id}/tabs/{tab}/stacks.
| Поле | Тип | Опис |
|---|---|---|
items | TabItemRequest[] |
StackInstrumentRequest
Тіло PATCH /v1/workspace/stacks/{widget_id}.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
connection_idнеобов’язковий | number |
WorkspaceOutcome
Що зробило вікно за командою робочого простору. Для відкриття: вікно,
нова вкладка та її stacks і charts у порядку колонок. Для закриття й
активації: зачеплені ідентифікатори, решта — null або порожня.
| Поле | Тип | Опис |
|---|---|---|
window_id | number | null | |
tab_id | number | null | |
stacks | number[] | |
charts | number[] |
SettingRow
Один рядок таблиці налаштувань термінала, як він зберігається. scope —
global або order_book; scope_id — default, адреса інструмента або
null для гарячих клавіш; connection_id — підключення-власник або
null. value — декодований JSON, числа як записано. writable каже, чи
приймає ключ PATCH /v1/settings; кадр стріму settings такого прапорця
не несе.
| Поле | Тип | Опис |
|---|---|---|
scope | string | |
scope_id | string | null | |
connection_id | number | null | |
category | string | |
key | string | |
value | unknown | |
writableнеобов’язковий | boolean |
Settings
GET /v1/settings: рядки так, як вони зберігаються, без підставлених типових значень.
| Поле | Тип | Опис |
|---|---|---|
data | SettingRow[] |
ResolvedFrom
type ResolvedFrom = "instrument" | "connection" | "app_instrument" | "global" | OpenStringРівень, з якого взято налаштування стека.
OrderbookSetting
Одне налаштування стека з рівнем, з якого воно взяте.
| Поле | Тип | Опис |
|---|---|---|
value | unknown | |
resolved_from | ResolvedFrom | |
writable | boolean |
OrderbookSettings
GET /v1/settings/orderbook: data[category][key] такими, як їх бачить стек інструмента.
| Поле | Тип | Опис |
|---|---|---|
connection_id | number | |
instrument | InstrumentAddress | |
data | Record<string, Record<string, OrderbookSetting>> |
SettingChange
Одна зміна PATCH /v1/settings. instrument адресує рядок пари (область
order_book); connection_id із scope: "order_book" і без інструмента
адресує типове значення підключення; без обох адресується глобальне
типове значення. Глобальні налаштування підключення не приймають.
| Поле | Тип | Опис |
|---|---|---|
scopeнеобов’язковий | "global" | "order_book" | |
instrumentнеобов’язковий | InstrumentAddress | |
connection_idнеобов’язковий | number | |
category | string | |
key | string | |
value | unknown |
UpdateSettingsRequest
Тіло PATCH /v1/settings.
| Поле | Тип | Опис |
|---|---|---|
changes | SettingChange[] |
SettingsApplied
PATCH /v1/settings: скільки змін застосовано (усі, інакше виклик відхилено).
| Поле | Тип | Опис |
|---|---|---|
applied | number |
BookTopParams
Параметри підписки book.top; інші топіки їх не приймають. Назви як на дроті.
| Поле | Тип | Опис |
|---|---|---|
depthнеобов’язковий | number | 1–200, типово 50. |
interval_msнеобов’язковий | number | Інтервал конфляції, не менше 50, типово 100. |
SubscribeRequest
Запит subscribe, як він надсилається.
| Поле | Тип | Опис |
|---|---|---|
type | "subscribe" | |
request_id | string | |
topic | Topic | |
instrumentнеобов’язковий | InstrumentAddress | Обов’язковий для ринкових топіків, для account.* не передається. |
connection_idнеобов’язковий | number | Для ринкових топіків вибирається за загальним правилом, для account.* обов’язковий. |
paramsнеобов’язковий | BookTopParams |
UnsubscribeRequest
Запит unsubscribe, як він надсилається.
| Поле | Тип | Опис |
|---|---|---|
type | "unsubscribe" | |
request_id | string | |
sub | string |
SubscribedFrame
Відповідь сервера на subscribe.
| Поле | Тип | Опис |
|---|---|---|
type | "subscribed" | |
request_idнеобов’язковий | string | |
sub | string | Ідентифікатор підписки, "{stream}:{topic}" ("{connection}:account.<topic>", "workspace"); передавайте його в unsubscribe. |
connection_idнеобов’язковий | number | Підключення, вибране для ринкових топіків і топіків рахунку; відсутнє для workspace. |
UnsubscribedFrame
Відповідь сервера на unsubscribe.
| Поле | Тип | Опис |
|---|---|---|
type | "unsubscribed" | |
request_idнеобов’язковий | string | |
sub | string |
ErrorFrame
Кадр error: з request_id він відповідає на запит, із sub і без
request_id каже, що сервер зняв цю підписку.
| Поле | Тип | Опис |
|---|---|---|
type | "error" | |
request_idнеобов’язковий | string | |
subнеобов’язковий | string | |
code | ErrorCode | |
message | string |
EventFrame
Кадр event, як він надходить, до того як клієнт позначить його топіком.
| Поле | Тип | Опис |
|---|---|---|
type | "event" | |
sub | string | |
seq | number | Номер події в підписці; для trades зростає на одиницю. |
ts | Timestamp | |
data | T |
Gap
Кадр gap: події from_seq..to_seq підписки trades втрачено.
| Поле | Тип | Опис |
|---|---|---|
type | "gap" | |
sub | string | |
from_seq | number | |
to_seq | number | |
reason | string |
SubscriptionError
Сервер зняв підписку (кадр error із sub і без request_id).
| Поле | Тип | Опис |
|---|---|---|
type | "error" | |
sub | string | |
code | ErrorCode | |
message | string |
Subscribed
interface Subscribed extends SubscribedFrameЗ чим виконується subscribe: кадр subscribed плюс те, що було запитано.
| Поле | Тип | Опис |
|---|---|---|
topic | Topic | |
instrumentнеобов’язковий | InstrumentAddress | Відсутній для підписок account.*. |
OrdersUpdate
data події account.orders: заявки й тригери одного інструмента після зміни.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
orders | Order[] | |
triggers | TriggerOrder[] |
PositionUpdate
data події account.positions; закриття надходить як position: null.
| Поле | Тип | Опис |
|---|---|---|
instrument | InstrumentAddress | |
position | Position | null |
TradesEvent
interface TradesEvent extends EventFrame<Trade[]>Усі події, які клієнт може позначити топіком; topic читається з sub (частина після першої двокрапки).
| Поле | Тип | Опис |
|---|---|---|
topic | "trades" |
TickerEvent
interface TickerEvent extends EventFrame<Ticker>| Поле | Тип | Опис |
|---|---|---|
topic | "ticker" |
MarkPriceEvent
interface MarkPriceEvent extends EventFrame<MarkPrice>| Поле | Тип | Опис |
|---|---|---|
topic | "mark_price" |
BookTopEvent
interface BookTopEvent extends EventFrame<BookTop>| Поле | Тип | Опис |
|---|---|---|
topic | "book.top" |
ClustersEvent
interface ClustersEvent extends EventFrame<ClusterBucket>| Поле | Тип | Опис |
|---|---|---|
topic | "clusters" |
AccountOrdersEvent
interface AccountOrdersEvent extends EventFrame<OrdersUpdate>| Поле | Тип | Опис |
|---|---|---|
topic | "account.orders" |
AccountPositionsEvent
interface AccountPositionsEvent extends EventFrame<PositionUpdate>| Поле | Тип | Опис |
|---|---|---|
topic | "account.positions" |
AccountBalancesEvent
interface AccountBalancesEvent extends EventFrame<Balance>| Поле | Тип | Опис |
|---|---|---|
topic | "account.balances" |
AccountFillsEvent
interface AccountFillsEvent extends EventFrame<Fill>| Поле | Тип | Опис |
|---|---|---|
topic | "account.fills" |
WorkspaceEvent
interface WorkspaceEvent extends EventFrame<WorkspaceSnapshot>data події workspace: уся розкладка; перший кадр — поточний знімок.
| Поле | Тип | Опис |
|---|---|---|
topic | "workspace" |
SettingsEvent
interface SettingsEvent extends EventFrame<SettingRow>data події settings: один записаний рядок, без writable.
| Поле | Тип | Опис |
|---|---|---|
topic | "settings" |
UnknownTopicEvent
interface UnknownTopicEvent extends EventFrame<unknown>Подія топіка, якого ця версія клієнта не знає (у межах v1 контракт може
додавати топіки). topic дорівнює undefined; сира назва топіка — це
частина sub після двокрапки.
| Поле | Тип | Опис |
|---|---|---|
topic | undefined |
Event
type Event = | TradesEvent
| TickerEvent
| MarkPriceEvent
| BookTopEvent
| ClustersEvent
| AccountOrdersEvent
| AccountPositionsEvent
| AccountBalancesEvent
| AccountFillsEvent
| WorkspaceEvent
| SettingsEvent
| UnknownTopicEventКадр події, розрізнюваний за topic.
StreamFrame
type StreamFrame = Event | Gap | SubscriptionErrorЩо видає перебір Stream, у порядку надходження.
Зібрано з коду @spectre-trade/terminal, коміт 2d1c324.