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

# /eth/v1/beacon/headers

> Get block headers

<CodeGroup>
  ```bash title="Mainnet" theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
  curl -X GET \
      "https://mainnet.ethereum.validationcloud.io/v1/<YOUR_API_KEY_HERE>/eth/v1/beacon/headers" \
      -H "Content-Type: application/json"
  ```

  ```bash title="Testnet" theme={"theme":{"light":"github-light","dark":"github-dark-default"}}
  curl -X GET \
      "https://sepolia.ethereum.validationcloud.io/v1/<YOUR_API_KEY_HERE>/eth/v1/beacon/headers" \
      -H "Content-Type: application/json"
  ```
</CodeGroup>


## OpenAPI

````yaml nodeapi/openapi/beacon-node-oapi-v2.json GET /eth/v1/beacon/headers
openapi: 3.0.3
info:
  title: Eth Beacon Node API
  description: >
    API specification for the beacon node, which enables users to query and
    participate in Ethereum 2.0 phase 0 beacon chain.


    All requests by default send and receive JSON, and as such should have
    either or both of the "Content-Type: application/json"

    and "Accept: application/json" headers.  In addition, some requests can
    return data in the SSZ format.  To indicate that SSZ

    data is required in response to a request the header "Accept:
    application/octet-stream" should be sent.  Note that only a subset

    of requests can respond with data in SSZ format; these are noted in each
    individual request.


    API endpoints are individually versioned.  As such, there is no direct
    relationship between all v1 endpoints, all v2 endpoints,

    _etc._ and no such relationship should be inferred.  All JSON responses
    return the requested data under a `data` key in the top

    level of their response.  Additional metadata may or may not be present in
    other keys at the top level of the response, dependent

    on the endpoint.  The rules that require an increase in version number are
    as follows:

      - no field that is listed in an endpoint shall be removed without an increase in the version number
      - no field that is listed in an endpoint shall be altered in terms of format (_e.g._ from a string to an array) without an
        increase in the version number

    Note that it is possible for a field to be added to an endpoint's data or
    metadata without an increase in the version number.
  version: v2.3.0 - Eth2Spec v1.1.0
  contact:
    name: Ethereum Github
    url: https://github.com/ethereum/beacon-apis/issues
  license:
    name: CC0-1.0
    url: https://creativecommons.org/publicdomain/zero/1.0/
servers:
  - url: https://mainnet.ethereum.validationcloud.io/v1/<YOUR_API_KEY_HERE>/
    description: Mainnet Beacon API
  - url: https://sepolia.ethereum.validationcloud.io/v1/<YOUR_API_KEY_HERE>/
    description: Sepolia Beacon API
security: []
tags:
  - name: Beacon
    description: Set of endpoints to query beacon chain.
  - name: Config
    description: Endpoints to query chain configuration, specification, and fork schedules.
  - name: Debug
    description: Set of endpoints to debug chain and shouldn't be exposed publicly.
  - name: Events
    description: Set of endpoints to for event subscription.
  - name: Node
    description: Endpoints to query node related informations
  - name: Validator
    description: Endpoints intended for validator clients
  - name: ValidatorRequiredApi
    description: >
      Minimal set of endpoints to enable a working validator implementation.


      [Checkout validator
      flow](https://github.com/ethereum/beacon-APIs/blob/master/validator-flow.md)
      to learn how to use this api.
paths:
  /eth/v1/beacon/headers:
    get:
      tags:
        - Beacon
      summary: Get block headers
      description: >-
        Retrieves block headers matching given query. By default it will fetch
        current head slot blocks.
      operationId: getBlockHeaders
      parameters:
        - name: slot
          in: query
          required: false
          schema:
            allOf:
              - type: string
                example: '1'
              - example: ''
        - name: parent_root
          in: query
          required: false
          schema:
            allOf:
              - type: string
                example: >-
                  0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2
                pattern: ^0x[a-fA-F0-9]{64}$
              - example: ''
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                title: GetBlockHeadersResponse
                type: object
                properties:
                  execution_optimistic:
                    allOf:
                      - type: boolean
                      - example: false
                      - description: >-
                          True if the response references an unverified
                          execution payload. Optimistic information may be
                          invalidated at a later time. If the field is not
                          present, assume the False value.
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        root:
                          type: string
                          example: >-
                            0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2
                          pattern: ^0x[a-fA-F0-9]{64}$
                        canonical:
                          type: boolean
                        header:
                          type: object
                          description: >-
                            The
                            [`SignedBeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#signedbeaconblockheader)
                            object envelope from the CL spec.
                          properties:
                            message:
                              description: >-
                                The
                                [`BeaconBlockHeader`](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#beaconblockheader)
                                object from the CL spec.
                              allOf:
                                - type: object
                                  properties:
                                    slot:
                                      allOf:
                                        - type: string
                                          example: '1'
                                        - description: >-
                                            The slot to which this block
                                            corresponds.
                                    proposer_index:
                                      allOf:
                                        - type: string
                                          example: '1'
                                        - description: >-
                                            Index of validator in validator
                                            registry.
                                    parent_root:
                                      allOf:
                                        - type: string
                                          example: >-
                                            0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2
                                          pattern: ^0x[a-fA-F0-9]{64}$
                                        - description: >-
                                            The signing merkle root of the parent
                                            `BeaconBlock`.
                                    state_root:
                                      allOf:
                                        - type: string
                                          example: >-
                                            0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2
                                          pattern: ^0x[a-fA-F0-9]{64}$
                                        - description: >-
                                            The tree hash merkle root of the
                                            `BeaconState` for the `BeaconBlock`.
                                - type: object
                                  properties:
                                    body_root:
                                      allOf:
                                        - type: string
                                          example: >-
                                            0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2
                                          pattern: ^0x[a-fA-F0-9]{64}$
                                        - description: >-
                                            The tree hash merkle root of the
                                            `BeaconBlockBody` for the `BeaconBlock`
                            signature:
                              type: string
                              pattern: ^0x[a-fA-F0-9]{192}$
                              example: >-
                                0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505
        '400':
          description: The block ID supplied could not be parsed
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      code:
                        description: >-
                          Either specific error code in case of invalid request
                          or http status code
                        type: number
                        example: 404
                      message:
                        description: Message describing error
                        type: string
                      stacktraces:
                        description: Optional stacktraces, sent when node is in debug mode
                        type: array
                        items:
                          type: string
                  - example:
                      code: 400
                      message: 'Invalid block ID: current'
        '500':
          description: Beacon node internal error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    description: >-
                      Either specific error code in case of invalid request or
                      http status code
                    type: number
                    example: 404
                  message:
                    description: Message describing error
                    type: string
                  stacktraces:
                    description: Optional stacktraces, sent when node is in debug mode
                    type: array
                    items:
                      type: string
              example:
                code: 500
                message: Internal server error

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.