Snapshot DAO Governance Scraper avatar

Snapshot DAO Governance Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Snapshot DAO Governance Scraper

Snapshot DAO Governance Scraper

Scrape Snapshot.org DAO governance data - proposals (by space, state, or ID), spaces (DAO profiles), and votes (by proposal or voter address). Public GraphQL API, no login required.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape Snapshot.org DAO governance data — proposals, spaces (DAOs), and votes — for any of the tens of thousands of DAOs that use Snapshot for off-chain voting (ENS, Aave, Uniswap, Arbitrum, Optimism, and thousands more). HTTP-only via the public hub.snapshot.org/graphql API. No login, no API key, no cookies.

What this actor does

  • 6 modes: proposals, proposalByIds, spaces, spaceByIds, votes, votesByVoter
  • Proposal search: by space/DAO, voting state (pending/active/closed), title text, network, author address, voting type, min vote count
  • Space discovery: search DAOs by name, filter to verified spaces, sort by creation date (see FAQ on sort reliability)
  • Vote-level data: every vote on a proposal, or every vote cast by a specific wallet address
  • Empty fields are omitted

Output per record

Fields vary by recordType:

  • proposalproposalId, title, body, spaceId, spaceName, state, type, choices[], scores[], scoresTotal, votesCount, author, network, symbol, quorum, startDate, endDate, createdDate, updatedDate, snapshotBlock, proposalUrl
  • spacespaceId, name, about, network, symbol, membersCount, adminsCount, followersCount, proposalsCount, votesCount, verified, turbo, private, website, twitter, github, coingecko, createdDate, avatarUrl, spaceUrl
  • votevoteId, voter, proposalId, proposalTitle, spaceId, choice, votingPower, vpState, reason, createdDate, voterProfileUrl, voterAvatarUrl, proposalUrl

Every record also carries recordType and scrapedAt.

Input

FieldTypeDefaultDescription
modestringproposalsOne of the 6 modes above
spacestringDAO/space ENS name (mode=proposals, narrows votesByVoter). Omitted = all spaces
statestringanypending / active / closed (mode=proposals)
titleContainsstringSubstring match on proposal title (mode=proposals)
networkstringChain ID filter, e.g. 1, 137, 42161
authorAddressstringOnly proposals created by this 0x wallet address (mode=proposals)
proposalTypeselectanyVoting system: single-choice / approval / quadratic / ranked-choice / weighted / basic (mode=proposals)
minVotesintMinimum vote count (mode=proposals)
proposalOrderBystringcreatedcreated / votes / scores_total_value* / start / end
proposalIdsarrayProposal IDs (mode=proposalByIds)
searchTextstringSpace name search (mode=spaces). Omitted = browse all spaces
verifiedOnlyboolfalseOnly Snapshot-verified spaces (mode=spaces)
spaceOrderBystringcreatedfollowersCount* / proposalsCount* / votesCount* / created
spaceIdsarraySpace IDs (mode=spaceByIds)
voteProposalIdstringProposal ID to fetch votes for (mode=votes)
voterAddressstringWallet address (mode=votesByVoter)
minVotingPowernumberMinimum voting power filter
voteOrderBystringcreatedcreated / vp
orderDirectionstringdescdesc / asc
maxItemsint25Hard cap on emitted records
proxyConfigurationobjectAUTOOptional; only used as an automatic fallback on 403/429

Example: active ENS DAO proposals

{ "mode": "proposals", "space": "ens.eth", "state": "active", "maxItems": 20 }

Example: approval-vote proposals by a specific author

{ "mode": "proposals", "authorAddress": "0x66a28531E6f390A8CD44aB0C57a0F1aeb7E673FF", "proposalType": "approval", "maxItems": 20 }

Example: search for DAOs

{ "mode": "spaces", "searchText": "uniswap", "verifiedOnly": false, "maxItems": 20 }

Example: votes on a specific proposal

{ "mode": "votes", "voteProposalId": "0xa736ce4411be14ceaab141989ac271ce1ca96aee6d3ac26bb893ec3c898385d0", "maxItems": 50 }

Example: a wallet's voting history

{ "mode": "votesByVoter", "voterAddress": "0x1F3D3A7A9c548bE39539b39D7400302753E20591", "maxItems": 50 }

Use cases

  • Governance dashboards — track proposal activity and outcomes across one or many DAOs
  • DAO research — compare voter participation, quorum, and voting-power concentration
  • Delegate/voter analytics — audit a wallet's full cross-DAO voting history
  • Alerting — poll state=active proposals to notify token holders before voting closes
  • DAO discovery — search/filter DAOs by name, network, and verification status

FAQ

Do I need a Snapshot or wallet account? No. Every endpoint used here is Snapshot's public, unauthenticated GraphQL API (hub.snapshot.org/graphql).

What's a "space"? Snapshot's term for a DAO's individual voting hub, identified by an ENS name (e.g. ens.eth, aavedao.eth).

What do scores[] and choices[] mean? They're parallel arrays — scores[i] is the total voting power behind choices[i]. scoresTotal is the sum across all choices.

What is choice on a vote record? Depends on the proposal type: a single number (single-choice), a list of numbers (ranked-choice/approval), or an object mapping choice index to weight (weighted/quadratic voting).

What's votingPower (vp)? The voter's token/strategy-weighted voting power at the proposal's snapshot block — not a simple 1-address-1-vote count.

How fresh is the data? Near-real-time — Snapshot's hub indexes proposals and votes as they're submitted on-chain/off-chain.

Is there a rate limit? Yes — Snapshot's public API allows 100 requests/minute without an API key. The actor backs off automatically on 429s.

Why does spaceOrderBy=followersCount/proposalsCount/votesCount (marked with *) sometimes look unsorted? These are computed/aggregate fields on Snapshot's backend, and its own public GraphQL API does not reliably honor a server-side sort on them (confirmed by testing the raw API directly, independent of this actor) — it silently falls back to its own created-date order instead of erroring. The same applies to proposalOrderBy=scores_total_value. This is an upstream API limitation, not a bug in this actor: every record returned is still complete and correct, it just may not be arranged in the order you requested for these specific fields. created, votes, start, end (proposals) and created, vp (votes) all sort correctly server-side.