Staking Queues History
Returns a history of the staking queue sizes — how much ETH is waiting to enter and leave staking over time. Each entry is a snapshot of the staking queues at one epoch.
History begins at the Pectra fork, which is where the queues themselves begin: the pending deposit, consolidation and partial-withdrawal queues are Pectra state fields, so there is nothing to report before it. How far back a given request reaches also depends on granularity — see that field for the two floors and how out-of-range requests are handled.
An epoch with no usable snapshot is omitted from the series rather than returned as an empty entry, so entries are not guaranteed to be evenly spaced. Read epoch and timestamp on each entry rather than inferring them from position.
Each entry covers the four queues the snapshot records. The withdrawal_sweep and compounding_switch_queue entries of the live endpoint have no historical counterpart and are not returned here.
For the current point-in-time queue state, see /api/v2/ethereum/queues.
Authorizations
Body
The Ethereum chain to query.
mainnet, hoodi Time window to query, given as Unix timestamps, epoch numbers, or slot numbers (inclusive). If omitted or null, the last 30 days are returned. The newest epochs may not yet be finalized — each snapshot carries a finality field. Results are paginated via cursor/page_size.
- Unix Timestamp
- Epoch
- Slot
Resolution of the returned time series.
daily— one entry per UTC day, taken at the first epoch that started on that day.epoch— one entry per epoch (225 epochs per day on mainnet).
The two resolutions reach back different distances, because the queue snapshots were recomputed from archived beacon state at daily resolution only.
daily covers the whole recorded range, which begins at the Pectra fork — the pending deposit, consolidation and partial-withdrawal queues are Pectra state fields, so no queue history exists before it.
epoch is served only from the point where every consecutive epoch was recorded correctly, which is a shorter window ending at the chain head.
A range reaching below either floor is served from that floor, and a range entirely below it returns an empty series rather than an error. Read range on the response to see the span actually served.
daily, epoch "daily"
Cursor value for pagination. See our pagination guide for more details.
The number of items to return per page.
1 <= x <= 10Response
Successful response.
Response containing the staking queues history with the resolved range.
The time span actually covered by the returned results — from the first to the last matching data point — specified in slots, epochs, and Unix timestamps.
This reflects the data that was found, not the range that was queried. When no data is found, it falls back to the requested range, or to the full available history if no range was given.
For arbitrary (custom) time-range queries the queried range is expanded outward to whole UTC days, so the covered range may be wider than requested. As stated above, the reported range still reflects the data that was actually found — a touched UTC day with no data for the selected validators will not extend it.

