River Markets Python SDK
Python SDK for the River Markets API.
Installation
pip install rivermarkets
Authentication
The SDK authenticates with Ed25519 request signing. Create an API key in
Settings → API Keys; you'll get a Key ID (UUID) and a base64-encoded
private key (shown once at creation). Pass both to the client — every
request is signed transparently via X-River-Key-Id, X-River-Timestamp,
and X-River-Signature headers.
Usage
from rivermarkets import RiverMarkets
client = RiverMarkets(
key_id="YOUR_KEY_ID",
private_key="YOUR_BASE64_PRIVATE_KEY",
)
# Search markets
results = client.markets.search_markets(q="bitcoin")
# Place an order
order = client.orders.create_order(
subaccount_id="...",
river_id=4552150,
order_type="LIMIT",
time_in_force="GTC",
buy_flag=True,
price=0.50,
qty=10,
)
# Cancel an order
client.orders.cancel_order(order_id="...")
Async
from rivermarkets import AsyncRiverMarkets
client = AsyncRiverMarkets(
key_id="YOUR_KEY_ID",
private_key="YOUR_BASE64_PRIVATE_KEY",
)
results = await client.markets.search_markets(q="bitcoin")
Local fee calculations
The client fetches each market's live fee schedule once and caches it for the lifetime of that client. You can also warm several schedules with one request:
from rivermarkets import RiverMarkets
client = RiverMarkets(
key_id="YOUR_KEY_ID",
private_key="YOUR_BASE64_PRIVATE_KEY",
)
river_id = 4552150
qty = 10
price = 0.50
client.prefetch_fee_schedules([river_id])
taker_fee = client.compute_fee(
river_id=river_id,
qty=qty,
price=price,
is_maker=False,
)
maker_fee = client.compute_fee(
river_id=river_id,
qty=qty,
price=price,
is_maker=True,
)
# Normalize quoted prices to include the per-contract taker fee.
buy_all_in = price + taker_fee / qty
sell_net = price - taker_fee / qty
compute_fee makes no network request after the River ID is cached. Call
clear_fee_schedule_cache(river_id) to force the next calculation to reload
that schedule.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rivermarkets-0.12.0.tar.gz.
File metadata
- Download URL: rivermarkets-0.12.0.tar.gz
- Upload date:
- Size: 61.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b41ee7c32ad8e5de4944e16e8556d3f7805764b97a0f484a5c7892f9f44f3e6c
|
|
| MD5 |
17e8d02af631634fa949a5513f7c9ade
|
|
| BLAKE2b-256 |
0bca30e2e941ae0dcae4f01bcf339d815d8263d98269121503d0fd431df3f2d6
|
File details
Details for the file rivermarkets-0.12.0-py3-none-any.whl.
File metadata
- Download URL: rivermarkets-0.12.0-py3-none-any.whl
- Upload date:
- Size: 117.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9c597df9057c9328737d77778303277843c48358aba20e90460f5b336808e0b
|
|
| MD5 |
ef507f0f921b7bd2336b1a17c9dc8d58
|
|
| BLAKE2b-256 |
518c54a930f9d27e0cc5dba9e8337ca2f50d8dd330efdefea6056398bf26990c
|