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

Ошибки

Коды ошибок Local API, ошибки, которые выбрасывают клиенты, и коды закрытия стрима.

Каждый неудачный запрос несёт стабильный код. Опирайтесь на код: сообщение написано для человека и может измениться. По HTTP ошибка — это тело ответа: {"error": {"code": "not_found", "message": "no such operation"}}.

Коды ошибок

КодHTTPКогдаЧто делать
unauthorized401Токена нет, он неверный или API выключенСкопировать текущий токен и проверить переключатель
forbidden403Запрос пришёл со страницы браузера, или его хост — не 127.0.0.1 и не localhostВызывать из программы на той же машине
forbidden_scope403У токена нет права этого вызоваПроверить meta().scopes
not_found404Неизвестный адрес или подключение, или для инструмента нет подключенияПроверить инструмент и connections()
invalid_request400Неверный параметр или инструмент, которого нет в справочникеИсправить параметр
unsupported501MOEX, терминал, собранный без рыночных данных, или настройка, которую API не может записатьНе повторять
not_active409Кластеры или плечо инструмента ещё не загруженыПовторить через несколько секунд. Для плеча открыть инструмент в терминале
not_tradable409Подключение выключено, только для чтения или без ключейВыбрать торговое подключение
rate_limited429Превышен лимитНемного подождать и повторить
unavailable503Биржа или терминал не ответили, или данных ещё нетПовторить позже

Стрим использует те же коды. Внутри v1 могут добавляться новые коды.

Поймать ошибку

from spectre_terminal import ApiError

try:
    book = terminal.orderbook("binance:futures:BTCUSDT", depth=20)
except ApiError as error:
    print(error.status, error.code, error.message)

Клиенты выбрасывают такие ошибки.

PythonTypeScriptКогда
ApiErrorApiErrorТерминал ответил кодом из таблицы выше
TokenMissingTokenMissingErrorТокен не передан и не задан в SPECTRE_LOCAL_API_TOKEN
LocalApiDisabledLocalApiDisabledErrorLocal API выключен
TerminalUnreachableTerminalUnreachableErrorТерминал не запущен или слушает на другом порту
IncompatibleTerminalIncompatibleTerminalErrorКлиент не поддерживает версию API терминала
StreamRequestErrorStreamRequestErrorsubscribe или unsubscribe отклонён
StreamClosedStreamClosedErrorТерминал закрыл стрим

Все они наследуют SpectreTerminalError. Токен никогда не попадает в текст ошибки.

Коды закрытия стрима

КодПочемуЧто делать
1001API выключили или токен перевыпустилиПереподключиться с текущим токеном
1006Соединение потеряноПереподключиться
4008Ваша программа не читала дольше 5 секундЧитать быстрее или подписаться на меньшее
4029У токена уже 8 соединений стримаИспользовать уже открытое соединение

Как переподключаться в коде, см. Переподключиться.

На этой странице