Skip to main content

Асинхронный REST-клиент для API Finam

Project description

FinamTradeApiPy

Build PyPI version Python pre-commit License Code style: Ruff Type Checked: mypy Formatted with: black Security Check GitHub stars Ask DeepWiki


FinamTradeApiPy — это Python-библиотека для лёгкого взаимодействия с публичным торговым API Finam. Библиотека только предоставляет удобную обертку для доступа к API и не несет ответственность за полученные и отправленные через нее данные.

Асинхронный REST-клиент для API Finam.

Используется:

  1. aiohttp для создания клиента;
  2. pydantic для удобной работы с моделями данных;
  3. ruff для линтинга;
  4. mypy для статической типизации;
  5. pytest для тестирования;
  6. bandit для статического анализа безопасности;
  7. 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

GNU GPL v.3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finam_trade_api-4.3.2.tar.gz (28.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finam_trade_api-4.3.2-py3-none-any.whl (34.2 kB view details)

Uploaded Python 3

File details

Details for the file finam_trade_api-4.3.2.tar.gz.

File metadata

  • Download URL: finam_trade_api-4.3.2.tar.gz
  • Upload date:
  • Size: 28.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for finam_trade_api-4.3.2.tar.gz
Algorithm Hash digest
SHA256 53cd793435308f3b5cc1d2d3baa12deb1d9eea1e92e2763b1fc146a185224332
MD5 16f2b6afa97a52cc48ffe9c1678c97e3
BLAKE2b-256 143036d12da18bf51d720070c570cb5ad5f82bdcc349f0b3439eb8f6106a6230

See more details on using hashes here.

File details

Details for the file finam_trade_api-4.3.2-py3-none-any.whl.

File metadata

File hashes

Hashes for finam_trade_api-4.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e96882e4aa820f970b6ca8828cc858d8b8bc8fc266957b26971c9abdf7ac887d
MD5 df20168be62067e570c7e91f9fa063a0
BLAKE2b-256 b86f9903a144654773f3cd2b8a1ccd9606773182bc31b00e70b2eb82a522bd61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page