Kraken

App · Cryptocurrency · 14 actions

Read Kraken's public market data. Get a live price for any of the 1,400-plus pairs it trades, pull candles for a chart or a moving average, look into the order book, follow the trades and the spread, and check whether the exchange is up before you rely on the figures. Kraken's derivatives platform is here too: contract terms, prices, order books, fills, funding rates, and an alert for any contract not trading normally. No API key, no account and no sign-up - and every action reads, so nothing can reach an account or move money.

Actions

ActionWhat it does
Check for unusual futures activityAsk Kraken which futures contracts are not trading normally right now - one whose price has come adrift of its index, or one moving violently enough for Kraken to have raised the margin behind it.
Check Kraken's statusCheck whether Kraken is trading, how quickly it is answering, and what maintenance it has announced.
Get a futures order bookSee the buy and sell orders waiting on one futures contract, best price first, with the spread and the resting size on each side worked out.
Get a futures priceGet what one or more futures contracts are trading at, with the two numbers only a derivatives market has: the funding rate, which says which side is paying the other to hold the position, and the open interest, which says how much is riding on it.
Get a priceGet what one or more pairs are trading at right now: the last traded price, the best bid and ask, and the day's high, low, volume and change.
Get futures funding ratesSee what holding a perpetual contract has cost, hour by hour.
Get price historyGet a pair's price as candles - the open, high, low and close of each minute, hour, day or week - for charting, for a moving average, or for comparing today against last month.
Get spread historySee how the gap between the best bid and the best ask on one pair has moved over the last few minutes, with the narrowest, widest and average across the window.
Get the order bookSee the buy and sell orders waiting to be filled on one pair, best price first - what it would actually cost to trade a given size, rather than what the last trade happened to go at.
List currenciesSee the coins and currencies Kraken lists, whether each is currently enabled, how many decimal places it holds, and the code it goes by.
List futures contractsSee what Kraken's derivatives platform lists and the terms of each contract: its size, its price increment, when it was listed, and - for a dated future - when it stops trading.
List recent futures tradesList the fills that have actually happened on one futures contract, oldest first, each with its price, size, side and time.
List recent tradesList the trades that have actually happened on one pair, oldest first, each with its price, size, side and time.
List trading pairsSee what Kraken trades and on what terms: the smallest order it accepts, the smallest order value, the price increment, the standard maker and taker fees, and whether the pair is trading normally or restricted.

Check for unusual futures activity

Ask Kraken which futures contracts are not trading normally right now - one whose price has come adrift of its index, or one moving violently enough for Kraken to have raised the margin behind it. Only the flagged contracts come back, so a scheduled check can branch on 'unusual_activity' instead of reading through several hundred contracts that are fine.

Inputs

None.

Outputs

alert_countnumber
alertslist
checked_attext
contracts_checkednumber
messagetext
unusual_activitytrue/false
Example output
{
  "alert_count": 0,
  "alerts": [],
  "checked_at": "2026-09-02T22:18:01Z",
  "contracts_checked": 294,
  "message": "All 294 Kraken futures contracts are trading normally.",
  "unusual_activity": false
}

Check Kraken's status

Check whether Kraken is trading, how quickly it is answering, and what maintenance it has announced. This is the one action that reports a problem as a value instead of failing the step, so a workflow can decide what to do about it - skip a report, wait, or say the figures are stale - rather than dying halfway through.

Inputs

None.

Outputs

checked_attext
clock_offset_secondsnumber
maintenance_countnumber
messagetext
onlinetrue/false
reachabletrue/false
response_time_msnumber
server_timetext
server_time_epochnumber
statustext
status_descriptiontext
upcoming_maintenancelist
Example output
{
  "checked_at": "2026-09-02T22:13:47Z",
  "clock_offset_seconds": -0.3,
  "maintenance_count": 1,
  "message": "Kraken is fully operational. Kraken Website and API Maintenance is scheduled for 2026-09-03T07:01:00Z.",
  "online": true,
  "reachable": true,
  "response_time_ms": 143.7,
  "server_time": "2026-09-02T22:13:47Z",
  "server_time_epoch": 1788387227,
  "status": "online",
  "status_description": "Kraken is fully operational.",
  "upcoming_maintenance": [
    {
      "affected_services": [
        "spot_trading",
        "spot_rest"
      ],
      "ends_at": "2026-09-03T07:16:00Z",
      "more_info_url": "https://stspg.io/9f3sdrwg5949",
      "recommended_action": "continue",
      "starts_at": "2026-09-03T07:01:00Z",
      "starts_in_hours": 8.8,
      "title": "Kraken Website and API Maintenance"
    }
  ]
}

