---
title: "Get voting epoch by index"
method: GET
path: "/v1/voting/epochs/{index}"
tags: ["Voting"]
---

# Get voting epoch by index

`GET /v1/voting/epochs/{index}`

Returns a voting epoch at the specified index.

## Path parameters

- `index` integer, required

## Response `200`

- VotingEpoch
  - `index` integer — Index of the voting epoch, starting from zero
  - `firstLevel` integer — The height of the block in which the epoch starts
  - `startTime` string, date-time — The timestamp of the block in which the epoch starts
  - `lastLevel` integer — The height of the block in which the epoch ends
  - `endTime` string, date-time — The timestamp of the block in which the epoch ends
  - `status` string, required — Status of the voting epoch: `no_proposals` - there were no proposals proposed `voting` - there was at least one proposal and the voting is in progress `completed` - voting successfully completed and the proposal was accepted `failed` - voting was not completed due to either quorum or supermajority was not reached
  - `periods` VotingPeriod[], required — Voting periods in the epoch
    - `index` integer — Index of the voting period, starting from zero
    - `epoch` integer — Index of the voting epoch, starting from zero
    - `firstLevel` integer — The height of the block in which the period starts
    - `startTime` string, date-time — The timestamp of the block in which the period starts
    - `lastLevel` integer — The height of the block in which the period ends
    - `endTime` string, date-time — The timestamp of the block in which the period ends
    - `kind` string, required — Kind of the voting period: `proposal` - delegates can submit protocol amendment proposals using the proposal operation `exploration` - bakers (delegates) may vote on the top-ranked proposal from the previous Proposal Period using the ballot operation `testing` - If the proposal is approved in the Exploration Period, the testing (or 'cooldown') period begins and bakers start testing the new protocol `promotion` - delegates can cast one vote to promote or not the tested proposal using the ballot operation `adoption` - after the proposal is actually accepted, the ecosystem has some time to prepare to the upgrade
    - `status` string, required — Status of the voting period: `active` - means that the voting period is in progress `no_proposals` - means that there were no proposals during the voting period `no_quorum` - means that there was a voting but the quorum was not reached `no_supermajority` - means that there was a voting but the supermajority was not reached `no_single_winner` - means that there were multiple winning proposals with the same voting power `success` - means that the period was finished with positive voting result
    - `dictator` string, required — Status of the governance dictator: `none` - means that there were no actions by the dictator `abort` - means that the epoch was aborted by the dictator `reset` - means that the period was reset by the dictator `submit` - means that the dictator submitted a proposal
    - `totalBakers` integer — The number of bakers on the voters list
    - `totalVotingPower` integer — Total voting power of bakers on the voters list
    - `upvotesQuorum` number, double, nullable — Upvotes quorum percentage (only for proposal period)
    - `proposalsCount` integer, nullable — The number of proposals injected during the voting period (only for proposal period)
    - `topUpvotes` integer, nullable — This is how many upvotes (proposal operations) the most upvoted proposal has (only for proposal period)
    - `topVotingPower` integer, nullable — This is how much voting power the most upvoted proposal has (only for proposal period)
    - `ballotsQuorum` number, double, nullable — Ballots quorum percentage (only for exploration and promotion periods)
    - `supermajority` number, double, nullable — Supermajority percentage (only for exploration and promotion periods)
    - `yayBallots` integer, nullable — The number of the ballots with "yay" vote (only for exploration and promotion periods)
    - `yayVotingPower` integer, nullable — Total voting power of the ballots with "yay" vote (only for exploration and promotion periods)
    - `nayBallots` integer, nullable — The number of the ballots with "nay" vote (only for exploration and promotion periods)
    - `nayVotingPower` integer, nullable — Total voting power of the ballots with "nay" vote (only for exploration and promotion periods)
    - `passBallots` integer, nullable — The number of the ballots with "pass" vote (only for exploration and promotion periods)
    - `passVotingPower` integer, nullable — Total voting power of the ballots with "pass" vote (only for exploration and promotion periods)
  - `proposals` Proposal[], required — Proposals pushed during the voting epoch (null, if there were no proposals).
    - `hash` string, required — Hash of the proposal, which representing a tarball of concatenated .ml/.mli source files
    - `initiator` Alias, required
      - `alias` string, nullable — Account alias name (off-chain data).
      - `address` string, required — Account address (public key hash).
    - `firstPeriod` integer — The first voting period where the proposal was active
    - `lastPeriod` integer — The last voting period where the proposal was active
    - `epoch` integer — The voting epoch where the proposal was active
    - `upvotes` integer — The total number of upvotes (proposal operations)
    - `votingPower` integer — The total voting power of bakers, upvoted the proposal
    - `status` string, required — Status of the proposal `active` - the proposal in the active state `accepted` - the proposal was accepted `rejected` - the proposal was rejected due to too many "nay" ballots `skipped` - the proposal was skipped due to the quorum was not reached
    - `extras` unknown

---

[API](https://skmtc.dev/tzkt/apis/tzkt-api.md) · [All operations](https://skmtc.dev/tzkt/apis/tzkt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tzkt/tzkt-api/revisions/a2e2aba5e534/schema)
