Локальный 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:
| Код HTTP | error | Причина |
|---|---|---|
| 400 | unknown_exchange | Биржа не распознана |
| 400 | unknown_market | Неизвестный тип рынка |
| 400 | unsupported_market | Биржа не поддерживает этот рынок |
| 400 | empty_symbol | Тикер пустой |
| 400 | unknown_target | Непонятное значение ?target= |
| 404 | symbol_not_found | Такого инструмента у биржи нет |
| 409 | exchange_not_connected | К бирже нет активного подключения |
| 429 | rate_limited | Слишком часто: лимит — 5 запросов в секунду |
| 429 | duplicate | Тот же запрос уже в работе |
| 503 | terminal_unavailable | Терминал ещё не готов принять команду |
| 504 | terminal_timeout | Терминал не ответил за 3 секунды |
Проверка связи
Заголовок раздела «Проверка связи»GET http://127.0.0.1:5055/api/pingОтвечает {"ok":true,"app":"..."}. Удобно, чтобы скрипт понял, запущен
ли терминал, прежде чем слать команды.
Что нужно знать
Заголовок раздела «Что нужно знать»- Запросы принимаются и со страниц в браузере: сервер отдаёт CORS-заголовки, поэтому кнопку «открыть в терминале» можно повесить на свой сайт или расширение.
- Лимит — 5 запросов в секунду. Он защищает от цикла в чужом скрипте: каждый запрос это вкладка, стакан и потоки данных с биржи.
- Биржа должна быть подключена. Если активного подключения нет,
терминал ответит
exchange_not_connected— см. Обзор подключений.