Tezos Protocols API

The Protocols API from Tezos — 6 operation(s) for protocols.

Operations 6

GET /v1/protocols/count Get protocols count #
GET /v1/protocols Get protocols #
GET /v1/protocols/current Get current protocol #
GET /v1/protocols/{code} Get protocol by code #
GET /v1/protocols/{hash} Get protocol by hash #
GET /v1/protocols/cycles/{cycle} Get protocol by cycle #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tezos-protocols-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tezos-protocols-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TzKT Protocols API
  description: '# Introduction


    TzKT is the most widely used tool in Tezos that provides you with convenient and flexible access to the Tezos blockchain data, processed and indexed by its own indexer.'
  contact:
    name: Baking Bad Team
    url: https://bakingbad.dev
    email: hello@bakingbad.dev
  version: 1.17.1
  x-logo:
    url: https://tzkt.io/logo.png
    href: https://tzkt.io/
servers:
- url: https://api.tzkt.io
tags:
- name: Protocols
paths:
  /v1/protocols/count:
    get:
      tags:
      - Protocols
      summary: Get protocols count
      description: Returns the total number of protocols.
      operationId: Protocols_GetCount
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int32
  /v1/protocols:
    get:
      tags:
      - Protocols
      summary: Get protocols
      description: Returns a list of protocols.
      operationId: Protocols_Get
      parameters:
      - name: sort
        in: query
        description: 'Sorts protocols by specified field. Supported fields: `code` (default), `firstLevel`, `lastLevel`.'
        schema:
          oneOf:
          - $ref: '#/components/schemas/SortParameter'
        x-position: 1
        x-tzkt-extension: query-parameter
      - name: offset
        in: query
        description: Specifies which or how many items should be skipped
        schema:
          oneOf:
          - $ref: '#/components/schemas/OffsetParameter'
        x-position: 2
        x-tzkt-extension: query-parameter
      - name: limit
        in: query
        description: Maximum number of items to return
        schema:
          type: integer
          format: int32
          default: 100
          maximum: 10000.0
          minimum: 0.0
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Protocol'
  /v1/protocols/current:
    get:
      tags:
      - Protocols
      summary: Get current protocol
      description: Returns current protocol.
      operationId: Protocols_GetCurrent
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Protocol'
  /v1/protocols/{code}:
    get:
      tags:
      - Protocols
      summary: Get protocol by code
      description: Returns a protocol with the specified proto code.
      operationId: Protocols_GetByCode
      parameters:
      - name: code
        in: path
        required: true
        description: Protocol code (e.g. 4 for Athens, 5 for Babylon, etc)
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Protocol'
  /v1/protocols/{hash}:
    get:
      tags:
      - Protocols
      summary: Get protocol by hash
      description: Returns a protocol with the specified hash.
      operationId: Protocols_GetByHash
      parameters:
      - name: hash
        in: path
        required: true
        description: Protocol hash
        schema:
          type: string
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Protocol'
  /v1/protocols/cycles/{cycle}:
    get:
      tags:
      - Protocols
      summary: Get protocol by cycle
      description: Returns a protocol at the specified cycle.
      operationId: Protocols_GetByCycle
      parameters:
      - name: cycle
        in: path
        required: true
        description: Cycle index
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Protocol'
components:
  schemas:
    ProtocolConstants:
      type: object
      additionalProperties: false
      properties:
        rampUpCycles:
          type: integer
          description: The number of cycles where security deposit is ramping up
          format: int32
        noRewardCycles:
          type: integer
          description: The number of cycles with no baking rewards
          format: int32
        consensusRightsDelay:
          type: integer
          description: Delay in cycles after which baking rights are assigned
          format: int32
        delegateParametersActivationDelay:
          type: integer
          description: Delay in cycles after which the parameters from `set_delegate_parameters` operations take effect
          format: int32
        blocksPerCycle:
          type: integer
          description: A number of blocks the cycle contains
          format: int32
        blocksPerCommitment:
          type: integer
          description: A number of blocks that indicates how often seed nonce hash is included in a block. Seed nonce hash presents in only one out of `blocksPerCommitment`
          format: int32
        blocksPerSnapshot:
          type: integer
          description: A number of blocks that indicates how often a snapshot (snapshots are records of the state of stake distributions) is taken
          format: int32
        blocksPerVoting:
          type: integer
          description: A number of block that indicates how long a voting period takes
          format: int32
        timeBetweenBlocks:
          type: integer
          description: Minimum amount of seconds between blocks
          format: int32
        attestersPerBlock:
          type: integer
          description: Number of bakers that assigned to attest a block
          format: int32
        hardOperationGasLimit:
          type: integer
          description: Maximum amount of gas that one operation can consume
          format: int32
        hardOperationStorageLimit:
          type: integer
          description: Maximum amount of storage that one operation can consume
          format: int32
        hardBlockGasLimit:
          type: integer
          description: Maximum amount of total gas usage of a single block
          format: int32
        minimalStake:
          type: integer
          description: Required number of tokens to get 1 roll (micro tez)
          format: int64
        minimalFrozenStake:
          type: integer
          description: Required number of tokens to be frozen by bakers (micro tez)
          format: int64
        blockDeposit:
          type: integer
          description: Security deposit for baking (producing) a block (micro tez)
          format: int64
        blockReward:
          type: array
          description: Reward for baking (producing) a block (micro tez)
          items:
            type: integer
            format: int64
        attestationDeposit:
          type: integer
          description: Security deposit for sending an attestation operation (micro tez)
          format: int64
        attestationReward:
          type: array
          description: Reward for sending an attestation operation (micro tez)
          items:
            type: integer
            format: int64
        originationSize:
          type: integer
          description: Initial storage size of an originated (created) account (bytes)
          format: int32
        byteCost:
          type: integer
          description: Cost of one storage byte in the blockchain (micro tez)
          format: int32
        proposalQuorum:
          type: number
          description: Percentage of the total number of voting power required to select a proposal on the proposal period
          format: double
        ballotQuorumMin:
          type: number
          description: The minimum value of quorum percentage on the exploration and promotion periods
          format: double
        ballotQuorumMax:
          type: number
          description: The maximum value of quorum percentage on the exploration and promotion periods
          format: double
        lbToggleThreshold:
          type: integer
          description: 1/2 window size of 2000 blocks with precision of 1000000 for integer computation
          format: int32
        consensusThreshold:
          type: integer
          description: Attestation quorum
          format: int32
        minParticipationNumerator:
          type: integer
          description: Number of attested slots needed to receive attestation rewards
          format: int32
        minParticipationDenominator:
          type: integer
          description: Number of attested slots needed to receive attestation rewards
          format: int32
        denunciationPeriod:
          type: integer
          description: Number of cycles after double baking/(pre)attestation where an accusation operation can be injected
          format: int32
        slashingDelay:
          type: integer
          description: Number of cycles after double baking/(pre)attestation evidence where slashing happens
          format: int32
        maxDelegatedOverFrozenRatio:
          type: integer
          description: The ratio of delegated tez over the baker’s frozen stake
          format: int32
        maxExternalOverOwnStakeRatio:
          type: integer
          description: The ratio of external staked balance over the baker’s own staked balance
          format: int32
        delegationPowerDivider:
          type: integer
          description: The divider by which delegation power is divided
          format: int32
        smartRollupOriginationSize:
          type: integer
          description: Initial storage size of an originated (created) smart rollup (bytes)
          format: int32
        smartRollupStakeAmount:
          type: integer
          description: Smart rollup commitment bond (mutez)
          format: int64
        smartRollupChallengeWindow:
          type: integer
          description: Window (in blocks) when it's possible to refute pending commitment
          format: int32
        smartRollupCommitmentPeriod:
          type: integer
          description: Period (in blocks) for publishing commitments
          format: int32
        smartRollupTimeoutPeriod:
          type: integer
          description: Period (in blocks) when a refutation game player must make a turn
          format: int32
        dalNumberOfShards:
          type: integer
          description: Number of DAL Shards
          format: int32
        dictator:
          type:
          - string
          - 'null'
          description: Governance dictator
        endorsersPerBlock:
          type: integer
          description: '**DEPRECATED**'
          format: int32
        endorsementDeposit:
          type: integer
          description: '**DEPRECATED**'
          format: int64
        endorsementReward:
          type: array
          description: '**DEPRECATED**'
          items:
            type: integer
            format: int64
    SortParameter:
      type: object
      additionalProperties: false
      properties:
        asc:
          type:
          - string
          - 'null'
          description: '**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:
          type:
          - string
          - 'null'
          description: '**Descending** sort mode. \

            Specify a field name to sort by descending.


            Example: `?sort.desc=id`.'
      x-tzkt-extension: query-parameter
    Protocol:
      type: object
      additionalProperties: false
      properties:
        code:
          type: integer
          description: Protocol code, representing a number of protocol changes since genesis (mod 256, but `-1` for the genesis block)
          format: int32
        hash:
          type: string
          description: Hash of the protocol
        version:
          type: integer
          description: Global version number
          format: int32
        firstLevel:
          type: integer
          description: Block height where the protocol was applied
          format: int32
        firstCycle:
          type: integer
          description: Index of the first cycle started with the protocol
          format: int32
        firstCycleLevel:
          type: integer
          description: Level of the first block of the first cycle started with the protocol
          format: int32
        lastLevel:
          type:
          - integer
          - 'null'
          description: Block height where the protocol ends. `null` if the protocol is active
          format: int32
        constants:
          description: Information about the protocol constants
          oneOf:
          - $ref: '#/components/schemas/ProtocolConstants'
        extras:
          description: Off-chain extras
    OffsetParameter:
      type: object
      additionalProperties: false
      properties:
        el:
          type:
          - integer
          - 'null'
          description: '**Elements** offset mode (optional, i.e. `offset.el=123` is the same as `offset=123`). \

            Skips specified number of elements.


            Example: `?offset=100`.'
          format: int32
        pg:
          type:
          - integer
          - 'null'
          description: '**Page** offset mode. \

            Skips `page * limit` elements. This is a classic pagination.


            Example: `?offset.pg=1`.'
          format: int32
        cr:
          type:
          - integer
          - 'null'
          description: '**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`.'
          format: int64
      x-tzkt-extension: query-parameter
x-generator: NSwag v14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))
x-tagGroups:
- name: REST API
  tags:
  - Accounts
  - BigMaps
  - Blocks
  - Commitments
  - Constants
  - Contracts
  - Cycles
  - Delegates
  - Domains
  - Events
  - Head
  - Helpers
  - Operations
  - Protocols
  - Quotes
  - Rewards
  - Rights
  - SmartRollups
  - Software
  - Staking
  - Statistics
  - Tickets
  - Tokens
  - Voting
- name: WebSocket API
  tags:
  - Get Started
  - Subscriptions
  - Examples
- name: Libraries
  tags:
  - Typescript SDK
  - Taquito extension