@apicity/binance
v0.5.2
Published
Binance Spot, USD-M Futures, COIN-M Futures, and Options public REST API provider.
Maintainers
Readme
@apicity/binance
Binance Spot, USD-M Futures, COIN-M Futures, and Options public REST API provider.
Binance coverage is focused on public REST market-data reads across Spot, USD-M Futures, COIN-M Futures, and Options. The COIN-M Old Trades Lookup endpoint (GET /dapi/v1/historicalTrades) is intentionally not exposed because Binance requires an API key for it. USD-M Old Trades Lookup (GET /fapi/v1/historicalTrades), signed trade, account, and user endpoints are out of scope.
Runtime dependencies:
zod@^3.24.0— request schemas attached to every POST endpoint as.schema
Installation
npm install @apicity/binance
# or
pnpm add @apicity/binanceQuick Start
import { createBinance } from "@apicity/binance";
const binance = createBinance();Public Market Data
createBinance() works without credentials for the public market-data
surface. Pass apiKey only when you intentionally call a Binance
endpoint that is documented as API-key or MARKET_DATA; signed trade,
account, and user-data-stream endpoints are not exposed by this package.
| Surface | Namespace | Default host | Auth |
|---------|-----------|--------------|------|
| Spot REST | binance.api.v3.* | https://api.binance.com | No key for public market data; optional apiKey header when supplied |
| Spot market-data-only REST | binance.api.v3.* with spotBaseURL | https://data-api.binance.vision | No key |
| USD-M Futures | binance.fapi.v1.*, binance.fapi.v2.*, binance.futures.data.* | https://fapi.binance.com | No key for exposed endpoints |
| COIN-M Futures | binance.dapi.v1.*, binance.coinMFutures.data.* | https://dapi.binance.com | No key for exposed endpoints |
| Options | binance.eapi.v1.* | https://eapi.binance.com | No key for exposed endpoints |
To send existing Spot public calls to Binance's market-data-only host,
override the Spot base URL. This keeps the same api.v3 method paths
while changing the host:
const binance = createBinance({
spotBaseURL: "https://data-api.binance.vision",
});
const exchangeInfo = await binance.api.v3.exchangeInfo({
symbol: "BTCUSDT",
showPermissionSets: false,
});You can also configure every public host explicitly:
const binance = createBinance({
publicBaseURLs: {
spot: "https://data-api.binance.vision",
spotData: "https://data-api.binance.vision",
fapi: "https://fapi.binance.com",
dapi: "https://dapi.binance.com",
eapi: "https://eapi.binance.com",
},
});binance.public.* contains explicit no-auth smoke aliases for each
public surface, and binance.public.coinMFutures.* mirrors the COIN-M
public REST tree. Use the top-level namespaces above for the full
implemented market-data surface.
The https://data.binance.vision static archive serves public ZIP and
checksum files for historical Spot, USD-M, and COIN-M datasets. It is
intentionally outside this JSON REST provider; archive downloads need
separate binary/checksum handling and tests.
API Reference
93 endpoints across 20 groups. Each method mirrors an upstream URL path.
aggTrades
GET https://api.binance.com/api/v3/aggTrades{query}
const res = await binance.api.v3.aggTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
avgPrice
GET https://api.binance.com/api/v3/avgPrice{query}
const res = await binance.api.v3.avgPrice({ /* ... */ });Source: packages/provider/binance/src/binance.ts
coinMFutures
GET https://dapi.binance.com/futures/data/basis{query}
const res = await binance.coinMFutures.data.basis({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/delivery-price{query}
const res = await binance.coinMFutures.data.deliveryPrice({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/globalLongShortAccountRatio{query}
const res = await binance.coinMFutures.data.globalLongShortAccountRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/openInterestHist{query}
const res = await binance.coinMFutures.data.openInterestHist({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/takerBuySellVol{query}
const res = await binance.coinMFutures.data.takerBuySellVol({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/topLongShortAccountRatio{query}
const res = await binance.coinMFutures.data.topLongShortAccountRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/futures/data/topLongShortPositionRatio{query}
const res = await binance.coinMFutures.data.topLongShortPositionRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
dapi
GET https://dapi.binance.com/dapi/v1/aggTrades{query}
const res = await binance.dapi.v1.aggTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/constituents{query}
const res = await binance.dapi.v1.constituents({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/continuousKlines{query}
const res = await binance.dapi.v1.continuousKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/depth{query}
const res = await binance.dapi.v1.depth({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/exchangeInfo
const res = await binance.dapi.v1.exchangeInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/fundingInfo
const res = await binance.dapi.v1.fundingInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/fundingRate{query}
const res = await binance.dapi.v1.fundingRate({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/indexPriceKlines{query}
const res = await binance.dapi.v1.indexPriceKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/klines{query}
const res = await binance.dapi.v1.klines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/markPriceKlines{query}
const res = await binance.dapi.v1.markPriceKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/openInterest{query}
const res = await binance.dapi.v1.openInterest({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/ping
const res = await binance.dapi.v1.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/premiumIndex{query}
const res = await binance.dapi.v1.premiumIndex({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/premiumIndexKlines{query}
const res = await binance.dapi.v1.premiumIndexKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/ticker/bookTicker{query}
const res = await binance.dapi.v1.ticker.bookTicker({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/ticker/price{query}
const res = await binance.dapi.v1.ticker.price({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/ticker/24hr{query}
const res = await binance.dapi.v1.ticker.twentyFourHr({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/time
const res = await binance.dapi.v1.time({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://dapi.binance.com/dapi/v1/trades{query}
const res = await binance.dapi.v1.trades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
depth
GET https://api.binance.com/api/v3/depth{query}
const res = await binance.api.v3.depth({ /* ... */ });Source: packages/provider/binance/src/binance.ts
eapi
GET https://eapi.binance.com/eapi/v1/blockTrades{query}
const res = await binance.eapi.v1.blockTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/depth{query}
const res = await binance.eapi.v1.depth({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/exchangeInfo
const res = await binance.eapi.v1.exchangeInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/exerciseHistory{query}
const res = await binance.eapi.v1.exerciseHistory({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/index{query}
const res = await binance.eapi.v1.index({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/klines{query}
const res = await binance.eapi.v1.klines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/mark{query}
const res = await binance.eapi.v1.mark({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/openInterest{query}
const res = await binance.eapi.v1.openInterest({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/ping
const res = await binance.eapi.v1.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/ticker{query}
const res = await binance.eapi.v1.ticker({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/time
const res = await binance.eapi.v1.time({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://eapi.binance.com/eapi/v1/trades{query}
const res = await binance.eapi.v1.trades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
exchangeInfo
GET https://api.binance.com/api/v3/exchangeInfo{query}
const res = await binance.api.v3.exchangeInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
executionRules
GET https://api.binance.com/api/v3/executionRules{query}
const res = await binance.api.v3.executionRules({ /* ... */ });Source: packages/provider/binance/src/binance.ts
fapi
GET https://fapi.binance.com/fapi/v1/aggTrades{query}
const res = await binance.fapi.v1.aggTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/assetIndex{query}
const res = await binance.fapi.v1.assetIndex({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/constituents{query}
const res = await binance.fapi.v1.constituents({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/continuousKlines{query}
const res = await binance.fapi.v1.continuousKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/depth{query}
const res = await binance.fapi.v1.depth({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/exchangeInfo
const res = await binance.fapi.v1.exchangeInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/fundingInfo
const res = await binance.fapi.v1.fundingInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/fundingRate{query}
const res = await binance.fapi.v1.fundingRate({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/indexInfo{query}
const res = await binance.fapi.v1.indexInfo({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/indexPriceKlines{query}
const res = await binance.fapi.v1.indexPriceKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/insuranceBalance{query}
const res = await binance.fapi.v1.insuranceBalance({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/klines{query}
const res = await binance.fapi.v1.klines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/markPriceKlines{query}
const res = await binance.fapi.v1.markPriceKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/openInterest{query}
const res = await binance.fapi.v1.openInterest({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/ping
const res = await binance.fapi.v1.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/premiumIndex{query}
const res = await binance.fapi.v1.premiumIndex({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/premiumIndexKlines{query}
const res = await binance.fapi.v1.premiumIndexKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/rpiDepth{query}
const res = await binance.fapi.v1.rpiDepth({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/symbolAdlRisk{query}
const res = await binance.fapi.v1.symbolAdlRisk({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/ticker/bookTicker{query}
const res = await binance.fapi.v1.ticker.bookTicker({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/ticker/24hr{query}
const res = await binance.fapi.v1.ticker.twentyFourHr({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/time
const res = await binance.fapi.v1.time({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/trades{query}
const res = await binance.fapi.v1.trades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/tradingSchedule
const res = await binance.fapi.v1.tradingSchedule({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v2/ticker/price{query}
const res = await binance.fapi.v2.ticker.price({ /* ... */ });Source: packages/provider/binance/src/binance.ts
futures
GET https://fapi.binance.com/futures/data/basis{query}
const res = await binance.futures.data.basis({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/delivery-price{query}
const res = await binance.futures.data.deliveryPrice({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/globalLongShortAccountRatio{query}
const res = await binance.futures.data.globalLongShortAccountRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/openInterestHist{query}
const res = await binance.futures.data.openInterestHist({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/takerlongshortRatio{query}
const res = await binance.futures.data.takerlongshortRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/topLongShortAccountRatio{query}
const res = await binance.futures.data.topLongShortAccountRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/futures/data/topLongShortPositionRatio{query}
const res = await binance.futures.data.topLongShortPositionRatio({ /* ... */ });Source: packages/provider/binance/src/binance.ts
historicalBlockTrades
GET https://api.binance.com/api/v3/historicalBlockTrades{query}
const res = await binance.api.v3.historicalBlockTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
historicalTrades
GET https://api.binance.com/api/v3/historicalTrades{query}
const res = await binance.api.v3.historicalTrades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
klines
GET https://api.binance.com/api/v3/klines{query}
const res = await binance.api.v3.klines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
ping
GET https://api.binance.com/api/v3/ping
const res = await binance.api.v3.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
public
GET https://eapi.binance.com/eapi/v1/ping
const res = await binance.public.options.eapi.v1.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/ping
const res = await binance.public.spot.api.v3.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://data-api.binance.vision/api/v3/ping
const res = await binance.public.spotData.api.v3.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://fapi.binance.com/fapi/v1/ping
const res = await binance.public.usdMFutures.fapi.v1.ping({ /* ... */ });Source: packages/provider/binance/src/binance.ts
referencePrice
GET https://api.binance.com/api/v3/referencePrice{query}
const res = await binance.api.v3.referencePrice({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/referencePrice/calculation{query}
const res = await binance.api.v3.referencePrice.calculation({ /* ... */ });Source: packages/provider/binance/src/binance.ts
ticker
GET https://api.binance.com/api/v3/ticker{query}
const res = await binance.api.v3.ticker({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/ticker/bookTicker{query}
const res = await binance.api.v3.ticker.bookTicker({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/ticker/price{query}
const res = await binance.api.v3.ticker.price({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/ticker/tradingDay{query}
const res = await binance.api.v3.ticker.tradingDay({ /* ... */ });Source: packages/provider/binance/src/binance.ts
GET https://api.binance.com/api/v3/ticker/24hr{query}
const res = await binance.api.v3.ticker.twentyFourHr({ /* ... */ });Source: packages/provider/binance/src/binance.ts
time
GET https://api.binance.com/api/v3/time
const res = await binance.api.v3.time({ /* ... */ });Source: packages/provider/binance/src/binance.ts
trades
GET https://api.binance.com/api/v3/trades{query}
const res = await binance.api.v3.trades({ /* ... */ });Source: packages/provider/binance/src/binance.ts
uiKlines
GET https://api.binance.com/api/v3/uiKlines{query}
const res = await binance.api.v3.uiKlines({ /* ... */ });Source: packages/provider/binance/src/binance.ts
Part of the apicity monorepo.
License
MIT — see LICENSE.
