> ## 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.

# Historic Data

> Daily L2 order book snapshots as Parquet files on S3

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/
```

Files are also accessible over HTTPS:

```
https://kuru-l2-snapshots.s3.amazonaws.com/
```

## File Layout

Files are partitioned by market address and date:

```
market={market}/date={YYYY-MM-DD}/l2_book_snapshots.parquet
```

**Example:**

```
market=0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/date=2025-11-24/l2_book_snapshots.parquet
```

## Schema

Each row in the Parquet file represents a single L2 snapshot:

| Column        | Type     | Description                               |
| ------------- | -------- | ----------------------------------------- |
| `id`          | `string` | Unique snapshot identifier                |
| `market`      | `string` | Market contract address (lowercase)       |
| `blockNumber` | `int64`  | Block number at snapshot time             |
| `timestamp`   | `int64`  | Block timestamp (Unix epoch seconds, UTC) |
| `bids`        | `string` | JSON array of bid price levels            |
| `asks`        | `string` | JSON array of ask price levels            |
| `bidCount`    | `int32`  | Number of bid levels in the snapshot      |
| `askCount`    | `int32`  | Number of ask levels in the snapshot      |

Price levels in `bids` and `asks` use `1e18` price precision. Sizes are stored in the market's size precision.

## Reading with Python

```python theme={null}
import pandas as pd

df = pd.read_parquet(
    "https://kuru-l2-snapshots.s3.amazonaws.com/"
    "market=0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/"
    "date=2025-11-24/l2_book_snapshots.parquet"
)
print(df.head())
```

Or with `pyarrow` directly:

```python theme={null}
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/"
    "market=0xf39c4fd5465ea2dd7b0756cebc48a258b34febf3/"
    "date=2025-11-24/l2_book_snapshots.parquet",
    filesystem=s3,
)
```
