{"openapi":"3.1.0","info":{"title":"CoinAPI (BYOK) API","version":"0.1.0","description":"CoinAPI (BYOK) lets an AI assistant read your own CoinAPI data through the CoinAPI API with a key you supply (CoinAPI key). Read-only: 12 tools (get_exchange_rate, list_rates_for_asset, get_exchange_rate_history, list_assets, get_asset, list_exchanges, list_active_symbols, list_ohlcv_periods, get_latest_ohlcv, get_ohlcv_history, get_current_quote, list_latest_trades). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-coinapi.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-coinapi/docs"},"termsOfService":"https://connectorbay.com/byok-coinapi/terms"},"servers":[{"url":"https://byok-coinapi.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-coinapi/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/get_exchange_rate":{"post":{"operationId":"get_exchange_rate","summary":"Get the current exchange rate between two assets, crypto or fiat, optionally as of a past time. Use for \"What is the cur","description":"Get the current exchange rate between two assets, crypto or fiat, optionally as of a past time. Use for \"What is the current BTC to USD rate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id_base":{"description":"Base asset code, for example 'BTC'.","maxLength":200,"title":"Asset Id Base","type":"string"},"asset_id_quote":{"description":"Quote asset code, for example 'USD'.","maxLength":200,"title":"Asset Id Quote","type":"string"},"time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Rate as of this ISO 8601 time; leave empty for the latest.","title":"Time"}},"required":["asset_id_base","asset_id_quote"],"title":"get_exchange_rateArguments","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/list_rates_for_asset":{"post":{"operationId":"list_rates_for_asset","summary":"List current rates of one base asset against many quote assets, optionally limited to some quote assets. Use for \"Show E","description":"List current rates of one base asset against many quote assets, optionally limited to some quote assets. Use for \"Show ETH rates against USD, EUR and GBP\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id_base":{"description":"Base asset code, for example 'BTC'.","maxLength":200,"title":"Asset Id Base","type":"string"},"filter_asset_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated quote asset codes to keep, for example 'USD,EUR'.","title":"Filter Asset Id"},"invert":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to return rates quoted the other way round.","title":"Invert"},"time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Rates as of this ISO 8601 time; leave empty for the latest.","title":"Time"}},"required":["asset_id_base"],"title":"list_rates_for_assetArguments","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_exchange_rate_history":{"post":{"operationId":"get_exchange_rate_history","summary":"Get a time series of rate candles (open, high, low, close) between two assets for a candle period. Use for \"Show daily B","description":"Get a time series of rate candles (open, high, low, close) between two assets for a candle period. Use for \"Show daily BTC to USD rates for the first half of October\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id_base":{"description":"Base asset code, for example 'BTC'.","maxLength":200,"title":"Asset Id Base","type":"string"},"asset_id_quote":{"description":"Quote asset code, for example 'USD'.","maxLength":200,"title":"Asset Id Quote","type":"string"},"period_id":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"1DAY","description":"Candle length such as 1HRS or 1DAY.","title":"Period Id"},"time_start":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01T00:00:00.","title":"Time Start"},"time_end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601 such as 2026-10-15T00:00:00.","title":"Time End"},"limit":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of candles (documented default 100).","title":"Limit"}},"required":["asset_id_base","asset_id_quote"],"title":"get_exchange_rate_historyArguments","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/list_assets":{"post":{"operationId":"list_assets","summary":"List supported assets (coins, tokens and fiat currencies) with USD price and volume, optionally filtered by code or type","description":"List supported assets (coins, tokens and fiat currencies) with USD price and volume, optionally filtered by code or type. Use for \"List the assets CoinAPI covers with their USD price\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter_asset_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated asset codes to keep, for example 'BTC,ETH'.","title":"Filter Asset Id"},"filter_asset_type":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Asset type to keep, for example 'crypto' or 'fiat'.","title":"Filter Asset Type"}},"title":"list_assetsArguments","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_asset":{"post":{"operationId":"get_asset","summary":"Get one asset by its code with USD price, 24 hour volume, supply and the period it has data for. Use for \"Give me detail","description":"Get one asset by its code with USD price, 24 hour volume, supply and the period it has data for. Use for \"Give me details for the SOL asset\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id":{"description":"Asset code, for example 'SOL'.","maxLength":200,"title":"Asset Id","type":"string"}},"required":["asset_id"],"title":"get_assetArguments","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/list_exchanges":{"post":{"operationId":"list_exchanges","summary":"List supported exchanges with website, data coverage dates, symbol counts and USD trading volume. Use for \"Which exchang","description":"List supported exchanges with website, data coverage dates, symbol counts and USD trading volume. Use for \"Which exchanges does CoinAPI cover and which are biggest by volume\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter_exchange_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated exchange ids to keep, for example 'BINANCE,KRAKEN'.","title":"Filter Exchange Id"}},"title":"list_exchangesArguments","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/list_active_symbols":{"post":{"operationId":"list_active_symbols","summary":"List the active markets of one exchange with their symbol id, type and base and quote assets. Use for \"Which markets are","description":"List the active markets of one exchange with their symbol id, type and base and quote assets. Use for \"Which markets are active on Kraken\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange_id":{"description":"Exchange id, for example 'KRAKEN'.","maxLength":200,"title":"Exchange Id","type":"string"},"filter_symbol_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Keep symbols whose id starts with this text, for example 'KRAKEN_SPOT_BTC'.","title":"Filter Symbol Id"},"filter_asset_id":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Keep symbols involving this asset code, for example 'BTC'.","title":"Filter Asset Id"}},"required":["exchange_id"],"title":"list_active_symbolsArguments","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/list_ohlcv_periods":{"post":{"operationId":"list_ohlcv_periods","summary":"List the candle periods supported by the OHLCV endpoints with their ids and lengths. Use for \"Which candle periods can I","description":"List the candle periods supported by the OHLCV endpoints with their ids and lengths. Use for \"Which candle periods can I request\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_ohlcv_periodsArguments","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_latest_ohlcv":{"post":{"operationId":"get_latest_ohlcv","summary":"Get the most recent candles (open, high, low, close, volume) of one market for a period. Use for \"Show the latest hourly","description":"Get the most recent candles (open, high, low, close, volume) of one market for a period. Use for \"Show the latest hourly candles for Bitstamp BTC/USD\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol_id":{"description":"CoinAPI symbol id of one market, for example 'BITSTAMP_SPOT_BTC_USD'.","maxLength":200,"title":"Symbol Id","type":"string"},"period_id":{"description":"Candle length such as 1MIN, 5MIN, 1HRS, 1DAY (see list_ohlcv_periods).","maxLength":10,"title":"Period Id","type":"string"},"limit":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of candles (documented default 100).","title":"Limit"}},"required":["symbol_id","period_id"],"title":"get_latest_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_ohlcv_history":{"post":{"operationId":"get_ohlcv_history","summary":"Get historical candles of one market between two times for a period. Use for \"Daily BTC/USD candles on Bitstamp for the ","description":"Get historical candles of one market between two times for a period. Use for \"Daily BTC/USD candles on Bitstamp for the first half of October\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol_id":{"description":"CoinAPI symbol id of one market, for example 'BITSTAMP_SPOT_BTC_USD'.","maxLength":200,"title":"Symbol Id","type":"string"},"period_id":{"description":"Candle length such as 1MIN, 5MIN, 1HRS, 1DAY (see list_ohlcv_periods).","maxLength":10,"title":"Period Id","type":"string"},"time_start":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range, ISO 8601 such as 2026-10-01T00:00:00.","title":"Time Start"},"time_end":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range, ISO 8601 such as 2026-10-15T00:00:00.","title":"Time End"},"limit":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of candles (documented default 100).","title":"Limit"}},"required":["symbol_id","period_id"],"title":"get_ohlcv_historyArguments","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_current_quote":{"post":{"operationId":"get_current_quote","summary":"Get the current best bid and ask price and size of one market, with the last trade. Use for \"What are the current bid an","description":"Get the current best bid and ask price and size of one market, with the last trade. Use for \"What are the current bid and ask for Bitstamp BTC/USD\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol_id":{"description":"CoinAPI symbol id of one market, for example 'BITSTAMP_SPOT_BTC_USD'.","maxLength":200,"title":"Symbol Id","type":"string"}},"required":["symbol_id"],"title":"get_current_quoteArguments","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/list_latest_trades":{"post":{"operationId":"list_latest_trades","summary":"List the most recent trades of one market with time, price, size and taker side. Use for \"Show the last 20 trades on Bit","description":"List the most recent trades of one market with time, price, size and taker side. Use for \"Show the last 20 trades on Bitstamp BTC/USD\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbol_id":{"description":"CoinAPI symbol id of one market, for example 'BITSTAMP_SPOT_BTC_USD'.","maxLength":200,"title":"Symbol Id","type":"string"},"limit":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of trades (documented default 100).","title":"Limit"}},"required":["symbol_id"],"title":"list_latest_tradesArguments","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}}}}