{"openapi":"3.1.0","info":{"title":"Boardroom (BYOK) API","version":"0.1.0","description":"Boardroom (BYOK) lets an AI assistant read your own Boardroom data through the Boardroom API with a key you supply (Boardroom Governance API key). Read-only: 12 tools (list_protocols, get_protocol, list_protocol_proposals, get_proposal, list_proposal_votes, get_treasury_balance, list_treasury_token_balances, list_treasury_transactions, list_treasury_balances_all, list_top_delegates,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-boardroom.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-boardroom/docs"},"termsOfService":"https://connectorbay.com/byok-boardroom/terms"},"servers":[{"url":"https://byok-boardroom.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-boardroom/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_protocols":{"post":{"operationId":"list_protocols","summary":"List the DAOs and protocols Boardroom tracks with category, proposal, vote and voter counts, governance type and token d","description":"List the DAOs and protocols Boardroom tracks with category, proposal, vote and voter counts, governance type and token details. Use for \"Which DAOs does Boardroom track and how many proposals does each have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"},"cnames":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Only these protocols: comma-separated cnames such as 'uniswap,aave'.","title":"Cnames"}},"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/get_protocol":{"post":{"operationId":"get_protocol","summary":"Get one protocol: name, categories, proposal, vote and voter counts, governance type and token details. Use for \"How act","description":"Get one protocol: name, categories, proposal, vote and voter counts, governance type and token details. Use for \"How active is Uniswap governance in Boardroom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"}},"required":["cname"],"title":"get_protocolArguments","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_protocol_proposals":{"post":{"operationId":"list_protocol_proposals","summary":"List a protocol's governance proposals with state, dates, vote totals, choices and results. Filter by state: pending, ac","description":"List a protocol's governance proposals with state, dates, vote totals, choices and results. Filter by state: pending, active or closed. Use for \"Which Uniswap proposals are active right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"},"status":{"anyOf":[{"enum":["pending","active","closed"],"type":"string"},{"type":"null"}],"default":null,"description":"Proposal state: pending, active or closed.","title":"Status"},"order_by_indexed_at":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by the time Boardroom indexed them: asc or desc.","title":"Order By Indexed At"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"}},"required":["cname"],"title":"list_protocol_proposalsArguments","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_proposal":{"post":{"operationId":"get_proposal","summary":"Get one proposal by its Boardroom refId: full text, state, dates, choices, results, quorum and the transaction that crea","description":"Get one proposal by its Boardroom refId: full text, state, dates, choices, results, quorum and the transaction that created it. Use for \"What does Boardroom proposal boardroom/uniswap/1 say and how did it end\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref_id":{"description":"Proposal refId exactly as returned by list_protocol_proposals (it may contain slashes, which are URL-encoded).","maxLength":200,"title":"Ref Id","type":"string"}},"required":["ref_id"],"title":"get_proposalArguments","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_proposal_votes":{"post":{"operationId":"list_proposal_votes","summary":"List the votes cast on a proposal with voter address, voting power, chosen option index and time. Use for \"Who voted on ","description":"List the votes cast on a proposal with voter address, voting power, chosen option index and time. Use for \"Who voted on Boardroom proposal boardroom/uniswap/1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ref_id":{"description":"Proposal refId from list_protocol_proposals.","maxLength":200,"title":"Ref Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"}},"required":["ref_id"],"title":"list_proposal_votesArguments","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_treasury_balance":{"post":{"operationId":"get_treasury_balance","summary":"Get the most recent total treasury balance of a DAO (value and currency). Use for \"How large is the Uniswap DAO treasury","description":"Get the most recent total treasury balance of a DAO (value and currency). Use for \"How large is the Uniswap DAO treasury\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"}},"required":["cname"],"title":"get_treasury_balanceArguments","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_treasury_token_balances":{"post":{"operationId":"list_treasury_token_balances","summary":"List the token holdings of a DAO treasury with symbol, balance and value in the reported currency. Use for \"Which tokens","description":"List the token holdings of a DAO treasury with symbol, balance and value in the reported currency. Use for \"Which tokens does the Uniswap treasury hold\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"}},"required":["cname"],"title":"list_treasury_token_balancesArguments","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_treasury_transactions":{"post":{"operationId":"list_treasury_transactions","summary":"List the most recent treasury transactions of a DAO with sender, receiver, value, chain id and block height. Use for \"Wh","description":"List the most recent treasury transactions of a DAO with sender, receiver, value, chain id and block height. Use for \"What moved in or out of the Uniswap treasury recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"}},"required":["cname"],"title":"list_treasury_transactionsArguments","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_treasury_balances_all":{"post":{"operationId":"list_treasury_balances_all","summary":"List the latest treasury balance of every tracked DAO (value and currency). Use for \"Which DAOs have the biggest treasur","description":"List the latest treasury balance of every tracked DAO (value and currency). Use for \"Which DAOs have the biggest treasuries in Boardroom\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_treasury_balances_allArguments","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_top_delegates":{"post":{"operationId":"list_top_delegates","summary":"List the delegates of a protocol with the voting power delegated to each address. Use for \"Who holds the most delegated ","description":"List the delegates of a protocol with the voting power delegated to each address. Use for \"Who holds the most delegated voting power in Uniswap\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cname":{"description":"Boardroom protocol id (cname), lower case, for example 'uniswap', 'aave' or 'compound' (see list_protocols).","maxLength":200,"title":"Cname","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 20).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the nextCursor value from the previous answer.","title":"Cursor"}},"required":["cname"],"title":"list_top_delegatesArguments","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_global_stats":{"post":{"operationId":"get_global_stats","summary":"Get Boardroom's platform-wide totals: proposals, votes cast, unique voters and protocols. Use for \"How many DAO proposal","description":"Get Boardroom's platform-wide totals: proposals, votes cast, unique voters and protocols. Use for \"How many DAO proposals and votes does Boardroom index in total\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_global_statsArguments","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_activity_summary":{"post":{"operationId":"get_activity_summary","summary":"Get a summary of governance activity indexed in a time window: votes cast, unique voters, protocols, proposals and new p","description":"Get a summary of governance activity indexed in a time window: votes cast, unique voters, protocols, proposals and new proposals. Use for \"How much governance activity did Boardroom index in January 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window, ISO 8601 date such as 2026-01-01.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window, ISO 8601 date such as 2026-01-31.","title":"End Date"}},"title":"get_activity_summaryArguments","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}}}}