Symbiotic SymbioticAPIService API

The SymbioticAPIService API from Symbiotic — 22 operation(s) for symbioticapiservice.

Operations 22

GET /v1/aggregation/proof/{requestId} Get aggregation proof #
GET /v1/aggregation/proofs/epoch/{epoch} Get aggregation proofs by epoch #
GET /v1/aggregation/status/{requestId} Get aggregation status, can be sent only to aggregator nodes #
GET /v1/committed/all Get last committed epochs for all settlement chains #
GET /v1/committed/chain/{settlementChainId} Get last committed epoch for a specific settlement chain #
GET /v1/epoch/current Get current epoch #
POST /v1/sign Sign a message #
GET /v1/signature-request-ids/epoch/{epoch} Get all signature request IDs by epoch #
GET /v1/signature-request/{requestId} Get signature request by request id #
GET /v1/signature-requests/epoch/{epoch} Get all signature requests by epoch #
GET /v1/signatures/epoch/{epoch} Get signature by epoch #
GET /v1/signatures/{requestId} Get signature by request id #
GET /v1/stream/proofs Stream aggregation proofs in real-time. If start_epoch is provided, sends historical data first #
GET /v1/stream/signatures Stream signatures in real-time. If start_epoch is provided, sends historical data first #
GET /v1/stream/validator-set Stream validator set changes in real-time. If start_epoch is provided, sends historical data first #
GET /v1/validator-set Get current validator set #
GET /v1/validator-set/custom-schedule/node-status Checks if the current node should be active based on a custom schedule derived from the validator set. This enables external applications to use the relay's validator set for coord #
GET /v1/validator-set/header Get validator set header #
GET /v1/validator-set/metadata Get validator set metadata like extra data and request id to fetch aggregation and signature requests #
GET /v1/validator/address/{address} Get validator by address #
GET /v1/validator/key/{keyTag}/{onChainKey} Get validator by key #
GET /v1/validator/local Get local validator #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/symbiotic-symbioticapiservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

symbiotic-symbioticapiservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: v1/api.proto Symbiotic API Service API
  version: version not set
