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

API

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

Перейти на gRPC и официальные SDK

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

Содержание

REST и WebSocket полезно пройти вручную: после этого понятны запросы, токены и события. В прикладном клиенте gRPC уменьшает объём собственного транспорта и даёт типизированные сообщения из proto-файлов.

Официальный репозиторий содержит:

  • пакет @finam/grpc-tradeapi для JavaScript;

  • пакет finam-sdk для Python;

  • Go-модуль с генерированными gRPC-клиентами;

  • Kotlin SDK и примеры;

  • proto-файлы, AsyncAPI-схему, руководство по миграции и примеры стратегий.

Возможности клиентов отличаются

Язык

Что предоставляется

JavaScript

Сгенерированные типы и сервисы для ConnectRPC; access_key и его обновление контролирует приложение

Python

FinamClient и AsyncFinamClient, автоматическое получение и фоновое обновление access_key, типизированные ошибки

Go

Сгенерированные protobuf- и gRPC-клиенты; соединение, metadata, обновление access_key и retry-политика остаются в приложении

SDK не отменяет понимание протокола

Потоковые методы всё равно могут оборваться, а торговая команда — получить неопределённый результат. Типы сокращают число ошибок сериализации, но не решают восстановление состояния и риск-контроль.

Установите официальный клиент

Название пакета Python

Официальный пакет устанавливается как finam-sdk, а импортируется как finam_trade_api. Пакет с именем finam-trade-api в PyPI — другой сторонний проект.

Получите счёт через gRPC

Во всех трёх примерах используется уже известный FINAM_ACCOUNT_ID.

grpc-account.mjs
Методы в справочникеGET /v1/accounts/{account_id}

Поток котировок через gRPC

Названия методов одинаковы по смыслу во всех языках: SubscribeQuote, SubscribeBars, SubscribeOrderBook и SubscribeLatestTrades.

Go

В Go-фрагменте потребуется импорт пакета:

Обновление access_key

gRPC предоставляет поток SubscribeJwtRenewal.

  • Python SDK использует его автоматически в фоне.

  • В JavaScript и Go приложение должно слушать поток самостоятельно и атомарно заменять access_key, который прикладывается к новым вызовам.

  • Обрыв потока обновления токена тоже требует переподключения с backoff.

Не запускайте таймер «получать новый access_key каждые N минут», если клиент может ориентироваться на expires_at или использовать поток обновления.

Снимок и поток в gRPC

В сообщениях рыночных данных доступен признак is_data_snapshot. Он помогает отличать первоначальный снимок от последующих изменений. Не трактуйте снимок как новую рыночную сделку или новый сигнал стратегии.

Обновление SDK

Закрепляйте рабочую версию зависимости и просматривайте changelog перед обновлением. Новые поля могут быть совместимыми на уровне protobuf, но менять бизнес-логику — например, появление размера торгового лота или флага снимка данных.

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

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

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

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

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

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