Помилки
Коди помилок Local API, помилки, які викидають клієнти, і коди закриття стріму.
Кожен невдалий запит несе стабільний код. Покладайтеся на код:
повідомлення призначене для людини й може змінитися. У HTTP помилка — це
тіло відповіді:
{"error": {"code": "not_found", "message": "no such operation"}}.
Коди помилок
| Код | HTTP | Коли | Що робити |
|---|---|---|---|
unauthorized | 401 | Токена немає, він неправильний або API вимкнено | Скопіювати поточний токен і перевірити перемикач |
forbidden | 403 | Запит надходить зі сторінки браузера або його хост не 127.0.0.1 і не localhost | Викликати з програми на тій самій машині |
forbidden_scope | 403 | Токену бракує права для виклику | Перевірити meta().scopes |
not_found | 404 | Невідома адреса чи підключення або для інструмента немає підключення | Перевірити інструмент і connections() |
invalid_request | 400 | Неправильний параметр або інструмент, якого немає в довіднику | Виправити параметр |
unsupported | 501 | MOEX, термінал, зібраний без ринкових даних, або налаштування, яке API не може записати | Не повторювати |
not_active | 409 | Кластери або плече інструмента ще не завантажено | Повторити виклик за кілька секунд. Для плеча — відкрити інструмент у терміналі |
not_tradable | 409 | Підключення вимкнене, лише для читання або не має ключів | Вибрати торгове підключення |
rate_limited | 429 | Перевищено ліміт | Трохи зачекати й повторити виклик |
unavailable | 503 | Біржа або термінал не відповіли, або даних ще немає | Повторити виклик пізніше |
Стрім використовує ті самі коди. У межах 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)Клієнти викидають такі помилки.
| Python | TypeScript | Коли |
|---|---|---|
ApiError | ApiError | Термінал відповів кодом із таблиці вище |
TokenMissing | TokenMissingError | Токен не передано й не задано в SPECTRE_LOCAL_API_TOKEN |
LocalApiDisabled | LocalApiDisabledError | Local API вимкнено |
TerminalUnreachable | TerminalUnreachableError | Термінал не запущено або він слухає на іншому порту |
IncompatibleTerminal | IncompatibleTerminalError | Клієнт не підтримує версію API термінала |
StreamRequestError | StreamRequestError | subscribe або unsubscribe відхилено |
StreamClosed | StreamClosedError | Термінал закрив стрім |
Усі вони успадковують SpectreTerminalError. Токен ніколи не потрапляє в
текст помилки.
Коди закриття стріму
| Код | Чому | Що робити |
|---|---|---|
1001 | API вимкнено або токен перевипущено | Підключитися знову з поточним токеном |
1006 | З’єднання втрачено | Підключитися знову |
4008 | Ваша програма не читала понад 5 секунд | Читати швидше або підписатися на менше |
4029 | Токен уже має 8 з’єднань стріму | Використати наявне з’єднання |
Як підключатися знову в коді, див. Підключитися знову.