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

# Sync committee for a period

> Retrieve the sync committee membership for a given sync period. The sync committee contains 512 validator indices that participate in light-client finality via sync committee signatures. The validators in the response are ordered by the sync-committee index (the position used when interpreting syncaggregate_bits in blocks).
A sync period spans 256 consecutive epochs. Sync committees were introduced with the Altair upgrade. Requests for periods before Altair return an error because no sync committee exists for those periods. On Ethereum mainnet, Altair activated at epoch 74240 (period 290).



## OpenAPI

````yaml /api/v1/bundled.yaml get /api/v1/sync_committee/{period}
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/sync_committee/{period}:
    get:
      tags:
        - Sync Committees
      summary: Sync committee for a period
      description: >-
        Retrieve the sync committee membership for a given sync period. The sync
        committee contains 512 validator indices that participate in
        light-client finality via sync committee signatures. The validators in
        the response are ordered by the sync-committee index (the position used
        when interpreting syncaggregate_bits in blocks).

        A sync period spans 256 consecutive epochs. Sync committees were
        introduced with the Altair upgrade. Requests for periods before Altair
        return an error because no sync committee exists for those periods. On
        Ethereum mainnet, Altair activated at epoch 74240 (period 290).
      operationId: getSyncCommittee
      parameters:
        - name: period
          in: path
          description: >-
            The sync period to fetch. Provide a non-negative integer period
            index, or use one of the special tags: `latest` (current period) or
            `next` (the upcoming period if available).
          required: true
          style: simple
          explode: false
          schema:
            oneOf:
              - type: string
                description: Special tags for convenience.
                enum:
                  - latest
                  - next
                example: latest
              - type: integer
                description: Sync period index (>= 0)
                minimum: 0
                example: 500
      responses:
        '200':
          description: >-
            The sync committee for the requested period was found. The `data`
            object contains the period index, the start and end epochs, and the
            list of 512 validator indices in committee order.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/types.ApiResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/types.APISyncCommitteeResponse'
        '400':
          description: >-
            The request is invalid (for example, a malformed period or a period
            before Altair).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.ApiErrorResponse'
              examples:
                invalidPeriod:
                  summary: Invalid period parameter
                  value:
                    status: 'ERROR: invalid period parameter'
                    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.APISyncCommitteeResponse:
      type: object
      description: >-
        Sync committee membership for a single sync period. Includes the period
        index, the start and end epochs, and the 512 validator indices ordered
        by sync-committee index. The ordering matches the bit positions in
        `syncaggregate_bits` found in blocks.
      properties:
        period:
          type: integer
          description: Sync period index (>= 0). Each period spans 256 consecutive epochs.
          minimum: 0
          example: 500
        start_epoch:
          type: integer
          description: >-
            Epoch at which the sync period begins. On Ethereum mainnet this
            equals `period * 256`.
          minimum: 0
          example: 128000
        end_epoch:
          type: integer
          description: >-
            Epoch at which the sync period ends (inclusive). On Ethereum mainnet
            this equals `start_epoch + 255`.
          minimum: 0
          example: 128255
        validators:
          type: array
          description: >-
            List of validator indices that form the sync committee for this
            period, ordered by sync-committee index (length 512 as per the
            consensus spec).
          items:
            type: integer
            minimum: 0
          minItems: 512
          maxItems: 512
          example:
            - 383220
            - 12142
            - 265015
            - 260079
    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: ''

````