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

# Validators overview

> Retrieve validator information by index or public key using a comma-separated list in the path parameter. Provide up to 100 identifiers (higher limits may apply to authenticated premium users). Each identifier must be either a validator index (base-10 integer) or a 48-byte BLS public key as 0x-prefixed hex (96 hex characters after 0x) or without the 0x prefix. Use the POST variant (`/api/v1/validator`) when the list is too long for a URL.



## OpenAPI

````yaml /api/v1/bundled.yaml get /api/v1/validator/{indexOrPubkey}
openapi: 3.0.4
info:
  title: beaconcha.in API Documentation
  license:
    name: GPL-3.0
    url: https://www.gnu.org/licenses/gpl-3.0.en.html
  description: >-
    > ⚠️ No new features or endpoints will be added to V1. We recommend the [V2
    API](/api/overview) for all new projects. See the [migration
    guide](/api/v1-to-v2-migration).

    ## Introduction

    **Advanced and reliable API for accessing comprehensive Ethereum blockchain
    data.**


    - **Free Usage Policy:** The API is free to use under a fair use policy,
    with rate limits of 10 requests per minute per IP.

    - **Caching:** All responses are cached for 1 minute.

    - **Higher Usage Plans:** For higher usage plans, visit:
    [https://beaconcha.in/pricing](https://beaconcha.in/pricing). An API key is
    required to use these plans.


    ### API Key Usage

    API keys can be obtained at
    [/user/settings](https://beaconcha.in/user/settings) and must be included in
    requests either as a query string parameter or in the request header.


    #### Example: Query String Parameter

    ```bash

    curl https://beaconcha.in/api/v1/slot/1?apikey=<your_key>

    ```


    #### Example: Request Header

    ```bash

    curl -H 'apikey: <your_key>' https://beaconcha.in/api/v1/slot/1

    ```
  contact: {}
  version: '1.1'
servers:
  - url: https://beaconcha.in
    description: Ethereum mainnet
  - url: https://hoodi.beaconcha.in
    description: Hoodi Ethereum testnet
security:
  - ApiKeyAuthQuery: []
  - ApiKeyAuthHeader: []
tags:
  - name: Epoch
    description: Data related to consensus layer epochs
  - name: Slots
    description: Data related to consensus layer slots
  - name: Validators
    description: Data related to consensus layer validators
  - name: Rewards
    description: Data related to validator rewards
  - name: Sync Committees
    description: Data related to sync committees
  - name: Rocketpool
    description: Data related to the rocketpool protocol
  - name: ETH.Store®
    description: Data related to the ETH.Store® metric
  - name: Validator deposits
    description: Data related to execution layer validator deposits
  - name: Blocks
    description: Data related to execution layer blocks
  - name: Gas
    description: Data related to gas prices
  - name: Address
    description: Data related to ethereum addresses
  - name: Network
    description: Network data
  - name: Misc
    description: Miscellaneous data
  - name: User
    description: User data
  - name: Machine Metrics
    description: Submit machine, beacon-node, and validator-client monitoring metrics
paths:
  /api/v1/validator/{indexOrPubkey}:
    get:
      tags:
        - Validators
      summary: Validators overview
      description: >-
        Retrieve validator information by index or public key using a
        comma-separated list in the path parameter. Provide up to 100
        identifiers (higher limits may apply to authenticated premium users).
        Each identifier must be either a validator index (base-10 integer) or a
        48-byte BLS public key as 0x-prefixed hex (96 hex characters after 0x)
        or without the 0x prefix. Use the POST variant (`/api/v1/validator`)
        when the list is too long for a URL.
      operationId: getValidators
      parameters:
        - name: indexOrPubkey
          in: path
          description: >-
            Comma-separated validator indices and/or public keys (maximum 100
            items by default).
          required: true
          style: simple
          explode: false
          schema:
            $ref: '#/components/schemas/primitives.indicesOrPubkeys'
      responses:
        '200':
          description: >-
            Matching validators were retrieved successfully. The `data` field
            contains either a single validator object (when one identifier is
            provided/resolved) or an array of validator objects (when multiple
            identifiers are provided/resolved).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/types.ApiResponse'
                  - type: object
                    properties:
                      data:
                        oneOf:
                          - title: Multiple validators
                            type: array
                            items:
                              $ref: '#/components/schemas/types.APIValidatorResponse'
                          - $ref: '#/components/schemas/types.APIValidatorResponse'
                            title: Single validator
        '400':
          description: >-
            The request is invalid (for example, malformed identifier, too many
            identifiers, or unresolved pubkeys).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                invalidParam:
                  summary: Invalid validator identifier
                  value:
                    status: 'ERROR: invalid validator-parameter'
                    data: null
                tooMany:
                  summary: Too many identifiers
                  value:
                    status: 'ERROR: only a maximum of 100 query parameters are allowed'
                    data: null
        '500':
          description: An unexpected server error occurred while processing your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                serverError:
                  summary: Internal error
                  value:
                    status: 'ERROR: internal server error'
                    data: null
components:
  schemas:
    primitives.indicesOrPubkeys:
      type: string
      description: >
        Comma-separated list (no spaces) of validator identifiers. Each
        identifier must be either:

        - A validator index as a base-10 integer (for example, 652648)

        - A BLS public key as a 96-hex-character string with or without the 0x
        prefix (case-insensitive)


        Resolution and limits:

        - The server resolves public keys to validator indices before querying
        data.

        - The total number of identifiers must not exceed the server-enforced
        limit (default 100).

        - Identifiers that cannot be parsed or resolved result in HTTP 400.
      example: 1,2,3
    types.ApiResponse:
      type: object
      description: Standard success envelope used by all API endpoints.
      properties:
        status:
          type: string
          description: >-
            HTTP-independent status of the API operation. For successful
            responses this is always "OK".
          enum:
            - OK
        data:
          description: Response payload specific to the endpoint.
          nullable: true
          x-omitempty: true
    types.APIValidatorResponse:
      type: object
      description: >-
        State and metadata for a single validator, including status, balances,
        epochs, and withdrawal summary.
      properties:
        activation_eligibility_epoch:
          type: integer
          description: >-
            Epoch at which the validator became eligible for activation. Set to
            the FAR_FUTURE_EPOCH sentinel when not yet eligible.
          example: 289892
        activation_epoch:
          type: integer
          description: >-
            Epoch at which the validator entered the active set.
            FAR_FUTURE_EPOCH when not yet active.
          example: 290297
        balance:
          type: integer
          description: >-
            Current validator balance in gwei at the latest processed epoch for
            this response.
          example: 32014494648
        effective_balance:
          type: integer
          description: >-
            Effective balance used for reward/penalty calculations in gwei
            (capped at 32,000,000,000 gwei).
          example: 32000000000
        exit_epoch:
          type: integer
          description: >-
            Epoch at which the validator begins exiting. FAR_FUTURE_EPOCH when
            no exit is scheduled.
          example: 9223372036854776000
        last_attestation_slot:
          type: integer
          description: >-
            Most recent slot at which an attestation from this validator was
            observed in a canonical block.
          example: 12766062
        name:
          type: string
          description: >-
            Optional human-readable label associated with the validator. Empty
            string when not set.
          example: name
        pubkey:
          type: string
          description: >-
            BLS12-381 validator public key (48 bytes; 0x-prefixed hex with 96
            hex characters).
          example: >-
            0xb73ecd964c9779506a3209ec40dd40d765b0464fef281d77ac8a559fa9e2a9cff8b6b2e09b8f6360b119ba7a963c5b81
        slashed:
          type: boolean
          description: True when the validator has been slashed.
          example: false
        status:
          type: string
          description: >-
            Current validator state. One of: active_online, exiting_online,
            slashing_online, active_offline, exiting_offline, slashing_offline,
            pending_initialized, pending, deposited, exited, slashed.
          enum:
            - active_online
            - exiting_online
            - slashing_online
            - active_offline
            - exiting_offline
            - slashing_offline
            - pending_initialized
            - pending
            - deposited
            - exited
            - slashed
          example: active_online
        validator_index:
          type: integer
          description: Validator index (>= 0).
          minimum: 0
          example: 1435245
        withdrawable_epoch:
          type: integer
          description: >-
            Epoch at which the validator’s balance becomes withdrawable after
            exit or slashing. FAR_FUTURE_EPOCH when not yet withdrawable.
          example: 9223372036854776000
        withdrawal_credentials:
          type: string
          description: >-
            32-byte withdrawal credentials (0x-prefixed hex). Prefix 0x01
            encodes an execution address; 0x00 indicates BLS withdrawal
            credentials.
          example: '0x0100000000000000000000005d652886f0b4ae0b1b7d6be5b7e2d555aafdc812'
        total_withdrawals:
          type: integer
          description: >-
            Cumulative amount withdrawn by this validator in gwei, including the
            latest exported day and canonical blocks of the current day.
          example: 1072078769
    types.ApiErrorResponse:
      type: object
      description: Standard error envelope returned when a request fails.
      properties:
        status:
          type: string
          description: >-
            Human-readable error indicator and message. The value begins with
            "ERROR:" followed by details.
          example: 'ERROR: <Message>'
        data:
          type: string
          description: Optional additional context for the error. Null in most cases.
          nullable: true
          default: null
  securitySchemes:
    ApiKeyAuthQuery:
      type: apiKey
      in: query
      name: apikey
      description: ''
    ApiKeyAuthHeader:
      type: apiKey
      in: header
      name: apikey
      description: ''

````