📦 Datasets

Limit Order Book Snapshot 50

Fifty-level order book snapshots derived from the full limit order book, recording the top 50 bid and ask levels at one-minute intervals.

Limit Order Book Snapshot 50

Overview

The Limit Order Book Snapshot 50 (T-LIMITBOOK_SNAPSHOT_50) data type provides periodic snapshots of the top 50 bid and ask price levels derived from the full limit order book (T-LIMITBOOK_FULL). Snapshots are emitted at one-minute intervals from the incremental book stream and are available as per-symbol CSV files and per-exchange Parquet artifacts.

File Organization

Limit Order Book Snapshot 50 data is organized in the coinapi bucket using the structure below.

T-LIMITBOOK_SNAPSHOT_50/
└── D-{YYYYMMDD | YYYYMMDDHH}/
    └── E-[EXCHANGE]/
        └── IDDI-[IDENTIFIER]+SC-[COINAPI_SYMBOL_ID]+S-[EXCHANGE_SYMBOL].csv.gz

Example:

T-LIMITBOOK_SNAPSHOT_50/D-2026032400/E-COINBASE/IDDI-12345+SC-COINBASE_SPOT_BTC_USD+S-BTC__002DUSD.csv.gz

Where:

  • T-LIMITBOOK_SNAPSHOT_50: Indicates the data type (50-level order book snapshots)
  • D-{YYYYMMDD | YYYYMMDDHH} defines the time partition:
    • YYYYMMDD in coinapi → legacy daily partitions published before 2026-06-09
    • YYYYMMDDHH in coinapi → hourly partitions for data published on or after 2026-06-09
  • E-[EXCHANGE]: Exchange identifier
  • IDDI-[IDENTIFIER]: CoinAPI internal identifier
  • SC-[COINAPI_SYMBOL_ID]: CoinAPI symbol identifier
  • S-[EXCHANGE_SYMBOL]: Symbol as identified by the exchange

A Parquet artifact (one file per exchange per date or hour) is also available at:

T-LIMITBOOK_SNAPSHOT_50/D-{YYYYMMDD | YYYYMMDDHH}/E-[EXCHANGE].parquet

[!NOTE]

This dataset is available only in the coinapi bucket. It is not included in coinapi-daily-tail.

File Format

CSV files are comma-separated and compressed with gzip. Each row represents one snapshot of the order book at a point in time, with up to 50 levels on each side.

Data Fields

Column NameTypeNullableDescription
exchange_idstringNoExchange identifier extracted from the object path.
symbol_exchange_idstringNoExchange-native symbol identifier.
symbol_idstringNoCoinAPI symbol identifier.
symbol_id_intintegerNoNumeric CoinAPI symbol identifier used by downstream systems.
date_strstringNoDate token from the path (YYYYMMDD or YYYYMMDDHH).
time_exchangestringNoExchange event time-of-day for the snapshot row.
time_coinapistringNoCoinAPI receive time-of-day for the snapshot row.
asks[0..49].pricedecimalYesAsk prices from the best ask outward, one column per level (50 columns total).
asks[0..49].sizedecimalYesAsk sizes corresponding to each ask price level (50 columns total).
bids[0..49].pricedecimalYesBid prices from the best bid outward, one column per level (50 columns total).
bids[0..49].sizedecimalYesBid sizes corresponding to each bid price level (50 columns total).

[!NOTE]

Level columns are zero-indexed: asks[0].price is the best ask, asks[1].price is the next best ask, and so on through asks[49].price. Levels that are not present at snapshot time are empty.

Example Data

exchange_id,symbol_exchange_id,symbol_id,symbol_id_int,date_str,time_exchange,time_coinapi,asks[0].price,asks[0].size,...,bids[0].price,bids[0].size,...
COINBASE,BTC-USD,COINBASE_SPOT_BTC_USD,12345,20260324,13:15:00.0000000,13:15:00.0020000,67234.50,1.245,...,67234.10,0.983,...

Data Collection Process

  1. We maintain a real-time connection to each supported exchange and build an incremental order book from T-LIMITBOOK_FULL data.
  2. Every minute, the current top 50 bid and ask levels are captured and written as a snapshot row per symbol.
  3. Data is uploaded to the coinapi bucket as hourly partitions for data published on or after 2026-06-09. Legacy daily partitions published before that date remain in coinapi.

Corner Cases and Special Considerations

  1. Missing levels: If the exchange order book has fewer than 50 levels on a side at snapshot time, the corresponding level columns will be empty.
  2. Derived data: Snapshots are derived from T-LIMITBOOK_FULL. Exchanges not covered by full limit order book data are not included.
  3. Snapshot interval: Snapshots are recorded at one-minute intervals from the incremental stream, not necessarily aligned to wall-clock minutes.

Snowflake Access

This dataset is also available via Snowflake under:

APIBRICKS_COINAPI_SHARED.LIMITBOOK_SNAPSHOT_50.LIMITBOOK_SNAPSHOT_50

The Snowflake table uses the same column schema as the Parquet artifact, enriched with exchange and symbol metadata.

Service StatusGitHub SDK