Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kuru.io/llms.txt

Use this file to discover all available pages before exploring further.

Kuru publishes daily L2 order book snapshots for all markets as Parquet files on S3. These files are publicly accessible and can be used for backtesting, research, and analysis.

Bucket

s3://kuru-l2-snapshots/l2-snapshots/
Files are also accessible over HTTPS:
https://kuru-l2-snapshots.s3.amazonaws.com/l2-snapshots/

File Layout

Files are partitioned by market address and date:
l2-snapshots/{market}/{market}_{YYYY-MM-DD}.parquet
Example:
l2-snapshots/0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3_2025-11-24.parquet

Schema

Each row in the Parquet file represents a single L2 snapshot:
ColumnTypeDescription
idstringUnique snapshot identifier
marketstringMarket contract address (lowercase)
blockNumberint64Block number at snapshot time
timestampint64Block timestamp (Unix epoch seconds, UTC)
bidsstringJSON array of bid price levels
asksstringJSON array of ask price levels
bidCountint32Number of bid levels in the snapshot
askCountint32Number of ask levels in the snapshot

Reading with Python

import pandas as pd

df = pd.read_parquet(
    "https://kuru-l2-snapshots.s3.amazonaws.com/l2-snapshots/"
    "0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/"
    "0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3_2025-11-24.parquet"
)
print(df.head())
Or with pyarrow directly:
import pyarrow.parquet as pq
import pyarrow.fs as pafs

s3 = pafs.S3FileSystem(region="us-east-1", anonymous=True)
table = pq.read_table(
    "kuru-l2-snapshots/l2-snapshots/"
    "0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/"
    "0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3_2025-11-24.parquet",
    filesystem=s3,
)