tags:
- name: SymbioticAPIService
paths:
  /v1/aggregation/proof/{requestId}:
    get:
      summary: Get aggregation proof
      operationId: SymbioticAPIService_GetAggregationProof
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAggregationProofResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/aggregation/proofs/epoch/{epoch}:
    get:
      summary: Get aggregation proofs by epoch
      operationId: SymbioticAPIService_GetAggregationProofsByEpoch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAggregationProofsByEpochResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        schema:
          type: string
          format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/aggregation/status/{requestId}:
    get:
      summary: Get aggregation status, can be sent only to aggregator nodes
      operationId: SymbioticAPIService_GetAggregationStatus
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAggregationStatusResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/committed/all:
    get:
      summary: Get last committed epochs for all settlement chains
      operationId: SymbioticAPIService_GetLastAllCommitted
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLastAllCommittedResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - SymbioticAPIService
  /v1/committed/chain/{settlementChainId}:
    get:
      summary: Get last committed epoch for a specific settlement chain
      operationId: SymbioticAPIService_GetLastCommitted
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLastCommittedResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: settlementChainId
        description: Settlement chain ID
        in: path
        required: true
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/epoch/current:
    get:
      summary: Get current epoch
      operationId: SymbioticAPIService_GetCurrentEpoch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCurrentEpochResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - SymbioticAPIService
  /v1/sign:
    post:
      summary: Sign a message
      operationId: SymbioticAPIService_SignMessage
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignMessageResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      tags:
      - SymbioticAPIService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignMessageRequest'
        required: true
  /v1/signature-request-ids/epoch/{epoch}:
    get:
      summary: Get all signature request IDs by epoch
      operationId: SymbioticAPIService_GetSignatureRequestIDsByEpoch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSignatureRequestIDsByEpochResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        schema:
          type: string
          format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (1000). Server clamps to max (10000).
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/signature-request/{requestId}:
    get:
      summary: Get signature request by request id
      operationId: SymbioticAPIService_GetSignatureRequest
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSignatureRequestResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/signature-requests/epoch/{epoch}:
    get:
      summary: Get all signature requests by epoch
      operationId: SymbioticAPIService_GetSignatureRequestsByEpoch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSignatureRequestsByEpochResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        schema:
          type: string
          format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/signatures/epoch/{epoch}:
    get:
      summary: Get signature by epoch
      operationId: SymbioticAPIService_GetSignaturesByEpoch
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSignaturesByEpochResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number
        in: path
        required: true
        schema:
          type: string
          format: uint64
      - name: pageSize
        description: Maximum number of items to return. 0 = server default (100). Server clamps to max (1000).
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: from
        description: Opaque pagination cursor from a previous response's `next_from`. Empty string starts from the beginning.
        in: query
        required: false
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/signatures/{requestId}:
    get:
      summary: Get signature by request id
      operationId: SymbioticAPIService_GetSignatures
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSignaturesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: requestId
        in: path
        required: true
        schema:
          type: string
      tags:
      - SymbioticAPIService
  /v1/stream/proofs:
    get:
      summary: Stream aggregation proofs in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenProofs
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/ListenProofsResponse'
                  error:
                    $ref: '#/components/schemas/Status'
                title: Stream result of ListenProofsResponse
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical proofs starting from this epoch, then continue with real-time updates

          If not provided, only proofs generated after stream creation will be sent'
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/stream/signatures:
    get:
      summary: Stream signatures in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenSignatures
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/ListenSignaturesResponse'
                  error:
                    $ref: '#/components/schemas/Status'
                title: Stream result of ListenSignaturesResponse
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical signatures starting from this epoch, then continue with real-time updates

          If not provided, only signatures generated after stream creation will be sent'
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/stream/validator-set:
    get:
      summary: Stream validator set changes in real-time. If start_epoch is provided, sends historical data first
      operationId: SymbioticAPIService_ListenValidatorSet
      responses:
        '200':
          description: A successful response.(streaming responses)
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: '#/components/schemas/ListenValidatorSetResponse'
                  error:
                    $ref: '#/components/schemas/Status'
                title: Stream result of ListenValidatorSetResponse
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: startEpoch
        description: 'Optional: start epoch. If provided, stream will first send all historical validator sets starting from this epoch, then continue with real-time updates

          If not provided, only validator sets generated after stream creation will be sent'
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set:
    get:
      summary: Get current validator set
      operationId: SymbioticAPIService_GetValidatorSet
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidatorSetResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set/custom-schedule/node-status:
    get:
      summary: 'Checks if the current node should be active based on a custom schedule derived from the validator set.

        This enables external applications to use the relay''s validator set for coordinating distributed tasks,

        such as deciding which application instances should commit data on-chain or perform other coordinated actions.

        The schedule ensures deterministic but randomized selection of active nodes at any given time.'
      operationId: SymbioticAPIService_GetCustomScheduleNodeStatus
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomScheduleNodeStatusResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number to use for the validator set (optional, defaults to current epoch)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      - name: seed
        description: 'Custom seed for randomizing the schedule (optional). Different seeds produce different schedules

          for the same epoch, allowing multiple independent scheduling schemes. If not provided, the schedule

          is deterministic based on epoch alone.'
        in: query
        required: false
        schema:
          type: string
          format: byte
      - name: slotDurationSeconds
        description: 'Duration of each time slot in seconds. Determines how frequently active groups rotate.

          Example: 60 seconds means a new group becomes active every minute.'
        in: query
        required: false
        schema:
          type: string
          format: uint64
      - name: maxParticipantsPerSlot
        description: 'Maximum validators per group. Controls redundancy: 1 for single-instance actions (less redundancy),

          2+ for multi-instance actions (more reliability). All validators in a group are active simultaneously.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: minParticipantsPerSlot
        description: 'Minimum validators required to form a remainder group. When dividing validators into groups,

          any remainder smaller than this is not scheduled. Set equal to max for strict group sizes.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      tags:
      - SymbioticAPIService
  /v1/validator-set/header:
    get:
      summary: Get validator set header
      operationId: SymbioticAPIService_GetValidatorSetHeader
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidatorSetHeaderResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator-set/metadata:
    get:
      summary: Get validator set metadata like extra data and request id to fetch aggregation and signature requests
      operationId: SymbioticAPIService_GetValidatorSetMetadata
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidatorSetMetadataResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/address/{address}:
    get:
      summary: Get validator by address
      operationId: SymbioticAPIService_GetValidatorByAddress
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidatorByAddressResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: address
        description: Validator address (required)
        in: path
        required: true
        schema:
          type: string
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/key/{keyTag}/{onChainKey}:
    get:
      summary: Get validator by key
      operationId: SymbioticAPIService_GetValidatorByKey
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetValidatorByKeyResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: keyTag
        description: Validator key tag (required)
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: onChainKey
        description: Validator on chain (public) key (required)
        in: path
        required: true
        schema:
          type: string
          format: byte
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
  /v1/validator/local:
    get:
      summary: Get local validator
      operationId: SymbioticAPIService_GetLocalValidator
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLocalValidatorResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      parameters:
      - name: epoch
        description: Epoch number (optional, if not provided current epoch will be used)
        in: query
        required: false
        schema:
          type: string
          format: uint64
      tags:
      - SymbioticAPIService
