# Cardano Governance Action API
> Cardano's on-chain governance actions (proposals) of the Conway era — live from the public Koios indexer, no key. Anyone can submit a governance action — a treasury withdrawal, a protocol-parameter change, a hard-fork initiation, a new constitutional committee, a no-confidence motion — which DReps, stake pools and the constitutional committee then vote on. The Cardano DRep reader surfaces the voters; this is the other side of governance: the proposals themselves. List the governance actions with their type, deposit, return address and the lifecycle epochs they were proposed / ratified / enacted / dropped / expired, with a derived status; read a proposal's live voting tally broken down by the three governance bodies — DRep, SPO and committee Yes / No / Abstain vote counts, voting power (in ADA) and percentages; and read the individual votes cast on it, each with the voter's role and decision. The governance-action layer for Cardano wallets, voting tools, governance explorers and analytics. Distinct from the DRep governance reader (the voters), the stake-pool reader, the chain-economics reader and the native-token registry. Live from the indexer; short cache only.

## 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/cardanoproposals-api/..."
```

## Pricing
- **Free** (Free) — 7,600 calls/Mo, 3 req/s
- **Starter** ($9/Mo) — 148,000 calls/Mo, 10 req/s
- **Pro** ($31/Mo) — 760,000 calls/Mo, 25 req/s
- **Scale** ($90/Mo) — 4,900,000 calls/Mo, 60 req/s

## Endpoints

### Proposals

#### `GET /v1/proposals` — List governance actions

**Parameters:**
- `limit` (query, optional, string) — Page size (1-100) Example: `25`
- `offset` (query, optional, string) — Offset Example: `0`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cardanoproposals-api/v1/proposals?limit=25&offset=0"
```

**Response:**
```json
{
    "data": {
        "note": "Cardano governance actions (Conway era), newest first — each with its type (TreasuryWithdrawals, ParameterChange, HardForkInitiation, NewConstitution, NoConfidence, …), the deposit posted, the lifecycle epochs (proposed / ratified / enacted / dropped / expired) and a derived status. DReps, SPOs and the committee vote on these. Paginate with limit & offset; read the tally in /v1/summary.",
        "count": 25,
        "offset": 0,
        "source": "Koios",
        "proposals": [
            {
                "status": "active",
                "meta_url": "https://most-brass-sun.quicknode-ipfs.com/ipfs/QmSy2CiQhPBzzNLKDFVvMQaDb1FQDbmn9bJf6fVntVAQ1t",
                "block_time": 1781014526,
                "deposit_ada": 100000,
                "proposal_id": "gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq",
                "dropped_epoch": null,
                "enacted_epoch": null,
                "expired_epoch": null,
                "proposal_type": "TreasuryWithdrawals",
                "proposed_epoch": 636,
                "ratified_epoch": null,
                "return_address": "stake1u8453de8xhhqa9c4ftvylkke8we84tmaq5hz75qwfgaaf2qac45ja",
                "proposal_tx_hash": "d52a4917df4f91c342eaf06ebb4c0a5c3156f6412d137f307cc77eb911f47ab1"
            },
            {
                "status": "active",
                "meta_url": "https://raw.githubusercontent.com/AGT-T/RTG/refs/heads/main/data.jsonld"
…(truncated, see openapi.json for full schema)
```

### Summary

#### `GET /v1/summary` — A proposal's voting tally by DRep/SPO/committee

**Parameters:**
- `proposal_id` (query, optional, string) — Governance action id (gov_action1...); omit for the latest Example: `gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cardanoproposals-api/v1/summary?proposal_id=gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq"
```

