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

# Dashboard management and data API

> Learn how to manage the validators on your beaconcha.in dashboard and query your dashboard data on‑demand using the V2 API and validator selectors.

This guide shows you how to:

* Manage the validators on your beaconcha.in dashboard via API (add/move and remove)
* Access your dashboard’s data on‑demand using the V2 API and its validator dashboard selectors

## Prerequisites

* API key: You need a beaconcha.in API key and must send it in the Authorization header. See Getting Started and how to obtain an API key in the [API Overview](/api/overview).
* Orca subscription: To manage your dashboard (add/move/remove validators) via API, you need an Orca subscription. See plans: [https://beaconcha.in/premium](https://beaconcha.in/premium)
* Higher rate limits: If you need more than 1 req/sec and 1000 req/month, you will need an additional API subscription: [https://beaconcha.in/pricing](https://beaconcha.in/pricing)
* Dashboard ID: Your dashboard\_id is visible in your validator dashboard URL on beaconcha.in.

<Info>
  Authenticate with: `Authorization: Bearer YOUR_API_KEY` and `Content-Type: application/json`.
</Info>

***

## Manage validators on your dashboard

Use the validator dashboard management endpoints to add or remove validators from your dashboard and groups.

### Add or move validators to a dashboard (optionally to a specific group)

Reference: [/api/v2/validator-dashboards/{dashboard_id}/validators](/validator-dashboard/manage-validators-api-endpoints/validators_post)

This endpoint accepts several input modes. The simplest is to send a list of validator indices or public keys. Optionally include `group_id` to add/move them into a specific group.

<Tip>
  Group IDs are visible in the dashboard UI. If you don't pass a `group_id` to the add endpoint, validators are added to your default group.
</Tip>

Example — add indices to dashboard 123, default group:

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/validator-dashboards/123/validators \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "validators": [1, 2, 3]
}
'
```

Example — move validators into group 456:

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/validator-dashboards/123/validators \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "group_id": 456,
  "validators": [
    "0xa94f5374fce5edbc64b...", 
    42
  ]
}
'
```

Bulk‑add by deposit/withdrawal/graffiti (availability depends on subscription tier):

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/validator-dashboards/123/validators \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "group_id": 456,
  "deposit_address": "0x1234567890abcdef1234567890abcdef12345678"
}
'
```

<Note>
  This endpoint always adds as many validators as possible, even if you provide more than allowed by your plan. The response includes the list that were actually added.
</Note>

### Remove specific validators from a dashboard

Reference: [/api/v2/validator-dashboards/{dashboard_id}/validators/bulk-deletions](/validator-dashboard/manage-validators-api-endpoints/validators_bulk_delete_post)

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/validator-dashboards/123/validators/bulk-deletions \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "validators": [1, "0x8fe...public_key...e1"]
}
'
```

### Clear all validators from a specific group

Reference: [/api/v2/validator-dashboards/{dashboard_id}/groups/{group_id}/validators](/validator-dashboard/manage-validators-api-endpoints/groups_delete)

```bash theme={null}
curl --request DELETE \
  --url https://beaconcha.in/api/v2/validator-dashboards/123/groups/456/validators \
  --header 'Authorization: Bearer <YOUR_API_KEY>'
```

***

## Access your dashboard data via the V2 API

The V2 API supports a flexible validator selector (validatorsSelector) that lets you query data for:

* A whole dashboard: `{ "dashboard_id": 123 }`
* A specific group in a dashboard: `{ "dashboard_id": 123, "group_id": 456 }`

Below are a few common examples using your dashboard\_id.

### Example: APY & ROI for your dashboard

Endpoint: `POST /api/v2/ethereum/validators/apy-roi`

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/ethereum/validators/apy-roi \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "chain": "mainnet",
  "validator": {
    "dashboard_id": 123
  },
  "range": {
    "evaluation_window": "30d"
  }
}
'
```

### Example: Aggregated rewards for your dashboard (fixed window)

Endpoint: `POST /api/v2/ethereum/validators/rewards-aggregate`

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/ethereum/validators/rewards-aggregate \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "chain": "mainnet",
  "validator": {
    "dashboard_id": 123,
    "group_id": 456
  },
  "range": {
    "evaluation_window": "all_time"
  }
}
'
```

### Example: Validator overview with pagination

Endpoint: `POST /api/v2/ethereum/validators`

```bash theme={null}
curl --request POST \
  --url https://beaconcha.in/api/v2/ethereum/validators \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "chain": "mainnet",
  "page_size": 10,
  "validator": {
    "dashboard_id": 123
  }
}
'
```

If the response includes `paging.next_cursor`, pass it back in the next request to continue. See the [Pagination guide](/api/pagination).

<Note>
  You can always restrict to a subset by switching to `validator_identifiers` or target a single group with `group_id`.
</Note>

***

## Rate limits and access

* Managing your dashboard via API requires an Orca subscription: [https://beaconcha.in/premium](https://beaconcha.in/premium)
* If you need more than 1 req/sec and 1000 req/month, get an API subscription: [https://beaconcha.in/pricing](https://beaconcha.in/pricing)
* For API key setup and basics, see the [API Overview](/api/overview).
