curl --request POST \
--url https://beaconcha.in/api/v2/ethereum/validators/apy-roi \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"validator": {
"validator_identifiers": [
1
]
},
"range": {
"evaluation_window": "24h"
},
"chain": "mainnet"
}
'{
"data": {
"execution_layer": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"consensus_layer": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"combined": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"finality": "finalized"
},
"range": {
"slot": {
"start": 1,
"end": 1
},
"epoch": {
"start": 1,
"end": 1
},
"timestamp": {
"start": 1,
"end": 1
}
}
}Returns the annual percentage yield (APY) and return on investment (ROI) for a known collection or group of validators. Known collections are referenced by index, public key, deposit address, or withdrawal address.
For comparing performance across different staking providers, we recommend using the BeaconScore from the Performance Aggregated endpoints instead of APY or ROI, as BeaconScore normalizes for luck and provides a fairer comparison. Note that some residual luck factors outside a validator’s control can still influence BeaconScore, especially over short evaluation windows. See the Residual Luck Factors section in the BeaconScore documentation for details.
curl --request POST \
--url https://beaconcha.in/api/v2/ethereum/validators/apy-roi \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"validator": {
"validator_identifiers": [
1
]
},
"range": {
"evaluation_window": "24h"
},
"chain": "mainnet"
}
'{
"data": {
"execution_layer": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"consensus_layer": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"combined": {
"roi": {
"total": 0.15,
"missed": -0.02
},
"apy": {
"total": 2.76,
"missed": -0.5
}
},
"finality": "finalized"
},
"range": {
"slot": {
"start": 1,
"end": 1
},
"epoch": {
"start": 1,
"end": 1
},
"timestamp": {
"start": 1,
"end": 1
}
}
}Free selectors available to all users:
Premium selectors for Scale & Enterprise plans (https://beaconcha.in/pricing):
sub_entity for more specific filtering. Matching is case-insensitive.Note: The set of validators matched by deposit_address and withdrawal selectors is updated once per epoch (~6.4 minutes). Newly deposited validators may take up to one epoch to appear in query results.
Note: The set of validators matched by entity selector is updated once per day.
Show child attributes
The time period over which to evaluate the APY and ROI. If not provided, defaults to the last 30 days.
Show child attributes
The Ethereum chain to query.
mainnet, hoodi Successful response.
Response containing apy and roi information of the validators.
Validator performance metrics, expressed both as ROI (Return on Investment) and APY (Annual Percentage Yield).
ROI helps understand raw performance during the evaluation range, while APY allows comparison against annualized benchmarks. Note that APY is an extrapolation and does not reflect future performance.
Show child attributes
The range of data covered by the results, specified in slots, epochs, and Unix timestamps.
Show child attributes
Was this page helpful?