{"openapi":"3.1.0","info":{"title":"Token Terminal (BYOK) API","version":"0.1.0","description":"Token Terminal (BYOK) lets an AI assistant read your own Token Terminal data through the Token Terminal API with a key you supply (Token Terminal API key (requires the API plan)). Read-only: 12 tools (list_projects, get_project, get_project_metrics, get_project_metric_aggregations, get_project_financial_statement, list_market_sectors, get_market_sector, list_metrics, get_metric_data,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tokenterminal.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tokenterminal/docs"},"termsOfService":"https://connectorbay.com/byok-tokenterminal/terms"},"servers":[{"url":"https://byok-tokenterminal.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tokenterminal/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_projects":{"post":{"operationId":"list_projects","summary":"List the projects (protocols and blockchains) available through the API with id, name, symbol, CoinGecko id and archived","description":"List the projects (protocols and blockchains) available through the API with id, name, symbol, CoinGecko id and archived flag. Use for \"Which projects does Token Terminal cover\".","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/get_project":{"post":{"operationId":"get_project","summary":"Get one project: name, symbol, chains it runs on, products and links. Use it to see which chains and metrics exist befor","description":"Get one project: name, symbol, chains it runs on, products and links. Use it to see which chains and metrics exist before asking for metric history. Use for \"Which chains does Aave run on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id from list_projects, lowercase, for example aave or uniswap.","maxLength":100,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","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_project_metrics":{"post":{"operationId":"get_project_metrics","summary":"Get historical metric values (for example fees, revenue, active users) for one project, optionally by chain, between two","description":"Get historical metric values (for example fees, revenue, active users) for one project, optionally by chain, between two dates. Use for \"How much in fees did Aave earn each day this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id from list_projects, lowercase, for example aave or uniswap.","maxLength":100,"title":"Project Id","type":"string"},"metric_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated metric ids from list_metrics, for example fees,revenue (default: all available).","title":"Metric Ids"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids, for example ethereum,base.","title":"Chain Ids"},"start":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD (default: first date with data).","title":"Start"},"end":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD (default: latest).","title":"End"},"order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Timestamp order: desc (newest first, default) or asc.","title":"Order Direction"},"aggregate_by":{"anyOf":[{"enum":["chain","product_id"],"type":"string"},{"type":"null"}],"default":null,"description":"Split values by chain or product_id.","title":"Aggregate By"}},"required":["project_id"],"title":"get_project_metricsArguments","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_project_metric_aggregations":{"post":{"operationId":"get_project_metric_aggregations","summary":"Get aggregated metric figures for one project, such as 30 day or annualized fees and revenue. Use for \"What are Aave's a","description":"Get aggregated metric figures for one project, such as 30 day or annualized fees and revenue. Use for \"What are Aave's aggregated fee and revenue figures\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id from list_projects, lowercase, for example aave or uniswap.","maxLength":100,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_project_metric_aggregationsArguments","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_project_financial_statement":{"post":{"operationId":"get_project_financial_statement","summary":"Get a project's financial statement (income statement style sections of metrics) by week, month, quarter or year. Use fo","description":"Get a project's financial statement (income statement style sections of metrics) by week, month, quarter or year. Use for \"Show Uniswap's quarterly financial statement for the last year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Project id from list_projects, lowercase, for example aave or uniswap.","maxLength":100,"title":"Project Id","type":"string"},"timestamp_granularity":{"anyOf":[{"enum":["year","quarter","month","week"],"type":"string"},{"type":"null"}],"default":"quarter","description":"week, month, quarter or year.","title":"Timestamp Granularity"},"interval":{"anyOf":[{"enum":["1m","1y","2y","3y","5y","max"],"type":"string"},{"type":"null"}],"default":"1y","description":"How far back: 1m, 1y, 2y, 3y, 5y or max.","title":"Interval"}},"required":["project_id"],"title":"get_project_financial_statementArguments","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_market_sectors":{"post":{"operationId":"list_market_sectors","summary":"List market sectors (for example DEXs, lending, L1 chains) with id and name. Use for \"What market sectors does Token Ter","description":"List market sectors (for example DEXs, lending, L1 chains) with id and name. Use for \"What market sectors does Token Terminal define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_market_sectorsArguments","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_sector":{"post":{"operationId":"get_market_sector","summary":"Get one market sector with its description and the projects in it. Use for \"Which projects are in the lending sector\".","description":"Get one market sector with its description and the projects in it. Use for \"Which projects are in the lending sector\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"market_sector_id":{"description":"Market sector id from list_market_sectors.","maxLength":100,"title":"Market Sector Id","type":"string"}},"required":["market_sector_id"],"title":"get_market_sectorArguments","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_metrics":{"post":{"operationId":"list_metrics","summary":"List all metrics available through the API with id, name and description. Use for \"What metrics can I query on Token Ter","description":"List all metrics available through the API with id, name and description. Use for \"What metrics can I query on Token Terminal\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_metricsArguments","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_metric_data":{"post":{"operationId":"get_metric_data","summary":"Get one metric across several projects over time, for example fees for aave and uniswap between two dates. Use for \"Comp","description":"Get one metric across several projects over time, for example fees for aave and uniswap between two dates. Use for \"Compare daily fees of Aave and Uniswap in March\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"metric_id":{"description":"Metric id from list_metrics, for example fees.","maxLength":100,"title":"Metric Id","type":"string"},"project_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated project ids, or all (default).","title":"Project Ids"},"chain_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated chain ids, for example ethereum,base.","title":"Chain Ids"},"market_sector_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated market sector ids to filter projects.","title":"Market Sector Ids"},"start":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date, YYYY-MM-DD (default: first date with data).","title":"Start"},"end":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date, YYYY-MM-DD (default: latest).","title":"End"}},"required":["metric_id"],"title":"get_metric_dataArguments","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_metric_aggregations":{"post":{"operationId":"get_metric_aggregations","summary":"Get aggregated figures (such as 30 day and annualized values) of selected metrics for several projects. Use for \"What ar","description":"Get aggregated figures (such as 30 day and annualized values) of selected metrics for several projects. Use for \"What are the annualized revenue figures for aave and uniswap\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_ids":{"description":"Comma-separated project ids, for example aave,uniswap.","maxLength":300,"title":"Project Ids","type":"string"},"metric_ids":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated metric ids, for example fees,revenue.","title":"Metric Ids"}},"required":["project_ids"],"title":"get_metric_aggregationsArguments","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 tracked assets (tokens and stablecoins) with type, symbol, CoinGecko id and chains, one page at a time. Use for \"Wh","description":"List tracked assets (tokens and stablecoins) with type, symbol, CoinGecko id and chains, one page at a time. Use for \"Which assets does Token Terminal track\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_types":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated asset types to filter by.","title":"Asset Types"},"market_sectors":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated market sector ids to filter by.","title":"Market Sectors"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 1000).","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of assets to skip.","title":"Offset"}},"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 with its token addresses per chain, products, and the list of metrics available for it. Use for \"Which cha","description":"Get one asset with its token addresses per chain, products, and the list of metrics available for it. Use for \"Which chains is this stablecoin on and which metrics exist for it\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"asset_id":{"description":"Asset id from list_assets.","maxLength":100,"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}}}}