Get a futures order book

See the buy and sell orders waiting on one futures contract, best price first, with the spread and the resting size on each side worked out. Kraken publishes the whole book on the derivatives platform - often more than a thousand levels a side - so 'Price levels' decides how much of the top of it you get back.

Inputs

Futures contractsymboltextRequired
Which contract's order book to read.
Price levelsdepthnumber
How many price levels to return on each side, starting from the best price.From 1 to 500. Default: 10.

Outputs

ask_sizenumber
askslist
best_asknumber
best_bidnumber
bid_sizenumber
bidslist
contracttext
contract_typetext
depthnumber
pairtext
retrieved_attext
settled_intext
spreadnumber
spread_percentnumber
symboltext
Example output
{
  "ask_size": 0.0271,
  "asks": [
    {
      "price": 77113.0,
      "size": 0.0271,
      "value": 2089.7623
    }
  ],
  "best_ask": 77113.0,
  "best_bid": 77112.0,
  "bid_size": 0.0261,
  "bids": [
    {
      "price": 77112.0,
      "size": 0.0261,
      "value": 2012.6232
    }
  ],
  "contract": "BTC/USD perpetual",
  "contract_type": "perpetual",
  "depth": 1,
  "pair": "BTC/USD",
  "retrieved_at": "2026-09-02T22:18:00Z",
  "settled_in": "USD",
  "spread": 1.0,
  "spread_percent": 0.001297,
  "symbol": "PF_XBTUSD"
}

Get a futures price

Get what one or more futures contracts are trading at, with the two numbers only a derivatives market has: the funding rate, which says which side is paying the other to hold the position, and the open interest, which says how much is riding on it. The mark price - what positions are valued and liquidated at - comes back beside the last traded price.

Inputs

Futures contractssymbolslistRequired
Which contracts to price. Pick as many as you need; they are fetched together, so ten cost the same as one. At most 20 at a time.

Outputs

countnumber
priceslist
retrieved_attext
Example output
{
  "count": 1,
  "prices": [
    {
      "ask": 77114.0,
      "ask_size": 0.0271,
      "bid": 77113.0,
      "bid_size": 0.0326,
      "change_24h": -157.0,
      "change_percent_24h": -0.2,
      "contract": "BTC/USD perpetual",
      "contract_type": "perpetual",
      "funding_rate_absolute": 0.404140164454,
      "funding_rate_percent": 0.00052407,
      "high_24h": 77768.0,
      "index_price": 77113.84,
      "last_trade_size": 0.0002,
      "last_trade_time": "2026-09-02T22:14:12Z",
      "low_24h": 76197.0,
      "mark_price": 77115.57218147644,
      "open_24h": 77272.0,
      "open_interest": 1917.3661,
      "pair": "BTC/USD",
      "post_only": false,
      "predicted_funding_rate_percent": 0.00043938,
      "price": 77115.0,
      "settled_in": "USD",
      "spread": 1.0,
      "spread_percent": 0.001297,
      "suspended": false,
      "symbol": "PF_XBTUSD",
      "volume_24h": 6853.5365,
      "volume_quote_24h": 528233773.2481,
      "vwap_24h": 77074.62756609
    }
  ],
  "retrieved_at": "2026-09-02T22:14:13Z"
}

Get a price

Get what one or more pairs are trading at right now: the last traded price, the best bid and ask, and the day's high, low, volume and change. This is the action for a price alert, a morning summary or a figure to drop into a message. Pick several pairs and they come back in one request.

