Skip to main content

Why Migrate?

All new features, endpoints, and improvements are built exclusively for V2. We recommend migrating to V2 for the best experience.
  • Richer data: V2 endpoints return more detailed, structured responses with fine-grained reward breakdowns
  • Flexible selectors: Query by validator index, public key, or dashboard, and on Scale and Enterprise plans by deposit address, withdrawal address, or entity
  • Use cases and guides: 14+ step-by-step guides with code examples for common workflows
  • BeaconScore® and entities: Exclusive V2 features for performance benchmarking and entity comparison
  • Active development: All new features ship on V2 only

Need Help?

Use Cases

Task-specific guides with code examples for common operations.

Error Handling

V2 error patterns, status codes, and troubleshooting.

AI Integration

Connect your AI assistant to the beaconcha.in docs via MCP or llms.txt.

Discord

Ask questions and get help from the community.

Key Differences


Endpoint Mapping

V1 endpoints that have a V2 equivalent are no longer listed in the V1 API reference. They still respond, so existing integrations keep working, but they receive no new development. The tables below map each of them to its V2 replacement. 💎 marks a V2 feature that requires a Scale or Enterprise plan.

Validators

Rewards

Epochs and Slots

Sync Committees

Network Statistics

The V2 endpoint reads the same source data as V1 and applies the same ETH.STORE® methodology. Only the presentation changed:
  • Response shape. V1’s flat keys are grouped: rewards.{}, apr.{}, and moving_averages.{}. avgapr7d becomes moving_averages.window_7d.apr.combined, cl_avgapr31d becomes moving_averages.window_31d.apr.consensus_layer, and so on.
  • Timestamps. day_start and day_end are Unix timestamps in seconds, not RFC 3339 strings.
  • Day selection. Instead of a {day} path parameter, choose an evaluation window (24h returns the latest datapoint, up to all_time with pagination, most recent day first). Scale and Enterprise plans can also request an arbitrary range by timestamp, epoch, or slot.
  • Precision. V2 returns APR values as single-precision floats, so they can differ from V1 in the last digits.
Both APIs express APR as a fraction, where 1.0 is 100%, and both compute the 7- and 31-day moving averages as unweighted means of the daily APR values.

V1 Endpoints Partially Covered by V2

These V1 endpoints stay in the V1 API reference because part of their use case has no V2 equivalent yet. Use V2 for the part it covers.

V1-Only Endpoints (No V2 Equivalent Yet)

The following V1 endpoints do not have V2 equivalents at this time. They remain accessible via the V1 API.

Unlisted V1 Endpoints Without a Full V2 Equivalent

The following V1 endpoints are no longer listed in the V1 API reference, although V2 does not fully replace them. They still respond, but receive no new development. Where V2 has a close equivalent, it is listed.

V2-Only Endpoints (New in V2)

These endpoints are only available in V2 and have no V1 equivalent:

Migration Example: Validator Lookup

Before (V1)

After (V2)

Key changes in this example:
  1. GET becomes POST with a JSON body
  2. The validator index moves from the URL path into the validator object in the request body
  3. Authentication moves from query parameter to Authorization: Bearer header
  4. The chain field selects the network (mainnet by default)

Migration Example: Rewards Data

Before (V1)

After (V2)

V2 rewards data includes a detailed breakdown by duty type (attestation, sync committee, proposal) with reward, penalty, and missed reward amounts.

Authentication Changes

V1 supported both query parameter and header authentication:
V2 accepts the same methods, but we recommend the Bearer token header:
The same API key works for both V1 and V2. You do not need a new key to start using V2.

Pagination Changes

V1 uses offset-based pagination. On history endpoints such as balancehistory, offset and limit step through epochs:
V2 uses cursor-based pagination. Per-epoch endpoints such as validators/balances take one epoch per request, and the cursor pages through the validators of that epoch, at most 10 per page. To build a history, send one request per epoch. The first request omits the cursor, and subsequent requests use the cursor value from the paging object in the previous response:
See the Pagination Guide for full details on cursor-based pagination.

Rate Limit Considerations

A single V1 history request can take many V2 requests, because V2 returns at most 10 items per page and per-epoch endpoints take one epoch per request. Your rate limit behavior also depends on your subscription type:
  • Legacy plans (Sapphire, Emerald, Diamond): V1 and V2 use separate rate limit buckets. Your V1 quota is unaffected by V2 usage. V2 requests are limited to 1 request per second and 1,000 requests per month, and V2 selectors accept up to 20 validators.
  • Current plans (Hobbyist, Business, Scale): V1 and V2 share a single rate limit bucket.
See the Rate Limits guide for full details.