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.2.6.tar.gz (26.4 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.2.6-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

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

Hashes for finam_trade_api-4.2.6.tar.gz
Algorithm Hash digest
SHA256 681d73cdaf483feec0fcddc468411ce1f539b7878db6db784b946fd11cb02889
MD5 f4b88ab3c3431130b3ca14c2907b172d
BLAKE2b-256 37f2bceae92aa0007ba4b8fc28316f0569e992e4e5e0137f9e224636a4843d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for finam_trade_api-4.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 46681d4e6deeac007dbdc930e5759578ed93a5d8a4b967e6bd2fcfcb729f39d7
MD5 c7bd4f6cddd85ce7b5f3690099bae4a9
BLAKE2b-256 5646177142db8119f5c2adc873217faf77955d4745569316e501c91369644fc0

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