Cost: Set monthly fee under the beacon add-on — no per-call credit deduction.
Rate limit: 100 requests/min, on a dedicated beacon bucket (does not count against your portfolio rate limit).
Path parameters
All endpoints accept one of two path-parameter forms:Note: BLS pubkeys are validator identifiers, not wallet addresses.
Validator Details
Get current state, lifecycle epochs, effective balance, and withdrawal credentials for a single validator.Endpoints
Response
object
Core validator identity and status.
object
Epoch-level lifecycle milestones. Fields are
null when not yet reached.object
Validator balances as wei strings.
object
Withdrawal credential info.
address is only present for 0x01-prefix validators.Example
Example Response
Example Response
Validator Rewards
Paginated reward buckets aggregated byepoch, day, week, or month for a time range. Typical use case: pull daily rewards for a known validator pubkey for portfolio reporting (Lido, Beaver, etc.).
Data availability: Rewards are available from the Merge (epoch 146875, September 15, 2022) onward. If you need data going further back, contact us.
Endpoints
Query Parameters
string
required
Determines how
rangeFrom / rangeTo are interpreted.timestamp— values are Unix seconds. Max range: 31,536,000 seconds (1 year).epoch— values are beacon epoch numbers. Max range: 82,125 epochs (1 year).
integer
required
Start of the range (inclusive). Must be ≥ 0 and ≤
rangeTo. Interpreted as Unix seconds or epoch number per rangeType.integer
required
End of the range (inclusive). Must be ≥ 0. Interpreted as Unix seconds or epoch number per
rangeType.Maximum 1-year range. Cap is 31,536,000 seconds when
rangeType=timestamp, 82,125 epochs when rangeType=epoch. For better performance, keep ranges as small as your use case allows.string
required
Bucket size for aggregation. One of:
epoch | day | week | monthnumber
default:"0"
Pagination offset (number of records to skip).
number
default:"10"
Number of records to return. Max
10.Response
ValidatorRewardSummary[]
Array of reward buckets.
number
Current pagination offset
number
Records per page
number
Total number of matching buckets
number
Total number of pages
Example
Example Response
Example Response
Validator Withdrawals
Paginated list of withdrawals processed for a validator.Endpoints
Query Parameters
number
default:"0"
Pagination offset.
number
default:"10"
Number of records to return. Max
10.Response
ValidatorWithdrawal[]
Array of withdrawal events.
number
Current pagination offset
number
Records per page
number
Total number of withdrawals
number
Total number of pages
Example
Example Response
Example Response
Validator Deposits
Paginated list of deposits made to a validator.Endpoints
Query Parameters
number
default:"0"
Pagination offset.
number
default:"10"
Number of records to return. Max
10.Response
ValidatorDeposit[]
Array of deposit events.
number
Current pagination offset
number
Records per page
number
Total number of deposits
number
Total number of pages
Example
Example Response
Example Response
Error Responses
400 Bad Request
400 Bad Request
Input validation failed (Joi structured error).Common causes: invalid
:index or :pubkey format, missing required query params, rangeFrom > rangeTo, range exceeding 1-year cap, invalid rangeType or granularity value.403 Forbidden
403 Forbidden
Valid token but account does not have enterprise beacon access.
404 Validator Not Found
404 Validator Not Found
Validator does not exist on mainnet.
500 Internal Server Error
500 Internal Server Error
Upstream beacon data error.
Use Cases
- Staking Yield in Portfolio
- Validator Status
- Withdrawals by Address
Aggregate daily rewards across a set of validators and convert wei to ETH for portfolio reporting.
Best Practices
Cache Validator Details Client-Side
Cache Validator Details Client-Side
validator.status, lifecycle.*, and withdrawalCredentials.* change on the order of minutes-to-hours, not seconds. Cache details responses for several minutes to cut latency and load.Pick Granularity to Match Range
Pick Granularity to Match Range
Reward buckets at
granularity=epoch over a one-year range can yield ~82,000 rows. Match the granularity to the range so a single query returns a meaningful page.Going finer than this still works, but you’ll need to paginate (
limit is capped at 10) and stitch results together.Convert Wei With BigInt
Convert Wei With BigInt
Reward and balance fields are returned as decimal strings in wei. Summing across long ranges or many validators can exceed
Number.MAX_SAFE_INTEGER — parse with BigInt, divide by 10^18 only at the display step.Paginate to Fetch All Records
Paginate to Fetch All Records
limit is capped at 10 for rewards, withdrawals, and deposits. Loop on offset until you’ve consumed totalRows.Related Endpoints
Portfolio
Get full portfolio holdings for a wallet address
Transactions
View on-chain transaction history