Skip to main content
POST

Overview

  • Dataset ID: 0301 - Liquidity Pool Reserves
  • Description: Retrieves time-series snapshots of AMM pool reserves, covering both even-distribution (constant-product, weighted, stable) and concentrated/bin liquidity models.
  • CSV Sample: Download
  • JSON Sample: Download
For concentrated liquidity (Uniswap v3/v4-style) tick distribution, use the dedicated POST /v1/evm/reserves/liquidity-distribution endpoint, which computes per-tick amounts on demand with a configurable price window.

Parameters

number
required
Target EVM network. See the Chain enumeration for supported values.

Range Filters (mutually exclusive)

number
Starting block number (inclusive) for the query. Use with to_block.
number
Ending block number (inclusive) for the query. Use with from_block.
string
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
string
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Scoping rule: Provide exactly one of:
  1. Block rangefrom_block and to_block
  2. Time rangefrom_timestamp and to_timestamp
  3. Direct selectors — presented below
Direct selectors may be used on their own, without a block or time range. Do not combine scoping modes. Omitting all three returns HTTP 400.

Pool Selectors

number[]
Filter snapshots by exchange IDs. See the DigitalExchange enumeration for supported values.
string[]
Filter by BlockDB pool identifiers (uid from /evm/entities/pools).
string[]
Filter by pool contract addresses (hex string, 20 bytes, no 0x prefix).
string[]
Filter by protocol-specific pool identifiers (e.g., Uniswap V4 pool_id).
number[]
Filter snapshots by pool archetype. See the PoolType enumeration for supported values.

Amounts

boolean
default:"false"
Off by default. When set to true, each snapshot includes reserves_decimals_adjusted — the same reserve amounts scaled by ERC-20 token decimals (e.g. dividing a USDC value by 10⁶). Enabling it adds a per-request ERC-20 decimals lookup (extra join) that increases latency, so it is opt-in; when omitted or false, reserves_decimals_adjusted is null and only the always-present raw reserves array is populated.

Pagination Controls

number
default:"250"
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
string
Pagination cursor from a prior call.

Response Fields

Meta

object
Echo of request metadata applied to the response.
number
EVM chain ID echoed from the request.
object
Pure echo of the window you sent (from_block/to_block/from_timestamp/to_timestamp); unset bounds are null.
object | null
The concrete window the query actually executed against, after resolving the request. For a block range on a time-bucketed endpoint (OHLC/VWAP/VWAP-aggregate/fiat VWAP), from_timestamp/to_timestamp hold the resolved timestamp window (and from_block/to_block echo your request). For a time range on a block-keyed endpoint, from_block/to_block hold the resolved block range (and the timestamps echo your request). null for selector-only requests (no window). No extra database work is done — these are the values the query already computed.
number | null
Resolved/echoed start block of the executed window.
number | null
Resolved/echoed end block of the executed window.
string | null
Resolved/echoed start timestamp (ISO-8601) of the executed window.
string | null
Resolved/echoed end timestamp (ISO-8601) of the executed window.
object
Filters echoed from the request (e.g., exchange IDs, pool identifiers, pool types).

Data

object[]
Array of reserve snapshot objects.
string
BlockDB pool identifier (uid from /evm/entities/pools).
number
Exchange identifier associated with the pool.
number
Pool type identifier.
number
Block height where the reserve change was observed.
string
Block timestamp when the event occurred.
number
Zero-based index of the parent transaction within the block.
number
Position of the log within the transaction.
string[] | null
Current reserves per token in pool order, as raw integer strings (base units). null for concentrated-liquidity pools where reserves are not stored at the snapshot level.
string[] | null
Same order as reserves, but each value divided by 10^decimals for the corresponding ERC-20 token. null when decimals are unavailable for at least one pool token, when reserves is null, or when include_adjusted_amounts is false.
number | null
Current tick for concentrated-liquidity pools. null when not applicable.
string | null
Q64.96 sqrt price as an integer string. null when not applicable.
number | null
Current bin id for bin-style AMMs. null when not applicable.
string
Row-level lineage hash for the snapshot.
string[]
Lineage references of immediate parents.
string
Record creation timestamp.
string
Record last update timestamp.

Envelope Fields

string | null
Cursor token for pagination.
number
Number of records returned in data.
Last modified on July 19, 2026