Skip to content

Your first request

  1. Create a key. In the app: Settings → API Keys → Create. Copy the hk_live_… value - it is shown once.

  2. List an exchange’s markets.

    Terminal window
    curl "https://rest.haasapi.com/v1/markets?exchange=BINANCE" \
    -H "Authorization: Bearer hk_live_YOUR_KEY"

    One request returns the whole exchange - no pagination needed for the common case:

    {
    "data": [
    {
    "market_tag": "BINANCE_BTC_USDT",
    "exchange": "BINANCE",
    "base": "BTC",
    "quote": "USDT",
    "market_type": "spot",
    "price_step": "0.01",
    "min_order_value": "5",
    "is_open": true,
    "contract": null
    }
    ],
    "next_cursor": null
    }

    Fields are abbreviated above - a real market row also carries price_decimals, amount_step, amount_decimals, maker_fee, taker_fee, min_order_amount, max_order_amount, and max_order_value. See the full shape in the reference.

  3. Keep the market_tag. It is the market’s identifier everywhere in the API - copy it from responses and pass it back. Don’t build or parse it yourself; the structured fields (exchange, base, quote, contract) carry the components. Why?

The API ships in stages. Live now: market data (markets and exchanges). Rolling out: bots, backtests, labs, scripts, accounts and wallets. The reference documents the full v1 surface - generated from the code that serves it - and each endpoint answers as its stage ships; a call to one that has not shipped yet returns 404 not_found.