> Documentation index: https://pmdata.dev/llms.txt. Full docs in one file: https://pmdata.dev/llms-full.txt

# Overview

Source: https://pmdata.dev/docs/schemas/overview

> PMData Parquet schemas, shared fields, and timestamp conventions.

PMData historical data is delivered as Apache Parquet files. Schema pages define the fields and row semantics of each downloaded file.

## Available schemas

| Schema | Data type | Description | Use case |
| --- | --- | --- | --- |
| [L2](https://pmdata.dev/docs/schemas/l2) | `l2` | Incremental L2 order book and market events | Order book replay and liquidity analysis |
| [Trades](https://pmdata.dev/docs/schemas/trades) | `trades` | Polymarket WebSocket trade executions | Price, volume, and trade-flow analysis |
| [On-Chain Fills](https://pmdata.dev/docs/schemas/onchain-trades) | `onchain_fills` | Polygon fills with maker and taker wallets | Wallet and on-chain flow analysis |
| [Chainlink Streams](https://pmdata.dev/docs/schemas/chainlink) | `streams` | Raw price data received from the Chainlink WebSocket stream, not the Polymarket proxy. | Reference-price and latency analysis |
| [Chainlink TWAP](https://pmdata.dev/docs/schemas/chainlink) | `streams_twap30s`, `streams_twap60s` | TWAP 30s/60s data received from the Chainlink WebSocket stream. | Resolution and benchmark analysis |
| [Markets catalog](https://pmdata.dev/docs/schemas/markets-catalog) | — | Polymarket markets PMData recorded, with the UTC dates it has L2 data for. Free, no API key. | Finding markets and dates to download |

## Common fields

Polymarket WebSocket files in the `l2` and `trades` schemas share these fields:

| Field | Type | Description |
| --- | --- | --- |
| `market_slug` | `string` | Polymarket `market_slug`. |
| `timestamp` | `timestamp[us]` | Polymarket event timestamp. |
| `local_timestamp` | `timestamp[us]` | PMData receive timestamp. |
| `event_type` | `string` | Source event represented by the row. |

On-Chain Fills and Chainlink use source-specific fields described on their schema pages.

## Timestamps

All timestamps use UTC and microsecond precision.

- `timestamp` in L2 and Trades is the timestamp supplied by Polymarket.
- `local_timestamp` is when the PMData collector received the WebSocket event.
- `timestamp` in On-Chain Fills is the Polygon block timestamp.
- `observationsTimestamp` in Chainlink is the source observation time.
- `receiveMicrosecondTimestamp` is when PMData received the Chainlink report.

The difference between a source timestamp and its PMData receive timestamp represents delivery and processing latency.

## File conventions

- L2 contains several event types in one schema. Fields that do not apply to a row's `event_type` are null.
- Order book prices and sizes use Parquet list columns.
- Chainlink price values are stored as scaled integers in string columns. See the [Chainlink schema](https://pmdata.dev/docs/schemas/chainlink).
