---
title: "Validators"
method: POST
path: "/api/v2/ethereum/sync-committee/validators"
tags: ["Sync Committee"]
---

# Validators

`POST /api/v2/ethereum/sync-committee/validators`

Returns the validators in the sync committee for a particular sync period.

You can combine this endpoint with:
- Sync Committee Period Overview:   
  [v2/ethereum/sync-committee](/api-reference/ethereum/sync-committee)

Response can be filtered to a specific set of validators by providing optional **validator** identifiers in the request body.

## Request body

- SyncCommitteeChainOptionalValidator
  - `chain` 'mainnet' | 'hoodi', required — The Ethereum chain to query.
  - `cursor` string — Cursor value for pagination. See our [pagination guide](/api/pagination) for more details.
  - `page_size` integer — The number of items to return per page.
  - `validator` union — Free selectors available to all users: - validator_identifiers: One or more validator indices or public keys to filter by. - dashboard_id: Your beaconcha.in dashboard ID (requires a free account). **Premium selectors** for Scale & Enterprise plans (https://beaconcha.in/pricing): - withdrawal: The validator's withdrawal credential or the Ethereum wallet address used for withdrawals. - deposit_address: The Ethereum wallet address used for the validator's deposit. - entity: The name of the assigned entity (e.g., "Lido", "Coinbase"). Optionally include `sub_entity` for more specific filtering. Matching is case-sensitive. Note: The set of validators matched by `deposit_address` and `withdrawal` selectors is updated once per epoch (~6.4 minutes). Newly deposited validators may take up to one epoch to appear in query results. Note: The set of validators matched by `entity` selector is updated once per day.
    - ValidatorsByIdentifiers
      - `validator_identifiers` ValidatorIndexPublicKey[], required — An array containing either validator indices or public keys. Index and public key can be mixed in the same array. Subscribed users (Hobbyist, Business, and Scale tiers) can include up to 100 entries; free trial users and legacy subscription users (Sapphire, Emerald, Diamond) are limited to 20.
        - union
          - integer — Validator Index
          - string — Public key of a validator
    - ValidatorsByDashboard
      - `dashboard_id` integer, required — beaconcha.in dashboard ID. You can find your dashboard ID in the URL of your dashboard page on beaconcha.in (e.g., https://beaconcha.in/dashboard/12345).
      - `group_id` integer, nullable — Optional beaconcha.in dashboard group ID. If no group ID is provided, all validators in the dashboard are considered.
    - ValidatorsByDeposit
      - `deposit_address` string, required — A standard Ethereum address (20-byte hex string with 0x prefix).
    - ValidatorsByWithdrawal
      - `withdrawal` string, required — Either an execution layer address (20-byte hex string with 0x prefix) or a full 32-byte withdrawal credential.
    - ValidatorsByEntity — Select validators by their assigned entity (e.g., staking provider) and optionally a sub-entity. Entity and sub-entity names are matched exactly and are case-sensitive.
      - `entity` string, required — The name of the entity to filter validators by (e.g., "Lido", "Coinbase"). Matching is case-sensitive; use the exact name as returned by the entities overview endpoint.
      - `sub_entity` string — Optional sub-entity name to further filter validators within the entity. Matching is case-sensitive; use the exact name as returned by the sub-entities overview endpoint.
  - `sync_committee_period` union, required — Specify a sync committee period using one of the following methods. - Sync committee period number - View: "latest", "next"
    - SyncCommitteePeriodByNumber
      - `number` integer, required — The sync committee period number. Each sync committee period spans 256 epochs (approximately 27.3 hours with 6.4 minute epochs). The first sync committee period (period 290 on Ethereum Mainnet) started at the Altair hard fork on Oct 27, 2021, 10:56:23am UTC (epoch 74240).
    - SyncCommitteePeriodByChainView
      - `view` 'latest' | 'next', required

## Response `200`

Successful response.

- object
  - `data` SyncCommitteeValidatorsValidator[], required
    - `validator` Validator, required
      - `index` integer — Validator Index
      - `public_key` string — Public key of a validator
    - `duties` ValidatorSyncCommitteeDutyParticipation, required
      - `successful` integer, required — Number of times the validator successfully participated in the sync committee.
      - `assigned` integer, required — Number of times the validator has been assigned to participate in the sync committee, excluding missed slots.
      - `missed` integer, required — Number of times the validator missed participation in the sync committee, excluding missed network slots. The `missed` is always less than or equal to your actual `missed_including_missed_slots`.
      - `missed_including_missed_slots` integer, required — Number of times the validator missed participation in the sync committee, including missed network slots. Missed network slots are beyond your control. If this value is significantly higher than `missed`, it indicates that your validator is generally performing well, and most missed rewards are due to network issues rather than validator faults. However, if both `missed` and `missed_including_missed_slots` are high, it suggests potential issues with your validator's setup or connectivity, leading to missed sync committee messages.
      - `scheduled` integer, required — Number of scheduled sync committee votes for active and upcoming sync committees.
  - `paging` Paging
    - `next_cursor` string — Cursor to the next page of results. See our [pagination guide](/api/pagination) for more details. If empty, there are no more pages to fetch.
  - `range` ResultRange, required — The range of data covered by the results, specified in slots, epochs, and Unix timestamps.
    - `slot` SlotRange, required
      - `start` integer, required — Slot by number.
      - `end` integer, required — Slot by number.
    - `epoch` EpochRange, required
      - `start` integer, required
      - `end` integer, required
    - `timestamp` TimeRange, required
      - `start` integer, required
      - `end` integer, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `405` — Method Not Allowed
- `429` — Rate Limit Exceeded
- `500` — Internal Server Error
- `default` — An unexpected error response.

---

[API](https://skmtc.dev/beaconcha/apis/external-service-api.md) · [All operations](https://skmtc.dev/beaconcha/apis/external-service-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/beaconcha/external-service-api/revisions/ad26ad970b4e/schema)
