BYTETOOLS

KuCoin API

Free KuCoin public API with no key: best bid, best ask, last price and sizes for any spot pair, plus symbols, candles and stats. Tested example and live response.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the KuCoin API?

The KuCoin public API is a free, key-free market data API. The level 1 order book endpoint returns the best bid, best ask, their sizes, the last traded price and a sequence number for any spot trading pair, without an account or signature.

KuCoin lists an unusually wide range of altcoins, which makes its public API a practical choice when the token you need is not on the larger exchanges. Market data — symbols, tickers, order books, candles and 24-hour stats — is entirely open; only trading requires the signed-request flow.

Two conventions to note. Every KuCoin response is wrapped in an envelope with a `code` field and the payload under `data`, and `code` is the string 200000 on success — it is not the HTTP status, and a request can return HTTP 200 with a failure code inside. The other is the `sequence` field: a monotonically increasing counter that lets you detect gaps if you are stitching REST snapshots together with the WebSocket feed.

Quick facts

Base URL
https://api.kucoin.com/api/v1
Authentication
No key for market data. Trading and account endpoints require an API key, secret and passphrase with HMAC request signing.
Rate limit
Weighted per-endpoint limits by IP for public calls, typically well above what a display application needs.
Pricing
Free for public market data.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the KuCoin API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Level 1 order book for BTC-USDT

GET https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT

curl
curl 'https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT'
JavaScript (fetch)
const res = await fetch("https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "code": "200000",
  "data": {
    "time": 1787289058638,
    "sequence": "35816831424",
    "price": "75237.6",
    "size": "0.00032951",
    "bestBid": "75237.5",
    "bestBidSize": "0.43595321",
    "bestAsk": "75237.6",
    "bestAskSize": "0.00357895"
  }
}

Parameters

ParameterTypeRequiredDescription
symbolqueryRequiredTrading pair in uppercase with a hyphen separator, for example `BTC-USDT`. The hyphen is required. BTC-USDT
typequeryOptionalOn the candles endpoint, the interval: `1min`, `5min`, `1hour`, `1day` and so on. 1hour
startAtqueryOptionalUnix seconds lower bound for historical candle queries. Pairs with `endAt`. 1787280000

Response fields

codestring
Envelope status. The string 200000 means success — check this as well as the HTTP status, since failures can arrive with HTTP 200.
data.pricestring
Last traded price, as a string to preserve precision.
data.sizestring
Size of the most recent trade.
data.bestBid / bestAskstring
Best bid and best ask price currently on the book.
data.bestBidSize / bestAskSizestring
Quantity available at the best bid and best ask — the depth at the top of the book.
data.timeinteger
Timestamp in milliseconds, not seconds. Dividing by 1000 is a common mistake to avoid making twice.
data.sequencestring
Monotonic order book sequence number, used to detect missed updates when combining REST with the WebSocket feed.

What you can build with the KuCoin API

  • Quote a price for an altcoin not listed on major exchanges
  • Measure the bid-ask spread and top-of-book depth before placing an order
  • Bootstrap an order book snapshot before subscribing to the WebSocket stream
  • Track altcoin prices in a portfolio tracker

Common errors and how to fix them

HTTP 200 with a non-success code

The request reached KuCoin but failed logically.

Fix: Always read the envelope `code` field. 400100 is a bad parameter, 429000 is a rate limit.

400100

Invalid or unknown symbol.

Fix: Symbols are uppercase with a hyphen — `BTC-USDT`, not a concatenated or lowercase form. Fetch the symbols endpoint for the authoritative list.

429000

Too many requests.

Fix: KuCoin uses weighted limits, so heavy endpoints cost more than light ones. Back off and batch where the API allows it.

KuCoin API — frequently asked questions

Is the KuCoin API free without an API key?

Yes. All public market data — symbols, tickers, order books, candles and 24-hour statistics — is free and unauthenticated. Only trading and account endpoints require a key, secret and passphrase.

What does code 200000 mean in a KuCoin response?

It is KuCoin's own success code inside the response envelope, and it is distinct from the HTTP status. A request can return HTTP 200 with a failure code in the body, so check both.

What is the sequence field for?

It is a monotonically increasing order book counter. When you bootstrap a local order book from a REST snapshot and then apply WebSocket updates, comparing sequence numbers tells you whether you missed a message and need to re-snapshot.

Can I call the KuCoin API from a browser?

The public endpoints do not send permissive CORS headers, so browser fetches are blocked. Call it from your server instead — which you would want to do anyway before adding any authenticated endpoints.

Tools that pair with this API

KuCoin is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.