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.3.tar.gz (29.7 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.3-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: finam_trade_api-4.3.3.tar.gz
  • Upload date:
  • Size: 29.7 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.3.tar.gz
Algorithm Hash digest
SHA256 8634525d60b849273c14f43d121a4da07ec952291e5eff1bd252aeb4e3847a4c
MD5 2e2038a0b4655d6d91a609787686ea53
BLAKE2b-256 4115ee7a40b592aceafde25b6d3f3f25040c8de035f5a20338753336b83e7ddb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for finam_trade_api-4.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8d6ba227ffc5ee1b89d0ef950f28785ae211422396715829000fb803a11013f5
MD5 1d8d8ae4a10f23f9ec84c749fb2d47ba
BLAKE2b-256 59ef0711adde6da7baa7e96a19deef005c08461571427f48fcfe0c49d5d9f15a

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