Перейти к содержимому

Локальный API

Терминал умеет принимать команды снаружи. Внешний скринер, сайт или ваш скрипт отправляет GET-запрос на 127.0.0.1 — и стакан переключается на нужный инструмент. Не надо искать его руками: увидели сигнал у себя, кликнули — терминал уже на этом тикере.

Сервер поднимается внутри терминала и слушает только локальный адрес: из сети к нему не достучаться, доступ есть лишь у программ на этом компьютере.

Включать ничего не нужно: сервер работает сразу после установки — он поднимается вместе с терминалом и слушает порт 5055. Достаточно отправить запрос.

Всё, что можно поменять, собрано в Настройки → Функции, раздел Локальный API:

ПараметрПо умолчаниюЧто задаёт
Локальный API-сервервключёнТумблер сервера. Выключите, если не хотите принимать внешние команды
Порт5055Порт, который слушает терминал. Ниже 1024 система не даст занять без прав администратора — терминал предупредит
Открывать тикер вСпрашивать каждый разЧто делать с запросом, если он не указал цель сам: спросить, открыть новую вкладку или сменить тикер в выбранной линковке
СтатусСлушаетСостояние сервера

Строка статуса показывает Слушает и адрес, когда всё работает. Прочие состояния: Выключен, Запускается… и Не запустился на порту — последнее означает, что порт занят другой программой; терминал будет пытаться занять его повторно, но проще сменить порт.

GET http://127.0.0.1:5055/api/open/{биржа}/{рынок}/{тикер}

Пример из самого терминала:

GET http://127.0.0.1:5055/api/open/binance/futures/BTCUSDT?link=1
ЧастьЧто писать
биржаНазвание биржи, регистр не важен: binance, bybit, okx, bingx, gate (или gateio), edgex и остальные поддерживаемые
рынокФьючерсы — f, fut, futures, perp, perpetual, swap или linear; спот — s или spot; форекс — fx или forex; МосБиржа — moex
тикерИнструмент в написании биржи, например BTCUSDT

Запрос может сам указать цель — тогда настройка Открывать тикер в не используется:

ПараметрРезультат
?link=1Сменить тикер во всех панелях линковки с этим номером
?target=new_tabОткрыть новую вкладку с этим инструментом. Принимаются также newtab и tab

Если параметра нет, терминал поступает по настройке. При значении Спрашивать каждый раз он показывает окно Открыть тикер со списком линковок и вариантом «Новая вкладка»; там же есть галочка Запомнить выбор.

Успешный ответ — JSON с полем action:

{
"ok": true,
"action": "linked",
"exchange": "Binance",
"market": "Futures",
"symbol": "BTCUSDT",
"link": "1",
"panes": 2
}
actionЧто произошло
linkedТикер сменён в панелях линковки; в panes — сколько панелей переключилось
new_tabОткрыта новая вкладка
askedПоказано окно выбора — дальше решает человек за терминалом

Ошибка возвращается тем же JSON с полями error и message:

Код HTTPerrorПричина
400unknown_exchangeБиржа не распознана
400unknown_marketНеизвестный тип рынка
400unsupported_marketБиржа не поддерживает этот рынок
400empty_symbolТикер пустой
400unknown_targetНепонятное значение ?target=
404symbol_not_foundТакого инструмента у биржи нет
409exchange_not_connectedК бирже нет активного подключения
429rate_limitedСлишком часто: лимит — 5 запросов в секунду
429duplicateТот же запрос уже в работе
503terminal_unavailableТерминал ещё не готов принять команду
504terminal_timeoutТерминал не ответил за 3 секунды
GET http://127.0.0.1:5055/api/ping

Отвечает {"ok":true,"app":"..."}. Удобно, чтобы скрипт понял, запущен ли терминал, прежде чем слать команды.

  • Запросы принимаются и со страниц в браузере: сервер отдаёт CORS-заголовки, поэтому кнопку «открыть в терминале» можно повесить на свой сайт или расширение.
  • Лимит — 5 запросов в секунду. Он защищает от цикла в чужом скрипте: каждый запрос это вкладка, стакан и потоки данных с биржи.
  • Биржа должна быть подключена. Если активного подключения нет, терминал ответит exchange_not_connected — см. Обзор подключений.