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

# Daily validator statistics

> Retrieve per-day statistics for a single validator by index. Use this endpoint to obtain balance snapshots (in gwei), duty counts (attestations, block proposals, sync committee), and deposit/withdrawal activity aggregated per beaconchain-day. When `start_day` is omitted, the API returns all days up to `end_day` (which defaults to the latest exported day).



## OpenAPI

````yaml /api/v1/bundled.yaml get /api/v1/validator/stats/{index}
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/stats/{index}:
    get:
      tags:
        - Validators
      summary: Daily validator statistics
      description: >-
        Retrieve per-day statistics for a single validator by index. Use this
        endpoint to obtain balance snapshots (in gwei), duty counts
        (attestations, block proposals, sync committee), and deposit/withdrawal
        activity aggregated per beaconchain-day. When `start_day` is omitted,
        the API returns all days up to `end_day` (which defaults to the latest
        exported day).
      operationId: getValidatorDailyStats
      parameters:
        - name: index
          in: path
          description: Validator index to query (>= 0).
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            minimum: 0
            example: 49949
        - name: end_day
          in: query
          description: >-
            Last day index to include (inclusive). Defaults to the latest
            exported day.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            minimum: 0
            example: 1774
        - name: start_day
          in: query
          description: >-
            First day index to include (inclusive). Must be less than or equal
            to `end_day`. When omitted, the API returns all days up to
            `end_day`.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            minimum: 0
            example: 1700
      responses:
        '200':
          description: >-
            Matching daily records were retrieved successfully. The `data` array
            contains one entry per day, ordered from newest to oldest.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/types.ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        title: DailyStats
                        items:
                          $ref: >-
                            #/components/schemas/types.ApiValidatorDailyStatsResponse
        '400':
          description: >-
            The request is invalid (for example, a malformed index, invalid
            `start_day` or `end_day`, or `start_day > end_day`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                invalidIndex:
                  summary: Invalid validator index
                  value:
                    status: 'ERROR: invalid validator index'
                    data: null
                invalidEndDay:
                  summary: Invalid end_day parameter
                  value:
                    status: 'ERROR: invalid end_day parameter'
                    data: null
                invalidStartDay:
                  summary: Invalid start_day parameter
                  value:
                    status: 'ERROR: invalid start_day parameter'
                    data: null
                startAfterEnd:
                  summary: start_day must be <= end_day
                  value:
                    status: 'ERROR: start_day must be less than end_day'
                    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:
    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.ApiValidatorDailyStatsResponse:
      type: object
      description: >-
        Daily statistics for a single validator aggregated over a
        beaconchain-day. Includes balance snapshots (gwei), duty counts, and
        deposit/withdrawal sums.
      properties:
        validatorindex:
          type: integer
          description: Validator index (>= 0).
          minimum: 0
          example: 20
        day:
          type: integer
          description: >-
            Beaconchain-day index since genesis (>= 0). A day spans 24 hours
            derived from chain time (SlotsPerEpoch × SecondsPerSlot).
          minimum: 0
          example: 1774
        day_start:
          type: string
          format: date-time
          description: Start timestamp (UTC) of the day in RFC 3339 format.
          example: '2025-10-10T12:00:23Z'
        day_end:
          type: string
          format: date-time
          description: End timestamp (UTC) of the day in RFC 3339 format.
          example: '2025-10-11T12:00:23Z'
        start_balance:
          type: integer
          description: Validator balance at the start of the day, in gwei.
          example: 32007258984
        end_balance:
          type: integer
          description: Validator balance at the end of the day, in gwei.
          example: 32009280345
        min_balance:
          type: integer
          description: Minimum observed validator balance during the day, in gwei.
          example: 0
        max_balance:
          type: integer
          description: Maximum observed validator balance during the day, in gwei.
          example: 0
        start_effective_balance:
          type: integer
          description: Effective balance at the start of the day, in gwei.
          example: 32000000000
        end_effective_balance:
          type: integer
          description: Effective balance at the end of the day, in gwei.
          example: 32000000000
        min_effective_balance:
          type: integer
          description: Minimum observed effective balance during the day, in gwei.
          example: 0
        max_effective_balance:
          type: integer
          description: Maximum observed effective balance during the day, in gwei.
          example: 0
        proposed_blocks:
          type: integer
          description: >-
            Number of blocks proposed by this validator and included in the
            canonical chain during the day.
          example: 0
        missed_blocks:
          type: integer
          description: >-
            Number of scheduled block proposals this validator missed during the
            day.
          example: 0
        orphaned_blocks:
          type: integer
          description: >-
            Number of blocks proposed by this validator that were not part of
            the canonical chain (reorged/orphaned) during the day.
          example: 0
        missed_attestations:
          type: integer
          description: >-
            Number of attestation duties missed by this validator during the
            day.
          example: 0
        orphaned_attestations:
          type: integer
          description: >-
            Number of attestations from this validator recorded in non-canonical
            blocks during the day.
          example: 0
        attester_slashings:
          type: integer
          description: >-
            Number of attester slashing events attributed to this validator
            during the day.
          example: 0
        proposer_slashings:
          type: integer
          description: >-
            Number of proposer slashing events attributed to this validator
            during the day.
          example: 0
        deposits:
          type: integer
          description: >-
            Number of deposit operations recorded for this validator during the
            day.
          example: 0
        deposits_amount:
          type: integer
          description: Total amount deposited for this validator during the day, in gwei.
          example: 0
        withdrawals:
          type: integer
          description: Number of withdrawals credited to this validator during the day.
          example: 0
        withdrawals_amount:
          type: integer
          description: Total amount withdrawn from this validator during the day, in gwei.
          example: 0
        participated_sync:
          type: integer
          description: >-
            Number of sync committee signatures from this validator recorded
            during the day.
          example: 0
        missed_sync:
          type: integer
          description: >-
            Number of expected sync committee signatures that were not recorded
            during the day.
          example: 0
        orphaned_sync:
          type: integer
          description: >-
            Number of sync committee signatures from this validator recorded in
            non-canonical blocks during the day.
          example: 0
    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: ''

````