BYTETOOLS

Bitfinex API

Free Bitfinex public API with no key: real-time ticker, order book, trades and candles for crypto and forex pairs. Tested curl example and live response.

No API key requiredHTTPSFree tier

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

What is the Bitfinex API?

The Bitfinex public API is a free, key-free market data API. Its v2 ticker endpoint returns live bid, ask, last price, 24-hour volume, high and low for any trading pair as a positional array, with no account or authentication required.

Bitfinex is one of the longest-running crypto exchanges and its v2 public API needs no key for market data — ticker, order book, trades, candles and funding rates are all open. Beyond crypto it also lists a set of forex pairs, which makes it a rare exchange API that can quote both BTC/USD and EUR/USD from one interface.

The response format is the thing to internalise before you write any code. Bitfinex returns positional arrays, not objects: the ticker is eleven bare numbers in a fixed order with no keys at all. That keeps payloads tiny and is deliberate for a high-frequency API, but it means field names live in the documentation rather than in the data, and the ordering differs between trading pairs and funding pairs. Map the array into named fields at your boundary before it spreads through your code.

Quick facts

Base URL
https://api-pub.bitfinex.com/v2
Authentication
No key for public market data. Trading and account endpoints live on a separate authenticated host and require API credentials.
Rate limit
Between 10 and 90 requests per minute per IP depending on endpoint; exceeding it returns HTTP 429 with a block period.
Pricing
Free for public market data.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the Bitfinex 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. Live BTC/USD ticker

GET https://api-pub.bitfinex.com/v2/ticker/tBTCUSD

curl
curl 'https://api-pub.bitfinex.com/v2/ticker/tBTCUSD'
JavaScript (fetch)
const res = await fetch("https://api-pub.bitfinex.com/v2/ticker/tBTCUSD");
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-pub.bitfinex.com/v2/ticker/tBTCUSD", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
[
  75218,
  2.17025326,
  75226,
  2.34911161,
  5550,
  0.0796544,
  75226,
  1816.5477411,
  75795,
  69340,
  1358182043000
]

Parameters

ParameterTypeRequiredDescription
symbolpath segmentRequiredTrading pair prefixed with `t` (for example `tBTCUSD`), or a funding symbol prefixed with `f` (`fUSD`). Uppercase. tBTCUSD
symbolsqueryOptionalOn the multi-ticker endpoint, a comma-separated list of symbols, or `ALL` for every pair in one call. tBTCUSD,tETHUSD

Response fields

[0] BIDfloat
Best current bid price.
[1] BID_SIZEfloat
Total size available at the best bid across the top 25 levels.
[2] ASKfloat
Best current ask price.
[3] ASK_SIZEfloat
Total size available at the best ask.
[4] DAILY_CHANGEfloat
Absolute price change over the last 24 hours, in quote currency.
[5] DAILY_CHANGE_RELATIVEfloat
Relative 24-hour change as a decimal — 0.0796 means +7.96 percent, not 7.96.
[6] LAST_PRICEfloat
Price of the most recent trade. This is the number most people mean by the price.
[7] VOLUMEfloat
24-hour trading volume in the base currency.
[8] HIGH and [9] LOWfloat
Highest and lowest prices over the last 24 hours.

What you can build with the Bitfinex API

  • Show a live BTC or ETH price on a dashboard or website
  • Compare prices across exchanges to spot arbitrage spreads
  • Fetch historical candles for a backtesting pipeline
  • Monitor funding rates for margin positions

Common errors and how to fix them

429

Rate limit exceeded; the IP is temporarily blocked.

Fix: Back off for at least 60 seconds. Use the multi-ticker endpoint with `symbols=ALL` to fetch many pairs in one request rather than looping.

500 with ERR_UNK

Usually a malformed symbol.

Fix: Symbols are uppercase and need the `t` or `f` prefix — `BTCUSD` fails where `tBTCUSD` succeeds.

Empty array

The symbol exists but has no data.

Fix: Fetch the public pair configuration endpoint for the authoritative list of tradeable pairs.

Bitfinex API — frequently asked questions

Is the Bitfinex API free without an API key?

Yes, all public market data — ticker, order book, trades, candles and funding rates — is free and needs no key. Only trading and account endpoints require credentials.

Why does the Bitfinex ticker return an array instead of an object?

By design. Positional arrays cut payload size significantly for a high-frequency API, so the eleven ticker values arrive in a fixed documented order with no keys. Map them to named fields as soon as they enter your code.

What does the t prefix in tBTCUSD mean?

`t` marks a trading pair and `f` marks a funding (margin lending) symbol. The prefix is required — requesting `BTCUSD` without it returns an error.

Can I call the Bitfinex API from browser JavaScript?

The public endpoints do not send permissive CORS headers, so a direct browser fetch is blocked. Proxy through your own backend, which is the right pattern anyway if you ever add authenticated calls.

Tools that pair with this API

Bitfinex 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.