> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rated.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Report Validators

Here's how to interpret the inputs required to operate it:

| Parameter    | Context                                                                                                                                                                         |
| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `validators` | Array of validator pubkeys associated with the node operator                                                                                                                    |
| `poolTag`    | String for pool name, must match exactly to the pool name listed on the [Explorer](https://www.rated.network/?network=mainnet\&view=pool\&timeWindow=1d\&page=1\&poolType=all). |

And here's how to you might go about implementing it:

<RequestExample>
  ```sh Curl theme={null}
  curl -v -X 'POST' \
    'https://api.rated.network/v0/selfReports/validators' \
    -H 'Content-Type: application/json' \
    -H 'X-Rated-Network: mainnet' \
    -H 'Authorization: Bearer <YOUR-TOKEN-HERE>'
    -d '{"validators": ["0x01...", "0x02..."], "poolTag": "Lido"}'
  ```

  ```python Python theme={null}
  import requests

  from typing import Dict, List

  YOUR_TOKEN: str = "ey..."
  PUBKEYS: List[str] = ["0x001...", "0x002...", ]
  HEADERS: Dict[str, str] = {
      "Authorization": f"Bearer {YOUR_TOKEN}",
      "X-Rated-Network": "mainnet",
  }

  try:
      response = requests.post(
          "https://api.rated.network/v0/selfReports/validators",
          # important! use the json parameter not data
          json={"validators": PUBKEYS, "poolTag": "Lido"},
          headers=HEADERS,
      )
      response.raise_for_status()
  except requests.exceptions.HTTPError:
      print(response.headers["x-request-id"])
      print(response.json())
  ```
</RequestExample>

#### Please note the following:

* You can self report on Ethereum Mainnet and Hoodi.

* Do not pass your operator name as pool name. If you're not getting delegations via a pool or pool share, please leave the "poolTag" empty.

* Each request has a strict limit of 1,000 validator public keys. Please submit multiple requests if you need to report more than 1,000 validators.

* We cannot assign a key to your entity if it has already been reported by another operator. In case of false attribution, please contact us at [hello@rated.network](http://hello@rated.network), and we will address the issue.

* As this API is self-reported, it relies on the honest behaviour of all participants reporting their validators. Any instances of misconduct may lead to the exclusion of the entity from our platform.

* It typically takes about 24 hours for the reported keys to appear on [rated.network/explorer](http://rated.network/explorer). Please note that your keys need to be activated (ie not in the activation queue) for them to show up on the Explorer.

* If your activated keys have not shown up after the 24h period, please contact us at [hello@rated.network](http://hello@rated.network), and we will investigate the issue.


## OpenAPI

````yaml post /v0/selfReports/validators
openapi: 3.1.0
info:
  title: Rated API
  description: >

    Welcome to Rated API Swagger doc for developers! This doc outlines the Rated
    API functionality and API architecture.


    V0: It is separated into seven categories:


    -   **Validators**: Endpoints to query into individual validator indices or
    aggregations of validator indices.

    -   **Operators**: Endpoints to query into pre-materialized operator
    groupings.

    -   **Network**: Endpoints to query into network aggregate stats.

    -   **Slashings**: Endpoints to query into network aggregate stats.

    -   **Withdrawals (beta)**: Endpoints to query into when a withdrawal is
    expected to land.

    -   **Self Report (beta)**: Endpoint to query into all slashed validators
    and individual slashed validator indices


    V1: It is separated into six categories:

    -   **Overview**: Endpoints encapsulating the current status of operators,
    pools and validators.

    -   **Performance**: Endpoints that dive into performance and effectiveness
    metrics on execution and consensus layer for operators, pools and
    validators.

    -   **Rewards**: Endpoints that dive into relevant metrics around rewards
    and penalties for operators, pools and validators.

    -   **Private Sets**: Endpoints that aggregate custom group of validators
    privately for performance and reward drill downs.

    -   **Metadata**: Endpoints that provide metadata about mappings, slashings
    and APRs for validators, pools and operators.

    -   **Network**: Endpoints that provide network level metrics about
    performance, rewards, and distributions.


    [Terms of Use](https://docs.rated.network/legal/terms/api-terms-of-service)


    [API
    Reference](https://docs.rated.network/rated-api/api-reference/introduction)
  version: '1.0'
servers: []
security: []
paths:
  /v0/selfReports/validators:
    post:
      tags:
        - Self Reports
      summary: Report Validators
      operationId: report_validators_v0_selfReports_validators_post
      parameters:
        - name: X-Rated-Network
          in: header
          required: false
          schema:
            $ref: '#/components/schemas/Network'
            default: mainnet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelfReportIn'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelfReport'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
      security:
        - HTTPBearer: []
components:
  schemas:
    Network:
      type: string
      enum:
        - mainnet
        - hoodi
        - holesky
      title: Network
    SelfReportIn:
      properties:
        validators:
          items:
            type: string
          type: array
          maxItems: 1000
          minItems: 1
          title: Validators
        poolTag:
          anyOf:
            - type: string
            - type: 'null'
          title: Pooltag
      type: object
      required:
        - validators
      title: SelfReportIn
    SelfReport:
      properties:
        operatorName:
          type: string
          title: Operatorname
        validators:
          items:
            type: string
          type: array
          title: Validators
        network:
          $ref: '#/components/schemas/Network'
        poolTag:
          anyOf:
            - type: string
            - type: 'null'
          title: Pooltag
      type: object
      required:
        - operatorName
        - validators
        - network
      title: SelfReport
    ErrorResponse:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Error'
          type: array
          title: Detail
      type: object
      required:
        - detail
      title: ErrorResponse
    Error:
      properties:
        loc:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Loc
        msg:
          type: string
          title: Msg
        type:
          type: string
          title: Type
      type: object
      required:
        - msg
        - type
      title: Error
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````