Inputs

Trading pairspairslistRequired
Which pairs to price. Pick as many as you need; they are fetched together, so ten pairs cost the same as one. At most 20 at a time.

Outputs

countnumber
priceslist
retrieved_attext
Example output
{
  "count": 1,
  "prices": [
    {
      "ask": 77126.8,
      "ask_volume": 1.0,
      "base": "BTC",
      "bid": 77126.7,
      "bid_volume": 1.0,
      "change_percent_today": -0.3507,
      "change_today": -271.4,
      "high_24h": 77736.2,
      "high_today": 77736.2,
      "kraken_pair": "XXBTZUSD",
      "last_trade_volume": 1.946e-05,
      "low_24h": 76236.9,
      "low_today": 76236.9,
      "open_today": 77398.1,
      "pair": "BTC/USD",
      "pair_id": "XBTUSD",
      "price": 77126.7,
      "quote": "USD",
      "spread": 0.1,
      "spread_percent": 0.000129,
      "trades_24h": 103253,
      "trades_today": 96524,
      "volume_24h": 2175.77514972,
      "volume_today": 2057.45745294,
      "vwap_24h": 77106.97115,
      "vwap_today": 77096.17108
    }
  ],
  "retrieved_at": "2026-09-02T22:13:47Z"
}

Get futures funding rates

See what holding a perpetual contract has cost, hour by hour. Funding is the payment that keeps a perpetual near the spot price: every hour one side pays the other, and a positive rate means the people who are long are paying the people who are short. The average is also given annualised, which is the figure that makes an hourly rate of 0.0005% mean something. Dated futures do not pay funding, and choosing one says so.

Inputs

Futures contractsymboltextRequired
Which perpetual contract's funding to read. A dated future has none.
How manylimitnumber
How many of the most recent hourly rates to return. A day is 24 and a week is 168.From 1 to 500. Default: 24.

Outputs

annualised_rate_percentnumber
average_rate_percentnumber
contracttext
contract_typetext
countnumber
first_rate_timetext
highest_rate_percentnumber
last_rate_timetext
latest_rate_percentnumber
longs_paying_shortstrue/false
lowest_rate_percentnumber
pairtext
rateslist
retrieved_attext
settled_intext
symboltext
Example output
{
  "annualised_rate_percent": 4.5820056,
  "average_rate_percent": 0.00052306,
  "contract": "BTC/USD perpetual",
  "contract_type": "perpetual",
  "count": 1,
  "first_rate_time": "2026-09-02T22:00:00Z",
  "highest_rate_percent": 0.00052306,
  "last_rate_time": "2026-09-02T22:00:00Z",
  "latest_rate_percent": 0.00052306,
  "longs_paying_shorts": true,
  "lowest_rate_percent": 0.00052306,
  "pair": "BTC/USD",
  "rates": [
    {
      "rate_absolute": 0.404140164454,
      "rate_percent": 0.00052306,
      "time": "2026-09-02T22:00:00Z",
      "time_epoch": 1788386400.0
    }
  ],
  "retrieved_at": "2026-09-02T22:19:46Z",
  "settled_in": "USD",
  "symbol": "PF_XBTUSD"
}

Get price history

Get a pair's price as candles - the open, high, low and close of each minute, hour, day or week - for charting, for a moving average, or for comparing today against last month. Kraken is always still filling in the most recent candle, so each one says whether its period has closed: read 'complete' before treating a candle as settled.

Inputs

Trading pairpairtextRequired
Which pair's history to read.
Candle sizeintervalnumber
How much time each candle covers. Kraken keeps around 720 of them per pair, so an hourly candle reaches back about a month and a daily one about two years.One of: 1 (1 minute), 5 (5 minutes), 15 (15 minutes), 30 (30 minutes), 60 (1 hour), 240 (4 hours), 1440 (1 day), 10080 (1 week), 21600 (15 days). Default: 60.
How manylimitnumber
How many of the most recent candles to return.From 1 to 720. Default: 100.
Start fromsincedate and time
Only candles from this moment onwards. Leave it empty for the most recent ones, which is what a chart or a running average wants.

