Ruby Rest API client
gem install invest_tinkoff
- Ruby 2.3.0 or higher
client = InvestTinkoff::V2::Client.new token: 'ВАШ_ТОКЕН'
Метод получения облигации по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
bond_by id_type:, id:, class_code: nil
Метод получения списка облигаций
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
bonds instrument_status: InvestTinkoff::V2::InstrumentStatus::BASE
Метод получения списка валют
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
currencies instrument_status: InvestTinkoff::V2::InstrumentStatus::BASE
Метод получения валюты по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
currency_by id_type:, id:, class_code: nil
Метод редактирования избранных инструментов
https://tinkoff.github.io/investAPI/instruments/#editfavorites
# @figis: String, пример: ['BBG000B9XRY4', 'BBG000BWXBC2']
# @action_type: InvestTinkoff::V2::EditFavoritesActionType
edit_favorites figis:, action_type: InvestTinkoff::V2::EditFavoritesActionType::ADD
Метод получения инвестиционного фонда по его идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
etf_by id_type:, id:, class_code: nil
Метод получения списка инвестиционных фондов
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
etfs instrument_status: InvestTinkoff::V2::InstrumentStatus::BASE
Метод получения фьючерса по его идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
future_by id_type:, id:, class_code: nil
# Примеры:
client.future_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'FUTSI0323000'
client.future_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'SiH3', class_code: 'SPBFUT'
Метод получения списка фьючерсов
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
futures instrument_status: InvestTinkoff::V2::InstrumentStatus::BASE
Метод получения накопленного купонного дохода по облигации
https://tinkoff.github.io/investAPI/instruments/#getaccruedinterests
# @figi: String, пример: 'BBG00X6ZGSY7'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 2.months.from_now
accrued_interests figi:, from:, to:
Метод получения актива по его идентификатору
# @id: String, пример: '9f083982-cf4c-418a-a0bf-8b82f16db42d'
asset_by id:
Метод получения списка активов
assets
Метод получения графика выплат купонов по облигации
https://tinkoff.github.io/investAPI/instruments/#getbondcoupons
# @figi: String, пример: 'BBG00X6ZGSY7'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 6.months.from_now
bond_coupons figi:, from:, to:
Метод для получения событий выплаты дивидендов по инструменту
https://tinkoff.github.io/investAPI/instruments/#getdividends
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.year.ago
# @to: Time, пример: 1.month.from_now
dividends figi:, from:, to:
Метод получения избранных инструментов
https://tinkoff.github.io/investAPI/instruments/#getfavorites
favorites
Метод получения размера гарантийного обеспечения по фьючерсам
https://tinkoff.github.io/investAPI/instruments/#getfuturesmargin
# @figi: String
futures_margin figi:
Метод получения основной информации об инструменте
https://tinkoff.github.io/investAPI/instruments/#getinstrumentby
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
instrument_by id_type:, id:, class_code: nil
# Примеры:
client.instrument_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'FUTSI0323000'
client.instrument_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'SiH3', class_code: 'SPBFUT'
Метод получения акции по её идентификатору
# @id_type: InvestTinkoff::V2::InstrumentIdType
# @id: String
# @class_code: String (Обязателен при id_type = TICKER)
share_by id_type:, id:, class_code: nil
# Примеры:
client.share_by id_type: InvestTinkoff::V2::InstrumentIdType::FIGI, id: 'BBG000B9XRY4'
client.share_by id_type: InvestTinkoff::V2::InstrumentIdType::TICKER, id: 'AAPL', class_code: 'SPBXM'
Метод получения списка акций
# @instrument_status: InvestTinkoff::V2::InstrumentStatus
shares instrument_status: InvestTinkoff::V2::InstrumentStatus::BASE
Метод получения расписания торгов торговых площадок
https://tinkoff.github.io/investAPI/instruments/#tradingschedulesrequest
# @exchange: String, пример: 'MOEX'
# @from: Time, пример: 1.day.from_now
# @to: Time, пример: 5.days.from_now
trading_schedules exchange:, from:, to:
Метод запроса исторических свечей по инструменту
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.hour.ago
# @to: Time, пример: Time.zone.now
# @interval: InvestTinkoff::V2::CandleInterval
candles(
figi:,
from:,
to:,
interval: InvestTinkoff::V2::CandleInterval::HOUR
)
Метод запроса последних цен по инструментам
https://tinkoff.github.io/investAPI/marketdata/#getlastprices
# @figis: [String]
last_prices figis:
# Примеры:
client.last_prices figis: ['BBG0013HGFT4', 'BBG0013HJJ31']
Метод запроса последних обезличенных сделок по инструменту
https://tinkoff.github.io/investAPI/marketdata/#getlasttrades
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time, пример: 1.hour.ago
# @to: Time, пример: Time.zone.now
last_trades figi:, from:, to:
Метод получения стакана по инструменту
https://tinkoff.github.io/investAPI/marketdata/#getorderbook
# @figi: String, пример: 'BBG000B9XRY4'
# @depth: Integer
order_book figi:, depth: 10
Метод запроса статуса торгов по инструментам
https://tinkoff.github.io/investAPI/marketdata/#gettradingstatus
# @figi: String, пример: 'BBG000B9XRY4'
trading_status figi:
Метод получения списка операций по счёту
https://tinkoff.github.io/investAPI/operations/#getoperations
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time
# @to: Time
# @state (опиционально): InvestTinkoff::V2::OperationState
operations(
account_id:,
figi:,
from:,
to:,
state: InvestTinkoff::V2::OperationState::UNSPECIFIED
)
Метод получения портфеля по счёту
https://tinkoff.github.io/investAPI/operations/#getportfolio
# @account_id: String
portfolio account_id:
Метод получения списка позиций по счёту
https://tinkoff.github.io/investAPI/operations/#getpositions
# @account_id: String
positions account_id:
Метод получения доступного остатка для вывода средств
https://tinkoff.github.io/investAPI/operations/#getwithdrawlimits
# @account_id: String
withdraw_limits account_id:
Метод получения брокерского отчёта NotImplemented
https://tinkoff.github.io/investAPI/operations/#getbrokerreport
broker_report
Метод получения отчёта "Справка о доходах за пределами РФ" NotImplemented
https://tinkoff.github.io/investAPI/operations/#getdividendsforeignissuer
dividends_foreign_issuer
Метод получения списка активных заявок по счёту
# @account_id: String
orders account_id:
Метод выставления заявки
# @account_id: String
# @figi: String
# @quantity: Integer
# @price: Float
# @direction: InvestTinkoff::V2::OrderDirection
# @order_type: InvestTinkoff::V2::OrderType
# @order_id: String (max length 36)
create_order(
account_id:,
figi:,
quantity:,
price:,
direction:,
order_type:,
order_id:
)
# Пример:
client.create_order(
account_id: 'ВАШ_ID_СЧЁТА',
figi: 'BBG000BL9C59',
quantity: 1,
price: 11.35,
direction: InvestTinkoff::V2::OrderDirection::BUY,
order_type: InvestTinkoff::V2::OrderType::LIMIT,
order_id: 'ВАШ_ВНУТРЕННИЙ_ID_ЗАЯВКИ'
)
Метод получения статуса торгового поручения
# @account_id: String
# @order_id: String
order_state account_id:, order_id:
Метод отмены биржевой заявки
# @account_id: String
# @order_id: String
cancel_order account_id:, order_id:
Метод получения списка активных стоп заявок по счёту
https://tinkoff.github.io/investAPI/stoporders/#getstoporders
# @account_id: String
stop_orders account_id:
Метод выставления стоп-заявки
https://tinkoff.github.io/investAPI/stoporders/#poststoporder
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @quantity: Integer
# @price: Float
# @stop_price: Float
# @expiration_type: InvestTinkoff::V2::StopOrderExpirationType
# @stop_order_type: InvestTinkoff::V2::StopOrderType
create_stop_order(
account_id:,
figi:,
quantity:,
price:,
stop_price:,
expire_date:,
expiration_type: InvestTinkoff::V2::StopOrderExpirationType::UNSPECIFIED,
stop_order_type: InvestTinkoff::V2::StopOrderType::UNSPECIFIED,
)
Метод отмены стоп-заявки
https://tinkoff.github.io/investAPI/stoporders/#cancelstoporder
# @account_id: String
# @order_id: String
cancel_stop_order account_id:, order_id:
Метод получения счетов пользователя
accounts
Метод получения информации о пользователе
info
Расчёт маржинальных показателей по счёту
https://tinkoff.github.io/investAPI/users/#getmarginattributes
# @account_id: String
margin_attributes account_id:
Текущий тариф пользователя (лимиты запросов к API)
user_tariff
client = InvestTinkoff::V2::SandboxClient.new token: 'ВАШ_ТОКЕН_ПЕСОЧНИЦЫ'
Метод отмены торгового поручения в песочнице
https://tinkoff.github.io/investAPI/sandbox/#cancelsandboxorder
# @account_id: String
# @order_id: String
cancel_sandbox_order account_id:, order_id:
Метод закрытия счёта в песочнице
https://tinkoff.github.io/investAPI/sandbox/#closesandboxaccount
# @account_id: String
close_sandbox_account account_id:
Метод получения счетов в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxaccounts
sandbox_accounts
Метод получения операций в песочнице по номеру счёта
https://tinkoff.github.io/investAPI/sandbox/#getsandboxoperations
# @account_id: String
# @figi: String, пример: 'BBG000B9XRY4'
# @from: Time
# @to: Time
# @state (опиционально): InvestTinkoff::V2::OperationState
sandbox_operations(
account_id:,
figi:,
from:,
to:,
state: InvestTinkoff::V2::OperationState::UNSPECIFIED
)
Метод получения статуса заявки в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxorderstate
# @account_id: String
# @order_id: String
sandbox_order_state account_id:, order_id:
Метод получения списка активных заявок по счёту в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxorders
# @account_id: String
sandbox_orders account_id:
Метод получения портфолио в песочнице
https://tinkoff.github.io/investAPI/sandbox/#getsandboxportfolio
# @account_id: String
sandbox_portfolio account_id:
Метод получения позиций по виртуальному счёту песочницы
https://tinkoff.github.io/investAPI/sandbox/#getsandboxpositions
# @account_id: String
sandbox_positions account_id:
Метод регистрации счёта в песочнице
https://tinkoff.github.io/investAPI/sandbox/#opensandboxaccount
open_sandbox_account
Метод выставления торгового поручения в песочнице
https://tinkoff.github.io/investAPI/sandbox/#postsandboxorder
# @account_id: String
# @figi: String
# @quantity: Integer
# @price: Float
# @direction: InvestTinkoff::V2::OrderDirection
# @order_type: InvestTinkoff::V2::OrderType
# @order_id: String (max length 36)
create_sandbox_order(
account_id:,
figi:,
quantity:,
price:,
direction:,
order_type:,
order_id:
)
Метод пополнения счёта в песочнице
# @account_id: String
# @amount: Float
# @currency: String, пример 'RUB', 'USD', 'EUR' и т.д.
sandbox_pay_in account_id:, amount:, currency:
Deprecated
Все новые рабочие токены доступны только для версии V2. Поддержка первой версии будет завершена в 2022 году.
client = InvestTinkoff::V1::SandboxClient.new token: 'ВАШ_ТОКЕН'
Получение списка активных заявок
orders
Создание лимитной заявки
orders_limit_order figi:, operation:, lots:, price:
Создание рыночной заявки
orders_market_order figi:, operation:, lots:
Отмена заявки
orders_cancel id
Получение портфеля клиента
portfolio
Получение валютных активов клиента
portfolio_currencies
Получение списка акций
market_stocks
Получение списка облигаций
market_bonds
Получение списка ETF
market_etfs
Получение списка валютных пар
market_currencies
Получение стакана по FIGI
market_orderbook figi:, depth: 20
Получение исторических свечей по FIGI
market_candles figi:, from:, to:, interval:
Получение инструмента по FIGI
market_search_by_figi figi
Получение инструмента по тикеру
market_search_by_ticker ticker
Получение списка операций
operations from:, to:, figi: nil
Получение брокерских счетов клиента
user_accounts
Все операции рабочего клиента плюс:
client = InvestTinkoff::V1::SandboxClient.new token: 'ВАШ_ТОКЕН_ПЕСОЧНИЦЫ'
Создание счета и выставление баланса по валютным позициям
register
Выставление баланса по валютным позициям
currencies_balance currency:, balance:
Выставление баланса по инструментным позициям
position_balance figi:, balance:
Удаление всех позиций клиента
clear
Удаление счета клиента
remove