> ## 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.

# Validators

> gRPC: `cosmos.staking.v1beta1.Query/Validators` ([reference](/sdk/latest/api-reference/grpc/staking#validators))

Validators queries all validators that match the given status.

When called from another module, this query might consume a high amount of
gas if the pagination field is incorrectly set.



## OpenAPI

````yaml /sdk/latest/api-reference/rest/openapi.yaml get /cosmos/staking/v1beta1/validators
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/staking/v1beta1/validators:
    get:
      tags:
        - staking
      summary: Validators
      description: >-
        gRPC: `cosmos.staking.v1beta1.Query/Validators`
        ([reference](/sdk/latest/api-reference/grpc/staking#validators))


        Validators queries all validators that match the given status.


        When called from another module, this query might consume a high amount
        of

        gas if the pagination field is incorrectly set.
      operationId: staking_v1beta1_Validators
      parameters:
        - name: status
          description: status enables to query for validators matching a given status.
          in: query
          required: false
          schema:
            type: string
        - name: pagination.key
          description: |-
            key is a value returned in PageResponse.next_key to begin
            querying the next page most efficiently. Only one of offset or key
            should be set.
          in: query
          required: false
          schema:
            type: string
            format: byte
        - name: pagination.offset
          description: >-
            offset is a numeric offset that can be used when key is unavailable.

            It is less efficient than using key. Only one of offset or key
            should

            be set.
          in: query
          required: false
          schema:
            type: string
            format: uint64
        - name: pagination.limit
          description: >-
            limit is the total number of results to be returned in the result
            page.

            If left empty it will default to a value to be set by each app.
          in: query
          required: false
          schema:
            type: string
            format: uint64
        - name: pagination.countTotal
          description: >-
            count_total is set to true  to indicate that the result set should
            include

            a count of the total number of items available for pagination in
            UIs.

            count_total is only respected when offset is used. It is ignored
            when key

            is set.
          in: query
          required: false
          schema:
            type: boolean
        - name: pagination.reverse
          description: >-
            reverse is set to true if results are to be returned in the
            descending order.
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: A successful response.
          content:
            '*/*':
              schema:
                type: object
                properties:
                  validators:
                    type: array
                    items:
                      type: object
                      properties:
                        operator_address:
                          type: string
                          description: >-
                            operator_address defines the address of the
                            validator's operator; bech encoded in JSON.
                        consensus_pubkey:
                          description: >-
                            consensus_pubkey is the consensus public key of the
                            validator, as a Protobuf Any.
                          type: object
                          properties:
                            '@type':
                              type: string
                              description: >-
                                A URL/resource name that uniquely identifies the
                                type of the serialized

                                protocol buffer message. This string must
                                contain at least

                                one "/" character. The last segment of the URL's
                                path must represent

                                the fully qualified name of the type (as in

                                `path/google.protobuf.Duration`). The name
                                should be in a canonical form

                                (e.g., leading "." is not accepted).


                                In practice, teams usually precompile into the
                                binary all types that they

                                expect it to use in the context of Any. However,
                                for URLs which use the

                                scheme `http`, `https`, or no scheme, one can
                                optionally set up a type

                                server that maps type URLs to message
                                definitions as follows:


                                * If no scheme is provided, `https` is assumed.

                                * An HTTP GET on the URL must yield a
                                [google.protobuf.Type][]
                                  value in binary format, or produce an error.
                                * Applications are allowed to cache lookup
                                results based on the
                                  URL, or have them precompiled into a binary to avoid any
                                  lookup. Therefore, binary compatibility needs to be preserved
                                  on changes to types. (Use versioned type names to manage
                                  breaking changes.)

                                Note: this functionality is not currently
                                available in the official

                                protobuf release, and it is not used for type
                                URLs beginning with

                                type.googleapis.com. As of May 2023, there are
                                no widely used type server

                                implementations and no plans to implement one.


                                Schemes other than `http`, `https` (or the empty
                                scheme) might be

                                used with implementation specific semantics.
                          additionalProperties: {}
                          nullable: true
                        jailed:
                          type: boolean
                          description: >-
                            jailed defined whether the validator has been jailed
                            from bonded status or not.
                        status:
                          description: >-
                            status is the validator status
                            (bonded/unbonding/unbonded).
                          type: string
                          enum:
                            - BOND_STATUS_UNSPECIFIED
                            - BOND_STATUS_UNBONDED
                            - BOND_STATUS_UNBONDING
                            - BOND_STATUS_BONDED
                          default: BOND_STATUS_UNSPECIFIED
                          nullable: true
                        tokens:
                          type: string
                          description: >-
                            tokens define the delegated tokens (incl.
                            self-delegation).
                        delegator_shares:
                          type: string
                          description: >-
                            delegator_shares defines total shares issued to a
                            validator's delegators.
                        description:
                          description: >-
                            description defines the description terms for the
                            validator.
                          type: object
                          properties:
                            moniker:
                              type: string
                              description: >-
                                moniker defines a human-readable name for the
                                validator.
                            identity:
                              type: string
                              description: >-
                                identity defines an optional identity signature
                                (ex. UPort or Keybase).
                            website:
                              type: string
                              description: website defines an optional website link.
                            security_contact:
                              type: string
                              description: >-
                                security_contact defines an optional email for
                                security contact.
                            details:
                              type: string
                              description: details define other optional details.
                          nullable: true
                          additionalProperties: false
                        unbonding_height:
                          type: string
                          format: int64
                          description: >-
                            unbonding_height defines, if unbonding, the height
                            at which this validator has begun unbonding.
                        unbonding_time:
                          type: string
                          format: date-time
                          description: >-
                            unbonding_time defines, if unbonding, the min time
                            for the validator to complete unbonding.
                          nullable: true
                        commission:
                          description: commission defines the commission parameters.
                          type: object
                          properties:
                            commission_rates:
                              description: >-
                                commission_rates defines the initial commission
                                rates to be used for creating a validator.
                              type: object
                              properties:
                                rate:
                                  type: string
                                  description: >-
                                    rate is the commission rate charged to
                                    delegators, as a fraction.
                                max_rate:
                                  type: string
                                  description: >-
                                    max_rate defines the maximum commission rate
                                    which validator can ever charge, as a
                                    fraction.
                                max_change_rate:
                                  type: string
                                  description: >-
                                    max_change_rate defines the maximum daily
                                    increase of the validator commission, as a
                                    fraction.
                              nullable: true
                              additionalProperties: false
                            update_time:
                              type: string
                              format: date-time
                              description: >-
                                update_time is the last time the commission rate
                                was changed.
                              nullable: true
                          nullable: true
                          additionalProperties: false
                        min_self_delegation:
                          type: string
                          description: >-
                            min_self_delegation is the validator's self declared
                            minimum self delegation.
                        unbonding_on_hold_ref_count:
                          type: string
                          format: int64
                          title: >-
                            strictly positive if this validator's unbonding has
                            been stopped by external modules
                        unbonding_ids:
                          type: array
                          items:
                            type: string
                            format: uint64
                          title: >-
                            list of unbonding ids, each uniquely identifying an
                            unbonding of this validator
                      description: >-
                        Validator defines a validator, together with the total
                        amount of the

                        Validator's bond shares and their exchange rate to
                        coins. Slashing results in

                        a decrease in the exchange rate, allowing correct
                        calculation of future

                        undelegations without iterating over delegators. When
                        coins are delegated to

                        this validator, the validator is credited with a
                        delegation whose number of

                        bond shares is based on the amount of coins delegated
                        divided by the current

                        exchange rate. Voting power can be calculated as total
                        bonded shares

                        multiplied by exchange rate.
                    description: validators contains all the queried validators.
                    nullable: true
                  pagination:
                    description: pagination defines the pagination in the response.
                    type: object
                    properties:
                      next_key:
                        type: string
                        format: byte
                        description: >-
                          next_key is the key to be passed to PageRequest.key to

                          query the next page most efficiently. It will be empty
                          if

                          there are no more results.
                        nullable: true
                      total:
                        type: string
                        format: uint64
                        title: >-
                          total is total number of results available if
                          PageRequest.count_total

                          was set, its value is undefined otherwise
                    nullable: true
                    additionalProperties: false
                title: >-
                  QueryValidatorsResponse is response type for the
                  Query/Validators RPC method
                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
                          description: >-
                            A URL/resource name that uniquely identifies the
                            type of the serialized

                            protocol buffer message. This string must contain at
                            least

                            one "/" character. The last segment of the URL's
                            path must represent

                            the fully qualified name of the type (as in

                            `path/google.protobuf.Duration`). The name should be
                            in a canonical form

                            (e.g., leading "." is not accepted).


                            In practice, teams usually precompile into the
                            binary all types that they

                            expect it to use in the context of Any. However, for
                            URLs which use the

                            scheme `http`, `https`, or no scheme, one can
                            optionally set up a type

                            server that maps type URLs to message definitions as
                            follows:


                            * If no scheme is provided, `https` is assumed.

                            * An HTTP GET on the URL must yield a
                            [google.protobuf.Type][]
                              value in binary format, or produce an error.
                            * Applications are allowed to cache lookup results
                            based on the
                              URL, or have them precompiled into a binary to avoid any
                              lookup. Therefore, binary compatibility needs to be preserved
                              on changes to types. (Use versioned type names to manage
                              breaking changes.)

                            Note: this functionality is not currently available
                            in the official

                            protobuf release, and it is not used for type URLs
                            beginning with

                            type.googleapis.com. As of May 2023, there are no
                            widely used type server

                            implementations and no plans to implement one.


                            Schemes other than `http`, `https` (or the empty
                            scheme) might be

                            used with implementation specific semantics.
                      additionalProperties: {}
                      description: >-
                        `Any` contains an arbitrary serialized protocol buffer
                        message along with a

                        URL that describes the type of the serialized message.


                        Protobuf library provides support to pack/unpack Any
                        values in the form

                        of utility functions or additional generated methods of
                        the Any type.


                        Example 1: Pack and unpack a message in C++.

                            Foo foo = ...;
                            Any any;
                            any.PackFrom(foo);
                            ...
                            if (any.UnpackTo(&foo)) {
                              ...
                            }

                        Example 2: Pack and unpack a message in Java.

                            Foo foo = ...;
                            Any any = Any.pack(foo);
                            ...
                            if (any.is(Foo.class)) {
                              foo = any.unpack(Foo.class);
                            }
                            // or ...
                            if (any.isSameTypeAs(Foo.getDefaultInstance())) {
                              foo = any.unpack(Foo.getDefaultInstance());
                            }

                         Example 3: Pack and unpack a message in Python.

                            foo = Foo(...)
                            any = Any()
                            any.Pack(foo)
                            ...
                            if any.Is(Foo.DESCRIPTOR):
                              any.Unpack(foo)
                              ...

                         Example 4: Pack and unpack a message in Go

                             foo := &pb.Foo{...}
                             any, err := anypb.New(foo)
                             if err != nil {
                               ...
                             }
                             ...
                             foo := &pb.Foo{}
                             if err := any.UnmarshalTo(foo); err != nil {
                               ...
                             }

                        The pack methods provided by protobuf library will by
                        default use

                        'type.googleapis.com/full.type.name' as the type URL and
                        the unpack

                        methods only use the fully qualified type name after the
                        last '/'

                        in the type URL, for example "foo.bar.com/x/y.z" will
                        yield type

                        name "y.z".


                        JSON

                        ====

                        The JSON representation of an `Any` value uses the
                        regular

                        representation of the deserialized, embedded message,
                        with an

                        additional field `@type` which contains the type URL.
                        Example:

                            package google.profile;
                            message Person {
                              string first_name = 1;
                              string last_name = 2;
                            }

                            {
                              "@type": "type.googleapis.com/google.profile.Person",
                              "firstName": <string>,
                              "lastName": <string>
                            }

                        If the embedded message type is well-known and has a
                        custom JSON

                        representation, that representation will be embedded
                        adding a field

                        `value` which holds the custom JSON in addition to the
                        `@type`

                        field. Example (for message
                        [google.protobuf.Duration][]):

                            {
                              "@type": "type.googleapis.com/google.protobuf.Duration",
                              "value": "1.212s"
                            }

````