---
title: "Get voting periods"
method: GET
path: "/v1/voting/periods"
tags: ["Voting"]
---

# Get voting periods

`GET /v1/voting/periods`

Returns a list of voting periods.

## Query parameters

- `firstLevel` Int32Parameter
  - `eq` integer, nullable — **Equal** filter mode (optional, i.e. `param.eq=123` is the same as `param=123`). \ Specify an integer number to get items where the specified field is equal to the specified value. Example: `?balance=1234`.
  - `ne` integer, nullable — **Not equal** filter mode. \ Specify an integer number to get items where the specified field is not equal to the specified value. Example: `?balance.ne=1234`.
  - `gt` integer, nullable — **Greater than** filter mode. \ Specify an integer number to get items where the specified field is greater than the specified value. Example: `?balance.gt=1234`.
  - `ge` integer, nullable — **Greater or equal** filter mode. \ Specify an integer number to get items where the specified field is greater than equal to the specified value. Example: `?balance.ge=1234`.
  - `lt` integer, nullable — **Less than** filter mode. \ Specify an integer number to get items where the specified field is less than the specified value. Example: `?balance.lt=1234`.
  - `le` integer, nullable — **Less or equal** filter mode. \ Specify an integer number to get items where the specified field is less than or equal to the specified value. Example: `?balance.le=1234`.
  - `in` integer[], nullable — **In list** (any of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is equal to one of the specified values. Example: `?level.in=12,14,52,69`.
  - `ni` integer[], nullable — **Not in list** (none of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is not equal to all the specified values. Example: `?level.ni=12,14,52,69`.
- `lastLevel` Int32Parameter
  - `eq` integer, nullable — **Equal** filter mode (optional, i.e. `param.eq=123` is the same as `param=123`). \ Specify an integer number to get items where the specified field is equal to the specified value. Example: `?balance=1234`.
  - `ne` integer, nullable — **Not equal** filter mode. \ Specify an integer number to get items where the specified field is not equal to the specified value. Example: `?balance.ne=1234`.
  - `gt` integer, nullable — **Greater than** filter mode. \ Specify an integer number to get items where the specified field is greater than the specified value. Example: `?balance.gt=1234`.
  - `ge` integer, nullable — **Greater or equal** filter mode. \ Specify an integer number to get items where the specified field is greater than equal to the specified value. Example: `?balance.ge=1234`.
  - `lt` integer, nullable — **Less than** filter mode. \ Specify an integer number to get items where the specified field is less than the specified value. Example: `?balance.lt=1234`.
  - `le` integer, nullable — **Less or equal** filter mode. \ Specify an integer number to get items where the specified field is less than or equal to the specified value. Example: `?balance.le=1234`.
  - `in` integer[], nullable — **In list** (any of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is equal to one of the specified values. Example: `?level.in=12,14,52,69`.
  - `ni` integer[], nullable — **Not in list** (none of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is not equal to all the specified values. Example: `?level.ni=12,14,52,69`.
- `epoch` Int32Parameter
  - `eq` integer, nullable — **Equal** filter mode (optional, i.e. `param.eq=123` is the same as `param=123`). \ Specify an integer number to get items where the specified field is equal to the specified value. Example: `?balance=1234`.
  - `ne` integer, nullable — **Not equal** filter mode. \ Specify an integer number to get items where the specified field is not equal to the specified value. Example: `?balance.ne=1234`.
  - `gt` integer, nullable — **Greater than** filter mode. \ Specify an integer number to get items where the specified field is greater than the specified value. Example: `?balance.gt=1234`.
  - `ge` integer, nullable — **Greater or equal** filter mode. \ Specify an integer number to get items where the specified field is greater than equal to the specified value. Example: `?balance.ge=1234`.
  - `lt` integer, nullable — **Less than** filter mode. \ Specify an integer number to get items where the specified field is less than the specified value. Example: `?balance.lt=1234`.
  - `le` integer, nullable — **Less or equal** filter mode. \ Specify an integer number to get items where the specified field is less than or equal to the specified value. Example: `?balance.le=1234`.
  - `in` integer[], nullable — **In list** (any of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is equal to one of the specified values. Example: `?level.in=12,14,52,69`.
  - `ni` integer[], nullable — **Not in list** (none of) filter mode. \ Specify a comma-separated list of integers to get items where the specified field is not equal to all the specified values. Example: `?level.ni=12,14,52,69`.
- `select` SelectParameter
  - `fields` string[], nullable — **Fields** selection mode (optional, i.e. `select.fields=balance` is the same as `select=balance`). \ Specify a comma-separated list of fields to include into response. Example: `?select=address,balance` => `[ { "address": "asd", "balance": 10 } ]`.
  - `values` string[], nullable — **Values** selection mode. \ Specify a comma-separated list of fields to include their values into response. Example: `?select.values=address,balance` => `[ [ "asd", 10 ] ]`.
- `sort` SortParameter
  - `asc` string, nullable — **Ascending** sort mode (optional, i.e. `sort.asc=id` is the same as `sort=id`). \ Specify a field name to sort by. Example: `?sort=balance`.
  - `desc` string, nullable — **Descending** sort mode. \ Specify a field name to sort by descending. Example: `?sort.desc=id`.
- `offset` OffsetParameter
  - `el` integer, nullable — **Elements** offset mode (optional, i.e. `offset.el=123` is the same as `offset=123`). \ Skips specified number of elements. Example: `?offset=100`.
  - `pg` integer, nullable — **Page** offset mode. \ Skips `page * limit` elements. This is a classic pagination. Example: `?offset.pg=1`.
  - `cr` integer, nullable — **Cursor** offset mode. \ Skips all elements with the `cursor` before (including) the specified value. Cursor is a field used for sorting, e.g. `id`. Avoid using this offset mode with non-unique or non-sequential cursors such as `amount`, `balance`, etc. Example: `?offset.cr=45837`.
- `limit` integer

## Response `200`

- VotingPeriod[]
  - `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)

---

[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)
