> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# EpochInfos

> gRPC: `cosmos.epochs.v1beta1.Query/EpochInfos` ([reference](/sdk/latest/api-reference/grpc/epochs#epochinfos))

EpochInfos provide running epochInfos



## OpenAPI

````yaml /sdk/latest/api-reference/rest/openapi.yaml get /cosmos/epochs/v1beta1/epochs
openapi: 3.0.0
info:
  title: Cosmos SDK REST API
  description: >-
    HTTP bindings for the gRPC query services of the standard Cosmos SDK
    modules, documenting Cosmos SDK v0.55.


    Generated from cosmos/cosmos-sdk at commit
    2086680ff8b08fd269ee653e087ea577bab79534 on ref `release/v0.55.x`.


    A chain exposes only the modules its application registers, so it may serve
    a subset of these routes alongside routes of its own.
  version: v0.55
servers:
  - url: https://cosmos-rest.publicnode.com
    description: >-
      Community-run public endpoint serving Cosmos Hub. Not operated by the
      Cosmos SDK team, and running a different SDK version than these pages
      document. Endpoints for modules the chain does not include return 501.
  - url: http://localhost:1317
    description: Your own node. Requires api.enable in app.toml.
security: []
tags:
  - name: auth
  - name: authz
  - name: bank
  - name: base
  - name: consensus
  - name: distribution
  - name: epochs
  - name: evidence
  - name: feegrant
  - name: gov
  - name: mint
  - name: slashing
  - name: staking
  - name: tx
  - name: upgrade
paths:
  /cosmos/epochs/v1beta1/epochs:
    get:
      tags:
        - epochs
      summary: EpochInfos
      description: >-
        gRPC: `cosmos.epochs.v1beta1.Query/EpochInfos`
        ([reference](/sdk/latest/api-reference/grpc/epochs#epochinfos))


        EpochInfos provide running epochInfos
      operationId: epochs_v1beta1_EpochInfos
      responses:
        '200':
          description: A successful response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  epochs:
                    type: array
                    items:
                      type: object
                      properties:
                        identifier:
                          type: string
                          description: >-
                            identifier is a unique reference to this particular
                            timer.
                        start_time:
                          type: string
                          format: date-time
                          description: >-
                            start_time is the time at which the timer first ever
                            ticks.

                            If start_time is in the future, the epoch will not
                            begin until the start

                            time.
                          nullable: true
                        duration:
                          type: string
                          description: >-
                            duration is the time in between epoch ticks.

                            In order for intended behavior to be met, duration
                            should

                            be greater than the chains expected block time.

                            Duration must be non-zero.
                          nullable: true
                        current_epoch:
                          type: string
                          format: int64
                          description: >-
                            current_epoch is the current epoch number, or in
                            other words,

                            how many times has the timer 'ticked'.

                            The first tick (current_epoch=1) is defined as

                            the first block whose blocktime is greater than the
                            EpochInfo start_time.
                        current_epoch_start_time:
                          type: string
                          format: date-time
                          description: >-
                            current_epoch_start_time describes the start time of
                            the current timer

                            interval. The interval is (current_epoch_start_time,

                            current_epoch_start_time + duration] When the timer
                            ticks, this is set to

                            current_epoch_start_time = last_epoch_start_time +
                            duration only one timer

                            tick for a given identifier can occur per block.


                            NOTE! The current_epoch_start_time may diverge
                            significantly from the

                            wall-clock time the epoch began at. Wall-clock time
                            of epoch start may be

                            >> current_epoch_start_time. Suppose
                            current_epoch_start_time = 10,

                            duration = 5. Suppose the chain goes offline at
                            t=14, and comes back online

                            at t=30, and produces blocks at every successive
                            time. (t=31, 32, etc.)

                            * The t=30 block will start the epoch for (10, 15]

                            * The t=31 block will start the epoch for (15, 20]

                            * The t=32 block will start the epoch for (20, 25]

                            * The t=33 block will start the epoch for (25, 30]

                            * The t=34 block will start the epoch for (30, 35]

                            * The **t=36** block will start the epoch for (35,
                            40]
                          nullable: true
                        epoch_counting_started:
                          type: boolean
                          description: >-
                            epoch_counting_started is a boolean, that indicates
                            whether this

                            epoch timer has began yet.
                        current_epoch_start_height:
                          type: string
                          format: int64
                          title: >-
                            current_epoch_start_height is the block height at
                            which the current epoch

                            started. (The block height at which the timer last
                            ticked)
                      description: |-
                        EpochInfo is a struct that describes the data going into
                        a timer defined by the x/epochs module.
                      additionalProperties: false
                    nullable: true
                description: |-
                  QueryEpochInfosRequest defines the gRPC response structure for
                  querying all epoch info.
                additionalProperties: false
        default:
          description: An unexpected error response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    format: int32
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        '@type':
                          type: string
                      additionalProperties: {}

````