К содержимому
logologo-text

API

Лонгрид 13 из 13Курс

Диагностика ошибок и дальнейшие шаги

~4 мин чтенияОбновлено 28 сентября 2026

Содержание

Карта HTTP-ошибок

Код

Типичная причина

Действие клиента

400

Неверный symbol, интервал, количество, цена или поле заявки

Не повторять; исправить запрос по схеме

401

Неверный или истёкший access_key

Получить новый access_key и повторить безопасный запрос

403

Недостаточно прав

Проверить тип токена, счёт и разрешения

404

Не найден счёт, инструмент или заявка

Сверить идентификатор и доступ токена

429

Исчерпана квота

Остановить немедленные повторы, снизить нагрузку

500

Внутренняя ошибка

Ограниченный повтор безопасной операции, затем сигнал оператору

503

Сервис временно недоступен

Backoff, jitter и контроль общего времени ожидания

504

Истёк срок выполнения

Для чтения возможен повтор; для торговли сначала сверка

Тело ошибки содержит code, message и иногда details. Логируйте их вместе с HTTP-статусом и идентификатором операции, но без токена.

WebSocket подключён, но данных нет

Проверяйте по порядку:

  1. Получен ли HANDSHAKE_SUCCESS?

  2. Отправлена ли подписка после handshake?

  3. Не пришёл ли конверт ERROR?

  4. Нет ли payload.error внутри DATA?

  5. Верен ли subscription_type?

  6. Полный ли symbol в формате ticker@mic?

  7. Есть ли у токена разрешение на эти рыночные данные?

  8. Идут ли сейчас торги по инструменту?

Тишина не означает, что рынок не меняется

Клиент, который игнорирует ERROR и EVENT, не отличает спокойный рынок от сломанной подписки.

Заявка отклонена

Проверьте:

  • выбран ли именно нужный счёт;

  • не является ли токен readonly;

  • доступен ли инструмент через GetAssetParams;

  • количество передано в штуках;

  • цена кратна минимальному шагу;

  • не превышает ли client_order_id 20 символов;

  • соответствует ли limit_price типу заявки;

  • хватает ли обеспечения;

  • разрешена ли выбранная сторона операции;

  • не закончилась ли торговая сессия.

Ответ на PlaceOrder потерян

Это отдельное состояние: не «ошибка» и не «успех», а неизвестный результат.

  1. Сохраните исходную команду и client_order_id.

  2. Не отправляйте новую заявку автоматически.

  3. Получите активные заявки и последние события счёта.

  4. Найдите заявку по доступным идентификаторам и параметрам.

  5. Если однозначная сверка невозможна, остановите автоматическую торговлю и передайте ситуацию оператору.

Частые вопросы

  • Нужно ли писать Bearer перед access_key?

    REST API принимает как Authorization: Bearer <access_key>, так и заголовок только с access_key. В курсе используется Bearer для единообразия с распространённым HTTP-форматом. WebSocket-примеры передают access_key в поле token, а gRPC SDK — в metadata.

  • Почему в REST используется .value, а в WebSocket нет?

    Это разные JSON-представления decimal. REST возвращает объект {"value":"..."}, Async API — строку. gRPC использует тип google.type.Decimal.

  • Можно ли каждую секунду запрашивать цену через REST?

    Для единичной проверки — да, для постоянного потока — нет. Подписка точнее соответствует задаче и не расходует REST-квоту на каждое изменение.

  • Почему quantity: 1 не всегда означает один лот?

    Потому что в заявке количество задаётся в штуках. Размер торгового лота нужно получить через GetAssetParams.

  • Можно ли автоматически повторить PlaceOrder с тем же client_order_id?

    Не рассматривайте поле как безусловную гарантию идемпотентности. После неопределённого результата сначала выполните сверку.

  • Что выбрать для нового проекта: WebSocket или gRPC?

    WebSocket удобен для простого JSON-клиента. gRPC подходит, когда нужны типизированные модели, генерируемые клиенты и поток обновления access_key. REST всё равно остаётся полезен для снимков и диагностики.

Пришли со старого API?

Основные изменения новой версии:

  • Portfolio заменён моделью Account;

  • дневные и внутридневные свечи объединены в Bars с timeframe;

  • обычные и стоп-заявки собраны в OrdersService;

  • единый поток событий разделён на специализированные подписки;

  • авторизация вынесена в AuthService.

Таблица соответствия старых и новых методов — в руководстве по миграции.

Сторонняя библиотека требует проверки

Если официальный SDK не закрывает задачу и вы выбираете библиотеку сообщества, сначала проверьте исходный код, способ хранения секрета, поддержку текущей версии API и поведение при повторе торговых команд.

Итоговый чек-лист

Курс пройден. Вы умеете выбрать подходящий интерфейс, безопасно авторизоваться, работать с инструментами и рыночными данными, слушать события, отправлять заявки и проектировать восстановление после сбоев. Следующий шаг — взять один реальный сценарий, оставить dry-run включённым и покрыть его тестами без сети до подключения демо-счёта.

Вопросы, которые появятся, когда клиент уже работает, собраны отдельно: Что делать, когда API отвечает не так.

Конец лонгрида

Дочитаете до конца — засчитается автоматически
Лонгрид 13 из 13

Предложить идею

Заполните форму ниже, и мы свяжемся с вами.

Увеличить лимиты API

Заполните форму ниже, и мы свяжемся с вами.