components:
  schemas:
    GetCustomScheduleNodeStatusResponse:
      type: object
      properties:
        isActive:
          type: boolean
          description: 'True if this node is active in the current time slot and should perform the scheduled action.

            False if this node should wait (another group is active). When multiple validators share a slot,

            all return true simultaneously, enabling coordinated redundancy.'
        currentSlotStartTime:
          type: string
          format: date-time
          description: 'Start time of the current active slot. This marks the beginning of the current slot time window.

            Can be used to determine how much time is left in the slot.'
        currentSlotEndTime:
          type: string
          format: date-time
          description: 'End time of the current active slot. This marks the end of the current slot time window.

            Can be used to determine how much time is left in the slot.'
      description: Response indicating whether the current node should be active now.
    ListenSignaturesResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Id of the signature request
        epoch:
          type: string
          format: uint64
          title: Epoch number
        signature:
          $ref: '#/components/schemas/Signature'
          title: Signature data
      title: Response message for signatures stream
    GetValidatorSetResponse:
      type: object
      properties:
        validatorSet:
          $ref: '#/components/schemas/ValidatorSet'
          title: The validator set
      title: Response message for getting validator set
    GetValidatorSetMetadataResponse:
      type: object
      properties:
        extraData:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/ExtraData'
        commitmentData:
          type: string
          format: byte
        requestId:
          type: string
      title: Response message for getting validator set header
    GetSignatureRequestIDsByEpochResponse:
      type: object
      properties:
        requestIds:
          type: array
          items:
            type: string
          title: List of all signature request IDs for the epoch
        nextFrom:
          type: string
          description: Cursor to retrieve the next page. Empty when this is the last page.
      title: Response message for getting all signature request IDs by epoch
    Any:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties: {}
    GetAggregationStatusResponse:
      type: object
      properties:
        currentVotingPower:
          type: string
          title: Current voting power of the aggregator (big integer as string)
        signerOperators:
          type: array
          items:
            type: string
          title: List of operator addresses that signed the request
      title: Response message for getting aggregation status
    ValidatorSetStatus:
      type: string
      enum:
      - VALIDATOR_SET_STATUS_UNSPECIFIED
      - VALIDATOR_SET_STATUS_DERIVED
      - VALIDATOR_SET_STATUS_AGGREGATED
      - VALIDATOR_SET_STATUS_COMMITTED
      default: VALIDATOR_SET_STATUS_UNSPECIFIED
      description: "- VALIDATOR_SET_STATUS_UNSPECIFIED: Default/unknown status\n - VALIDATOR_SET_STATUS_DERIVED: Derived status\n - VALIDATOR_SET_STATUS_AGGREGATED: Aggregated status\n - VALIDATOR_SET_STATUS_COMMITTED: Committed status"
      title: Validator set status enumeration
    GetValidatorByAddressResponse:
      type: object
      properties:
        validator:
          $ref: '#/components/schemas/Validator'
          title: The validator
      title: Response message for getting validator by address
    ListenValidatorSetResponse:
      type: object
      properties:
        validatorSet:
          $ref: '#/components/schemas/ValidatorSet'
          title: The validator set
      title: Response message for validator set changes stream
    AggregationProof:
      type: object
      properties:
        messageHash:
          type: string
          format: byte
          title: Message hash
        proof:
          type: string
          format: byte
          title: Proof data
        requestId:
          type: string
          title: Request ID
      title: Response message for getting aggregation proof
    GetSignatureRequestsByEpochResponse:
      type: object
      properties:
        signatureRequests:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/SignatureRequest'
          title: List of all signature requests for the epoch
        nextFrom:
          type: string
          description: Cursor to retrieve the next page. Empty when this is the last page.
      title: Response message for getting all signature requests by epoch
    GetSignaturesResponse:
      type: object
      properties:
        signatures:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/Signature'
          title: List of signatures
      title: Response message for getting signatures
    GetAggregationProofResponse:
      type: object
      properties:
        aggregationProof:
          $ref: '#/components/schemas/AggregationProof'
      title: Response message for getting aggregation proof
    GetLastAllCommittedResponse:
      type: object
      properties:
        epochInfos:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ChainEpochInfo'
          title: List of settlement chains with their last committed epochs
        suggestedEpochInfo:
          $ref: '#/components/schemas/ChainEpochInfo'
          title: Suggested epoch info for signatures, it is the minimum commited epoch among all chains
      title: Response message for getting all last committed epochs
    GetValidatorSetHeaderResponse:
      type: object
      properties:
        version:
          type: integer
          format: int64
          title: Version of the validator set
        requiredKeyTag:
          type: integer
          format: int64
          title: Key tag required to commit next validator set
        epoch:
          type: string
          format: uint64
          title: Validator set epoch
        captureTimestamp:
          type: string
          format: date-time
          title: Epoch capture timestamp
        quorumThreshold:
          type: string
          title: Quorum threshold (big integer as string)
        totalVotingPower:
          type: string
          title: Total voting power (big integer as string)
        validatorsSszMroot:
          type: string
          title: Validators SSZ Merkle root (hex string)
      title: Response message for getting validator set header
    GetValidatorByKeyResponse:
      type: object
      properties:
        validator:
          $ref: '#/components/schemas/Validator'
          title: The validator
      title: Response message for getting validator by key
    GetLastCommittedResponse:
      type: object
      properties:
        settlementChainId:
          type: string
          format: uint64
          title: Settlement chain ID
        epochInfo:
          $ref: '#/components/schemas/ChainEpochInfo'
      title: Response message for getting last committed epoch
    ChainEpochInfo:
      type: object
      properties:
        lastCommittedEpoch:
          type: string
          format: uint64
          title: Last committed epoch for this chain
        startTime:
          type: string
          format: date-time
          title: Epoch start time
      title: Settlement chain with its last committed epoch
    Status:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/Any'
    ListenProofsResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Id of the request
        epoch:
          type: string
          format: uint64
          title: Epoch number
        aggregationProof:
          $ref: '#/components/schemas/AggregationProof'
          title: Final aggregation proof
      title: Response message for aggregation proofs stream
    GetSignaturesByEpochResponse:
      type: object
      properties:
        signatures:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/Signature'
          title: List of signatures
        nextFrom:
          type: string
          description: Cursor to retrieve the next page. Empty when this is the last page.
      title: Response message for getting signatures by epoch
    SignMessageResponse:
      type: object
      properties:
        requestId:
          type: string
          title: Hash of the signature request
        epoch:
          type: string
          format: uint64
          title: Epoch number
      title: Response message for sign message request
    GetLocalValidatorResponse:
      type: object
      properties:
        validator:
          $ref: '#/components/schemas/Validator'
          title: The validator
      title: Response message for getting local validator
    GetCurrentEpochResponse:
      type: object
      properties:
        epoch:
          type: string
          format: uint64
          title: Epoch number
        startTime:
          type: string
          format: date-time
       

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/symbiotic/refs/heads/main/openapi/symbiotic-symbioticapiservice-api-openapi.yml