{"openapi":"3.1.0","info":{"title":"CryptoQuant (BYOK) API","version":"0.1.0","description":"CryptoQuant (BYOK) lets an AI assistant read your own CryptoQuant data through the CryptoQuant API with a key you supply (CryptoQuant API access token (Professional or Premium plan)). Read-only: 12 tools (list_exchange_entities, get_btc_price_ohlcv, get_btc_exchange_reserve, get_btc_exchange_netflow, get_btc_funding_rates, get_btc_open_interest, get_btc_mvrv, get_btc_sopr, get_btc_nupl,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cryptoquant.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cryptoquant/docs"},"termsOfService":"https://connectorbay.com/byok-cryptoquant/terms"},"servers":[{"url":"https://byok-cryptoquant.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cryptoquant/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_exchange_entities":{"post":{"operationId":"list_exchange_entities","summary":"List the exchanges, banks or miners CryptoQuant tracks for Bitcoin, with their keys and whether they are spot or derivat","description":"List the exchanges, banks or miners CryptoQuant tracks for Bitcoin, with their keys and whether they are spot or derivatives venues. Use the symbol as the exchange value in other tools. Use for \"Which Bitcoin exchanges does CryptoQuant track\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"description":"Entity type to list.","enum":["exchange","bank","miner"],"title":"Type","type":"string"}},"required":["type"],"title":"list_exchange_entitiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_price_ohlcv":{"post":{"operationId":"get_btc_price_ohlcv","summary":"Get Bitcoin price candles (open, high, low, close, volume) by day, hour or minute, for the all-exchange index or one exc","description":"Get Bitcoin price candles (open, high, low, close, volume) by day, hour or minute, for the all-exchange index or one exchange and pair. Needs a CryptoQuant Professional or Premium plan. Use for \"Show the last 30 daily Bitcoin candles from CryptoQuant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"market":{"anyOf":[{"enum":["spot","perpetual"],"type":"string"},{"type":"null"}],"default":"spot","description":"Market type: spot or perpetual.","title":"Market"},"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Exchange key such as all_exchange (default), binance, coinbase_advanced, kraken, okx.","title":"Exchange"},"symbol":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Pair of that exchange, for example btc_usd or btc_usdt; needed when a single exchange is chosen.","title":"Symbol"},"window":{"anyOf":[{"enum":["day","hour","min"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, min.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_price_ohlcvArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_exchange_reserve":{"post":{"operationId":"get_btc_exchange_reserve","summary":"Get the Bitcoin balance held on exchange wallets over time (coins and USD value). Needs a CryptoQuant Professional or Pr","description":"Get the Bitcoin balance held on exchange wallets over time (coins and USD value). Needs a CryptoQuant Professional or Premium plan. Use for \"How many BTC do exchanges hold according to CryptoQuant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Exchange key: all_exchange, spot_exchange, derivative_exchange or one exchange such as binance, coinbase_advanced, kraken, okx (see list_exchange_entities).","title":"Exchange"},"window":{"anyOf":[{"enum":["day","hour","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_exchange_reserveArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_exchange_netflow":{"post":{"operationId":"get_btc_exchange_netflow","summary":"Get Bitcoin netflow on exchanges: inflow minus outflow per period (negative means coins left exchanges). Needs a CryptoQ","description":"Get Bitcoin netflow on exchanges: inflow minus outflow per period (negative means coins left exchanges). Needs a CryptoQuant Professional or Premium plan. Use for \"Did more Bitcoin leave exchanges than arrive this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Exchange key: all_exchange, spot_exchange, derivative_exchange or one exchange such as binance, coinbase_advanced, kraken, okx (see list_exchange_entities).","title":"Exchange"},"window":{"anyOf":[{"enum":["day","hour","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_exchange_netflowArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_funding_rates":{"post":{"operationId":"get_btc_funding_rates","summary":"Get perpetual swap funding rates for Bitcoin, aggregated or for one derivatives exchange. Needs a CryptoQuant Profession","description":"Get perpetual swap funding rates for Bitcoin, aggregated or for one derivatives exchange. Needs a CryptoQuant Professional or Premium plan. Use for \"What are Bitcoin funding rates doing on Binance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Derivatives exchange key: all_exchange, binance, bybit, bitmex, deribit, htx_global or okx.","title":"Exchange"},"window":{"anyOf":[{"enum":["day","hour","min"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, min.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_funding_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_open_interest":{"post":{"operationId":"get_btc_open_interest","summary":"Get Bitcoin futures open interest, aggregated or for one derivatives exchange. Needs a CryptoQuant Professional or Premi","description":"Get Bitcoin futures open interest, aggregated or for one derivatives exchange. Needs a CryptoQuant Professional or Premium plan. Use for \"What is Bitcoin open interest across derivatives exchanges\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Derivatives exchange key: all_exchange, binance, bybit, bitmex, deribit, htx_global or okx.","title":"Exchange"},"window":{"anyOf":[{"enum":["day","hour","min"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, min.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_open_interestArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_mvrv":{"post":{"operationId":"get_btc_mvrv","summary":"Get the Bitcoin MVRV ratio (market value to realized value). Needs a CryptoQuant Professional or Premium plan. Use for \"","description":"Get the Bitcoin MVRV ratio (market value to realized value). Needs a CryptoQuant Professional or Premium plan. Use for \"What is the current Bitcoin MVRV\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"window":{"anyOf":[{"enum":["day","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_mvrvArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_sopr":{"post":{"operationId":"get_btc_sopr","summary":"Get the Bitcoin Spent Output Profit Ratio with adjusted, short-term-holder and long-term-holder variants. Needs a Crypto","description":"Get the Bitcoin Spent Output Profit Ratio with adjusted, short-term-holder and long-term-holder variants. Needs a CryptoQuant Professional or Premium plan. Use for \"Are Bitcoin holders selling at a profit according to SOPR\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"window":{"anyOf":[{"enum":["day","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_soprArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_btc_nupl":{"post":{"operationId":"get_btc_nupl","summary":"Get Bitcoin net unrealized profit and loss with its unrealized profit and loss parts. Needs a CryptoQuant Professional o","description":"Get Bitcoin net unrealized profit and loss with its unrealized profit and loss parts. Needs a CryptoQuant Professional or Premium plan. Use for \"What is the Bitcoin NUPL reading\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"window":{"anyOf":[{"enum":["day","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_btc_nuplArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_coinbase_premium_index":{"post":{"operationId":"get_coinbase_premium_index","summary":"Get the Bitcoin Coinbase premium gap and index. Needs a CryptoQuant Professional or Premium plan. Use for \"Is Bitcoin tr","description":"Get the Bitcoin Coinbase premium gap and index. Needs a CryptoQuant Professional or Premium plan. Use for \"Is Bitcoin trading at a premium on Coinbase\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"window":{"anyOf":[{"enum":["day","hour","min"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, min.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_coinbase_premium_indexArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_eth_exchange_reserve":{"post":{"operationId":"get_eth_exchange_reserve","summary":"Get the Ether balance held on exchange wallets over time (coins and USD value). Needs a CryptoQuant Professional or Prem","description":"Get the Ether balance held on exchange wallets over time (coins and USD value). Needs a CryptoQuant Professional or Premium plan. Use for \"How much ETH do exchanges hold according to CryptoQuant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Exchange key: all_exchange, spot_exchange, derivative_exchange or one exchange such as binance, coinbase_advanced, kraken, okx (see list_exchange_entities).","title":"Exchange"},"window":{"anyOf":[{"enum":["day","hour","block"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, block.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_eth_exchange_reserveArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_eth_price_ohlcv":{"post":{"operationId":"get_eth_price_ohlcv","summary":"Get Ether price candles (open, high, low, close, volume) by day, hour or minute, for the all-exchange index or one excha","description":"Get Ether price candles (open, high, low, close, volume) by day, hour or minute, for the all-exchange index or one exchange and pair. Needs a CryptoQuant Professional or Premium plan. Use for \"Show the last 30 daily Ether candles from CryptoQuant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"market":{"anyOf":[{"enum":["spot","perpetual"],"type":"string"},{"type":"null"}],"default":"spot","description":"Market type: spot or perpetual.","title":"Market"},"exchange":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":"all_exchange","description":"Exchange key such as all_exchange (default), binance, coinbase_advanced, kraken, okx.","title":"Exchange"},"symbol":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Pair of that exchange, for example eth_usd or eth_usdt; needed when a single exchange is chosen.","title":"Symbol"},"window":{"anyOf":[{"enum":["day","hour","min"],"type":"string"},{"type":"null"}],"default":"day","description":"Data resolution: day, hour, min.","title":"Window"},"from_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; earliest data when omitted.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range in UTC as YYYYMMDD (day window) or YYYYMMDDTHHMMSS; latest data when omitted.","title":"To Time"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"Number of data points to return, counted back from the latest point or from to_time (1 to 1000).","title":"Limit"}},"title":"get_eth_price_ohlcvArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}