Quick start
Three minutes, one key and one request. This page goes from creating the account to reading the first response, then shows how to fetch several data families in a single call.
#Get a key
Create an account: your first key is generated automatically, and waits for you in the console. The free tier opens four data families (price and volume, derivatives, indicators, macro) with no card: enough to find out in one evening whether the data suits you.
The key is shown masked in the console: reveal it or copy it when you need it, then keep it in a secrets manager or an environment variable. If it is compromised, one rotation replaces it.
#The first call
Bitcoin’s composite funding rate, aggregated over every venue that publishes it and brought back to an eight-hour basis.
export BYTNODE_KEY="your_key"
curl -H "X-API-KEY: $BYTNODE_KEY" \
"https://api.bytnode.com/v1/funding/rate?symbol=BTCUSDT"Only two things are mandatory: the X-API-KEY header and the symbol parameter. There is no default symbol. A request without a symbol is refused rather than served with Bitcoin, which is not necessarily what you wanted.
#Reading the response
{
"status": "ok",
"timestamp": 1775648290510,
"data_type": "funding_rate_8h",
"data": {
"bucket": "2026-08-29T08:00:00+00:00",
"rate": 0.000082,
"apr": 0.08979,
"exchange_count": 7
}
}The four keys of the envelope
status:okorerror.timestamp: the instant the response was produced, in milliseconds. It is not the timestamp of the data: the data carries its owntimestampor itsbucket.data_type: the name of the type returned. It lets you route a response without relying on the path called.data: the payload, which is an object, a list, ornullwhen nothing is available.
What this response says in particular
bucketopens the eight-hour window the rate was computed over, aligned on 00:00, 08:00 and 16:00 UTC.aprannualises the rate, here about 9 % a year.exchange_countsays how many venues the composite was built on. That count varies from one window to the next: it is information, not a constant.
#Several families in one request
Calling ten endpoints to fill a dashboard is a waste: /v1/snapshot does the job in one trip. Each parameter is a field name, its value is the depth asked for: a number of rows or of minutes depending on the field, true for the fields that only have a current value.
curl -H "X-API-KEY: $BYTNODE_KEY" \
"https://api.bytnode.com/v1/snapshot?symbol=BTCUSDT\
&klines_1h=24\
&funding_rate_8h=true\
&oi_delta=60\
&liq_cumulative=120\
&cvd@1h=24\
&fear_greed=true"Multi-timeframe fields are asked for with the @tf suffix (cvd@1h), and the key comes back unchanged in the response. The detail of the sixty-one fields, along with the unavailable and coverage keys that come with the response, is on the Snapshot page.