Асинхронный REST-клиент для API Finam
Project description
FinamTradeApiPy
FinamTradeApiPy — это Python-библиотека для лёгкого взаимодействия с публичным торговым API Finam. Библиотека только предоставляет удобную обертку для доступа к API и не несет ответственность за полученные и отправленные через нее данные.
Асинхронный REST-клиент для API Finam.
Используется:
- aiohttp для создания клиента;
- pydantic для удобной работы с моделями данных;
- ruff для линтинга;
- mypy для статической типизации;
- pytest для тестирования;
- bandit для статического анализа безопасности;
- pre-commit для автоматизации линтинга и тестирования;
Requirements
Python >= 3.11; < 3.14 - проверки в CI.
Installation
pip install finam-trade-api
poetry add finam-trade-api
uv add finam-trade-api
Usage/Examples
Получение токена
import os
from finam_trade_api import Client
from finam_trade_api import TokenManager
async def main():
# Получение токена из переменных окружения
token = os.getenv("TOKEN")
# Инициализация клиента с менеджером токенов
client = Client(TokenManager(token))
# Установка JWT-токена
await client.access_tokens.set_jwt_token()
# Получение деталей JWT-токена
return await client.access_tokens.get_jwt_token_details()
if __name__ == "__main__":
import asyncio
# Запуск асинхронного main
print(asyncio.run(main()))
Информация об аккаунте
import os
from pprint import pprint
from finam_trade_api import Client
from finam_trade_api import TokenManager
from finam_trade_api.account import GetTransactionsRequest, GetTradesRequest
token = os.getenv("TOKEN")
account_id = os.getenv("ACCOUNT_ID")
async def main():
client = Client(TokenManager(token))
await client.access_tokens.set_jwt_token()
# Получение информации об аккаунте
pprint(await client.account.get_account_info(account_id))
# Получение списка транзакций
pprint(await client.account.get_transactions(GetTransactionsRequest(
account_id=account_id,
start_time="2024-01-01T00:00:00Z",
end_time="2025-03-15T00:00:00Z",
limit=10,
)))
# Получение списка сделок
pprint(await client.account.get_trades(GetTradesRequest(
account_id=account_id,
start_time="2024-01-01T00:00:00Z",
end_time="2025-03-15T00:00:00Z",
)))
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Больше примеров в папке examples
Authors
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finam_trade_api-4.2.6.tar.gz.
File metadata
- Download URL: finam_trade_api-4.2.6.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
681d73cdaf483feec0fcddc468411ce1f539b7878db6db784b946fd11cb02889
|
|
| MD5 |
f4b88ab3c3431130b3ca14c2907b172d
|
|
| BLAKE2b-256 |
37f2bceae92aa0007ba4b8fc28316f0569e992e4e5e0137f9e224636a4843d24
|
File details
Details for the file finam_trade_api-4.2.6-py3-none-any.whl.
File metadata
- Download URL: finam_trade_api-4.2.6-py3-none-any.whl
- Upload date:
- Size: 32.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46681d4e6deeac007dbdc930e5759578ed93a5d8a4b967e6bd2fcfcb729f39d7
|
|
| MD5 |
c7bd4f6cddd85ce7b5f3690099bae4a9
|
|
| BLAKE2b-256 |
5646177142db8119f5c2adc873217faf77955d4745569316e501c91369644fc0
|