Skip to main content

Python client for AGuAlpha Investment Platform API

Project description

AGuAlpha Python Client

Official Python library for accessing AGuAlpha Investment Platform data.

Installation

pip install agualpha

For async support:

pip install agualpha[async]

For pandas integration:

pip install agualpha[pandas]

Quick Start

Synchronous Usage

from agualpha import AGuAlphaClient

# Initialize client
client = AGuAlphaClient(api_key="sk-your-api-key-here")

# Get positions data
positions = client.get_positions()
print(f"Total positions: {positions.total}")

for position in positions.data:
    print(f"Date: {position.date}, Outstanding: {position.outstanding}")

# Get ideas data
ideas = client.get_ideas(status="active")
print(f"Total active ideas: {ideas.total}")

for idea in ideas.data:
    print(f"Symbol: {idea.ticker_symbol}, Status: {idea.status}")

# Close the connection
client.close()

Using Context Manager

from agualpha import AGuAlphaClient

with AGuAlphaClient(api_key="sk-your-api-key-here") as client:
    positions = client.get_positions(
        start_date="2024-01-01",
        end_date="2024-12-31"
    )
    print(f"Found {positions.total} positions")

Asynchronous Usage

import asyncio
from agualpha import AGuAlphaAsyncClient

async def main():
    async with AGuAlphaAsyncClient(api_key="sk-your-api-key-here") as client:
        # Fetch data concurrently
        positions, ideas = await asyncio.gather(
            client.get_positions(),
            client.get_ideas(status="active")
        )

        print(f"Positions: {positions.total}, Ideas: {ideas.total}")

asyncio.run(main())

Pandas Integration

from agualpha import AGuAlphaClient
from agualpha.utils import positions_to_dataframe, export_to_csv

client = AGuAlphaClient(api_key="sk-your-api-key-here")

# Get positions and convert to DataFrame
positions_response = client.get_positions()
df = positions_to_dataframe(positions_response.data)

# Export to CSV
export_to_csv(positions_response.data, "positions.csv")

API Reference

AGuAlphaClient

__init__(api_key: str, base_url: str = "https://api.agualpha.com/api")

Initialize the client with your API key.

get_positions(start_date: Optional[str] = None, end_date: Optional[str] = None) -> PositionsResponse

Get position data from subscribed analysts.

Parameters:

  • start_date (str): Filter by start date (YYYY-MM-DD format)
  • end_date (str): Filter by end date (YYYY-MM-DD format)

Returns: PositionsResponse

get_ideas(status: Optional[str] = None, direction: Optional[str] = None) -> IdeasResponse

Get trade ideas from subscribed analysts.

Parameters:

  • status (str): Filter by status ("active", "closed")
  • direction (str): Filter by direction ("long", "short")

Returns: IdeasResponse

Response Models

PositionsResponse

  • success (bool): Request success status
  • total (int): Total number of records
  • data (List[Position]): List of position objects
  • error (str, optional): Error message if failed

IdeasResponse

  • success (bool): Request success status
  • total (int): Total number of records
  • data (List[Idea]): List of idea objects
  • error (str, optional): Error message if failed

Error Handling

from agualpha import AGuAlphaClient
from agualpha.exceptions import APIError, AuthenticationError

try:
    client = AGuAlphaClient(api_key="invalid-key")
    positions = client.get_positions()
except AuthenticationError:
    print("Invalid API key")
except APIError as e:
    print(f"API error: {e}")

Requirements

  • Python 3.8+
  • requests 2.28.0+

License

MIT License

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

agualpha-1.1.0.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

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

agualpha-1.1.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file agualpha-1.1.0.tar.gz.

File metadata

  • Download URL: agualpha-1.1.0.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for agualpha-1.1.0.tar.gz
Algorithm Hash digest
SHA256 8a49cf72bd588c7e65bdbe580bac79801f7e88a237e9604fe8d82f7cc348fc1f
MD5 a6cd28e9731d5783282585262ce136a1
BLAKE2b-256 080916c5424068663b5431ff4a47a3d0a901f5ef595d8b2b23656e70d67c3d62

See more details on using hashes here.

File details

Details for the file agualpha-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: agualpha-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for agualpha-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e409f8673db89f56ab763ddbc465ae3aa8d1e1fd936a10e5609055d7024d6de
MD5 10249abe1f86f50979dfe6ba4d6111e4
BLAKE2b-256 9598ee38e8da4edf1967f218d25a2752a4b5dec79c10fb8591978161cc726c31

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