Blocking client for the STX exchange.
Takes the same arguments as stx.AsyncSTX and has the same
methods, without await:
with STX() as client: print(client.me().user_id) for market in client.markets(status="open", limit=5): print(market.symbol, market.last_traded_price)For WebSocket channels use stx.STXWebSocket, which is async.
Attributes
Section titled “Attributes”| Attribute | Type | Description |
|---|---|---|
async_client |
AsyncSTX |
The underlying AsyncSTX (bound to this client’s private loop). |
Methods
Section titled “Methods”accept_terms()
Section titled “accept_terms()”accept_terms(device_id: str, *, accept_terms: bool = True, accept_privacy: bool = True, accept_house_rules: Optional[bool] = None) -> strPOST /api/v1/tnc/accept.
| Parameter | Type | Description |
|---|---|---|
device_id |
str |
|
accept_terms |
bool |
|
accept_privacy |
bool |
|
accept_house_rules |
Optional[bool] |
account_market_stats()
Section titled “account_market_stats()”account_market_stats(*, market_ids: StrList = None, event_ids: StrList = None, exclude_zero_settlements: Optional[bool] = None, from_time: Optional[int] = None, to_time: Optional[int] = None, sports: StrList = None, competitions: StrList = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.MarketStat]GET /api/v1/account/market_stats.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
event_ids |
StrList |
|
exclude_zero_settlements |
Optional[bool] |
|
from_time |
Optional[int] |
|
to_time |
Optional[int] |
|
sports |
StrList |
|
competitions |
StrList |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
adjustments()
Section titled “adjustments()”adjustments(*, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.PaymentTransaction]GET /api/v1/portfolio/adjustments.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
|
cursor |
Optional[str] |
balance()
Section titled “balance()”balance() -> models.BalanceGET /api/v1/account/balance.
cancel_all_orders()
Section titled “cancel_all_orders()”cancel_all_orders() -> List[models.Cancellation]DELETE /api/v1/orders/all.
cancel_order()
Section titled “cancel_order()”cancel_order(order_id: str) -> models.CancellationDELETE /api/v1/orders/{order_id}.
| Parameter | Type | Description |
|---|---|---|
order_id |
str |
cancel_orders()
Section titled “cancel_orders()”cancel_orders(order_ids: Sequence[str]) -> List[models.Cancellation]DELETE /api/v1/orders/batched.
| Parameter | Type | Description |
|---|---|---|
order_ids |
Sequence[str] |
deposits()
Section titled “deposits()”deposits(*, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.PaymentTransaction]GET /api/v1/portfolio/deposits.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
|
cursor |
Optional[str] |
events()
Section titled “events()”events(*, event_ids: StrList = None, sports: StrList = None, competitions: StrList = None, event_types: StrList = None, title: Optional[str] = None, status: Optional[str] = None, promoted: Optional[bool] = None, sort_by: Optional[str] = None, sort_direction: Optional[str] = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Event]GET /api/v1/events. See AsyncSTX.events.
| Parameter | Type | Description |
|---|---|---|
event_ids |
StrList |
|
sports |
StrList |
|
competitions |
StrList |
|
event_types |
StrList |
|
title |
Optional[str] |
|
status |
Optional[str] |
|
promoted |
Optional[bool] |
|
sort_by |
Optional[str] |
|
sort_direction |
Optional[str] |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
fees()
Section titled “fees()”fees(*, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.FeeTransaction]GET /api/v1/portfolio/fees.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
|
cursor |
Optional[str] |
fills()
Section titled “fills()”fills(*, market_ids: StrList = None, order_ids: StrList = None, status: Optional[str] = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Fill]GET /api/v1/fills. See AsyncSTX.fills.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
order_ids |
StrList |
|
status |
Optional[str] |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
iter_account_market_stats()
Section titled “iter_account_market_stats()”iter_account_market_stats(*, market_ids: StrList = None, event_ids: StrList = None, exclude_zero_settlements: Optional[bool] = None, from_time: Optional[int] = None, to_time: Optional[int] = None, sports: StrList = None, competitions: StrList = None, limit: Optional[int] = None) -> Iterator[models.MarketStat]Every per-market stat row, page by page.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
event_ids |
StrList |
|
exclude_zero_settlements |
Optional[bool] |
|
from_time |
Optional[int] |
|
to_time |
Optional[int] |
|
sports |
StrList |
|
competitions |
StrList |
|
limit |
Optional[int] |
iter_adjustments()
Section titled “iter_adjustments()”iter_adjustments(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]Every adjustment, page by page.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
iter_deposits()
Section titled “iter_deposits()”iter_deposits(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]Every deposit, page by page.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
iter_events()
Section titled “iter_events()”iter_events(*, event_ids: StrList = None, sports: StrList = None, competitions: StrList = None, event_types: StrList = None, title: Optional[str] = None, status: Optional[str] = None, promoted: Optional[bool] = None, sort_by: Optional[str] = None, sort_direction: Optional[str] = None, limit: Optional[int] = None) -> Iterator[models.Event]Every matching event, page by page.
| Parameter | Type | Description |
|---|---|---|
event_ids |
StrList |
|
sports |
StrList |
|
competitions |
StrList |
|
event_types |
StrList |
|
title |
Optional[str] |
|
status |
Optional[str] |
|
promoted |
Optional[bool] |
|
sort_by |
Optional[str] |
|
sort_direction |
Optional[str] |
|
limit |
Optional[int] |
iter_fees()
Section titled “iter_fees()”iter_fees(*, limit: Optional[int] = None) -> Iterator[models.FeeTransaction]Every fee entry, page by page.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
iter_fills()
Section titled “iter_fills()”iter_fills(*, market_ids: StrList = None, order_ids: StrList = None, status: Optional[str] = None, limit: Optional[int] = None) -> Iterator[models.Fill]Every matching fill, page by page.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
order_ids |
StrList |
|
status |
Optional[str] |
|
limit |
Optional[int] |
iter_loyalty()
Section titled “iter_loyalty()”iter_loyalty(*, limit: Optional[int] = None) -> Iterator[models.Transaction]Every loyalty entry, page by page.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
iter_markets()
Section titled “iter_markets()”iter_markets(*, market_ids: StrList = None, event_ids: StrList = None, status: StrList = None, trading: Optional[bool] = None, sports: StrList = None, competitions: StrList = None, sort_by: Optional[str] = None, sort_direction: Optional[str] = None, limit: Optional[int] = None) -> Iterator[models.Market]Every matching market, page by page.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
event_ids |
StrList |
|
status |
StrList |
|
trading |
Optional[bool] |
|
sports |
StrList |
|
competitions |
StrList |
|
sort_by |
Optional[str] |
|
sort_direction |
Optional[str] |
|
limit |
Optional[int] |
iter_orders()
Section titled “iter_orders()”iter_orders(*, order_ids: StrList = None, client_order_ids: StrList = None, market_ids: StrList = None, status: StrList = None, limit: Optional[int] = None) -> Iterator[models.Order]Every matching order, page by page.
| Parameter | Type | Description |
|---|---|---|
order_ids |
StrList |
|
client_order_ids |
StrList |
|
market_ids |
StrList |
|
status |
StrList |
|
limit |
Optional[int] |
iter_settlements()
Section titled “iter_settlements()”iter_settlements(*, market_ids: StrList = None, type: Optional[str] = None, limit: Optional[int] = None) -> Iterator[models.Settlement]Every settlement, page by page.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
type |
Optional[str] |
|
limit |
Optional[int] |
iter_withdrawals()
Section titled “iter_withdrawals()”iter_withdrawals(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]Every withdrawal, page by page.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
loyalty()
Section titled “loyalty()”loyalty(*, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Transaction]GET /api/v1/portfolio/loyalty.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
|
cursor |
Optional[str] |
market()
Section titled “market()”market(market_id: str) -> models.MarketOne market by id. See AsyncSTX.market.
| Parameter | Type | Description |
|---|---|---|
market_id |
str |
markets()
Section titled “markets()”markets(*, market_ids: StrList = None, event_ids: StrList = None, status: StrList = None, trading: Optional[bool] = None, sports: StrList = None, competitions: StrList = None, sort_by: Optional[str] = None, sort_direction: Optional[str] = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Market]GET /api/v1/markets. See AsyncSTX.markets.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
event_ids |
StrList |
|
status |
StrList |
|
trading |
Optional[bool] |
|
sports |
StrList |
|
competitions |
StrList |
|
sort_by |
Optional[str] |
|
sort_direction |
Optional[str] |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
me() -> models.MeGET /api/v1/me. See AsyncSTX.me.
order()
Section titled “order()”order(order_id: str) -> models.OrderGET /api/v1/orders/{order_id}.
| Parameter | Type | Description |
|---|---|---|
order_id |
str |
orders()
Section titled “orders()”orders(*, order_ids: StrList = None, client_order_ids: StrList = None, market_ids: StrList = None, status: StrList = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Order]GET /api/v1/orders. See AsyncSTX.orders.
| Parameter | Type | Description |
|---|---|---|
order_ids |
StrList |
|
client_order_ids |
StrList |
|
market_ids |
StrList |
|
status |
StrList |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
place_order()
Section titled “place_order()”place_order(market_id: str, action: str, order_type: str, *, price: Optional[Amount] = None, quantity: Amount, client_order_id: Optional[str] = None, expiration: Optional[str] = None, expiration_time: Optional[int] = None, cancel_on_disconnect: Optional[bool] = None, device_id: Optional[str] = None) -> models.OrderPOST /api/v1/orders. See AsyncSTX.place_order.
| Parameter | Type | Description |
|---|---|---|
market_id |
str |
|
action |
str |
|
order_type |
str |
|
price |
Optional[Amount] |
|
quantity |
Amount |
|
client_order_id |
Optional[str] |
|
expiration |
Optional[str] |
|
expiration_time |
Optional[int] |
|
cancel_on_disconnect |
Optional[bool] |
|
device_id |
Optional[str] |
place_orders()
Section titled “place_orders()”place_orders(orders: Sequence[Mapping[str, *, Any]], geo_location: Optional[str] = None) -> List[BatchOrderResult]POST /api/v1/orders/batched. See AsyncSTX.place_orders.
| Parameter | Type | Description |
|---|---|---|
orders |
Sequence[Mapping[str, Any]] |
|
geo_location |
Optional[str] |
positions()
Section titled “positions()”positions(*, market_ids: StrList = None) -> List[models.Position]GET /api/v1/positions. See AsyncSTX.positions.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
settlements()
Section titled “settlements()”settlements(*, market_ids: StrList = None, type: Optional[str] = None, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.Settlement]GET /api/v1/portfolio/settlements.
| Parameter | Type | Description |
|---|---|---|
market_ids |
StrList |
|
type |
Optional[str] |
|
limit |
Optional[int] |
|
cursor |
Optional[str] |
user_id()
Section titled “user_id()”user_id() -> strYour user id, fetched once. See AsyncSTX.user_id.
withdrawals()
Section titled “withdrawals()”withdrawals(*, limit: Optional[int] = None, cursor: Optional[str] = None) -> Page[models.PaymentTransaction]GET /api/v1/portfolio/withdrawals.
| Parameter | Type | Description |
|---|---|---|
limit |
Optional[int] |
|
cursor |
Optional[str] |

