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._resource_lock = Lock()
    self._cfd: CfdResource | None = None
    self._client_preference: ClientPreferenceResource | None = None
    self._client_application: ClientapplicationResource | None = None
    self._clientpreference: ClientpreferenceResource | None = None
    self._fixed_margin: 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._trading_advisor: TradingadvisorResource | None = None
    self._user_account: UserAccountResource | None = None
    self._watchlist: WatchlistResource | None = None

call_context property

call_context: CallContext

Return shared call state for explicitly constructed resources.

This property cannot be reassigned; its context contains mutable state. Use it only while this client is open.

cfd property

Return the cfd resource group.

client_preference property

client_preference: ClientPreferenceResource

Return the client_preference resource group.

client_application property

client_application: ClientapplicationResource

Return the client_application resource group.

clientapplication property

clientapplication: ClientapplicationResource

Deprecated alias of client_application.

clientpreference property

clientpreference: ClientpreferenceResource

Return the clientpreference resource group.

fixed_margin property

fixed_margin: FixedmarginResource

Return the fixed_margin resource group.

fixedmargin property

fixedmargin: FixedmarginResource

Deprecated alias of fixed_margin.

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.

trading_advisor property

trading_advisor: TradingadvisorResource

Return the trading_advisor resource group.

tradingadvisor property

tradingadvisor: TradingadvisorResource

Deprecated alias of trading_advisor.

user_account property

user_account: UserAccountResource

Return the user_account resource group.

watchlist property

watchlist: WatchlistResource

Return the watchlist resource group.

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._resource_lock = Lock()
    self._cfd: AsyncCfdResource | None = None
    self._client_preference: AsyncClientPreferenceResource | None = None
    self._client_application: AsyncClientapplicationResource | None = None
    self._clientpreference: AsyncClientpreferenceResource | None = None
    self._fixed_margin: 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._trading_advisor: AsyncTradingadvisorResource | None = None
    self._user_account: AsyncUserAccountResource | None = None
    self._watchlist: AsyncWatchlistResource | None = None

call_context property

call_context: CallContext

Return shared call state for explicitly constructed resources.

This property cannot be reassigned; its context contains mutable state. Use it only while this client is open.

cfd property

cfd: AsyncCfdResource

Return the cfd resource group.

client_preference property

client_preference: AsyncClientPreferenceResource

Return the client_preference resource group.

client_application property

client_application: AsyncClientapplicationResource

Return the client_application resource group.

clientapplication property

clientapplication: AsyncClientapplicationResource

Deprecated alias of client_application.

clientpreference property

clientpreference: AsyncClientpreferenceResource

Return the clientpreference resource group.

fixed_margin property

fixed_margin: AsyncFixedmarginResource

Return the fixed_margin resource group.

fixedmargin property

fixedmargin: AsyncFixedmarginResource

Deprecated alias of fixed_margin.

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.

trading_advisor property

trading_advisor: AsyncTradingadvisorResource

Return the trading_advisor resource group.

tradingadvisor property

tradingadvisor: AsyncTradingadvisorResource

Deprecated alias of trading_advisor.

user_account property

user_account: AsyncUserAccountResource

Return the user_account resource group.

watchlist property

watchlist: AsyncWatchlistResource

Return the watchlist resource group.

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()