Перейти до вмісту

Помилки

Коди помилок 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 з’єднань стрімуВикористати наявне з’єднання

Як підключатися знову в коді, див. Підключитися знову.

На цій сторінці