Overview
Parameters
Target EVM chain. See the Chain enumeration for supported values.
ERC-20 contract address for the base asset (hex string, 20 bytes, no 0x prefix).
ERC-20 contract address for the quote asset (hex string, 20 bytes, no 0x prefix).
Range Filters (mutually exclusive)
Starting block number (inclusive) for the query. Use with to_block.
Ending block number (inclusive) for the query. Use with from_block.
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Validation rule:
You must provide either a block range, a time range, or at least one direct selector.
Providing more than one option results in HTTP 400.
Providing none results in HTTP 400.
Direct Selectors
Restrict to specific BlockDB pool identifiers.
Candle Controls
Candle width, expressed as an ISO-8601 duration shorthand (1m, 5m, 1h, 1d). Default is 1m.
IANA timezone identifier used to anchor candle boundaries. Default is UTC.
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
Opaque pagination cursor supplied by a previous response.
Response Fields
ERC-20 contract address of the base asset.
ERC-20 contract address of the quote asset.
Echo of request metadata applied to the response.
EVM chain ID echoed from the request.
Normalized block/timestamp bounds derived from the request.
Filter parameters echoed from the request.
Data
OHLC candles matching the request.
BlockDB pool identifier for the candle.
Block number of the first trade included in the bucket.
Block time of the first trade (ISO-8601).
Transaction index of the first trade in the bucket.
Log index of the first trade in the bucket.
Block number of the last trade included in the bucket.
Block time of the last trade (ISO-8601).
Transaction index of the last trade in the bucket.
Log index of the last trade in the bucket.
Inclusive UTC start of the candle bucket (ISO-8601).
Candle width in seconds (for example 60, 300).
Input token address (hex, 20 bytes, no 0x prefix).
Output token address (hex, 20 bytes, no 0x prefix).
Opening price for the bucket (token_out per 1 token_in, decimals-adjusted). Returned as a string to preserve precision.
Highest price within the bucket. Returned as a string to preserve precision.
Lowest price within the bucket. Returned as a string to preserve precision.
Closing price for the bucket. Returned as a string to preserve precision.
Volume of token_in in the bucket (decimals-adjusted). Returned as a string to preserve precision.
Volume of token_out in the bucket (decimals-adjusted). Returned as a string to preserve precision.
Number of trades aggregated into the bucket.
Tracing identifier for the candle row (hex string, no 0x prefix).
Record creation timestamp (ISO-8601).
Record update timestamp (ISO-8601).
Envelope Fields
Number of candles returned.
Usage Notes
curl -X POST "https://api.blockdb.io/v1/evm/prices/spot/crypto/ohlc" \
-H "Authorization: Bearer $BLOCKDB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chain_id": 1,
"base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"quote_token_address": "a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"from_timestamp": "2025-11-11T00:00:00Z",
"to_timestamp": "2025-11-11T01:00:00Z",
"exchange_ids": [
1,
2
],
"aggregation_interval": "1m",
"aggregation_timezone": "UTC",
"limit": 200,
"cursor": null
}'
{
"base_token_address": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"quote_token_address": "a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"meta": {
"chain_id": 1,
"request_window": {
"from_block": null,
"to_block": null,
"from_timestamp": "2025-11-11T00:00:00Z",
"to_timestamp": "2025-11-11T01:00:00Z"
},
"filters": {
"exchange_ids": [
1,
2
],
"pool_uids": []
}
},
"data": [
{
"chain_id": 1,
"pool_uid": "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000",
"exchange_id": 1,
"type_id": 201,
"first_block_number": 18930100,
"first_block_time": "2025-11-11T00:05:11.000Z",
"first_tx_index": 42,
"first_log_index": 18,
"last_block_number": 18930188,
"last_block_time": "2025-11-11T00:58:02.000Z",
"last_tx_index": 17,
"last_log_index": 3,
"bucket_start": "2025-11-11T00:00:00.000Z",
"bucket_seconds": 3600,
"token_in": "c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"token_out": "a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"open": "3010.112233445566778899",
"high": "3033.998877665544332211",
"low": "3008.001122334455667788",
"close": "3025.219821481234567890",
"volume_in": "420.000000000000000000",
"volume_out": "1269000.000000000000000000",
"trades_count": 128,
"_tracing_id": "0404000000000000000000000000000000000001",
"_created_at": "2025-11-11T01:00:05.000Z",
"_updated_at": "2025-11-11T01:00:05.000Z"
}
],
"cursor": null,
"count": 1
}