Historical Crypto Candles (OHLCV) by Exchange & Pair
omnial/exchange-candles
Given an exchange, a trading pair, and a candle interval, returns a time series of OHLCV candles for that market -- open, high, low, close, base and quote volume, and trade count where the exchange reports it -- with an option to fill no-trade intervals with candles that repeat the last close for a continuous chart.
Price
Up to $0.00819 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Bithumb, Upbit, HashKey, bitFlyer, Coinone and Korbit
Data from Bithumb, Upbit, HashKey, bitFlyer, Coinone and Korbit.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/exchange-candles" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/exchange-candles" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/exchange-candles", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/exchange-candles", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.00819 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"exchange",
"pair"
],
"properties": {
"to": {
"type": "string",
"minLength": 1,
"description": "End of time range. Accepts Unix seconds or date string. Example: 2026-06-24T10:00:00Z."
},
"from": {
"type": "string",
"minLength": 1,
"description": "Start of time range. Accepts Unix seconds or date string. Example: 2026-06-24T09:00:00Z."
},
"pair": {
"type": "string",
"minLength": 1,
"description": "Trading pair in base/quote form, e.g. BTC/KRW. Example: BTC/KRW."
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 300,
"minimum": 1,
"description": "Max number of candles to return. Weekly candles allow up to 300 rows for a 5-year chart; intraday intervals are capped at 100. Example: 100. Defaults to 100."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset. Example: 0. Defaults to 0."
},
"exchange": {
"enum": [
"bithumb",
"upbit",
"hashkey",
"bitflyer",
"coinone",
"korbit"
],
"type": "string",
"description": "Exchange identifier. Example: bithumb."
},
"interval": {
"enum": [
"5m",
"4h",
"1w"
],
"type": "string",
"default": "5m",
"description": "Candle interval. Example: 5m. Defaults to \"5m\"."
},
"include_synthetic": {
"type": "boolean",
"default": true,
"description": "Whether to include carry-forward candles for no-trade intervals. Defaults to true for continuous charts; set false for raw exchange-only candles. Example: True. Defaults to true."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
},
"open": {
"type": "number"
},
"pair": {
"type": "string",
"description": "Echoes the requested trading pair."
},
"close": {
"type": "number"
},
"region": {
"type": "string",
"description": "Two-letter market region, e.g. 'kr'."
},
"exchange": {
"type": "string",
"description": "Echoes the requested exchange."
},
"interval": {
"type": "string",
"description": "Echoes the requested candle interval."
},
"timestamp": {
"type": "integer",
"description": "Unix seconds marking the candle open."
},
"close_time": {
"type": "integer",
"description": "Unix seconds marking the candle close."
},
"trade_count": {
"type": "integer",
"description": "Number of trades in the interval. Seen on every candle of a bithumb 5-minute query but absent from every candle of an upbit weekly query -- whether this depends on the exchange, the interval, or something else is not documented; do not assume it is always present."
},
"volume_base": {
"type": "number",
"description": "Volume in the base asset. Observed 0 on a synthetic, no-trade candle."
},
"is_synthetic": {
"type": "boolean",
"description": "True for a carry-forward candle synthesized for a no-trade interval (observed on one bithumb candle, with open=high=low=close and zero volume). Only appears when the request's include_synthetic was true or defaulted."
},
"volume_quote": {
"type": "number",
"description": "Volume in the quote asset. Observed 0 on a synthetic, no-trade candle."
}
},
"additionalProperties": false
},
"description": "One entry per candle, typically most recent first."
},
"meta": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Echoes the requested (or defaulted) limit."
},
"total": {
"type": "integer",
"description": "Total candles available for the query."
},
"cached": {
"type": "boolean",
"description": "Whether this response was served from the provider's cache."
},
"offset": {
"type": "integer",
"description": "Echoes the requested (or defaulted) offset."
}
},
"additionalProperties": false
}
},
"description": "The candle response.",
"additionalProperties": false
}