Access kraken market data

When the user asks about a cryptocurrency's current price, bid/ask spread, 24-hour range, candlestick chart, or order book depth on Kraken — reach for Kraken's public REST API. No authentication required.

access-kraken-market-data · v1 · updated 2026-04-16

Agents: This page is a SKILL.md-style capability guide. For JSON, call GET /api/skills/access-kraken-market-data. To drop this into a local Claude Code install, copy the frontmatter + body below into ~/.claude/skills/access-kraken-market-data/SKILL.md.

When to use this skill

When the user asks about a cryptocurrency's current price, bid/ask spread, 24-hour range, recent price movement, or order book depth for a pair on Kraken. This covers the public market-data endpoints — ticker, OHLC, and depth — all unauthenticated. For account balances, order placement, or withdrawals, you need Kraken's private API (not covered here). For aggregated cross-exchange data or market cap, use CoinGecko instead.

Your best first call

curl "https://api.kraken.com/0/public/Ticker?pair=AAVEEUR"

No auth. No key. AAVEEUR is Kraken's internal pair code for AAVE/EUR — see pitfalls for the naming convention. The response is a single object under the pair key:

{
  "error": [],
  "result": {
    "AAVEEUR": {
      "a": ["88.20000", "9", "9.000"],
      "b": ["88.17000", "1", "1.000"],
      "c": ["88.18000", "0.09845347"],
      "v": ["1321.22565785", "8420.61996026"],
      "p": ["90.48963", "91.10142"],
      "t": [594, 1345],
      "l": ["87.87000", "87.87000"],
      "h": ["92.41000", "93.04000"],
      "o": "92.01000"
    }
  }
}

The keys are terse: a = ask [price, wholeLotVolume, lotVolume], b = bid (same shape), c = last trade [price, volume], v = volume [today, rolling24h], p = VWAP [today, rolling24h], t = trade count [today, rolling24h], l = low [today, rolling24h], h = high [today, rolling24h], o = today's open. Every numeric value is a string — parse with float(), not int(). Kraken quotes in EUR, GBP, JPY, and CAD, not just USD.

Fallbacks (when the best call isn't enough)

Pitfalls

One-line summary for the user

I can pull live cryptocurrency market data — prices, spreads, VWAP, and order book depth — from Kraken's public REST API without authentication, but you need Kraken's internal pair codes like XXBTZUSD (not BTCUSD).

APIs this skill uses

Kraken · primary · verified

Public market data API for cryptocurrency trading on Kraken exchange. Provides access to asset information, trading pairs, ticker data, order books, trade history, OHLC data, and spreads. No authentication required for public endpoints.

Generated from

Kraken tutorial Getting Started with Kraken

SKILL.md source (frontmatter + body)
---
name: access-kraken-market-data
description: When the user asks about a cryptocurrency's current price, bid/ask spread, 24-hour range, candlestick chart, or order book depth on Kraken — reach for Kraken's public REST API. No authentication required.
---

## When to use this skill

When the user asks about a cryptocurrency's current price, bid/ask spread, 24-hour range, recent price movement, or order book depth for a pair on Kraken. This covers the public market-data endpoints — ticker, OHLC, and depth — all unauthenticated. For account balances, order placement, or withdrawals, you need Kraken's private API (not covered here). For aggregated cross-exchange data or market cap, use CoinGecko instead.

## Your best first call

```bash
curl "https://api.kraken.com/0/public/Ticker?pair=AAVEEUR"
```

No auth. No key. `AAVEEUR` is Kraken's internal pair code for AAVE/EUR — see pitfalls for the naming convention. The response is a single object under the pair key:

```json
{
  "error": [],
  "result": {
    "AAVEEUR": {
      "a": ["88.20000", "9", "9.000"],
      "b": ["88.17000", "1", "1.000"],
      "c": ["88.18000", "0.09845347"],
      "v": ["1321.22565785", "8420.61996026"],
      "p": ["90.48963", "91.10142"],
      "t": [594, 1345],
      "l": ["87.87000", "87.87000"],
      "h": ["92.41000", "93.04000"],
      "o": "92.01000"
    }
  }
}
```

The keys are terse: `a` = ask `[price, wholeLotVolume, lotVolume]`, `b` = bid (same shape), `c` = last trade `[price, volume]`, `v` = volume `[today, rolling24h]`, `p` = VWAP `[today, rolling24h]`, `t` = trade count `[today, rolling24h]`, `l` = low `[today, rolling24h]`, `h` = high `[today, rolling24h]`, `o` = today's open. Every numeric value is a string — parse with `float()`, not `int()`. Kraken quotes in EUR, GBP, JPY, and CAD, not just USD.

## Fallbacks (when the best call isn't enough)

- **Candlestick charts or price movement over time** → `/0/public/OHLC?pair=XXBTZUSD&interval=60` returns open/high/low/close candles with VWAP and trade count per interval. Kraken bakes VWAP into every candle — most exchange APIs make you compute it yourself. The `interval` parameter takes minutes (1, 5, 15, 30, 60, 240, 1440, 10080, 21600); default is 1, which returns 720 one-minute candles.
- **Order book depth** → `/0/public/Depth?pair=XXBTZUSD&count=5` returns bids and asks as `[price, volume, timestamp]`. The timestamps are order-placement time, not trade time. Use `count` to cap both sides; omit it and Kraken returns the full book (hundreds of levels for major pairs).

## Pitfalls

- Kraken uses `XBT`, not `BTC`. The internal pair code for Bitcoin/USD is `XXBTZUSD`, not `BTCUSD`. Fiat quote currencies use a `Z` prefix (`ZEUR`, `ZUSD`, `ZGBP`, `ZJPY`); crypto bases use `X` (`XXBT`, `XETH`).
- OHLC `interval` defaults to 1 (one-minute candles). Without `interval=60` or another value, you get 720 minute-level candles instead of a manageable number of hourly or daily ones.
- Ticker without a `pair` parameter returns every pair on the exchange — over 300 tickers, roughly 50 KB of single-letter keys. Always narrow with `?pair=`.
- All numeric values in responses are strings, even trade counts. Parse with `float()`, not `int()`.

## One-line summary for the user

I can pull live cryptocurrency market data — prices, spreads, VWAP, and order book depth — from Kraken's public REST API without authentication, but you need Kraken's internal pair codes like `XXBTZUSD` (not `BTCUSD`).

« Back to all skills