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

> Returns basic sync committee information for a particular sync period. Use this to determine the range of epochs a given sync period entails.

You can combine this endpoint with:
- Validators in sync committee period:   
  [v2/ethereum/sync-committee/validators](/api-reference/ethereum/sync-committee/validators)




## OpenAPI

````yaml /v3/bundled.yaml post /api/v2/ethereum/sync-committee
openapi: 3.0.4
info:
  title: External Service API
  version: 1.0.3
servers:
  - url: https://beaconcha.in
    description: Production API
security:
  - ApiKeyAuth: []
paths:
  /api/v2/ethereum/sync-committee:
    post:
      tags:
        - Sync Committee
      summary: Sync Committee Periods
      description: >
        Returns basic sync committee information for a particular sync period.
        Use this to determine the range of epochs a given sync period entails.


        You can combine this endpoint with:

        - Validators in sync committee period:   
          [v2/ethereum/sync-committee/validators](/api-reference/ethereum/sync-committee/validators)
      operationId: GetSyncCommitteeOverview
      requestBody:
        $ref: '#/components/requestBodies/SyncCommitteePeriodAndChain'
      responses:
        '200':
          $ref: '#/components/responses/SyncCommitteeOverview'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        default:
          $ref: '#/components/responses/DefaultError'
components:
  requestBodies:
    SyncCommitteePeriodAndChain:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/NamedChain'
              - $ref: '#/components/schemas/NamedSyncCommitteePeriodSelector'
            required:
              - sync_committee_period
          example:
            sync_committee_period:
              view: latest
            chain: mainnet
  responses:
    SyncCommitteeOverview:
      description: Successful response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SyncCommitteeOverview.Container'
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Bad request. Please check your input and try again.
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Unauthorized. Please provide a valid API key.
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: >-
              endpoint not allowed for your subscription tier. upgrade your
              subscription at https://beaconcha.in/pricing.
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: The requested resource was not found.
    MethodNotAllowed:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: 'method not allowed: GET. all public API endpoints use POST.'
    RateLimitExceeded:
      description: Rate Limit Exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Rate limit exceeded. Please try again later.
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: internal server error. please try again later.
    DefaultError:
      description: An unexpected error response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: An unexpected error occurred.
  schemas:
    NamedChain:
      type: object
      properties:
        chain:
          $ref: '#/components/schemas/Chain'
    NamedSyncCommitteePeriodSelector:
      type: object
      properties:
        sync_committee_period:
          $ref: '#/components/schemas/SyncCommitteePeriodSelector'
      required:
        - sync_committee_period
    SyncCommitteeOverview.Container:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/SyncCommitteeOverview.Data'
        range:
          $ref: '#/components/schemas/ResultRange'
      description: Response containing basic information about the sync committee.
      required:
        - data
        - range
    Error:
      type: object
      properties:
        error:
          type: string
    Chain:
      type: string
      enum:
        - mainnet
        - hoodi
      default: mainnet
      description: The Ethereum chain to query.
    SyncCommitteePeriodSelector:
      description: |
        Specify a sync committee period using one of the following methods.
        - Sync committee period number
        - View: "latest", "next"
      oneOf:
        - $ref: '#/components/schemas/SyncCommitteePeriodByNumber'
        - $ref: '#/components/schemas/SyncCommitteePeriodByChainView'
      default: latest
    SyncCommitteeOverview.Data:
      type: object
      properties:
        period:
          $ref: '#/components/schemas/SyncCommitteePeriod'
        finality:
          $ref: '#/components/schemas/FinalityParams'
      required:
        - period
        - finality
    ResultRange:
      type: object
      description: >
        The time span actually covered by the returned results — from the first
        to the last matching data point — specified in slots, epochs, and Unix
        timestamps.


        This reflects the data that was found, not the range that was queried.
        When no data is found, it falls back to the requested range, or to the
        full available history if no range was given.
      properties:
        slot:
          $ref: '#/components/schemas/SlotRange'
        epoch:
          $ref: '#/components/schemas/EpochRange'
        timestamp:
          $ref: '#/components/schemas/TimeRange'
      required:
        - slot
        - epoch
        - timestamp
    SyncCommitteePeriodByNumber:
      title: Number
      type: object
      properties:
        number:
          $ref: '#/components/schemas/SyncCommitteePeriod'
      required:
        - number
    SyncCommitteePeriodByChainView:
      title: View
      type: object
      properties:
        view:
          $ref: '#/components/schemas/SyncCommitteeView'
      required:
        - view
    SyncCommitteePeriod:
      description: >
        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).
      type: integer
      minimum: 0
    FinalityParams:
      type: string
      description: |
        Indicates the finality status of the data provided. 
          - Finalized data cannot be changed without slashing at least one-third of all validators, providing strong economic guarantees.
          - Data marked as not_finalized does not have this guarantee and may still change.
      enum:
        - not_finalized
        - finalized
    SlotRange:
      type: object
      properties:
        start:
          $ref: '#/components/schemas/Slot'
        end:
          $ref: '#/components/schemas/Slot'
      required:
        - start
        - end
    EpochRange:
      type: object
      properties:
        start:
          $ref: '#/components/schemas/Epoch'
        end:
          $ref: '#/components/schemas/Epoch'
      required:
        - start
        - end
    TimeRange:
      type: object
      properties:
        start:
          $ref: '#/components/schemas/timestamp'
        end:
          $ref: '#/components/schemas/timestamp'
      required:
        - start
        - end
    SyncCommitteeView:
      type: string
      enum:
        - latest
        - next
    Slot:
      type: integer
      minimum: 0
      description: Slot by number.
    Epoch:
      type: integer
      minimum: 0
    timestamp:
      type: integer
      minimum: 0
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        Authorization header with value: Bearer YOUR_TOKEN. Refer to the [API
        Keys](/api/overview#api-keys) section to create your API key.

````