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

API

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

Получить access_key и увидеть счёт

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

Содержание

Сначала создадим маленький REST-клиент. Все следующие REST-примеры будут использовать его: так авторизация и обработка ошибок не дублируются в каждом файле.

Базовый REST-клиент

finam.mjs
Методы в справочникеPOST /v1/sessions

Получите access_key

В тело запроса идёт поле secret — это secret_key из раздела Токены.

Запросите доступные счета

В ответе найдите account_ids и скопируйте номер счёта.

Получить информацию по портфелю

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

Запуск

Как читать ответ

JSON

TokenDetails возвращает не только счета, но и срок жизни конкретного access_key, режим readonly и разрешения на рыночные данные. Не зашивайте продолжительность токена в код: ориентируйтесь на expires_at или используйте поток обновления access_key в gRPC.

Не выбирайте первый счёт для торговли автоматически

В учебном запросе первый счёт используется только для чтения. Перед торговой операцией задайте FINAM_ACCOUNT_ID явно и сопоставьте его с демо-счётом на портале.

Денежные значения

В REST десятичное значение обычно приходит как объект:

JSON

Строка внутри объекта защищает точное десятичное представление. Для расчётов используйте decimal.js в JavaScript, Decimal в Python и десятичную библиотеку либо целочисленное представление минимальных единиц в Go. Преобразование в Number или float64 допустимо для приблизительного вывода, но не для расчёта цены заявки.

Частые ошибки

Симптом

Что проверить

401

secret_key или access_key недействителен, access_key истёк, заголовок собран неверно

404

Счёт отсутствует в account_ids этого токена

429

Программа слишком часто вызывает один метод

account_ids пуст

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

Что должно получиться

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

  • Почему access_key перестаёт работать через несколько минут?

    Так и задумано: он живёт около 15 минут. Получайте новый по expires_at из ответа, а не по таймеру «раз в N минут».

  • Можно ли положить secret_key прямо в заголовок запроса?

    Нет. В заголовок идёт access_key. secret_key уходит только в тело запроса к /v1/sessions и больше нигде не появляется.

  • Почему account_ids пуст?

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

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

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

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

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

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

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