{"openapi":"3.1.0","info":{"title":"Enso (BYOK) API","version":"0.1.0","description":"Enso (BYOK) lets an AI assistant read your own Enso data through the Enso API with a key you supply (Enso API key). Read-only: 9 tools (list_networks, list_projects, list_project_protocols, list_protocols, list_tokens, get_token_price, list_aggregators, get_protocol_standard, get_layerzero_pool). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-enso.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-enso/docs"},"termsOfService":"https://connectorbay.com/byok-enso/terms"},"servers":[{"url":"https://byok-enso.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-enso/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_networks":{"post":{"operationId":"list_networks","summary":"List the blockchain networks Enso supports with chain id and name, optionally filtered by name or chain id. Use for \"Whi","description":"List the blockchain networks Enso supports with chain id and name, optionally filtered by name or chain id. Use for \"Which chains does Enso support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Network name to search for, for example 'base'.","title":"Name"},"chain_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Chain id to look up.","title":"Chain Id"}},"title":"list_networksArguments","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_projects":{"post":{"operationId":"list_projects","summary":"List the DeFi projects (for example aave, uniswap, morpho) Enso integrates with, with the chains and protocol slugs of e","description":"List the DeFi projects (for example aave, uniswap, morpho) Enso integrates with, with the chains and protocol slugs of each. Use for \"Which DeFi projects does Enso support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","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_project_protocols":{"post":{"operationId":"list_project_protocols","summary":"List the protocols (versions and forks) that belong to one DeFi project, with description, link and supported chains. Us","description":"List the protocols (versions and forks) that belong to one DeFi project, with description, link and supported chains. Use for \"Which protocols does Enso support for the aave project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"description":"Project id such as 'aave' (see list_projects).","maxLength":200,"title":"Project","type":"string"}},"required":["project"],"title":"list_project_protocolsArguments","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_protocols":{"post":{"operationId":"list_protocols","summary":"List every protocol Enso supports with its project, name, description and the chains it is available on, optionally for ","description":"List every protocol Enso supports with its project, name, description and the chains it is available on, optionally for one chain or slug. Use for \"Which DeFi protocols can Enso route into on Base\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only protocols on this chain id.","title":"Chain Id"},"slug":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Only the protocol with this slug, for example 'aave-v3'.","title":"Slug"}},"title":"list_protocolsArguments","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_tokens":{"post":{"operationId":"list_tokens","summary":"List base and DeFi tokens Enso knows about (vault, lending and LP tokens included) with APY, reward APY and TVL, filtera","description":"List base and DeFi tokens Enso knows about (vault, lending and LP tokens included) with APY, reward APY and TVL, filterable by chain, project, protocol, type and minimum APY or TVL. Pages of up to 1000 are cut to the first items. Use for \"Which Aave V3 tokens on Ethereum have the highest TVL according to Enso\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Numeric chain id, for example 1 for Ethereum, 8453 for Base, 42161 for Arbitrum (see list_networks).","title":"Chain Id"},"project":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Project id, for example 'aave'.","title":"Project"},"protocol_slug":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Protocol slug, for example 'aave-v3'.","title":"Protocol Slug"},"type":{"anyOf":[{"enum":["defi","base"],"type":"string"},{"type":"null"}],"default":null,"description":"Token kind: defi or base (both when omitted).","title":"Type"},"apy_from":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only tokens with an APY above this percent.","title":"Apy From"},"apy_to":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only tokens with an APY below this percent.","title":"Apy To"},"tvl_from":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only tokens with a TVL above this USD amount.","title":"Tvl From"},"tvl_to":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only tokens with a TVL below this USD amount.","title":"Tvl To"},"include_metadata":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include symbol, name and logos.","title":"Include Metadata"},"include_underlying":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include the underlying tokens of DeFi tokens.","title":"Include Underlying"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Items per page (up to 1000).","title":"Page Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_tokensArguments","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_token_price":{"post":{"operationId":"get_token_price","summary":"Get Enso's USD price for one token on one chain, with decimals, symbol, timestamp and a confidence score. Use for \"What ","description":"Get Enso's USD price for one token on one chain, with decimals, symbol, timestamp and a confidence score. Use for \"What is the price of WETH on Ethereum according to Enso\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_id":{"description":"Numeric chain id, for example 1 for Ethereum.","maxLength":200,"title":"Chain Id","type":"string"},"address":{"description":"Token contract address.","maxLength":200,"title":"Address","type":"string"}},"required":["chain_id","address"],"title":"get_token_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/list_aggregators":{"post":{"operationId":"list_aggregators","summary":"List the swap aggregators Enso can route through, optionally for one chain. Use for \"Which aggregators does Enso use on ","description":"List the swap aggregators Enso can route through, optionally for one chain. Use for \"Which aggregators does Enso use on Ethereum\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Numeric chain id, for example 1 for Ethereum, 8453 for Base, 42161 for Arbitrum (see list_networks).","title":"Chain Id"}},"title":"list_aggregatorsArguments","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_protocol_standard":{"post":{"operationId":"get_protocol_standard","summary":"Get the actions (deposit, redeem, borrow, swap and so on), function names, inputs and supported chains Enso offers for o","description":"Get the actions (deposit, redeem, borrow, swap and so on), function names, inputs and supported chains Enso offers for one protocol slug, plus its forks. Use for \"What actions can Enso bundle for aave-v3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"description":"Protocol slug such as 'aave-v3' (see list_protocols).","maxLength":200,"title":"Slug","type":"string"}},"required":["slug"],"title":"get_protocol_standardArguments","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_layerzero_pool":{"post":{"operationId":"get_layerzero_pool","summary":"Look up the LayerZero Stargate pool address for a token on a chain, optionally with the pool on a destination chain. Ret","description":"Look up the LayerZero Stargate pool address for a token on a chain, optionally with the pool on a destination chain. Returns null when no pool exists. Use for \"What is the Stargate pool for USDC on Ethereum\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chain_id":{"description":"Source chain id.","minimum":1,"title":"Chain Id","type":"integer"},"token":{"description":"Token address on the source chain.","maxLength":100,"title":"Token","type":"string"},"destination_chain_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Destination chain id.","title":"Destination Chain Id"},"destination_token":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Token address on the destination chain.","title":"Destination Token"}},"required":["chain_id","token"],"title":"get_layerzero_poolArguments","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}}}}