# Snapshot DAO Governance API
> Live DAO governance data from Snapshot, the off-chain voting platform where most crypto DAOs run their proposals and votes — read from the public Snapshot GraphQL hub, no key, nothing stored. The proposals endpoint returns governance proposals newest-first, filterable by DAO space and state (active, closed, pending), each with its title, choices, total voting power, vote count and open/close timing. The proposal endpoint returns a single proposal in full: the body, every choice with its score, the author, the quorum and the timing. The votes endpoint returns the votes cast on a proposal, ranked by voting power, with each voter, their choice and their token-weighted weight. The space endpoint returns a DAO space's profile — follower, proposal and vote counts, network and governance token. Track what Aave, Uniswap, Arbitrum and thousands of other DAOs are voting on right now. This is the DAO-governance cut of crypto — distinct from the price, market, on-chain, DeFi and exchange APIs in the catalogue.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/snapshot-api/..."
```

## Pricing
- **Free** (Free) — 17,000 calls/Mo, 3 req/s
- **Builder** ($9/Mo) — 200,000 calls/Mo, 10 req/s
- **Pro** ($25/Mo) — 860,000 calls/Mo, 28 req/s
- **Scale** ($59/Mo) — 3,000,000 calls/Mo, 65 req/s

## Endpoints

### Proposals

#### `GET /v1/proposals` — Governance proposals, newest first

**Parameters:**
- `state` (query, optional, string) — active, closed or pending Example: `active`
- `space` (query, optional, string) — DAO space id Example: `dorg.eth`
- `limit` (query, optional, string) — Max results (1-100) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/snapshot-api/v1/proposals?state=active&space=dorg.eth&limit=20"
```

**Response:**
```json
{
    "data": {
        "count": 3,
        "filter": {
            "space": "dorg.eth",
            "state": "active"
        },
        "source": "Snapshot",
        "proposals": [
            {
                "id": "0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3",
                "end": "2026-06-16T13:19:39.000Z",
                "space": {
                    "id": "dorg.eth",
                    "name": "dOrg"
                },
                "start": "2026-06-11T13:19:39.000Z",
                "state": "active",
                "title": "Treasury Consolidation & On-Chain Migration Proposal",
                "votes": 4,
                "author": "0x10f9bE5244F9D12F22A35e927D18660e1b36546f",
                "choices": [
                    "For",
                    "Against",
                    "Abstain"
                ],
                "scores_total": 1038995
            },
            {
                "id": "0x00555275219e8408d66f5837302267b12bb297704ffd45fc68cf71362c11c387",
                "end": "2026-06-16T08:18:52.000Z",
                "space": {
                    "id": "dorg.eth",
                    "name": "dOrg"
                },
                "start": "2026-06-11T08:18:52.000Z",
                "state": "active",
                "title": "Immediate Emergency Suspension of Treasury Outflows",
                "votes": 7,
                "author": "0x584a59133c269A19Add6c5758032F1f1334ee573",
                "choices": [
        
…(truncated, see openapi.json for full schema)
```

### Proposal

#### `GET /v1/proposal` — A single proposal in full

**Parameters:**
- `proposal` (query, required, string) — Proposal id (0x hash) Example: `0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/snapshot-api/v1/proposal?proposal=0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3"
```

**Response:**
```json
{
    "data": {
        "id": "0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3",
        "end": "2026-06-16T13:19:39.000Z",
        "body": null,
        "space": {
            "id": "dorg.eth",
            "name": "dOrg"
        },
        "start": "2026-06-11T13:19:39.000Z",
        "state": "active",
        "title": "Treasury Consolidation & On-Chain Migration Proposal",
        "votes": 4,
        "author": "0x10f9bE5244F9D12F22A35e927D18660e1b36546f",
        "quorum": 0,
        "scores": [
            1038995,
            0,
            0
        ],
        "source": "Snapshot",
        "choices": [
            "For",
            "Against",
            "Abstain"
        ],
        "created": "2026-06-11T13:19:39.000Z",
        "scores_total": 1038995
    },
    "meta": {
        "timestamp": "2026-06-11T16:46:53.514Z",
        "request_id": "5cdd7c9c-e621-400d-b39f-a7f5d052662d"
    },
    "status": "ok",
    "message": "Proposal retrieved successfully",
    "success": true
}
```

