Fetch Market Data

spot.market_data is public -- no credentials needed.

Ticker

from typed_kraken import Kraken

async with Kraken.new(public=True) as client:
  ticker = await client.spot.market_data.ticker(pair='XBTUSD')
  print(ticker['XXBTZUSD'].get('c'))  # last trade [price, lot volume]

Kraken keys the response by its own internal pair name (XXBTZUSD, not XBTUSD). Leave pair unset to get every tradeable pair.

Order Book

from typed_kraken import Kraken

async with Kraken.new(public=True) as client:
  book = await client.spot.market_data.depth(pair='XBTUSD', count=10)

asks/bids are [price, volume, timestamp] rows, best price first.

Candles

from typed_kraken import Kraken

async with Kraken.new(public=True) as client:
  candles = await client.spot.market_data.ohlc(pair='XBTUSD', interval=60)

interval is in minutes (1, 5, 15, 30, 60, 240, 1440, 10080, 21600). Kraken returns at most the last 720 candles per call -- there is no deeper backfill.

Recent Trades

from typed_kraken import Kraken

async with Kraken.new(public=True) as client:
  trades = await client.spot.market_data.trades(pair='XBTUSD', count=100)

Asset Pairs

from typed_kraken import Kraken

async with Kraken.new(public=True) as client:
  pairs = await client.spot.market_data.asset_pairs()

Use this to look up a pair's tradable name, price/quantity precision, and order minimums before placing an order.

Also Available

spot.market_data also has assets() (asset metadata), spread() (recent bid/ask spread), system_status(), and time() (server time) -- each a single unparameterized or lightly-parameterized call, same shape as the ones above.