Outputs

basetext
candleslist
complete_countnumber
countnumber
first_candle_timetext
intervaltext
interval_minutesnumber
kraken_pairtext
last_candle_timetext
last_complete_candle_timetext
next_sincenumber
pairtext
pair_idtext
quotetext
retrieved_attext
Example output
{
  "base": "BTC",
  "candles": [
    {
      "close": 77253.7,
      "complete": true,
      "high": 77403.6,
      "low": 77215.5,
      "open": 77374.3,
      "time": "2026-09-02T21:00:00Z",
      "time_epoch": 1788382800,
      "trades": 2935,
      "volume": 38.45774901,
      "vwap": 77287.8
    },
    {
      "close": 77126.7,
      "complete": false,
      "high": 77266.0,
      "low": 77062.8,
      "open": 77253.7,
      "time": "2026-09-02T22:00:00Z",
      "time_epoch": 1788386400,
      "trades": 796,
      "volume": 10.57925493,
      "vwap": 77137.9
    }
  ],
  "complete_count": 1,
  "count": 2,
  "first_candle_time": "2026-09-02T21:00:00Z",
  "interval": "1 hour",
  "interval_minutes": 60,
  "kraken_pair": "XXBTZUSD",
  "last_candle_time": "2026-09-02T22:00:00Z",
  "last_complete_candle_time": "2026-09-02T21:00:00Z",
  "next_since": 1788382800,
  "pair": "BTC/USD",
  "pair_id": "XBTUSD",
  "quote": "USD",
  "retrieved_at": "2026-09-02T22:13:50Z"
}

Get spread history

See how the gap between the best bid and the best ask on one pair has moved over the last few minutes, with the narrowest, widest and average across the window. A widening spread is how thin liquidity shows up before it shows up in the price, so this is the one to watch before trading size.

Inputs

Trading pairpairtextRequired
Which pair's spreads to read.
How manylimitnumber
How many of the most recent quote changes to return.From 1 to 500. Default: 50.
Start fromsincedate and time
Only quotes from this moment onwards. Leave it empty for the most recent ones.

Outputs

average_spreadnumber
basetext
countnumber
first_quote_timetext
kraken_pairtext
last_quote_timetext
narrowest_spreadnumber
next_sincenumber
pairtext
pair_idtext
quotetext
retrieved_attext
spreadslist
widest_spreadnumber
Example output
{
  "average_spread": 0.1,
  "base": "BTC",
  "count": 1,
  "first_quote_time": "2026-09-02T22:13:36Z",
  "kraken_pair": "XXBTZUSD",
  "last_quote_time": "2026-09-02T22:13:36Z",
  "narrowest_spread": 0.1,
  "next_since": 1788387216,
  "pair": "BTC/USD",
  "pair_id": "XBTUSD",
  "quote": "USD",
  "retrieved_at": "2026-09-02T22:13:55Z",
  "spreads": [
    {
      "ask": 77126.8,
      "bid": 77126.7,
      "spread": 0.1,
      "spread_percent": 0.000129,
      "time": "2026-09-02T22:13:36Z",
      "time_epoch": 1788387216
    }
  ],
  "widest_spread": 0.1
}

Get the order book

See the buy and sell orders waiting to be filled on one pair, best price first - what it would actually cost to trade a given size, rather than what the last trade happened to go at. The spread between the best bid and the best ask is worked out for you, along with how much is resting on each side.

Inputs

Trading pairpairtextRequired
Which pair's order book to read.
Price levelsdepthnumber
How many price levels to return on each side. Ten is enough to see the top of the book; raise it to weigh a larger order against the resting size.From 1 to 500. Default: 10.

Outputs

