Finam API SDK
Версия API: 2.14.0 (31.03.2026)
Документация: https://api.finam.ru/getting-started/
Пример
async fn main() {
let secret = env::var("TOKEN").unwrap();
let finam = finam::FinamSdk::new(&secret).await.unwrap();
let quote_response = finam
.market_data()
.last_quote(QuoteRequest {
symbol: "SBER@MISX".to_string(),
})
.await
.unwrap()
.into_inner();
if let Some(quote) = quote_response.quote {
println!("{:?} {:?}", quote.timestamp, quote.last);
}
let mut streaming = finam
.market_data()
.subscribe_latest_trades(SubscribeLatestTradesRequest {
symbol: "SBER@MISX".to_string(),
})
.await
.unwrap()
.into_inner();
loop {
if let Some(message) = streaming.message().await.unwrap() {
println!("{:?}", message.trades);
}
}
}
Управление ресурсами
SDK автоматически управляет жизненным циклом JWT токенов. При создании экземпляра FinamSdk запускается фоновая задача, которая периодически обновляет токен каждые 10 минут.
Автоматическая остановка фоновых задач
Когда экземпляр FinamSdk уничтожается (выходит из области видимости), все связанные с ним фоновые задачи обновления токенов автоматически останавливаются:
async fn example() {
{
let sdk = FinamSdk::new("secret").await.unwrap();
}
}