# STX

> The blocking client: every method, its parameters and what it returns.

Source: https://docs.stxapp.io/sdks/python/reference/stx/

{/* Generated from the Python source by tools/gen_reference.py. Do not edit by hand. */}

Blocking client for the STX exchange.

Takes the same arguments as `stx.AsyncSTX` and has the same
methods, without `await`:

```python
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

| Attribute | Type | Description |
|---|---|---|
| `async_client` | `AsyncSTX` | The underlying `AsyncSTX` (bound to this client's private loop). |

## Methods

### `accept_terms()`

```python
accept_terms(device_id: str, *, accept_terms: bool = True, accept_privacy: bool = True, accept_house_rules: Optional[bool] = None) -> str
```

`POST /api/v1/tnc/accept`.

| Parameter | Type | Description |
|---|---|---|
| `device_id` | `str` |  |
| `accept_terms` | `bool` |  |
| `accept_privacy` | `bool` |  |
| `accept_house_rules` | `Optional[bool]` |  |

### `account_market_stats()`

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

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

```python
balance() -> models.Balance
```

`GET /api/v1/account/balance`.

### `cancel_all_orders()`

```python
cancel_all_orders() -> List[models.Cancellation]
```

`DELETE /api/v1/orders/all`.

### `cancel_order()`

```python
cancel_order(order_id: str) -> models.Cancellation
```

`DELETE /api/v1/orders/{order_id}`.

| Parameter | Type | Description |
|---|---|---|
| `order_id` | `str` |  |

### `cancel_orders()`

```python
cancel_orders(order_ids: Sequence[str]) -> List[models.Cancellation]
```

`DELETE /api/v1/orders/batched`.

| Parameter | Type | Description |
|---|---|---|
| `order_ids` | `Sequence[str]` |  |

### `deposits()`

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

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

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

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

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

```python
iter_adjustments(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]
```

Every adjustment, page by page.

| Parameter | Type | Description |
|---|---|---|
| `limit` | `Optional[int]` |  |

### `iter_deposits()`

```python
iter_deposits(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]
```

Every deposit, page by page.

| Parameter | Type | Description |
|---|---|---|
| `limit` | `Optional[int]` |  |

### `iter_events()`

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

```python
iter_fees(*, limit: Optional[int] = None) -> Iterator[models.FeeTransaction]
```

Every fee entry, page by page.

| Parameter | Type | Description |
|---|---|---|
| `limit` | `Optional[int]` |  |

### `iter_fills()`

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

```python
iter_loyalty(*, limit: Optional[int] = None) -> Iterator[models.Transaction]
```

Every loyalty entry, page by page.

| Parameter | Type | Description |
|---|---|---|
| `limit` | `Optional[int]` |  |

### `iter_markets()`

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

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

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

```python
iter_withdrawals(*, limit: Optional[int] = None) -> Iterator[models.PaymentTransaction]
```

Every withdrawal, page by page.

| Parameter | Type | Description |
|---|---|---|
| `limit` | `Optional[int]` |  |

### `loyalty()`

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

```python
market(market_id: str) -> models.Market
```

One market by id. See `AsyncSTX.market`.

| Parameter | Type | Description |
|---|---|---|
| `market_id` | `str` |  |

### `markets()`

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

```python
me() -> models.Me
```

`GET /api/v1/me`. See `AsyncSTX.me`.

### `order()`

```python
order(order_id: str) -> models.Order
```

`GET /api/v1/orders/{order_id}`.

| Parameter | Type | Description |
|---|---|---|
| `order_id` | `str` |  |

### `orders()`

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

```python
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.Order
```

`POST /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()`

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

```python
positions(*, market_ids: StrList = None) -> List[models.Position]
```

`GET /api/v1/positions`. See `AsyncSTX.positions`.

| Parameter | Type | Description |
|---|---|---|
| `market_ids` | `StrList` |  |

### `settlements()`

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

```python
user_id() -> str
```

Your user id, fetched once. See `AsyncSTX.user_id`.

### `withdrawals()`

```python
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]` |  |