### Votes

#### `GET /v1/votes` — Votes cast on a proposal, by voting power

**Parameters:**
- `proposal` (query, required, string) — Proposal id (0x hash) Example: `0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3`
- `limit` (query, optional, string) — Max votes (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/snapshot-api/v1/votes?proposal=0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3&limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "choice is the 1-based index into the proposal's choices; voting_power is token-weighted.",
        "count": 4,
        "votes": [
            {
                "voter": "0x584a59133c269A19Add6c5758032F1f1334ee573",
                "choice": 1,
                "created": "2026-06-11T13:37:11.000Z",
                "voting_power": 529897
            },
            {
                "voter": "0x10f9bE5244F9D12F22A35e927D18660e1b36546f",
                "choice": 1,
                "created": "2026-06-11T13:21:15.000Z",
                "voting_power": 396032
            },
            {
                "voter": "0x25E939E1c57b3E1165fcB4870bAb2569DA0CD4aC",
                "choice": 1,
                "created": "2026-06-11T13:53:09.000Z",
                "voting_power": 91584
            },
            {
                "voter": "0x4e046884b06946847F7aE1298AdC07F7d20c1A53",
                "choice": 1,
                "created": "2026-06-11T13:22:28.000Z",
                "voting_power": 21482
            }
        ],
        "source": "Snapshot",
        "proposal": "0x19e9fbada7ef4223f7bbd699fae3a1d0ca0293db6004929da5e524b255e138f3"
    },
    "meta": {
        "timestamp": "2026-06-11T16:46:53.784Z",
        "request_id": "1293c1c5-9ea8-4838-97a8-08cef5b18d44"
    },
    "status": "ok",
    "message": "Votes retrieved successfully",
    "success": true
}
```

### Space

#### `GET /v1/space` — A DAO space profile

**Parameters:**
- `space` (query, required, string) — DAO space id Example: `dorg.eth`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/snapshot-api/v1/space?space=dorg.eth"
```

**Response:**
```json
{
    "data": {
        "id": "dorg.eth",
        "name": "dOrg",
        "about": null,
        "votes": 2150,
        "source": "Snapshot",
        "symbol": "dOrg",
        "network": "1",
        "followers": 279,
        "proposals": 312
    },
    "meta": {
        "timestamp": "2026-06-11T16:46:54.034Z",
        "request_id": "377a087e-9b04-49c9-9235-1a6993169448"
    },
    "status": "ok",
    "message": "Space retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/snapshot-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "A space is an ENS-style id (aave.eth, dorg.eth, arbitrumfoundation.eth); a proposal id is a 0x hash (get them from /v1/proposals). voting_power is token-weighted; choice is the 1-based index into the proposal's choices.",
        "source": "Snapshot GraphQL hub (hub.snapshot.org/graphql, live)",
        "service": "snapshot-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/space": "A DAO space profile — followers, proposal/vote counts, network, token (space=aave.eth).",
            "GET /v1/votes": "Votes cast on a proposal, ranked by voting power (proposal=0x..., limit=25).",
            "GET /v1/proposal": "A single proposal in full — body, choices with scores, author, timing (proposal=0x...).",
            "GET /v1/proposals": "Governance proposals newest-first (filters: space, state=active|closed|pending, limit=20)."
        },
        "description": "Live DAO governance data from Snapshot, the off-chain voting platform most crypto DAOs use for proposals and votes. The proposals endpoint returns proposals newest-first, filterable by DAO space and state (active/closed/pending); the proposal endpoint returns a single proposal in full (body, choices with scores, author, timing); the votes endpoint returns votes cast on a proposal ranked by voting power; the space endpoint returns a DAO space profile (followers, proposal/vote counts, network, token). Live, no key, nothing stored. The DAO-govern
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/snapshot-api
OpenAPI spec: https://www.oanor.com/api/snapshot-api/openapi.json
