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
| Action | What it does |
|---|---|
| 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. |
| Check Kraken's status | Check whether Kraken is trading, how quickly it is answering, and what maintenance it has announced. |
| 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. |
| 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. |
| 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. |
| Get futures funding rates | See what holding a perpetual contract has cost, hour by hour. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| List recent trades | List the trades that have actually happened on one pair, oldest first, each with its price, size, side and time. |
| 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. |
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_countnumberalertslistchecked_attextcontracts_checkednumbermessagetextunusual_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_attextclock_offset_secondsnumbermaintenance_countnumbermessagetextonlinetrue/falsereachabletrue/falseresponse_time_msnumberserver_timetextserver_time_epochnumberstatustextstatus_descriptiontextupcoming_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 contract
symboltextRequired - Which contract's order book to read.
- Price levels
depthnumber - How many price levels to return on each side, starting from the best price.From 1 to 500. Default:
10.
Outputs
ask_sizenumberaskslistbest_asknumberbest_bidnumberbid_sizenumberbidslistcontracttextcontract_typetextdepthnumberpairtextretrieved_attextsettled_intextspreadnumberspread_percentnumbersymboltext
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 contracts
symbolslistRequired - 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
countnumberpriceslistretrieved_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 pairs
pairslistRequired - 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
countnumberpriceslistretrieved_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 contract
symboltextRequired - Which perpetual contract's funding to read. A dated future has none.
- How many
limitnumber - 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_percentnumberaverage_rate_percentnumbercontracttextcontract_typetextcountnumberfirst_rate_timetexthighest_rate_percentnumberlast_rate_timetextlatest_rate_percentnumberlongs_paying_shortstrue/falselowest_rate_percentnumberpairtextrateslistretrieved_attextsettled_intextsymboltext
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 pair
pairtextRequired - Which pair's history to read.
- Candle size
intervalnumber - 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 many
limitnumber - How many of the most recent candles to return.From 1 to 720. Default:
100. - Start from
sincedate 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
basetextcandleslistcomplete_countnumbercountnumberfirst_candle_timetextintervaltextinterval_minutesnumberkraken_pairtextlast_candle_timetextlast_complete_candle_timetextnext_sincenumberpairtextpair_idtextquotetextretrieved_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 pair
pairtextRequired - Which pair's spreads to read.
- How many
limitnumber - How many of the most recent quote changes to return.From 1 to 500. Default:
50. - Start from
sincedate and time - Only quotes from this moment onwards. Leave it empty for the most recent ones.
Outputs
average_spreadnumberbasetextcountnumberfirst_quote_timetextkraken_pairtextlast_quote_timetextnarrowest_spreadnumbernext_sincenumberpairtextpair_idtextquotetextretrieved_attextspreadslistwidest_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 pair
pairtextRequired - Which pair's order book to read.
- Price levels
depthnumber - 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_volumenumberaskslistbasetextbest_asknumberbest_bidnumberbid_volumenumberbidslistdepthnumberkraken_pairtextpairtextpair_idtextquotetextretrieved_attextspreadnumberspread_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
- Currencies
currencieslist - Only these currencies. Leave it empty to list every one Kraken holds, which runs to several hundred.
- How many
limitnumber - How many currencies to return, in alphabetical order.From 1 to 500. Default:
50.
Outputs
countnumbercurrencieslistretrieved_attexttotal_matchingnumbertruncatedtrue/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 contracts
symbolslist - Only these contracts. Leave it empty to list every one Kraken offers.
- Contract type
contract_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 many
limitnumber - How many contracts to return, in alphabetical order.From 1 to 500. Default:
50.
Outputs
contractslistcountnumberretrieved_attexttotal_matchingnumbertruncatedtrue/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 contract
symboltextRequired - Which contract's fills to read.
- How many
limitnumber - How many of the most recent fills to return.From 1 to 100. Default:
50. - Up to
beforedate and time - Only fills from before this moment, for stepping back through the history. Leave it empty for the most recent ones.
Outputs
buy_countnumbercontracttextcontract_typetextcountnumberfirst_trade_timetextlast_trade_timetextpairtextretrieved_attextsell_countnumbersettled_intextsymboltexttradeslistvolumenumber
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 pair
pairtextRequired - Which pair's trades to read.
- How many
limitnumber - How many of the most recent trades to return.From 1 to 1000. Default:
50. - Start from
sincedate and time - Only trades from this moment onwards. Leave it empty for the most recent ones.
Outputs
basetextbuy_countnumbercountnumberfirst_trade_timetextkraken_pairtextlast_trade_timetextnext_sincetextpairtextpair_idtextquotetextretrieved_attextsell_countnumbertradeslistvolumenumber
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 pairs
pairslist - 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 currency
currencytext - Only pairs with this currency on either side: choose USD for every dollar market, or BTC for everything quoted in or against bitcoin.
- How many
limitnumber - How many pairs to return, in alphabetical order.From 1 to 500. Default:
50.
Outputs
countnumberpairslistretrieved_attexttotal_matchingnumbertruncatedtrue/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
}