ask_volumenumber
askslist
basetext
best_asknumber
best_bidnumber
bid_volumenumber
bidslist
depthnumber
kraken_pairtext
pairtext
pair_idtext
quotetext
retrieved_attext
spreadnumber
spread_percentnumber
Example output
{
  "ask_volume": 0.768,
  "asks": [
    {
      "price": 77126.8,
      "time": "2026-09-02T22:13:47Z",
      "value": 59233.3824,
      "volume": 0.768
    }
  ],
  "base": "BTC",
  "best_ask": 77126.8,
  "best_bid": 77126.7,
  "bid_volume": 0.154,
  "bids": [
    {
      "price": 77126.7,
      "time": "2026-09-02T22:13:48Z",
      "value": 11877.5118,
      "volume": 0.154
    }
  ],
  "depth": 1,
  "kraken_pair": "XXBTZUSD",
  "pair": "BTC/USD",
  "pair_id": "XBTUSD",
  "quote": "USD",
  "retrieved_at": "2026-09-02T22:13:48Z",
  "spread": 0.1,
  "spread_percent": 0.000129
}

List currencies

See the coins and currencies Kraken lists, whether each is currently enabled, how many decimal places it holds, and the code it goes by. Worth running once while building: Kraken's API calls bitcoin XBT and dogecoin XDG, and this is where that mapping is visible.

Inputs

Currenciescurrencieslist
Only these currencies. Leave it empty to list every one Kraken holds, which runs to several hundred.
How manylimitnumber
How many currencies to return, in alphabetical order.From 1 to 500. Default: 50.

Outputs

countnumber
currencieslist
retrieved_attext
total_matchingnumber
truncatedtrue/false
Example output
{
  "count": 1,
  "currencies": [
    {
      "code": "XBT",
      "collateral_value": 0.99,
      "currency": "BTC",
      "decimals": 10,
      "display_decimals": 5,
      "enabled": true,
      "kraken_code": "XXBT",
      "margin_rate": 0.01,
      "status": "enabled"
    }
  ],
  "retrieved_at": "2026-09-02T22:13:55Z",
  "total_matching": 1,
  "truncated": false
}

List futures contracts

See what Kraken's derivatives platform lists and the terms of each contract: its size, its price increment, when it was listed, and - for a dated future - when it stops trading. Filter to perpetuals, which run indefinitely and pay funding, or to dated futures, which expire on a set day.

Inputs

Futures contractssymbolslist
Only these contracts. Leave it empty to list every one Kraken offers.
Contract typecontract_typetext
Which kind to include. A perpetual never expires and pays funding every hour; a dated future settles on a fixed day and does not.One of: all (Every contract), perpetual (Perpetuals only), dated (Dated futures only). Default: all.
How manylimitnumber
How many contracts to return, in alphabetical order.From 1 to 500. Default: 50.

Outputs

contractslist
countnumber
retrieved_attext
total_matchingnumber
truncatedtrue/false
Example output
{
  "contracts": [
    {
      "base": "BTC",
      "category": "Layer 1",
      "contract": "BTC/USD perpetual",
      "contract_size": 1.0,
      "contract_type": "perpetual",
      "expired": false,
      "isin": "GB00BQ84JX13",
      "last_trading_time": null,
      "listed_at": "2022-03-22T13:15:36Z",
      "max_position_size": 1200.0,
      "pair": "BTC/USD",
      "post_only": false,
      "quote": "USD",
      "settled_in": "USD",
      "symbol": "PF_XBTUSD",
      "tick_size": 1.0,
      "tradable": true,
      "underlying": null
    }
  ],
  "count": 1,
  "retrieved_at": "2026-09-02T22:14:13Z",
  "total_matching": 1,
  "truncated": false
}

List recent futures trades

List the fills that have actually happened on one futures contract, oldest first, each with its price, size, side and time. Kraken returns the hundred most recent; to walk further back, set 'Up to' to the earliest time you were given and run it again.

Inputs

Futures contractsymboltextRequired
Which contract's fills to read.
How manylimitnumber
How many of the most recent fills to return.From 1 to 100. Default: 50.
Up tobeforedate and time
Only fills from before this moment, for stepping back through the history. Leave it empty for the most recent ones.

Outputs

