Skip to content

Clients

Both clients are context managers and expose the same resource groups (see Resource groups). Use StoneXClient for synchronous code and AsyncStoneXClient for asyncio.

stonepy.StoneXClient

StoneXClient(config: ClientConfig)

Synchronous StoneX CIAPI v2 client.

Use as a context manager or call close() when finished. Resource properties lazily construct typed API resource groups.

Source code in src/stonepy/client.py
def __init__(self, config: ClientConfig) -> None:
    self._ctx, self._transport = _build_context(config)
    self._plugins: dict[str, BaseResource] = {
        name: resource(self._ctx)
        for name, resource in _load_plugin_resources(
            config,
            {
                "cfd",
                "client_preference",
                "clientapplication",
                "clientpreference",
                "fixedmargin",
                "margin",
                "market",
                "message",
                "news",
                "order",
                "order_including_closed",
                "pm",
                "preference",
                "price_alert",
                "session",
                "spread",
                "tradingadvisor",
                "user_account",
                "watchlist",
            },
        ).items()
    }
    self._cfd: CfdResource | None = None
    self._client_preference: ClientPreferenceResource | None = None
    self._clientapplication: ClientapplicationResource | None = None
    self._clientpreference: ClientpreferenceResource | None = None
    self._fixedmargin: FixedmarginResource | None = None
    self._margin: MarginResource | None = None
    self._market: MarketResource | None = None
    self._message: MessageResource | None = None
    self._news: NewsResource | None = None
    self._order: OrderResource | None = None
    self._order_including_closed: OrderIncludingClosedResource | None = None
    self._pm: PmResource | None = None
    self._preference: PreferenceResource | None = None
    self._price_alert: PriceAlertResource | None = None
    self._session: SessionResource | None = None
    self._spread: SpreadResource | None = None
    self._tradingadvisor: TradingadvisorResource | None = None
    self._user_account: UserAccountResource | None = None
    self._watchlist: WatchlistResource | None = None

cfd property

Return the cfd resource group.

client_preference property

client_preference: ClientPreferenceResource

Return the client_preference resource group.

clientapplication property

clientapplication: ClientapplicationResource

Return the clientapplication resource group.

clientpreference property

clientpreference: ClientpreferenceResource

Return the clientpreference resource group.

fixedmargin property

fixedmargin: FixedmarginResource

Return the fixedmargin resource group.

margin property

Return the margin resource group.

market property

Return the market resource group.

message property

message: MessageResource

Return the message resource group.

news property

Return the news resource group.

order property

Return the order resource group.

order_including_closed property

order_including_closed: OrderIncludingClosedResource

Return the order_including_closed resource group.

pm property

Return the pm resource group.

preference property

preference: PreferenceResource

Return the preference resource group.

price_alert property

price_alert: PriceAlertResource

Return the price_alert resource group.

session property

session: SessionResource

Return the session resource group.

spread property

Return the spread resource group.

tradingadvisor property

tradingadvisor: TradingadvisorResource

Return the tradingadvisor resource group.

user_account property

user_account: UserAccountResource

Return the user_account resource group.

watchlist property

watchlist: WatchlistResource

Return the watchlist resource group.

plugin

plugin(name: str) -> BaseResource

Return a loaded plugin resource by name.

Source code in src/stonepy/client.py
def plugin(self, name: str) -> BaseResource:
    """Return a loaded plugin resource by name."""
    return self._plugins[name]

close

close() -> None

Close the underlying synchronous HTTP transport.

Source code in src/stonepy/client.py
def close(self) -> None:
    """Close the underlying synchronous HTTP transport."""
    self._transport.close()

stonepy.AsyncStoneXClient

AsyncStoneXClient(config: ClientConfig)

Asynchronous StoneX CIAPI v2 client.

Use with async with or call aclose() when finished. Resource properties mirror the synchronous client and expose awaitable methods.

Source code in src/stonepy/client.py
def __init__(self, config: ClientConfig) -> None:
    self._ctx, self._transport = _build_async_context(config)
    self._plugins: dict[str, BaseResource] = {
        name: resource(self._ctx)
        for name, resource in _load_plugin_resources(
            config,
            {
                "cfd",
                "client_preference",
                "clientapplication",
                "clientpreference",
                "fixedmargin",
                "margin",
                "market",
                "message",
                "news",
                "order",
                "order_including_closed",
                "pm",
                "preference",
                "price_alert",
                "session",
                "spread",
                "tradingadvisor",
                "user_account",
                "watchlist",
            },
        ).items()
    }
    self._cfd: AsyncCfdResource | None = None
    self._client_preference: AsyncClientPreferenceResource | None = None
    self._clientapplication: AsyncClientapplicationResource | None = None
    self._clientpreference: AsyncClientpreferenceResource | None = None
    self._fixedmargin: AsyncFixedmarginResource | None = None
    self._margin: AsyncMarginResource | None = None
    self._market: AsyncMarketResource | None = None
    self._message: AsyncMessageResource | None = None
    self._news: AsyncNewsResource | None = None
    self._order: AsyncOrderResource | None = None
    self._order_including_closed: AsyncOrderIncludingClosedResource | None = None
    self._pm: AsyncPmResource | None = None
    self._preference: AsyncPreferenceResource | None = None
    self._price_alert: AsyncPriceAlertResource | None = None
    self._session: AsyncSessionResource | None = None
    self._spread: AsyncSpreadResource | None = None
    self._tradingadvisor: AsyncTradingadvisorResource | None = None
    self._user_account: AsyncUserAccountResource | None = None
    self._watchlist: AsyncWatchlistResource | None = None

cfd property

cfd: AsyncCfdResource

Return the cfd resource group.

client_preference property

client_preference: AsyncClientPreferenceResource

Return the client_preference resource group.

clientapplication property

clientapplication: AsyncClientapplicationResource

Return the clientapplication resource group.

clientpreference property

clientpreference: AsyncClientpreferenceResource

Return the clientpreference resource group.

fixedmargin property

fixedmargin: AsyncFixedmarginResource

Return the fixedmargin resource group.

margin property

margin: AsyncMarginResource

Return the margin resource group.

market property

market: AsyncMarketResource

Return the market resource group.

message property

message: AsyncMessageResource

Return the message resource group.

news property

news: AsyncNewsResource

Return the news resource group.

order property

order: AsyncOrderResource

Return the order resource group.

order_including_closed property

order_including_closed: AsyncOrderIncludingClosedResource

Return the order_including_closed resource group.

pm property

pm: AsyncPmResource

Return the pm resource group.

preference property

preference: AsyncPreferenceResource

Return the preference resource group.

price_alert property

price_alert: AsyncPriceAlertResource

Return the price_alert resource group.

session property

session: AsyncSessionResource

Return the session resource group.

spread property

spread: AsyncSpreadResource

Return the spread resource group.

tradingadvisor property

tradingadvisor: AsyncTradingadvisorResource

Return the tradingadvisor resource group.

user_account property

user_account: AsyncUserAccountResource

Return the user_account resource group.

watchlist property

watchlist: AsyncWatchlistResource

Return the watchlist resource group.

plugin

plugin(name: str) -> BaseResource

Return a loaded plugin resource by name.

Source code in src/stonepy/client.py
def plugin(self, name: str) -> BaseResource:
    """Return a loaded plugin resource by name."""
    return self._plugins[name]

aclose async

aclose() -> None

Close the underlying asynchronous HTTP transport.

Source code in src/stonepy/client.py
async def aclose(self) -> None:
    """Close the underlying asynchronous HTTP transport."""
    await self._transport.aclose()