# Anticapture API Docs > Anticapture DAO governance analytics: REST API reference, MCP server, and webhook notifications - [Anticapture API Docs](/index.md) ## search - [Search the documentation](/search.md) ## api-reference - [Get account balance](/api-reference/account-balance-by-account-id.md): Returns account balance information for a specific address - [Get variations in account balances for a given period](/api-reference/account-balance-variations.md): Returns the largest account balance variations, keyed by account address - [Get changes in balance for a given period for a single account](/api-reference/account-balance-variations-by-account-id.md): Returns the changes to balance by period and account ID - [Get account balance records](/api-reference/account-balances.md): Returns sorted and paginated account balance records - [Get top interactions between accounts for a given period](/api-reference/account-interactions.md): Returns a mapping of the largest interactions between accounts. - [Anticapture REST API](/api-reference/anticapture-rest-api.md): REST API for Anticapture's DAO governance analytics: proposals, votes, voting power, delegations, token and treasury data, indexed from onchain and offchain sources. - [Average delegation percentage across all DAOs](/api-reference/average-delegation-percentage.md): Returns the delegated-supply percentage averaged across all configured DAOs, bucketed by day over the requested period. - [Compare active token supply between time periods](/api-reference/compare-active-supply.md): Returns the active token supply (supply held by accounts that participated in governance) for the given period. - [Compare average turnout between time periods](/api-reference/compare-average-turnout.md): Returns the average proposal turnout in the current period versus the previous one, with the change rate and raw delta. - [Compare cex supply between periods](/api-reference/compare-cex-supply.md): Returns the cex supply for the current period versus the previous one, with the change rate and raw delta. - [Compare circulating supply between periods](/api-reference/compare-circulating-supply.md): Returns the circulating supply for the current period versus the previous one, with the change rate and raw delta. - [Compare delegated supply between periods](/api-reference/compare-delegated-supply.md): Returns the delegated supply for the current period versus the previous one, with the change rate and raw delta. - [Compare dex supply between periods](/api-reference/compare-dex-supply.md): Returns the dex supply for the current period versus the previous one, with the change rate and raw delta. - [Compare lending supply between periods](/api-reference/compare-lending-supply.md): Returns the lending supply for the current period versus the previous one, with the change rate and raw delta. - [Compare number of proposals between time periods](/api-reference/compare-proposals.md): Returns the number of proposals launched in the current period versus the previous one, with the change rate and raw delta. - [Compare total supply between periods](/api-reference/compare-total-supply.md): Returns the total supply for the current period versus the previous one, with the change rate and raw delta. - [Compare treasury between periods](/api-reference/compare-treasury.md): Returns the treasury for the current period versus the previous one, with the change rate and raw delta. - [Compare number of votes between time periods](/api-reference/compare-votes.md): Returns the number of votes cast in the current period versus the previous one, with the change rate and raw delta. - [Create a draft proposal](/api-reference/create-draft-proposal.md): Create a draft proposal - [Get DAO governance parameters](/api-reference/dao.md): Returns current governance parameters for this DAO - [List of all configured DAOs](/api-reference/daos.md): Returns every DAO configured on the gateway along with its governance parameters and supported capabilities. - [Get delegation percentage day buckets with forward-fill](/api-reference/delegation-percentage-by-day.md): Returns the delegated-supply percentage bucketed by day, forward-filling days without new data with the last known value. - [Get delegations](/api-reference/delegations.md): Get current delegations for an account - [Get delegators](/api-reference/delegators.md): Get current delegators of an account with voting power - [Delete a draft proposal](/api-reference/delete-draft-proposal.md): Only the original author (matched by address) can delete a draft. - [Get feed events](/api-reference/feed-events.md): Returns a paginated list of governance feed events, optionally filtered by type and relevance. - [Gateway health and upstream dependency states](/api-reference/gateway-health.md): Returns 200 only when every configured DAO API, relayer, address enrichment, and token service upstream responds to /health. - [Get enriched data for an address](/api-reference/get-address.md): Returns label information from Arkham, ENS data, and whether the address is an EOA or contract. Arkham data is stored permanently. ENS data is cached with a configurable TTL. - [Get enriched data for multiple addresses](/api-reference/get-addresses.md): Returns label information from Arkham, ENS data, and address type for multiple addresses. Maximum 100 addresses per request. Arkham data is stored permanently. ENS data is cached with a configurable TTL. - [Get DAO token treasury data](/api-reference/get-dao-token-treasury.md): Get historical DAO Token Treasury value (governance token quantity × token price) - [Get a draft proposal by ID](/api-reference/get-draft-proposal.md): Public endpoint — anyone with the ID can view the draft, enabling sharing. - [List draft proposals for an address](/api-reference/get-draft-proposals.md): List draft proposals for an address - [Get event relevance threshold](/api-reference/get-event-relevance-threshold.md): Returns the minimum value at which a feed event of the given type qualifies for the requested relevance level. - [GET /{dao}/health](/api-reference/get-health.md): GET /{dao}/health - [Get liquid treasury data](/api-reference/get-liquid-treasury.md): Get historical Liquid Treasury (treasury without DAO tokens) from external providers (DefiLlama/Dune) - [Get monthly ENS action counts by category](/api-reference/get-revenue-actions.md): Monthly action counts by category (Registration, Renewal, Premium). - [Get monthly net change and cumulative active .eth names](/api-reference/get-revenue-active-names.md): Monthly net change and cumulative count of active .eth names. - [Get monthly ENS revenue split by category (Steakhouse ledger)](/api-reference/get-revenue-by-category.md): Monthly ENS revenue split by category (Registration vs Renewal) in USD and ETH, sourced from the Steakhouse accounting ledger. - [Get monthly new-wallet counts and cumulative wallet total](/api-reference/get-revenue-new-wallets.md): Monthly new-wallet counts and the cumulative wallet total for ENS. - [Get monthly renewal funnel keyed by expiry month](/api-reference/get-revenue-renewal-funnel.md): Renewal funnel per expiry month: terms expiring, renewed, churned, and renewal rate. - [Get monthly renewal tenure distribution per expiry month](/api-reference/get-revenue-renewal-tenure.md): Per expiry month, count of names in each tenure bucket (0/1/2/3+ renewals) and the total renewals in that bucket. - [Get monthly ENS revenue totals in USD and ETH](/api-reference/get-revenue-totals.md): Monthly ENS revenue totals split into registration, premium, and renewal, in both USD and ETH. - [Get total treasury data](/api-reference/get-total-treasury.md): Get historical Total Treasury (liquid treasury + DAO token treasury) - [Get historical token balances](/api-reference/historical-balances.md): Returns historical balance deltas for one account, enriched with the transfer that caused each change. - [Get historical delegations](/api-reference/historical-delegations.md): Get historical delegations for an account, with optional filtering and sorting - [Get historical token data](/api-reference/historical-token-data.md): Get historical market data for a specific token - [Get voting power changes](/api-reference/historical-voting-power.md): Returns a list of voting power changes. - [Get voting power changes by account](/api-reference/historical-voting-power-by-account-id.md): Returns a list of voting power changes for a specific account - [Get the last update time](/api-reference/last-update.md): Returns the timestamp of the most recent data update for the requested chart. - [Get an offchain proposal by ID](/api-reference/offchain-proposal-by-id.md): Returns a single offchain (Snapshot) proposal by its ID. Pass `lean=true` to omit the `body`. - [Get offchain proposal non-voters](/api-reference/offchain-proposal-non-voters.md): Returns the active delegates that did not vote on a given offchain proposal - [Get offchain proposals](/api-reference/offchain-proposals.md): Returns a list of offchain (Snapshot) proposals. Pass `lean=true` to omit the markdown `body` and reduce payload size. - [Search offchain proposals](/api-reference/offchain-search-proposals.md): Returns offchain proposals whose title or identifier partially matches the query. Pass `lean=true` to omit the `body`. - [Get a proposal by ID](/api-reference/proposal.md): Returns a single proposal by its ID. Pass `lean=true` to omit calldatas/values/targets and the proposal description. - [Get a proposal non-voters](/api-reference/proposal-non-voters.md): Returns the active delegates that did not vote on a given proposal - [Get proposals](/api-reference/proposals.md): Returns a list of proposals. Pass `lean=true` to omit calldatas/values/targets and the proposal description, reducing payload size. - [Get proposals activity for delegate](/api-reference/proposals-activity.md): Returns proposal activity data including voting history, win rates, and detailed proposal information for the specified delegate within the given time window - [Search proposals](/api-reference/search-proposals.md): Returns proposals whose title or identifier partially matches the query. Pass `lean=true` to omit calldatas/values/targets and the proposal description. - [Get token properties](/api-reference/token.md): Get property data for a specific token - [Get token related metrics](/api-reference/token-metrics.md): Returns token related metrics for a single metric type. - [Get transfers](/api-reference/transfers.md): Get transfers of a given address - [Update a draft proposal](/api-reference/update-draft-proposal.md): Only the original author (matched by address) can update a draft. - [Get all votes](/api-reference/votes.md): Get all votes ordered by timestamp or voting power - [List of votes for a given proposal](/api-reference/votes-by-proposal-id.md): Returns a paginated list of votes cast on a specific proposal - [Get offchain votes](/api-reference/votes-offchain.md): Returns a list of offchain (Snapshot) votes - [Get offchain votes for a proposal](/api-reference/votes-offchain-by-proposal-id.md): Returns a paginated list of offchain (Snapshot) votes for a specific proposal - [Get account powers](/api-reference/voting-power-by-account-id.md): Returns voting power information for a specific address (account) - [Get voting power changes within a time frame for the given addresses](/api-reference/voting-power-variations.md): Returns a mapping of the voting power changes within a time frame for the given addresses - [Get top changes in voting power for a given period for a single account](/api-reference/voting-power-variations-by-account-id.md): Returns the changes to voting power by period and account ID - [Get voting powers](/api-reference/voting-powers.md): Returns sorted and paginated account voting power records ## getting-started - [Getting started](/getting-started.md): The Anticapture REST API serves DAO governance analytics over HTTPS with JSON ## mcp - [MCP server](/mcp.md): Anticapture ships a hosted Model Context Protocol ## webhooks - [Webhooks](/webhooks.md): Instead of polling the REST API, register an HTTPS endpoint with the Webhook - [Deactivate a webhook](/webhooks/reference/delete-webhooks.md): Deactivates a previously registered webhook URL, stopping further deliveries. - [Register a webhook](/webhooks/reference/post-webhooks.md): Registers a webhook URL to receive notifications for all DAOs. On first registration, returns a one-time HMAC secret used to verify delivery signatures — it is never shown again, so store it immediately. Re-registering an already-active webhook returns success without a secret. - [Webhook Notification API](/webhooks/reference/webhook-notification-api.md): API for registering and managing webhook notification subscriptions --- # Full Documentation Content [Skip to main content](#__docusaurus_skipToContent_fallback) [](/index.md) [LLM Docs](#) * [Copy entire docs (Markdown)](/llms-full.txt) * [View as Markdown (llms-full.txt)](/llms-full.txt) * [View index (llms.txt)](/llms.txt) * [Open in ChatGPT](https://chatgpt.com/?q=Read%20the%20Anticapture%20MCP%20documentation%20at%20%2Fllms-full.txt%20and%20help%20me%20use%20it.) * [Open in Claude](https://claude.ai/new?q=Read%20the%20Anticapture%20MCP%20documentation%20at%20%2Fllms-full.txt%20and%20help%20me%20use%20it.) [Dashboard](https://app.anticapture.com)[GitHub](https://github.com/blockful-io/anticapture) Search # Search the documentation © 2026 Anticapture, built by [blockful](https://blockful.io) --- # Get account balance ``` GET /:dao/accounts/:address/balances ``` Returns account balance information for a specific address ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 Successfully retrieved account balance Account not found --- # Get variations in account balances for a given period ``` GET /:dao/balances/variations ``` Returns the largest account balance variations, keyed by account address ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved account balance variations --- # Get changes in balance for a given period for a single account ``` GET /:dao/accounts/:address/balances/variations ``` Returns the changes to balance by period and account ID ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved account balance variations --- # Get account balance records ``` GET /:dao/balances ``` Returns sorted and paginated account balance records ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved account balances --- # Get top interactions between accounts for a given period ``` GET /:dao/balances/:address/interactions ``` Returns a mapping of the largest interactions between accounts. Positive amounts signify net token transfers FROM `
`, whilst negative amounts refer to net transfers TO `` ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved account interactions --- Version: 1.0.0 # Anticapture REST API REST API for Anticapture's DAO governance analytics: proposals, votes, voting power, delegations, token and treasury data, indexed from onchain and offchain sources. All endpoints are served from `https://gateful.up.railway.app` and require a bearer token; see [Getting started](/getting-started.md). ## Authentication[](#authentication "Direct link to Authentication") * HTTP: Bearer Auth | Security Scheme Type: | http | | -------------------------- | ------ | | HTTP Authorization Scheme: | bearer | --- # Average delegation percentage across all DAOs ``` GET /aggregations/average-delegation-percentage ``` Returns the delegated-supply percentage averaged across all configured DAOs, bucketed by day over the requested period. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Average delegation percentage across all DAOs --- # Compare active token supply between time periods ``` GET /:dao/active-supply/compare ``` Returns the active token supply (supply held by accounts that participated in governance) for the given period. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Active supply value --- # Compare average turnout between time periods ``` GET /:dao/average-turnout/compare ``` Returns the average proposal turnout in the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Average turnout comparison --- # Compare cex supply between periods ``` GET /:dao/cex-supply/compare ``` Returns the cex supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 cex supply comparison --- # Compare circulating supply between periods ``` GET /:dao/circulating-supply/compare ``` Returns the circulating supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 circulating supply comparison --- # Compare delegated supply between periods ``` GET /:dao/delegated-supply/compare ``` Returns the delegated supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 delegated supply comparison --- # Compare dex supply between periods ``` GET /:dao/dex-supply/compare ``` Returns the dex supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 dex supply comparison --- # Compare lending supply between periods ``` GET /:dao/lending-supply/compare ``` Returns the lending supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 lending supply comparison --- # Compare number of proposals between time periods ``` GET /:dao/proposals/compare ``` Returns the number of proposals launched in the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Proposal comparison --- # Compare total supply between periods ``` GET /:dao/total-supply/compare ``` Returns the total supply for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 total supply comparison --- # Compare treasury between periods ``` GET /:dao/treasury/compare ``` Returns the treasury for the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 treasury comparison --- # Compare number of votes between time periods ``` GET /:dao/votes/compare ``` Returns the number of votes cast in the current period versus the previous one, with the change rate and raw delta. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Vote comparison --- # Create a draft proposal ``` POST /:dao/proposal/drafts ``` Create a draft proposal ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 201 The created draft proposal --- # Get DAO governance parameters ``` GET /:dao/dao ``` Returns current governance parameters for this DAO ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 DAO governance parameters --- # List of all configured DAOs ``` GET /daos ``` Returns every DAO configured on the gateway along with its governance parameters and supported capabilities. ## Responses[](#responses "Direct link to Responses") * 200 List of all configured DAOs --- # Get delegation percentage day buckets with forward-fill ``` GET /:dao/delegation-percentage ``` Returns the delegated-supply percentage bucketed by day, forward-filling days without new data with the last known value. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Delegation percentage data with pagination --- # Get delegations ``` GET /:dao/accounts/:address/delegations ``` Get current delegations for an account ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns delegations for an account --- # Get delegators ``` GET /:dao/accounts/:address/delegators ``` Get current delegators of an account with voting power ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns current delegators for an account --- # Delete a draft proposal ``` DELETE /:dao/proposal/drafts/:id ``` Only the original author (matched by address) can delete a draft. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 204 * 404 Draft deleted Draft not found or address does not match author --- # Get feed events ``` GET /:dao/feed/events ``` Returns a paginated list of governance feed events, optionally filtered by type and relevance. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved feed events --- # Gateway health and upstream dependency states ``` GET /health ``` Returns 200 only when every configured DAO API, relayer, address enrichment, and token service upstream responds to /health. ## Responses[](#responses "Direct link to Responses") * 200 * 503 Gateway and every configured upstream are healthy. At least one configured upstream is unavailable. --- # Get enriched data for an address ``` GET /address-enrichment/address/:address ``` Returns label information from Arkham, ENS data, and whether the address is an EOA or contract. Arkham data is stored permanently. ENS data is cached with a configurable TTL. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 502 Successfully retrieved address enrichment data Upstream enrichment provider failed --- # Get enriched data for multiple addresses ``` GET /address-enrichment/addresses ``` Returns label information from Arkham, ENS data, and address type for multiple addresses. Maximum 100 addresses per request. Arkham data is stored permanently. ENS data is cached with a configurable TTL. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved batch enrichment data --- # Get DAO token treasury data ``` GET /:dao/treasury/dao-token ``` Get historical DAO Token Treasury value (governance token quantity × token price) ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns DAO token treasury history --- # Get a draft proposal by ID ``` GET /:dao/proposal/drafts/:id ``` Public endpoint — anyone with the ID can view the draft, enabling sharing. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 The requested draft proposal Draft not found --- # List draft proposals for an address ``` GET /:dao/proposal/drafts ``` List draft proposals for an address ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Draft proposals owned by the given address --- # Get event relevance threshold ``` GET /:dao/event-relevance/threshold ``` Returns the minimum value at which a feed event of the given type qualifies for the requested relevance level. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved threshold --- # GET /{dao}/health ``` GET /:dao/health ``` GET /{dao}/health ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 * 503 Per-DAO health snapshot — database, chain head, indexer freshness, and gateway circuit-breaker state. DAO not configured. Upstream DAO API unavailable. --- # Get liquid treasury data ``` GET /:dao/treasury/liquid ``` Get historical Liquid Treasury (treasury without DAO tokens) from external providers (DefiLlama/Dune) ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns liquid treasury history --- # Get monthly ENS action counts by category ``` GET /:dao/revenue/actions ``` Monthly action counts by category (Registration, Renewal, Premium). ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Monthly action counts by category --- # Get monthly net change and cumulative active .eth names ``` GET /:dao/revenue/active-names ``` Monthly net change and cumulative count of active .eth names. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Monthly net change and cumulative count of active .eth names --- # Get monthly ENS revenue split by category (Steakhouse ledger) ``` GET /:dao/revenue/by-category ``` Monthly ENS revenue split by category (Registration vs Renewal) in USD and ETH, sourced from the Steakhouse accounting ledger. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Monthly ENS revenue split by category in USD and ETH --- # Get monthly new-wallet counts and cumulative wallet total ``` GET /:dao/revenue/new-wallets ``` Monthly new-wallet counts and the cumulative wallet total for ENS. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Monthly new-wallet counts and the cumulative wallet total --- # Get monthly renewal funnel keyed by expiry month ``` GET /:dao/revenue/renewal-funnel ``` Renewal funnel per expiry month: terms expiring, renewed, churned, and renewal rate. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Renewal funnel per expiry month: terms expiring, renewed, churned, and renewal rate. --- # Get monthly renewal tenure distribution per expiry month ``` GET /:dao/revenue/renewal-tenure ``` Per expiry month, count of names in each tenure bucket (0/1/2/3+ renewals) and the total renewals in that bucket. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Per expiry month, count of names in each tenure bucket and total renewals in that bucket --- # Get monthly ENS revenue totals in USD and ETH ``` GET /:dao/revenue/totals ``` Monthly ENS revenue totals split into registration, premium, and renewal, in both USD and ETH. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Monthly ENS revenue totals in USD and ETH --- # Get total treasury data ``` GET /:dao/treasury/total ``` Get historical Total Treasury (liquid treasury + DAO token treasury) ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns total treasury history --- # Get historical token balances ``` GET /:dao/accounts/:address/balances/historical ``` Returns historical balance deltas for one account, enriched with the transfer that caused each change. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved historical balances --- # Get historical delegations ``` GET /:dao/accounts/:address/delegations/historical ``` Get historical delegations for an account, with optional filtering and sorting ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns historical delegations for an account --- # Get historical token data ``` GET /:dao/token/historical-data ``` Get historical market data for a specific token ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns the historical market data for the token --- # Get voting power changes ``` GET /:dao/voting-powers/historical ``` Returns a list of voting power changes. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Get voting power changes by account ``` GET /:dao/accounts/:address/voting-powers/historical ``` Returns a list of voting power changes for a specific account ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Get the last update time ``` GET /:dao/last-update ``` Returns the timestamp of the most recent data update for the requested chart. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Last update time --- # Get an offchain proposal by ID ``` GET /:dao/offchain/proposals/:id ``` Returns a single offchain (Snapshot) proposal by its ID. Pass `lean=true` to omit the `body`. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 * 404 Successfully retrieved offchain proposal Offchain data not supported Proposal not found --- # Get offchain proposal non-voters ``` GET /:dao/offchain/proposals/:id/non-voters ``` Returns the active delegates that did not vote on a given offchain proposal ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 * 404 Successfully retrieved non-voters Offchain data not supported Proposal not found --- # Get offchain proposals ``` GET /:dao/offchain/proposals ``` Returns a list of offchain (Snapshot) proposals. Pass `lean=true` to omit the markdown `body` and reduce payload size. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 Successfully retrieved offchain proposals Offchain data not supported --- # Search offchain proposals ``` GET /:dao/offchain/proposals/search ``` Returns offchain proposals whose title or identifier partially matches the query. Pass `lean=true` to omit the `body`. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 Successfully retrieved matching offchain proposals Offchain data not supported --- # Get a proposal by ID ``` GET /:dao/proposals/:id ``` Returns a single proposal by its ID. Pass `lean=true` to omit calldatas/values/targets and the proposal description. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 Successfully retrieved proposal Proposal not found --- # Get a proposal non-voters ``` GET /:dao/proposals/:id/non-voters ``` Returns the active delegates that did not vote on a given proposal ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved proposal --- # Get proposals ``` GET /:dao/proposals ``` Returns a list of proposals. Pass `lean=true` to omit calldatas/values/targets and the proposal description, reducing payload size. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved proposals --- # Get proposals activity for delegate ``` GET /:dao/proposals-activity ``` Returns proposal activity data including voting history, win rates, and detailed proposal information for the specified delegate within the given time window ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved proposals activity --- # Search proposals ``` GET /:dao/proposals/search ``` Returns proposals whose title or identifier partially matches the query. Pass `lean=true` to omit calldatas/values/targets and the proposal description. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved matching proposals --- # Get token properties ``` GET /:dao/token ``` Get property data for a specific token ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 Returns data concerning token-specific values and attributes Token not found --- # Get token related metrics ``` GET /:dao/token-metrics ``` Returns token related metrics for a single metric type. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Token metrics data keyed by metric type --- # Get transfers ``` GET /:dao/accounts/:address/transfers ``` Get transfers of a given address ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns transfers --- # Update a draft proposal ``` PUT /:dao/proposal/drafts/:id ``` Only the original author (matched by address) can update a draft. ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 404 The updated draft proposal Draft not found or address does not match author --- # Get all votes ``` GET /:dao/votes ``` Get all votes ordered by timestamp or voting power ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Returns votes --- # List of votes for a given proposal ``` GET /:dao/proposals/:id/votes ``` Returns a paginated list of votes cast on a specific proposal ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved votes --- # Get offchain votes ``` GET /:dao/offchain/votes ``` Returns a list of offchain (Snapshot) votes ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 Successfully retrieved offchain votes Offchain data not supported --- # Get offchain votes for a proposal ``` GET /:dao/offchain/proposals/:id/votes ``` Returns a paginated list of offchain (Snapshot) votes for a specific proposal ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 * 400 Successfully retrieved offchain votes Offchain data not supported --- # Get account powers ``` GET /:dao/voting-powers/:address ``` Returns voting power information for a specific address (account) ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Get voting power changes within a time frame for the given addresses ``` GET /:dao/accounts/voting-powers/variations ``` Returns a mapping of the voting power changes within a time frame for the given addresses ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Get top changes in voting power for a given period for a single account ``` GET /:dao/accounts/:address/voting-powers/variations ``` Returns the changes to voting power by period and account ID ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Get voting powers ``` GET /:dao/voting-powers ``` Returns sorted and paginated account voting power records ## Request[](#request "Direct link to request") ## Responses[](#responses "Direct link to Responses") * 200 Successfully retrieved voting power changes --- # Getting started The Anticapture REST API serves DAO governance analytics over HTTPS with JSON responses. This page covers everything you need for a first request. ## Base URL[](#base-url "Direct link to Base URL") ``` https://gateful.up.railway.app ``` The interactive OpenAPI spec is served at [`/docs/json`](https://gateful.up.railway.app/docs/json), the same spec this documentation is generated from. ## Authentication[](#authentication "Direct link to Authentication") All endpoints require a bearer token (contact the Anticapture team for an API key): ``` Authorization: Bearer