buy_countnumber
contracttext
contract_typetext
countnumber
first_trade_timetext
last_trade_timetext
pairtext
retrieved_attext
sell_countnumber
settled_intext
symboltext
tradeslist
volumenumber
Example output
{
  "buy_count": 0,
  "contract": "BTC/USD perpetual",
  "contract_type": "perpetual",
  "count": 1,
  "first_trade_time": "2026-09-02T22:18:00Z",
  "last_trade_time": "2026-09-02T22:18:00Z",
  "pair": "BTC/USD",
  "retrieved_at": "2026-09-02T22:18:01Z",
  "sell_count": 1,
  "settled_in": "USD",
  "symbol": "PF_XBTUSD",
  "trades": [
    {
      "price": 77119.0,
      "side": "sell",
      "size": 0.0002,
      "time": "2026-09-02T22:18:00Z",
      "time_epoch": 1788387480.772,
      "trade_id": 3,
      "type": "fill",
      "value": 15.4238
    }
  ],
  "volume": 0.0002
}

List recent trades

List the trades that have actually happened on one pair, oldest first, each with its price, size, side and time. This is what really changed hands, as opposed to what is being asked for in the order book. To follow a pair over time, feed 'next_since' from one run into 'Start from' on the next and you pick up exactly where you left off.

Inputs

Trading pairpairtextRequired
Which pair's trades to read.
How manylimitnumber
How many of the most recent trades to return.From 1 to 1000. Default: 50.
Start fromsincedate and time
Only trades from this moment onwards. Leave it empty for the most recent ones.

Outputs

basetext
buy_countnumber
countnumber
first_trade_timetext
kraken_pairtext
last_trade_timetext
next_sincetext
pairtext
pair_idtext
quotetext
retrieved_attext
sell_countnumber
tradeslist
volumenumber
Example output
{
  "base": "BTC",
  "buy_count": 0,
  "count": 1,
  "first_trade_time": "2026-09-02T22:14:11Z",
  "kraken_pair": "XXBTZUSD",
  "last_trade_time": "2026-09-02T22:14:11Z",
  "next_since": "1788387251454017328",
  "pair": "BTC/USD",
  "pair_id": "XBTUSD",
  "quote": "USD",
  "retrieved_at": "2026-09-02T22:14:12Z",
  "sell_count": 1,
  "trades": [
    {
      "order_type": "limit",
      "price": 77119.0,
      "side": "sell",
      "time": "2026-09-02T22:14:11Z",
      "time_epoch": 1788387251.4540174,
      "trade_id": 106648624,
      "value": 28.04201078,
      "volume": 0.00036362
    }
  ],
  "volume": 0.00036362
}

List trading pairs

See what Kraken trades and on what terms: the smallest order it accepts, the smallest order value, the price increment, the standard maker and taker fees, and whether the pair is trading normally or restricted. Filter to one currency to see everything it trades against.

Inputs

Trading pairspairslist
Only these pairs. Leave it empty to list everything Kraken trades, which is well over a thousand pairs - so use 'How many' or the currency filter with it.
Involving this currencycurrencytext
Only pairs with this currency on either side: choose USD for every dollar market, or BTC for everything quoted in or against bitcoin.
How manylimitnumber
How many pairs to return, in alphabetical order.From 1 to 500. Default: 50.

Outputs

countnumber
pairslist
retrieved_attext
total_matchingnumber
truncatedtrue/false
Example output
{
  "count": 1,
  "pairs": [
    {
      "base": "BTC",
      "kraken_pair": "XXBTZUSD",
      "maker_fee_percent": 0.25,
      "margin_available": true,
      "max_leverage": 10,
      "minimum_cost": 0.5,
      "minimum_order": 5e-05,
      "pair": "BTC/USD",
      "pair_id": "XBTUSD",
      "price_decimals": 1,
      "quote": "USD",
      "status": "online",
      "taker_fee_percent": 0.4,
      "tick_size": 0.1,
      "tradable": true,
      "volume_decimals": 8
    }
  ],
  "retrieved_at": "2026-09-02T22:13:55Z",
  "total_matching": 1,
  "truncated": false
}

On this page