Cardano Cardano » Pools API

The Cardano » Pools API from Cardano — 12 operation(s) for cardano » pools.

OpenAPI Specification

cardano-cardano-pools-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 0.1.89
  title: Blockfrost.io ~ API Documentation Cardano » Accounts Cardano » Pools API
  x-logo:
    url: https://staging.blockfrost.io/images/logo.svg
    altText: Blockfrost
  contact:
    name: Blockfrost Team
    url: https://blockfrost.io
    email: contact@blockfrost.io
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  termsOfService: https://blockfrost.io/terms
  description: "Blockfrost is an API as a service that allows users to interact with the Cardano blockchain, Midnight blockchain, and parts of their ecosystems.\n\n## Tokens\n\nAfter signing up on https://blockfrost.io, a `project_id` token is automatically generated for each project.\nHTTP header of your request MUST include this `project_id` in order to authenticate against Blockfrost servers.\n\n## Available networks\n\nAt the moment, you can use the following networks. Please, note that each network has its own `project_id`.\n\n<table>\n  <tbody>\n    <tr>\n      <td>\n          <b>Network</b>\n      </td>\n      <td>\n          <b>Endpoint</b>\n      </td>\n    </tr>\n    <tr>\n        <td>Cardano mainnet</td>\n        <td>\n            <code>https://cardano-mainnet.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Cardano preprod</td>\n        <td>\n            <code>https://cardano-preprod.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Cardano preview</td>\n        <td>\n            <code>https://cardano-preview.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>Midnight mainnet</td>\n        <td>\n            <code>https://midnight-mainnet.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n    <tr>\n        <td>InterPlanetary File System</td>\n        <td>\n            <code>https://ipfs.blockfrost.io/api/v0</code>\n        </td>\n    </tr>\n  </tbody>\n</table>\n\n## Concepts\n\n* All endpoints return either a JSON object or an array.\n* Data is returned in *ascending* (oldest first, newest last) order, if not stated otherwise.\n  * You might use the `?order=desc` query parameter to reverse this order.\n* By default, we return 100 results at a time. You have to use `?page=2` to list through the results.\n* All time and timestamp related fields (except `server_time`) are in seconds of UNIX time.\n* All amounts are returned in Lovelaces, where 1 ADA = 1 000 000 Lovelaces.\n* Addresses, accounts and pool IDs are in Bech32 format.\n* All values are case sensitive.\n* All hex encoded values are lower case.\n* Examples are not based on real data. Any resemblance to actual events is purely coincidental.\n* We allow to upload files up to 100MB of size to IPFS. This might increase in the future.\n* Only pinned IPFS files are counted towards the IPFS quota.\n* Non-pinned IPFS files are subject to regular garbage collection and will be removed unless pinned.\n* We allow maximum of 100 queued pins per IPFS user.\n\n## Errors\n\n### HTTP Status codes\n\nThe following are HTTP status code your application might receive when reaching Blockfrost endpoints and\nit should handle all of these cases.\n\n* HTTP `400` return code is used when the request is not valid.\n* HTTP `402` return code is used when the projects exceed their daily request limit.\n* HTTP `403` return code is used when the request is not authenticated.\n* HTTP `404` return code is used when the resource doesn't exist.\n* HTTP `418` return code is used when the user has been auto-banned for flooding too much after previously receiving error code `402` or `429`.\n* HTTP `425` return code is used in Cardano networks, when the user has submitted a transaction when the mempool is already full, not accepting new txs straight away.\n* HTTP `425` return code is used in IPFS network, when the user has submitted a pin when the pin queue is already full, not accepting new pins straight away.\n* HTTP `429` return code is used when the user has sent too many requests in a given amount of time and therefore has been rate-limited.\n* HTTP `500` return code is used when our endpoints are having a problem.\n\n### Error codes\n\nAn internal error code number is used for better indication of the error in question. It is passed using the following payload.\n\n```json\n{\n  \"status_code\": 403,\n  \"error\": \"Forbidden\",\n  \"message\": \"Invalid project token.\"\n}\n```\n## Limits\n\nThere are two types of limits we are enforcing:\n\nThe first depends on your plan and is the number of request we allow per day. We defined the day from midnight to midnight of UTC time.\n\nThe second is rate limiting. We limit an end user, distinguished by IP address, to 10 requests per second. On top of that, we allow\neach user to send burst of 500 requests, which cools off at rate of 10 requests per second. In essence, a user is allowed to make another\nwhole burst after (currently) 500/10 = 50 seconds. E.g. if a user attempts to make a call 3 seconds after whole burst, 30 requests will be processed.\nWe believe this should be sufficient for most of the use cases. If it is not and you have a specific use case, please get in touch with us, and\nwe will make sure to take it into account as much as we can.\n\n## SDKs\n\nWe support a number of SDKs that will help you in developing your application on top of Blockfrost.\n\n<table>\n  <tbody>\n    <tr>\n        <td><b>Programming language</b></td>\n        <td><b>SDK</b></td>\n    </tr>\n    <tr>\n        <td>JavaScript</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-js\">blockfrost-js</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Haskell</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-haskell\">blockfrost-haskell</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Python</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-python\">blockfrost-python</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Rust</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-rust\">blockfrost-rust</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Golang</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-go\">blockfrost-go</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Ruby</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-ruby\">blockfrost-ruby</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Java</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-java\">blockfrost-java</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Scala</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-scala\">blockfrost-scala</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Swift</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-swift\">blockfrost-swift</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Kotlin</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-kotlin\">blockfrost-kotlin</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Elixir</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-elixir\">blockfrost-elixir</a>\n        </td>\n    </tr>\n    <tr>\n        <td>.NET</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-dotnet\">blockfrost-dotnet</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Arduino</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-arduino\">blockfrost-arduino</a>\n        </td>\n    </tr>\n    <tr>\n        <td>PHP</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-php\">blockfrost-php</a>\n        </td>\n    </tr>\n    <tr>\n        <td>Crystal</td>\n        <td>\n            <a href=\"https://github.com/blockfrost/blockfrost-crystal\">blockfrost-crystal</a>\n        </td>\n    </tr>\n  </tbody>\n</table>\n\n\n## Midnight API\n\n\nThe Midnight Indexer API exposes a GraphQL API that enables clients to query and subscribe to blockchain data — blocks, transactions, contracts, and wallet-related events — indexed from the Midnight blockchain.\n\nAvailable networks: `mainnet`, `preprod`, `preview`\n\n| Service | URL | Protocol |\n|---------|-----|----------|\n| **Indexer HTTP API** | `https://midnight-{network}.blockfrost.io/api/v0` | HTTP POST (GraphQL) |\n| **Indexer Subscriptions API** | `wss://midnight-{network}.blockfrost.io/api/v0/ws` | WebSocket |\n| **Node RPC** | `https://rpc.midnight-{network}.blockfrost.io` | JSON-RPC |\n\n\nFor the full documentation — queries, mutations, subscriptions, authentication options, and examples — see the Midnight GraphQL API Reference:\n\n[![Explore the Midnight API →](https://img.shields.io/badge/Explore_the_Midnight_API_→-0033AD?style=for-the-badge)](./midnight/)\n"
