{"openapi":"3.1.0","info":{"title":"Kaiko (BYOK) API","version":"0.1.0","description":"Kaiko (BYOK) lets an AI assistant read your own Kaiko data through the Kaiko API with a key you supply (Kaiko API key). Read-only: 7 tools (get_ohlcv_vwap, list_trades, get_market_depth, get_price_slippage, get_pair_price, get_principal_market_value, list_liquidations). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-kaiko.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-kaiko/docs"},"termsOfService":"https://connectorbay.com/byok-kaiko/terms"},"servers":[{"url":"https://byok-kaiko.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-kaiko/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_ohlcv_vwap":{"post":{"operationId":"get_ohlcv_vwap","summary":"Get OHLCV, trade count and volume weighted price candles for one instrument on one exchange over a window and interval. ","description":"Get OHLCV, trade count and volume weighted price candles for one instrument on one exchange over a window and interval. Use for \"What were the daily BTC-USD candles on Coinbase last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"description":"Kaiko exchange code, for example cbse (Coinbase), krkn (Kraken) or bfnx (Bitfinex).","maxLength":200,"title":"Exchange","type":"string"},"instrument_class":{"description":"Market type: spot, future, perpetual-future or option (your key only returns the market types you subscribe to).","maxLength":200,"title":"Instrument Class","type":"string"},"instrument":{"description":"Kaiko instrument code (base-quote), for example btc-usd or eth-usdt.","maxLength":200,"title":"Instrument","type":"string"},"interval":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"1d","description":"Candle size: a number plus s, m, h or d, up to one day in total (for example 1m, 1h, 1d).","title":"Interval"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Rows per page (maximum 100). Only send on the first call.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["exchange","instrument_class","instrument"],"title":"get_ohlcv_vwapArguments","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_trades":{"post":{"operationId":"list_trades","summary":"List individual trades (tick level) for one instrument on one exchange with time, price, amount and taker side. Use for ","description":"List individual trades (tick level) for one instrument on one exchange with time, price, amount and taker side. Use for \"What were the latest BTC-USD trades on Bitfinex\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"description":"Kaiko exchange code, for example cbse (Coinbase), krkn (Kraken) or bfnx (Bitfinex).","maxLength":200,"title":"Exchange","type":"string"},"instrument_class":{"description":"Market type: spot, future, perpetual-future or option (your key only returns the market types you subscribe to).","maxLength":200,"title":"Instrument Class","type":"string"},"instrument":{"description":"Kaiko instrument code (base-quote), for example btc-usd or eth-usdt.","maxLength":200,"title":"Instrument","type":"string"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Rows per page (maximum 100). Only send on the first call.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["exchange","instrument_class","instrument"],"title":"list_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}},"/v1/tools/get_market_depth":{"post":{"operationId":"get_market_depth","summary":"Get order book depth snapshots for one instrument on one exchange: volume of bids and asks within given percentages of t","description":"Get order book depth snapshots for one instrument on one exchange: volume of bids and asks within given percentages of the best price. Use for \"How deep is the BTC-USD order book on Kraken\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"description":"Kaiko exchange code, for example cbse (Coinbase), krkn (Kraken) or bfnx (Bitfinex).","maxLength":200,"title":"Exchange","type":"string"},"instrument_class":{"description":"Market type: spot, future, perpetual-future or option (your key only returns the market types you subscribe to).","maxLength":200,"title":"Instrument Class","type":"string"},"instrument":{"description":"Kaiko instrument code (base-quote), for example btc-usd or eth-usdt.","maxLength":200,"title":"Instrument","type":"string"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Rows per page (maximum 100). Only send on the first call.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["exchange","instrument_class","instrument"],"title":"get_market_depthArguments","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_price_slippage":{"post":{"operationId":"get_price_slippage","summary":"Get order book snapshots with the percentage slippage a market buy or sell of a given size (in quote asset) would suffer","description":"Get order book snapshots with the percentage slippage a market buy or sell of a given size (in quote asset) would suffer. Use for \"What slippage would a 100,000 USD BTC buy see on Kraken\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"description":"Kaiko exchange code, for example cbse (Coinbase), krkn (Kraken) or bfnx (Bitfinex).","maxLength":200,"title":"Exchange","type":"string"},"instrument_class":{"description":"Market type: spot, future, perpetual-future or option (your key only returns the market types you subscribe to).","maxLength":200,"title":"Instrument Class","type":"string"},"instrument":{"description":"Kaiko instrument code (base-quote), for example btc-usd or eth-usdt.","maxLength":200,"title":"Instrument","type":"string"},"slippage":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Order size in the quote asset to compute slippage for.","title":"Slippage"},"slippage_ref":{"anyOf":[{"enum":["mid_price","best"],"type":"string"},{"type":"null"}],"default":"mid_price","description":"Compute slippage from the mid price or from the best bid/ask.","title":"Slippage Ref"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Rows per page (maximum 100). Only send on the first call.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["exchange","instrument_class","instrument"],"title":"get_price_slippageArguments","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_pair_price":{"post":{"operationId":"get_pair_price","summary":"Get Kaiko's robust weighted median price for a base and quote asset pair across exchanges at a chosen interval. Use for ","description":"Get Kaiko's robust weighted median price for a base and quote asset pair across exchanges at a chosen interval. Use for \"What is the Kaiko BTC to ETH price per minute\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"base_asset":{"description":"Kaiko asset code of the base asset, for example btc.","maxLength":200,"title":"Base Asset","type":"string"},"quote_asset":{"description":"Kaiko asset code of the quote asset, for example eth or usd.","maxLength":200,"title":"Quote Asset","type":"string"},"interval":{"description":"Window size: a number plus s, m, h or d, up to one day in total (for example 1m, 1h, 24h).","maxLength":10,"title":"Interval","type":"string"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"extrapolate_missing_values":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"When true, fill null prices from the last available price in the window.","title":"Extrapolate Missing Values"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page (maximum 100 for intervals up to 1m, 10 up to 1h, 4 above). Only send on the first call.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["base_asset","quote_asset","interval"],"title":"get_pair_priceArguments","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_principal_market_value":{"post":{"operationId":"get_principal_market_value","summary":"Get the principal market value price in USD of a crypto asset (for US-GAAP and IFRS fair value reporting) with the princ","description":"Get the principal market value price in USD of a crypto asset (for US-GAAP and IFRS fair value reporting) with the principal market and two week average volume. Use for \"What is the principal market value of BTC for financial reporting\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset":{"description":"Kaiko asset code, for example btc.","maxLength":20,"title":"Asset","type":"string"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"}},"required":["asset"],"title":"get_principal_market_valueArguments","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_liquidations":{"post":{"operationId":"list_liquidations","summary":"List derivative liquidation events (futures and perpetuals) for one instrument on one exchange with size, price, rate an","description":"List derivative liquidation events (futures and perpetuals) for one instrument on one exchange with size, price, rate and position side. Use for \"Which ETH-USDT perpetual liquidations happened on Bybit this morning\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"exchange":{"description":"Kaiko exchange code of a derivatives venue, for example bbit (Bybit).","maxLength":200,"title":"Exchange","type":"string"},"instrument_class":{"description":"Derivative type: future or perpetual-future.","maxLength":200,"title":"Instrument Class","type":"string"},"instrument":{"description":"Kaiko instrument code, for example eth-usdt.","maxLength":200,"title":"Instrument","type":"string"},"start_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window in ISO 8601 (inclusive), for example 2025-03-03T00:00:00Z.","title":"Start Time"},"end_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window in ISO 8601 (exclusive), for example 2025-03-05T00:00:00Z.","title":"End Time"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Return the data oldest first (asc) or newest first (desc).","title":"Sort"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Rows per page (maximum 1000).","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":null,"description":"Token from a previous answer's continuation_token to fetch the next page. Send it without other paging params.","title":"Continuation Token"}},"required":["exchange","instrument_class","instrument"],"title":"list_liquidationsArguments","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}}}}