@efixdata/connector-coingecko
v1.0.0
Published
CoinGecko data adapter for @efixdata/exeria-chart - historical crypto market data with REST polling
Readme
@efixdata/connector-coingecko
A data adapter for @efixdata/exeria-chart that provides historical cryptocurrency market data from CoinGecko REST API, with near-real-time updates via HTTP polling.
Features
- Historical OHLC data from CoinGecko REST API (
/coins/{id}/ohlc) - Date-range history via
/coins/{id}/market_chart/range - Near-real-time price updates via polling
/simple/price(default: every 60 seconds) - CoinGecko coin id symbols (
bitcoin,ethereum, …) - Optional Pro API key support
- Exeria interval mapping (
1d,1h,1w, …)
Installation
npm install @efixdata/connector-coingeckoQuick Start
import { Chart } from "@efixdata/exeria-chart";
import { CoingeckoAdapter } from "@efixdata/connector-coingecko";
const adapter = new CoingeckoAdapter();
const chart = new Chart({
container: "#chart",
dataAdapter: adapter,
});
await chart.loadData("bitcoin", {
interval: "1d",
limit: 90,
});
chart.subscribeToUpdates("bitcoin");Configuration
const adapter = new CoingeckoAdapter({
baseUrl: "https://api.coingecko.com/api/v3",
apiKey: process.env.COINGECKO_API_KEY,
vsCurrency: "usd",
pollIntervalMs: 60_000,
requestTimeout: 5000,
maxRetries: 3,
retryDelay: 1000,
});Supported Symbols
CoinGecko coin ids, not exchange pairs:
bitcoin(notBTCUSDT)ethereumsolana
Look up ids via CoinGecko API docs.
Supported Timeframes
Best supported on the Demo API:
1d— daily-style bars via OHLC (days=90)1h— hourly on paid plans; Demo falls back to ~4h granularity viadays=71w— weekly resampling is not built-in; use1dwith a longerdaysrange
Sub-minute intervals are not exchange-grade on CoinGecko. Use Binance for live tick data.
API Reference
CoingeckoAdapter implements the DataAdapter interface from @efixdata/exeria-chart:
initialize(config)getHistoricalData(symbol, options)getCurrentPrice(symbol)subscribeToUpdates(symbol, callback)disconnect()
Limits
- Demo API: 100 requests/minute, 10,000 requests/month
/ohlcdoes not include volume (volume is0; usemarket_chart/rangefor volume)- Public API historical range is limited to the past 365 days
- Polling default is 60 seconds — do not lower aggressively in production
License
MIT