servers:
- url: https://cardano-mainnet.blockfrost.io/api/v0
  description: Cardano Mainnet network
- url: https://cardano-preprod.blockfrost.io/api/v0
  description: Cardano Preprod network
- url: https://cardano-preview.blockfrost.io/api/v0
  description: Cardano Preview network
- url: https://localhost:3000
  description: local
security:
- project_id: []
tags:
- name: Cardano » Pools
paths:
  /pools:
    get:
      tags:
      - Cardano » Pools
      summary: List of stake pools
      description: List of registered stake pools.
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of pools per page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the list of pools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_list'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/extended:
    get:
      tags:
      - Cardano » Pools
      summary: List of stake pools with additional information
      description: List of registered stake pools with additional information.
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of pools per page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the list of pools.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_list_extended'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/retired:
    get:
      tags:
      - Cardano » Pools
      summary: List of retired stake pools
      description: List of already retired pools.
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of pools per page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool information content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_list_retire'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/retiring:
    get:
      tags:
      - Cardano » Pools
      summary: List of retiring stake pools
      description: List of stake pools retiring in the upcoming epochs
      parameters:
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool information content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_list_retire'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}:
    get:
      tags:
      - Cardano » Pools
      summary: Specific stake pool
      description: Pool information.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      responses:
        '200':
          description: Return the pool information content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/history:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool history
      description: 'History of stake pool parameters over epochs.

        '
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool information content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_history'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/metadata:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool metadata
      description: 'Stake pool registration metadata.

        '
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      responses:
        '200':
          description: Return the pool metadata content.
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/pool_metadata'
                - $ref: '#/components/schemas/empty_object'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/relays:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool relays
      description: Relays of a stake pool.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      responses:
        '200':
          description: Return the pool relays information content.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_relays'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/delegators:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool delegators
      description: List of current stake pools delegators.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool delegations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_delegators'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/blocks:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool blocks
      description: List of stake pools blocks.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool block list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_blocks'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/updates:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool updates
      description: List of certificate updates to the stake pool.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool updates history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_updates'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /pools/{pool_id}/votes:
    get:
      tags:
      - Cardano » Pools
      summary: Stake pool votes
      description: History of stake pools votes.
      parameters:
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
        description: Bech32 or hexadecimal pool ID.
        example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - in: query
        name: count
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
        description: The number of results displayed on one page.
      - in: query
        name: page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 21474836
          default: 1
        description: The page number for listing the results.
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        description: 'The ordering of items from the point of view of the blockchain,

          not the page listing itself. By default, we return oldest first, newest last.

          '
      responses:
        '200':
          description: Return the pool votes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pool_votes'
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '418':
          $ref: '#/components/responses/418'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    pool_list_retire:
      type: array
      items:
        type: object
        properties:
          pool_id:
            type: string
            example: pool1z5uqdk7dzdxaae5633fqfcu2eqzy3a3rgtuvy087fdld7yws0xt
            description: Bech32 encoded pool ID
          epoch:
            type: integer
            example: 242
            description: Retirement epoch number
        required:
        - pool_id
        - epoch
      example:
      - pool_id: pool19u64770wqp6s95gkajc8udheske5e6ljmpq33awxk326zjaza0q
        epoch: 225
      - pool_id: pool1dvla4zq98hpvacv20snndupjrqhuc79zl6gjap565nku6et5zdx
        epoch: 215
      - pool_id: pool1wvccajt4eugjtf3k0ja3exjqdj7t8egsujwhcw4tzj4rzsxzw5w
        epoch: 231
    pool_list:
      type: array
      items:
        type: string
        description: Bech32 encoded pool ID
      example:
      - pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
      - pool1hn7hlwrschqykupwwrtdfkvt2u4uaxvsgxyh6z63703p2knj288
      - pool1ztjyjfsh432eqetadf82uwuxklh28xc85zcphpwq6mmezavzad2
    pool_blocks:
      type: array
      items:
        type: string
        description: Block hashes
      example:
      - d8982ca42cfe76b747cc681d35d671050a9e41e9cfe26573eb214e94fe6ff21d
      - 026436c539e2ce84c7f77ffe669f4e4bbbb3b9c53512e5857dcba8bb0b4e9a8c
      - bcc8487f419b8c668a18ea2120822a05df6dfe1de1f0fac3feba88cf760f303c
      - 86bf7b4a274e0f8ec9816171667c1b4a0cfc661dc21563f271acea9482b62df7
    pool_metadata:
      type: object
      properties:
        pool_id:
          type: string
          example: pool1pu5jlj4q9w9jlxeu370a3c9myx47md5j5m2str0naunn2q3lkdy
          description: Bech32 pool ID
        hex:
          type: string
          example: 0f292fcaa02b8b2f9b3c8f9fd8e0bb21abedb692a6d5058df3ef2735
          description: Hexadecimal pool ID
        url:
          type: string
          nullable: true
          example: https://stakenuts.com/mainnet.json
          description: URL to the stake pool metadata
        hash:
          type: string
          nullable: true
          example: 47c0c68cb57f4a5b4a87bad896fc274678e7aea98e200fa14a1cb40c0cab1d8c
          description: Hash of the metadata file
        error:
          type: object
          description: Present when metadata could not be fetched or validated.
          properties:
            code:
              type: string
              description: Stable machine-readable error code.
              enum:
              - HASH_MISMATCH
              - CONNECTION_ERROR
              - HTTP_RESPONSE_ERROR
              - DECODE_ERROR
              - SIZE_EXCEEDED
              - UNKNOWN_ERROR
            message:
              type: string
              description: Human-readable description of the error.
          required:
          - code
          - message
        ticker:
          type: string
          nullable: true
          example: NUTS
          description: Ticker of the stake pool
        name:
          type: string
          nullable: true
          example: Stake Nuts
          description: Name of the stake pool
        description:
          type: string
          nullable: true
          example: The best pool ever
          description: Description of the stake pool
        homepage:
          type: string
          nullable: true
          example: https://stakentus.com/
          description: Home page of the stake pool
      required:
      - pool_id
      - hex
      - url
      - hash
      - ticker
      - name
      - description
      - homepage
    pool_list_extended:
      type: array
      items:
        type: object
        properties:
          pool_id:
            type: string
            example: pool1z5uqdk7dzdxaae5633fqfcu2eqzy3a3rgtuvy087fdld7yws0xt
            description: Bech32 encoded pool ID
          hex:
            type: string
            example: 0f292fcaa02b8b2f9b3c8f9fd8e0bb21abedb692a6d5058df3ef2735
            description: Hexadecimal pool ID.
          active_stake:
            type: string
            example: '4200000000'
            description: Active delegated amount
          live_stake:
            type: string
            example: '6900000000'
            description: Currently delegated amount
          live_saturation:
            type: number
            example: 0.93
          blocks_minted:
            type: integer
            example: 69
            description: Total minted blocks
          declared_pledge:
            type: string
            example: '5000000000'
            description: Stake pool certificate pledge
          margin_cost:
            type: number
            example: 0.05
            description: Margin tax cost of the stake pool
          fixed_cost:
            type: string
            example: '340000000'
            description: Fixed tax cost of the stake pool
          metadata:
            type: object
            nullable: true
            properties:
              url:
                type: s

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cardano/refs/heads/main/openapi/cardano-cardano-pools-api-openapi.yml