**Response:**
```json
{
    "data": {
        "drep": {
            "no_pct": 80.07,
            "yes_pct": 19.93,
            "no_power_ada": 4635834362.447173,
            "no_votes_cast": 5,
            "yes_power_ada": 1153688840.107432,
            "yes_votes_cast": 39,
            "abstain_votes_cast": 3
        },
        "note": "The live voting tally for one governance action, broken down by the three governance bodies — DReps, stake pools (SPOs) and the constitutional committee — with each body's Yes / No / Abstain vote counts, voting power (ADA) and percentages. Omit proposal_id to use the latest proposal.",
        "pool": {
            "no_pct": 0,
            "yes_pct": 0,
            "no_votes_cast": 0,
            "yes_votes_cast": 0
        },
        "source": "Koios",
        "epoch_no": 637,
        "committee": {
            "yes_pct": 0,
            "no_votes_cast": 0,
            "yes_votes_cast": 0
        },
        "proposal_id": "gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq",
        "proposal_type": "TreasuryWithdrawals"
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:17.196Z",
        "request_id": "dee8b7fa-7ba3-40e6-9f7e-3fe9878ccaa2"
    },
    "status": "ok",
    "message": "Proposal voting summary retrieved successfully",
    "success": true
}
```

### Votes

#### `GET /v1/votes` — The individual votes cast on a proposal

**Parameters:**
- `proposal_id` (query, optional, string) — Governance action id (gov_action1...); omit for the latest Example: `gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq`
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/cardanoproposals-api/v1/votes?proposal_id=gov_action1654yj97lf7guxsh27phtknq2tsc4dajp95fh7vrucaltjy0502csq7qtkhq&limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "The individual votes cast on one governance action, newest first — each with the voter's role (DRep, SPO or ConstitutionalCommittee), the voter id and the decision (Yes / No / Abstain). Omit proposal_id to use the latest proposal.",
        "count": 25,
        "votes": [
            {
                "vote": "Yes",
                "meta_url": null,
                "voter_id": "drep1y269ehxj30k4vfzfc2z84v0xykd3amuy2xn0kv9zf8rhcec2fg2jr",
                "block_time": 1781451047,
                "voter_role": "DRep"
            },
            {
                "vote": "Yes",
                "meta_url": null,
                "voter_id": "drep1ygeyfh8nm03dnl5a2hxdtv09pu7uhep9l0cpg0zpr60jqys05cku2",
                "block_time": 1781450515,
                "voter_role": "DRep"
            },
            {
                "vote": "Abstain",
                "meta_url": "https://most-brass-sun.quicknode-ipfs.com/ipfs/QmZM7mEEDoF26NTe1gbnDcZg5w8aaDLueaQgf3P7qb29Fc",
                "voter_id": "drep1ygpzpm4q38rfueu2use5te4ylykn4smvs7cxj2ggvktcjkqpxhvf4",
                "block_time": 1781446329,
                "voter_role": "DRep"
            },
            {
                "vote": "Yes",
                "meta_url": null,
                "voter_id": "drep1yt9rp59j57rxev92qzsjyxpnyul8gc94fny4af32hr35l0qh9ahj8",
                "block_time": 1781446273,
                "voter_role": "DRep"
            },
            {
                "vote": "Yes",

…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "sample": {
            "status": "active",
            "latest_type": "TreasuryWithdrawals"
        },
        "source": "public Koios API (api.koios.rest), keyless",
        "service": "cardanoproposals-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/votes": "The individual votes cast on a proposal (proposal_id; omit for the latest).",
            "GET /v1/summary": "A proposal's voting tally by DRep / SPO / committee (proposal_id; omit for the latest).",
            "GET /v1/proposals": "Governance actions: type, deposit, lifecycle epochs (limit, offset)."
        },
        "description": "Read Cardano's on-chain governance actions (Conway era) live from the public Koios API: list the proposals with their type, deposit and lifecycle epochs, read a proposal's live voting tally broken down by DRep, SPO and committee power, and read the individual votes cast on it. The governance-action layer for Cardano wallets, voting tools and governance explorers. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:17.883Z",
        "request_id": "5c03afba-3a4d-494d-b5d7-91f0a9a7d671"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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