The MBP-1, BBO and TBBO schemas, as well as the CMBP-1, CBBO, and TCBBO schemas, all provide top of book data with different update space and sampling intervals. Learn more about their differences in our MBP-1 vs. BBO vs. TBBO schemas guide.
Schemas and data formats
Learn about the schemas (data formats) supported by Databento and get a list of fields (data dictionary) for each.
What's a schema?
Databento supports over 15 different data formats of market data. When you make a request from Databento, you must usually specify which data formatāalso called a schemaāto receive your data in.
Supported schemas and their fields
A schema represents a collection of data fields. The following is a summary of schemas supported by Databento. Click on any schema below for its details, the fields included, and a data dictionary that defines each field.
Schema | Schema IDs | Common names used by third parties |
---|---|---|
MBO | mbo |
L3, Market by order, full order book, tick data |
MBP-10 | mbp-10 |
L2, Market by price, market depth |
MBP-1 / CMBP-1 | mbp-1 / cmbp-1 |
L1, Top of book, trades and quotes |
BBO / CBBO | bbo-1s , bbo-1m / cbbo-1s , cbbo-1m |
L1, Top of book sampled in time space, subsampled BBO and trades |
TBBO / TCBBO | tbbo / tcbbo |
L1, Top of book sampled in trade space |
Trades | trades |
L1, Last sale, time and sales, tick-by-tick trades |
OHLCV | ohlcv-1s , ohlcv-1m , ohlcv-1h , ohlcv-1d |
L0, OHLCV bars, aggregates |
Definition | definition |
L0, Security definitions, reference data, symbol list |
Imbalance | imbalance |
L3, Auction imbalance, order imbalance, NOII |
Statistics | statistics |
L0, Session or daily statistics, end-of-day summary, open interest |
Status | status |
L0, Market or trading state/status |
Market by order (MBO) provides every order book event across every price level, keyed by its order ID. This allows you to determine the queue position of each order and provides the highest level of granularity available.
Market by price (MBP-10) provides every order book event across the top ten price levels, keyed by price. This includes every trade and changes to aggregate market depth, alongside total size and order count at the top ten price levels.
Market by price (MBP-1) provides every order book event that updates the top price level, also known as the best bid and offer (BBO). This includes every trade and changes to book depth, alongside total size and order count at the BBO.
Consolidated market by price (CMBP-1) provides every order book event that updates the top price level across all venues in the dataset, also known as the consolidated best bid and offer (CBBO). This includes every trade and changes to book depth, alongside total size and publisher attribution at the CBBO.
BBO on trade (TBBO) provides every trade event alongside the BBO immediately before the effect of each trade. This is a subset of MBP-1.
Consolidated BBO on trade (TCBBO) provides every trade event alongside the consolidated BBO immediately before the effect of each trade. This is a subset of CMBP-1.
BBO on interval (BBO) provides the last best bid, best offer, and sale at 1-second or 1-minute intervals. This is a subset of MBP-1.
Consolidated BBO on interval (CBBO) provides the consolidated last best bid, best offer, and sale at 1-second or 1-minute intervals. This is a subset of CMBP-1.
Trades provides every trade event. This is a subset of MBO.
Aggregate bars (OHLCV) provide open, high, low, and close prices and total volume aggregated from trades at 1-second, 1-minute, 1-hour, or 1-day intervals.
Instrument definitions provide reference information about each instrument, which includes properties like symbol, instrument name, expiration date, listing date, tick size, and strike price.
Imbalance provides auction imbalance data such as paired quantity, total quantity, and auction status.
Statistics provides official summary statistics of each instrument that's published by the venue. This generally includes properties like daily volume, open interest, preliminary and final settlement prices, and official open, high, and low prices.
Status provides updates about the trading session, such as halts, pauses, short-selling restrictions, auction start, and other matching engine statuses. The granularity and frequency of these updates vary by publisher and dataset.
See also
Why are Databento's naming conventions different from third parties?
Databento avoids terms like Level 1 (L1) or Level 2 (L2) due to their inconsistent application. For example, some vendors refer to both MBO and MBP data as L2, while others strictly refer to MBP data as L2. More misleadingly, many vendors refer to MBO data as L3, even though this doesn't follow any major trading venue's naming convention.
Likewise, the term tick originates from the concept of a ticker tape and only refers to trades, not resting limit orders. This becomes a source of confusion when vendors use the term tick data to refer to either MBO or MBP data when it should be strictly reserved for trades data.
See alsoFor more Databento naming conventions and key terminology, visit our FAQs.
Special cases
Our MBO, MBP-1 and MBP-10 schemas adopt the following conventions in these special cases:
- Combining MBO with trades feed: Typically, MBO data provides the highest granularity, but certain venues enhance their trades feed with additional information like trades not reflected in the MBO feed, consolidated NBBO, and more. In these cases, we document the exception in our Venues and datasets section and recommend that you request both our MBO and trades schemas if you need the highest level of granularity.
Deriving one schema from another
Databento captures market data directly from the source and is only subscribed to the most granular feed(s) available from each publisher. Order book feeds are usually normalized into our MBO schema and top-of-book feeds are usually normalized into our MBP-1 schema.
To ensure consistency between schemas, Databento doesn't source the less granular schemas from separate feeds. Instead, Databento derives all of the less granular schemas starting from the most granular schema available. As you may have noticed from our schema's descriptions, the majority of themāMBP, BBO, TBBO, trades, and OHLCVāare simply derived from MBO data.
Likewise, you can also derive one schema from another losslessly on the client side, and you should expect your self-derived data to be consistent with ours. For example:
- MBP-1, BBO, and Trades can be derived from MBP-10.
- BBO, TBBO, and Trades can be derived from MBP-1.
- Trades and OHLCV can be derived from TBBO.
- OHLCV can be derived from Trades.
Deriving your own schema is useful for various reasons:
- The data needs to be defined differently for your application.
- Our derivation differs from those of another vendor and you want transparency.
- You can cut down the number of API requests made to Databento by getting the most granular schema that you need and deriving the rest yourself.
- Databento provides MBP-10 merely as a convenience feature. You can reduce bandwidth requirements, latency, and transfer time significantly by deriving MBP-10 yourself from MBO.
This is especially relevant for OHLCV, which can vary depending on how trade breaks or market halts are managed, how the start and end of each time interval are determined, and how illiquid instruments are handled if there are no trades over a given time interval. If these considerations are trivial for your use case, Databento offers OHLCV data in multiple time intervals (seconds, minutes, hours, and daily) for your convenience.
The table below summarizes which schemas can be derived from the another. Each row represents the original schema, and each column represents schemas that you can derive from the original schema.
Schema | MBO | MBP-10 | MBP-1 | CMBP-1 | TBBO | TCBBO | BBO-1s | BBO-1m | CBBO-1s | CBBO-1m | Trades | OHLCV-1s | OHLCV-1m | OHLCV-1h | OHLCV-1d |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MBO | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā | ||||
MBP-10 | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā | |||||
MBP-1 | ā | ā | ā | ā | ā | ā | ā | ā | ā | ||||||
CMBP-1 | ā | ā | ā | ā | ā | ā | ā | ā | ā | ||||||
TBBO | ā | ā | ā | ā | ā | ā | |||||||||
TCBBO | ā | ā | ā | ā | ā | ā | |||||||||
BBO-1s | ā | ā | |||||||||||||
BBO-1m | ā | ||||||||||||||
CBBO-1s | ā | ā | |||||||||||||
CBBO-1m | ā | ||||||||||||||
Trades | ā | ā | ā | ā | ā | ||||||||||
OHLCV-1s | ā | ā | ā | ā | |||||||||||
OHLCV-1m | ā | ā | ā | ||||||||||||
OHLCV-1h | ā | ā | |||||||||||||
OHLCV-1d | ā |
See alsoLearn how to resample trades data to other intervals, such as 5-minute intervals, from our bar aggregation tutorial.
You can also learn how to generate MBP-10 from MBO data using an order book, as seen in our limit order book construction tutorial.
Market by order (MBO)
Market by order (MBO) provides every order book event across every price level, keyed by its order ID. This allows you to determine the queue position of each order and provides the highest level of granularity available.
MBO data includes all trades, fills, adds, cancels, modifies (or replaces), book clear events, and, depending on the venue and dataset, other special order events. It is often called "L3 data".
Fields (mbo
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 160 in the MBO schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Can be Add, Cancel, Modify, cleaR book, Trade, Fill, or None. See Action. |
side |
char | The side that initiates the event. Can be Ask for a sell order (or sell aggressor in a trade), Bid for a buy order (or buy aggressor in a trade), or None where no side is specified. See Side. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
channel_id |
uint8_t | The channel ID assigned by Databento as an incrementing integer starting at zero. |
order_id |
uint64_t | The order ID assigned by the venue. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
Snapshots
For the convenience of managing state and recovery, Databento provides a synthetic snapshot of the order book at the start of each UTC day in our historical MBO data and periodic book snapshots in our real-time MBO data. The mechanics of these snapshots is detailed here.
See alsoLearn more about the different action types and how to manage order state with respect to each action from our State management of resting orders tutorial.
Also learn how to construct a limit order book from MBO data from our limit order book construction tutorial.
MBO data normalization differs slightly from one venue or dataset to another. Edge cases and differences are documented separately for each venue in the Venues and datasets section.
Market by price (MBP-10)
MBP-10 (market by price) provides every order book event across the top ten price levels, keyed by price. This includes every trade and changes to aggregate market depth, alongside total size and order count at the top ten price levels.
This is often called "L2 data".
Fields (mbp-10
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 10 in the MBP-10 schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Can be Add, Cancel, Modify, cleaR book, or Trade. See Action. |
side |
char | The side that initiates the event. Can be Ask for a sell order (or sell aggressor in a trade), Bid for a buy order (or buy aggressor in a trade), or None where no side is specified. See Side. |
depth |
uint8_t | The book level where the update event occurred. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
bid_px_N |
int64_t | The bid price at level N (top level if N = 00) where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_N |
int64_t | The ask price at level N (top level if N = 00) where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_N |
uint32_t | The bid size at level N (top level if N = 00). |
ask_sz_N |
uint32_t | The ask size at level N (top level if N = 00). |
bid_ct_N |
uint32_t | The bid order count at level N (top level if N = 00). |
ask_ct_N |
uint32_t | The ask order count at level N (top level if N = 00). |
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoIt is possible to construct MBP-10 yourself from MBO data if you want more price levels or prefer to reduce your bandwidth use. Learn how to construct a limit order book from MBO data from our limit order book construction tutorial.
Market by price (MBP-1)
MBP-1 (market by price) provides every order book event that updates the top price level, also known as the best bid and offer (BBO). This includes every trade and changes to book depth, alongside total size and order count at the BBO.
This is often called "L1 data".
Fields (mbp-1
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 1 in the MBP-1 schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Can be Add, Cancel, Modify, cleaR book, or Trade. See Action. |
side |
char | The side that initiates the event. Can be Ask for a sell order (or sell aggressor in a trade), Bid for a buy order (or buy aggressor in a trade), or None where no side is specified. See Side. |
depth |
uint8_t | The book level where the update event occurred. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_ct_00 |
uint32_t | The bid order count at the top level. |
ask_ct_00 |
uint32_t | The ask order count at the top level. |
See alsoSome venues or data feeds may publish two-sided BBO changes in a single update. In cases like this where the
side
is indeterminate, we'll also use the side codeN
. Exceptions and edge cases like this can be found in our Venues and datasets section.
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoMBP-1 has many similarities to the TBBO and BBO schemas. The main distinction is that MBP-1 is in book update space, while TBBO is in trade space, and BBO is in time space. Learn about the differences between each in our MBP-1 vs. TBBO vs. BBO schemas guide.
Consolidated market by price (CMBP-1)
CMBP-1 (consolidated market by price) provides every order book event that updates the top price level across all venues in the dataset, also known as the consolidated best bid and offer (CBBO). This includes every trade and changes to book depth, alongside total size and publisher attribution at the CBBO.
This is often called "L1 data".
Fields (cmbp-1
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 177 in the CMBP-1 schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Can be Add, Cancel, Modify, cleaR book, or Trade. See Action. |
side |
char | The side that initiates the event. Can be Ask for a sell order (or sell aggressor in a trade), Bid for a buy order (or buy aggressor in a trade), or None where no side is specified. See Side. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best bid. See Publishers. |
ask_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best ask. See Publishers. |
See alsoSome venues or data feeds may publish two-sided CBBO changes in a single update. In cases like this where the
side
is indeterminate, we'll also use the side codeN
. Exceptions and edge cases like this can be found in our Venues and datasets section.
CMBP-1 publisher
The value used to populate the publisher_id
field will vary depending on the action
.
For Trades, publisher_id
will correspond to the venue the trade executed on.
For all other actions, publisher_id
will be the consolidated publisher ID for the dataset.
In all scenarios, bid_pb_00
and ask_pb_00
will represent the venues showing the NBBO.
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoCMBP-1 has many similarities to the TCBBO and CBBO schemas. The main distinction is that CMBP-1 is in book update space, while TCBBO is in trade space, and CBBO is in time space. Learn about the differences between each in our CMBP-1 vs. TCBBO vs. CBBO schemas guide.
BBO on trade (TBBO)
BBO on trade (TBBO) provides every trade event alongside the BBO immediately before the effect of each trade. This is a subset of MBP-1.
Fields (tbbo
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 1 in the TBBO schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Always Trade in the TBBO schema. See Action. |
side |
char | The side that initiates the trade. Can be Ask for a sell aggressor in a trade, Bid for a buy aggressor in a trade, or None where no side is specified. See Side. |
depth |
uint8_t | The book level where the update event occurred. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_ct_00 |
uint32_t | The bid order count at the top level. |
ask_ct_00 |
uint32_t | The ask order count at the top level. |
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoTBBO has many similarities to the MBP-1 and BBO schemas. The main distinction is that TBBO is in trade space, while MBP-1 is in book update space, and BBO is in time space. In particular, the
action
type of TBBO is always Trade. Learn about the differences between each in our MBP-1 vs. TBBO vs. BBO schemas guide.
Consolidated BBO on trade (TCBBO)
Consolidated BBO on trade (TCBBO) provides every trade event alongside the consolidated BBO immediately before the effect of each trade. This is a subset of CMBP-1.
Fields (tcbbo
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 194 in the TCBBO schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Always Trade in the TCBBO schema. See Action. |
side |
char | The side that initiates the event. Can be Ask for a sell aggressor in a trade, Bid for a buy aggressor in a trade, or None where no side is specified. See Side. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best bid. See Publishers. |
ask_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best ask. See Publishers. |
TCBBO publisher
The publisher_id
field will correspond to the venue the trade executed on.
bid_pb_00
and ask_pb_00
will represent the individual venues showing the NBBO.
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoTCBBO has many similarities to the CMBP-1 and CBBO schemas. The main distinction is that TCBBO is in trade space, while CMBP-1 is in book update space, and CBBO is in time space. In particular, the
action
type of TBBO is always Trade. Learn about the differences between each in our CMBP-1 vs. TCBBO vs. CBBO schemas guide.
BBO on interval (BBO)
BBO on interval (BBO) provides the last best bid, best offer, and sale at 1-second or 1-minute intervals. This is a subset of MBP-1.
Databento adopts the following convention for BBO:
- The time interval is indicated by the schema ID's suffix:
-1s
for 1-second and-1m
for 1-minute. - If no trade or BBO update occurs within the interval, no record is printed.
- If a BBO update occurs but no trade takes place within the interval, the last sale information is forward-filled from the previous interval.
- If no BBO update occurs but a trade takes place within the interval, the BBO information is forward-filled from the previous interval.
Fields (bbo-1s
and bbo-1m
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The end timestamp of the interval, clamped to the second/minute boundary, expressed as the number of nanoseconds since the UNIX epoch. |
ts_event |
uint64_t | The matching-engine-received timestamp of the last trade for the instrument expressed as the number of nanoseconds since the UNIX epoch. Will be UNDEF_TIMESTAMP in cases where there was no last trade in the session. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Can be either 195 (BBO-1s ) or 196 (BBO-1m ). See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
side |
char | The side that initiated the last trade. Can be Ask for a sell aggressor in a trade, Bid for a buy aggressor in a trade, or None where no side is specified. See Side. |
price |
int64_t | The last trade price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. Will be UNDEF_PRICE if there was no last trade in the session. See Prices. |
size |
uint32_t | The last trade quantity. Will be 0 if there was no last trade in the session. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
sequence |
uint32_t | The message sequence number assigned at the venue of the last update. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_ct_00 |
uint32_t | The bid order count at the top level. |
ask_ct_00 |
uint32_t | The ask order count at the top level. |
Consolidated BBO on interval (CBBO)
Consolidated BBO on interval (CBBO) provides the consolidated last best bid, best offer, and sale at 1-second or 1-minute intervals. This is a subset of CMBP-1.
Databento adopts the following convention for CBBO:
- The time interval is indicated by the schema ID's suffix:
-1s
for 1-second and-1m
for 1-minute. - If no trade or CBBO update occurs within the interval, no record is printed.
- If a CBBO update occurs but no trade takes place within the interval, the last sale information is forward-filled from the previous interval.
- If no CBBO update occurs but a trade takes place within the interval, the CBBO information is forward-filled from the previous interval.
Fields (cbbo-1s
and cbbo-1m
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The end timestamp of the interval, clamped to the second/minute boundary. |
ts_event |
uint64_t | The matching-engine-received timestamp of the last trade for the instrument expressed as the number of nanoseconds since the UNIX epoch. Will be UNDEF_TIMESTAMP in cases where there was no last trade in the session. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Can be either 192 (CBBO-1s ) or 193 (CBBO-1m ). See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
side |
char | The side that initiated the last trade. Can be Ask for a sell aggressor in a trade, Bid for a buy aggressor in a trade, or None where no side is specified. See Side. |
price |
int64_t | The last trade price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. Will be UNDEF_PRICE if there was no last trade in the session. See Prices. |
size |
uint32_t | The last trade quantity. Will be 0 if there was no last trade in the session. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
bid_px_00 |
int64_t | The bid price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ask_px_00 |
int64_t | The ask price at the top level where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
bid_sz_00 |
uint32_t | The bid size at the top level. |
ask_sz_00 |
uint32_t | The ask size at the top level. |
bid_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best bid. See Publishers. |
ask_pb_00 |
uint16_t | The publisher ID indicating the venue containing the best ask. See Publishers. |
CBBO publisher
The publisher_id
field will always be the consolidated publisher ID for the dataset.
bid_pb_00
and ask_pb_00
will represent the individual venues showing the NBBO at the end of the interval.
Implementation differences between clients and encodings
Bid and ask depth messages (fields starting with bid_
and ask_
) are structured differently in the C++ and Rust clients, the Python record interface, and JSON data. Instead of using the _N
suffix, they're stored in an array of structures named levels, with the top-of-book at index 0
.
For example, in C++, levels[5].bid_px
corresponds to bid_px_05
in the Python DataFrame API and CSV format.
See alsoCBBO has many similarities to the CMBP-1 and TCBBO schemas. The main distinction is that CBBO is in time space, while CMBP-1 is in book update space, and TCBBO is in trade space. Learn about the differences between each in our CMBP-1 vs. TCBBO vs. CBBO schemas guide.
Trades
Trades provides every trade event. This is a subset of MBO.
This is often referred to as "time and sales", "last sale," or "tick data."
Fields (trades
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 0 in the trades schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
char | The event action. Always Trade in the trades schema. See Action. |
side |
char | The side that initiates the trade. Can be Ask for a sell aggressor in a trade, Bid for a buy aggressor in a trade, or None where no side is specified. See Side. |
depth |
uint8_t | The book level where the update event occurred. |
price |
int64_t | The order price where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
size |
uint32_t | The order quantity. |
flags |
uint8_t | A bit field indicating event end, message characteristics, and data quality. See Flags. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
Aggregate bars (OHLCV)
Aggregate bars (OHLCV) provide open, high, low, and close prices and total volume aggregated from trades at 1-second, 1-minute, 1-hour, or 1-day intervals.
Databento adopts the following convention for OHLCV:
- The time interval is indicated by the schema ID's suffix:
-1s
for 1-second,-1m
for 1-minute,-1h
for 1-hour, and-1d
for 1-day. - The
ts_event
timestamp marks the start of each interval. - If no trade occurs within the interval, no record is printed.
Fields (ohlcv-1s
, ohlcv-1m
, ohlcv-1h
, ohlcv-1d
)
Field | Type | Description |
---|---|---|
ts_event |
uint64_t | The inclusive start time of the bar aggregation period based on the ts_recv from trade messages expressed as the number of nanoseconds since the UNIX epoch. |
rtype |
uint8_t | A sentinel value indicating the record type. Can be 32 (OHLCV-1s ), 33 (OHLCV-1m ), 34 (OHLCV-1h ), or 35 (OHLCV-1d ). See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
open |
int64_t | The open price for the bar where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
high |
int64_t | The high price for the bar where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
low |
int64_t | The low price for the bar where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
close |
int64_t | The close price for the bar where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
volume |
uint64_t | The total volume traded during the aggregation period. |
Other sampling intervals
If you need other sampling intervals, we recommend that you construct OHLCV aggregates from trades
data or subsample the OHLCV schema with the
nearest resolution on client side. For example, if you need 5-minute OHLCV aggregates, you can subsample this from ohlcv-1m
.
Best practices
It's recommended that you construct OHLCV aggregates yourself from trades
data if your application can handle the larger volume of data.
There will always be slight implementation differences in how a vendor constructs their OHLCV aggregates. These differences include how trade
conditions and retroactive trade breaks are handled, which timestamp is used for the event, and how precisely a vendor closes or publishes
the aggregate bar after the end of the interval. Daily OHLCV aggregates may also differ by whether best bid or offer prices are used to
compute the highs and lows, and whether the volumes should include block trades.
Constructing OHLCV aggregates yourself ensures additional transparency into how the aggregates are computed and consistency within your data.
Our ohlcv-1d
schema is based on UTC dates.
If you are interested in daily data based on exchange session hours, you may need to request data for a more granular OHLCV schema and aggregate the data yourself.
See also
ohlcv-1d
is based entirely on prices and volumes from the electronic trading session and will be consistent with prices and volumes observed from aggregating ourtrades
data. However, this may differ from official settlement prices and volumes published by the venue, which could include block trades, OTC transactions, and other effects. For official settlement data and more details about this, see our statistics schema.
Instrument definitions
Instrument definitions provide point-in-time reference information about each instrument, which includes properties like symbol, instrument name, expiration date, listing date, tick size, and strike price.
Fields (definition
)
Field |
Type |
Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 19 in the definition schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. |
instrument_id |
uint32_t | The numeric instrument ID. |
raw_symbol |
char[symbol_cstr_len] | The instrument name (symbol) provided by the publisher, where symbol_cstr_len is specified in the Metadata. |
security_update_action |
char | Indicates if the instrument definition has been Added, Modified, or Deleted. |
instrument_class |
char | The classification of the instrument. See Instrument class. |
min_price_increment |
int64_t | The minimum constant tick for the instrument in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
display_factor |
int64_t | The multiplier to convert the venueās display price to the conventional price in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
expiration |
uint64_t | The last eligible trade time expressed as a number of nanoseconds since the UNIX epoch. May only have date precision depending on the publisher. |
activation |
uint64_t | The time of instrument activation expressed as a number of nanoseconds since the UNIX epoch. May only have date precision depending on the publisher. |
high_limit_price |
int64_t | The allowable high limit price for the trading day in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
low_limit_price |
int64_t | The allowable low limit price for the trading day in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
max_price_variation |
int64_t | The differential value for price banding in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
unit_of_measure_qty |
int64_t | The contract size for each instrument, in combination with unit_of_measure , in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
min_price_increment_amount |
int64_t | The value currently under development by the venue. Converted to units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
price_ratio |
int64_t | The value used for price calculation in spread and leg pricing in units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
inst_attrib_value |
int32_t | A bitmap of instrument eligibility attributes. |
underlying_id |
uint32_t | The instrument_id of the first underlying instrument. |
raw_instrument_id |
uint64_t | The instrument ID assigned by the publisher. May be the same as instrument_id . |
market_depth_implied |
int32_t | The implied book depth on the price level data feed. |
market_depth |
int32_t | The (outright) book depth on the price level data feed. |
market_segment_id |
uint32_t | The market segment of the instrument. |
max_trade_vol |
uint32_t | The maximum trading volume for the instrument. |
min_lot_size |
int32_t | The minimum order entry quantity for the instrument. |
min_lot_size_block |
int32_t | The minimum quantity required for a block trade of the instrument. |
min_lot_size_round_lot |
int32_t | The minimum quantity required for a round lot of the instrument. Multiples of this quantity are also round lots. |
min_trade_vol |
uint32_t | The minimum trading volume for the instrument. |
contract_multiplier |
int32_t | The number of deliverables per instrument, i.e. peak days. |
decay_quantity |
int32_t | The quantity that a contract will decay daily, after decay_start_date has been reached. |
original_contract_size |
int32_t | The fixed contract value assigned to each instrument. |
appl_id |
int16_t | The channel ID assigned at the venue. |
maturity_year |
uint16_t | The calendar year reflected in the instrument symbol. |
decay_start_date |
uint16_t | The date at which a contract will begin to decay. |
channel_id |
uint16_t | The channel ID assigned by Databento as an incrementing integer starting at zero. |
currency |
char[4] | The currency used for price fields. |
settl_currency |
char[4] | The currency used for settlement, if different from currency . |
secsubtype |
char[6] | The strategy type of the spread. |
group |
char[21] | The security group code of the instrument. |
exchange |
char[5] | The exchange used to identify the instrument. |
asset |
char[11] | The underlying asset code (product code) of the instrument. |
cfi |
char[7] | The ISO standard instrument categorization code. |
security_type |
char[7] | The type of the instrument, e.g. FUT for future or future spread. |
unit_of_measure |
char[31] | The unit of measure for the instrumentās original contract size, e.g. USD or LBS. |
underlying |
char[21] | The symbol of the first underlying instrument. |
strike_price_currency |
char[4] | The currency used for strike_price . |
strike_price |
int64_t | The exercise price if the instrument is an option. Converted to units of 1e-9, i.e. 1/1,000,000,000 or 0.000000001. |
match_algorithm |
char | The matching algorithm used for the instrument, typically FIFO. See Matching algorithm. |
main_fraction |
uint8_t | The price denominator of the main fraction. |
price_display_format |
uint8_t | The number of digits to the right of the tick mark, to display fractional prices. |
sub_fraction |
uint8_t | The price denominator of the sub fraction. |
underlying_product |
uint8_t | The product complex of the instrument. |
maturity_month |
uint8_t | The calendar month reflected in the instrument symbol. |
maturity_day |
uint8_t | The calendar day reflected in the instrument symbol, or 0. |
maturity_week |
uint8_t | The calendar week reflected in the instrument symbol, or 0. |
user_defined_instrument |
char | Indicates if the instrument is user defined: Yes or No. |
contract_multiplier_unit |
int8_t | The type of contract_multiplier . Either 1 for hours, or 2 for days. |
flow_schedule_type |
int8_t | The schedule for delivering electricity. |
tick_rule |
uint8_t | The tick rule of the spread. |
leg_count |
uint16_t | The number of legs in the strategy or spread. Will be 0 for outrights. |
leg_index |
uint16_t | The 0-based index of the leg (if any). |
leg_instrument_id |
uint32_t | The numeric ID assigned to the leg instrument. |
leg_raw_symbol |
char[symbol_cstr_len] | The leg instrument's raw symbol assigned by the publisher, where symbol_cstr_len is specified in the Metadata. |
leg_instrument_class |
char | The leg instrument's classification. See Instrument class. |
leg_side |
char | The side taken for the leg when buying the spread or strategy. |
leg_price |
int64_t | The tied price (if any) of the leg. Used for hedged strategies. |
leg_delta |
int64_t | The associated delta (if any) of the leg. Used for hedged strategies. |
leg_ratio_price_numerator |
int32_t | The numerator of the price ratio of the leg within the spread. |
leg_ratio_price_denominator |
int32_t | The denominator of the price ratio of the leg within the spread. |
leg_ratio_qty_numerator |
int32_t | The numerator of the quantity ratio of the leg within the spread. |
leg_ratio_qty_denominator |
int32_t | The denominator of the quantity ratio of the leg within the spread. |
leg_underlying_id |
uint32_t | The numeric ID of the leg instrument's underlying instrument. |
Instrument class
The instrument_class
field groups instruments into different classes of securities and derivatives.
Name | Value | Description |
---|---|---|
Bond | B |
A bond. |
Call | C |
A call option. |
Future | F |
A future. |
Stock | K |
A stock. |
Mixed spread | M |
A spread with legs of multiple instrument classes. |
Put | P |
A put option. |
Future spread | S |
A spread with future legs. |
Option spread | T |
A spread with options. |
FX spot | X |
A foreign exchange spot. |
Commodity spot | Y |
A commodity being traded for immediate delivery. |
Security type
The security_type
field classifies the type of instrument.
Name | Value | Description |
---|---|---|
Option on equity | OPT |
An option on equity or a spread with options on equities. |
Option on future | OOF |
An option on future or a spread with options on futures. |
Future | FUT |
A future or a spread on futures. |
Spreads | MLEG |
A spread with legs of multiple instrument classes. |
Interest rate swap | IRS |
An interest rate swap security. |
Matching algorithm
The matching_algorithm
field defines the type of matching algorithm used for the instrument.
Name | Value | Description |
---|---|---|
Undefined | |
A matching algorithm was not specified. |
FIFO | F |
First-in-first-out matching. |
Configurable | K |
A configurable match algorithm. |
Pro-Rata | C |
Trade quantity is allocated to resting orders based on a pro-rata percentage: resting order quantity divided by total quantity. |
FIFO with LMM | T |
Like FIFO, but with LMM allocations prior to FIFO allocations. |
Threshold Pro-Rata | O |
Like Pro-Rata, but includes a configurable allocation to the first order that improves the market. |
FIFO with Top Order and LMM | S |
Like FIFO with LMM, but includes a configurable allocation to the first order that improves the market. |
Threshold Pro-Rata with LMM | Q |
Like Threshold Pro-Rata, but includes a special priority to LMMs. |
Eurodollar Futures | Y |
Special variant used only for Eurodollar futures on CME. |
Time Pro-Rata | P |
A commodity being traded for immediate delivery. |
Institutional Prioritization | V |
A two-pass FIFO algorithm. The first pass fills the Institutional Group the aggressing order is associated with. The second pass matches orders without an Institutional Group association. |
Point-in-time instrument definitions
An important distinction of Databento's instrument definition data is that we usually provide it in point-in-time format like the rest of our market data.
In other words, the instrument definitions are timestamped to the nanosecond and treated as a time series, allowing you to simulate the sequence in which they arrived in real time. This is useful as it avoids lookahead and survivorship bias, and also allows you to backtest any strategy that trades instruments immediately as they become available intraday, such as new options strikes and new listings from IPOs.
If you're switching to Databento from another data provider, you may find this behavior different, as many data providers only give you a cumulative list of all instruments or daily updates on instrument definitions.
Snapshots
For publishers that do not provide a full list of instrument definitions at least daily, the historical API provides a snapshot of all active definitions at UTC midnight Monday through Friday. Therefore, any request for definitions for a 24-hour period beginning at UTC midnight is guaranteed to include definitions for all instruments active during that time period.
Instrument definitions on time series endpoints vs. reference data endpoints
Databento also provides other forms of reference information and static data, such as corporate actions, cross-symbology mappings, and security master data. However, these additional forms of reference data may be found on API endpoints other than our time series endpoints.
The reason that these are separated into different endpoints is that instrument definitions on our time series endpoints are those included with the primary source of data, which is usually a direct feed from a trading venue. On the other hand, other forms of reference data may originate from different secondary sources or need to be licensed separately from such direct feeds.
Databento generally provides ways for you to join and merge instrument definitions and other forms of reference data.
Strategies
One definition record is created for each leg of a strategy or spread.
The primary fields will be the same for each of these records, while the fields beginning with leg_
will have information about the particular leg.
Imbalance
Imbalance provides auction imbalance data such as paired quantity, total quantity, and auction status.
See alsoImbalance data normalization differs slightly from one venue or dataset to another. Edge cases and differences are documented separately for each venue in the Venues and datasets section.
Fields (imbalance
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 20 in the imbalance schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
ref_price |
int64_t | The price at which the imbalance shares are calculated, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
auction_time |
uint64_t | Projected auction timestamp expressed as the number of nanoseconds since the UNIX epoch. |
cont_book_clr_price |
int64_t | The hypothetical auction-clearing price for both cross and continuous orders, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
auct_interest_clr_price |
int64_t | The hypothetical auction-clearing price for cross orders only, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ssr_filling_price |
int64_t | The price at which Sell Short interest will be filed if a sell short restriction is in effect, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
ind_match_price |
int64_t | The price at which the highest number of shares would trade, subject to auction collars, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
upper_collar |
int64_t | Upper limit of the auction collar, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
lower_collar |
int64_t | Lower limit of the auction collar, where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
paired_qty |
uint32_t | The quantity of shares that are eligible to be matched at ref_price . |
total_imbalance_qty |
uint32_t | The quantity of shares that are not paired at ref_price . |
market_imbalance_qty |
uint32_t | The total market order imbalance quantity at the ind_match_price . |
unpaired_qty |
uint32_t | During the Closing Auction, the number of unpaired shares priced at or better than the ref_price . |
auction_type |
char | Venue-specific character code indicating the auction type. |
side |
char | The market side of the total_imbalance_qty . Can be Ask, Bid, or None. |
auction_status |
uint8_t | Venue-specific status code. Refer to the dataset-specific documentation. |
freeze_status |
uint8_t | Venue-specific status code. Refer to the dataset-specific documentation. |
num_extensions |
uint8_t | The number of times the halt period has been extended. |
unpaired_side |
char | The side of the unpaired_qty . Reserved for future use |
significant_imbalance |
char | Venue-specific status code. Refer to the dataset-specific documentation. |
Statistics
Statistics provides official summary statistics of each instrument that's published by the venue. This generally includes properties like daily volume, open interest, preliminary and final settlement prices, and official open, high, and low prices.
Fields (statistics
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 24 in the statistics schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
ts_ref |
uint64_t | The reference timestamp expressed as the number of nanoseconds since the UNIX epoch. |
price |
int64_t | The value for price statistics where every 1 unit corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. See Prices. |
quantity |
int64_t | The value for non-price statistics. Will be INT64_MAX when unused. |
sequence |
uint32_t | The message sequence number assigned at the venue. |
ts_in_delta |
int32_t | The matching-engine-sending timestamp expressed as the number of nanoseconds before ts_recv . See ts_in_delta. |
stat_type |
uint16_t | The type of statistic value contained in the message. See Types of statistics table below. |
channel_id |
uint16_t | The channel ID within the venue. |
update_action |
uint8_t | Indicates if the statistic is newly added (1 ) or deleted (2 ). (Deleted is only used with some stat_types) |
stat_flags |
uint8_t | Additional flags associated with certain stat types and datasets. Refer to the Venues and datasets section for details. |
Some fields are not applicable depending on the type of statistic.
Null, invalid or inapplicable values are represented by the maximum value of the field's type. For example, null is represented by 2^64-1
for ts_event
, which has an unsigned 64-bit integer type. In cases where the value is actually zero or null has the same meaning as zero, zero is used instead.
Types of statistics
Type | stat_type |
price |
quantity |
stat_flags |
ts_ref |
Description |
---|---|---|---|---|---|---|
Opening price | 1 |
ā | The price and quantity of the first trade of an instrument. | |||
Indicative opening price | 2 |
ā | ā | The probable price of the first trade of an instrument published during pre-open. | ||
Settlement price | 3 |
ā | ā | ā | The settlement price of an instrument. Flags will indicate whether the price is final or preliminary and actual or theoretical. | |
Trading session low price | 4 |
ā | The lowest trade price of an instrument during the trading session. | |||
Trading session high price | 5 |
ā | The highest trade price of an instrument during the trading session. | |||
Cleared volume | 6 |
ā | ā | The number of contracts cleared for an instrument on the previous trading date. | ||
Lowest offer | 7 |
ā | The lowest offer price for an instrument during the trading session. | |||
Highest bid | 8 |
ā | The highest bid price for an instrument during the trading session. | |||
Open interest | 9 |
ā | ā | The current number of outstanding contracts of an instrument. | ||
Fixing price | 10 |
ā | ā | The volume-weighted average price (VWAP) for a fixing period. | ||
Close price | 11 |
ā | The last trade price and quantity during a trading session. | |||
Net change | 12 |
ā | The change in price from the close price of the previous session to the most recent close price. | |||
Volume-weighted average price | 13 |
ā | ā | The volume-weighted average price (VWAP) during the trading session. | ||
Volatility | 14 |
ā | ā | The implied volatility associated with the settlement price. | ||
Delta | 15 |
ā | ā | The options delta associated with the settlement price. | ||
Uncrossing price | 16 |
ā | The auction uncrossing price and quantity. This is used for auctions that are neither the official opening auction nor the official closing auction. |
Types of statistics by publisher
The table below shows which statistics are available depending on dataset and publisher.
Type | Cboe BZX Depth Pitch | CME Globex MDP 3.0 | Databento US Equities Summary | Eurex Exchange | European Energy Exchange | ICE | Nasdaq Basic | Nasdaq TotalView-ITCH | NYSE Arca Integrated | NYSE Integrated | OPRA |
---|---|---|---|---|---|---|---|---|---|---|---|
Opening price | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā |
Indicative opening price | ā | ||||||||||
Settlement price | ā | ā | ā | ā | |||||||
Trading session low price | ā | ā | ā | ā | ā | ā | |||||
Trading session high price | ā | ā | ā | ā | ā | ā | |||||
Cleared volume | ā | ā | ā | ā | ā | ā | |||||
Lowest offer | ā | ā | |||||||||
Highest bid | ā | ā | |||||||||
Open interest | ā | ā | ā | ā | ā | ||||||
Fixing price | ā | ||||||||||
Close price | ā | ā | ā | ā | ā | ā | ā | ā | ā | ā | |
Net change | ā | ||||||||||
Volume-weighted average price | ā | ||||||||||
Volatility | ā | ||||||||||
Delta | ā | ||||||||||
Uncrossing price | ā | ā | ā |
Official vs. Databento summary statistics
The key distinction of the statistics
schema is these are official summary statistics provided by the venueāDatabento doesn't compute these statistics.
On most venues, Databento also provides separate OHLCV data that could be used in place of official open, high, low, and settlement prices, and volume from the statistics
schema.
These schemas are different and may vary for a few intentional reasons:
- Often, official statistics have opaque methodology or are difficult to replicate because they're tallied by hand
- Some venues include volumes and open interest from open outcry, auction, block trades, RFQs, or other events that may not be disseminated in the electronic trading session or public feeds
- Some venues double count volumes
The main purpose of Databento's summary data is that it provides more consistency: we derive it systematically from the tick data or full order book data during the electronic trading session and ensures consistency with our tick data; we publish at more deterministic times, and we normalize across venues using a UTC midnight cutoff universally. For electronic trading and research applications, this consistency may be more important, whereas for back office and administrative applications, official statistics may be preferable.
Status
Status provides updates about the trading session, such as halts, pauses, short-selling restrictions, auction start, and other matching engine statuses. The granularity and frequency of these updates vary by publisher and dataset.
Fields (status
)
Field | Type | Description |
---|---|---|
ts_recv |
uint64_t | The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_recv. |
ts_event |
uint64_t | The matching-engine-received timestamp expressed as the number of nanoseconds since the UNIX epoch. See ts_event. |
rtype |
uint8_t | A sentinel value indicating the record type. Always 18 in the status schema. See Rtype. |
publisher_id |
uint16_t | The publisher ID assigned by Databento, which denotes the dataset and venue. See Publishers. |
instrument_id |
uint32_t | The numeric instrument ID. See Instrument identifiers. |
action |
uint16_t | The type of status change. See Status actions table below. |
reason |
uint16_t | Additional details about the cause of the status change. See Status reasons table below. |
trading_event |
uint16_t | Further information about the status change (if provided). See Trading events table below. |
is_trading |
char | The best-efforts state of trading in the instrument, either Y , N , or ~ . |
is_quoting |
char | The best-efforts state of quoting in the instrument, either Y , N , or ~ . |
is_short_sell_restricted |
char | The best-efforts state of short sell restrictions for the instrument (if applicable), either Y , N , or ~ . |
Status action variants
Variant | action |
Description |
---|---|---|
None | 0 |
No change. |
Pre-open | 1 |
The instrument is in a pre-open period. |
Pre-cross | 2 |
The instrument is in a pre-cross period. |
Quoting | 3 |
The instrument is quoting but not trading. |
Cross | 4 |
The instrument is in a cross/auction. |
Rotation | 5 |
The instrument is being opened through a trading rotation. |
New price indication | 6 |
A new price indication is available for the instrument. |
Trading | 7 |
The instrument is trading. |
Halt | 8 |
Trading in the instrument has been halted. |
Pause | 9 |
Trading in the instrument has been paused. |
Suspend | 10 |
Trading in the instrument has been suspended. |
Pre-close | 11 |
The instrument is in a pre-close period. |
Close | 12 |
Trading in the instrument has closed. |
Post-close | 13 |
The instrument is in a post-close period. |
Short sell restriction (SSR) change | 14 |
A change in short-selling restrictions. |
Not available for trading | 15 |
The instrument is not available for trading, either trading has closed or been halted. |
Status reason variants
Variant | reason |
Description |
---|---|---|
None | 0 |
No reason given. |
Scheduled | 1 |
The change in status occurred as scheduled. |
Surveillance intervention | 2 |
The instrument stopped due to a market surveillance intervention. |
Market event | 3 |
The status changed due to activity in the market. |
Instrument activation | 4 |
The derivative instrument began trading. |
Instrument expiration | 5 |
The derivative instrument expired. |
Recovery in process | 6 |
Recovery in progress. |
Regulatory | 10 |
The status change was caused by a regulatory action. |
Administrative | 11 |
The status change was caused by an administrative action. |
Non-compliance | 12 |
The status change was caused by the issuer not being compliance with regulatory requirements. |
Filings not current | 13 |
Trading halted because the issuer's filings are not current. |
SEC trading suspension | 14 |
Trading halted due to an SEC trading suspension. |
New issue | 15 |
The status changed because a new issue is available. |
Issue available | 16 |
The status changed because an issue is available. |
Issues reviewed | 17 |
The status changed because the issue(s) were reviewed. |
Filing requirements satisfied | 18 |
The status changed because the filing requirements were satisfied. |
News pending | 30 |
Relevant news is pending. |
News released | 31 |
Relevant news was released. |
News and resumption times | 32 |
The news has been fully disseminated and times are available for the resumption in quoting and trading. |
News not forthcoming | 33 |
The relevant news was not forthcoming. |
Order imbalance | 40 |
Halted for order imbalance. |
LULD pause | 50 |
The instrument hit limit up or limit down. |
Operational | 60 |
An operational issue occurred with the venue. |
Additional information requested | 70 |
The status changed until the exchange receives additional information. |
Merger effective | 80 |
Trading halted due to merger becoming effective. |
ETF | 90 |
Trading is halted in an ETF due to conditions with the component securities. |
Corporate action | 100 |
Trading is halted for a corporate action. |
New Security offering | 110 |
Trading is halted because the instrument is a new offering. |
Market wide halt level 1 | 120 |
Halted due to the market-wide circuit breaker level 1. |
Market wide halt level 2 | 121 |
Halted due to the market-wide circuit breaker level 2. |
Market wide halt level 3 | 122 |
Halted due to the market-wide circuit breaker level 3. |
Market wide halt carryover | 123 |
Halted due to the carryover of a market-wide circuit breaker from the previous trading day. |
Market wide halt resumption | 124 |
Resumption due to the end of a market-wide circuit breaker halt. |
Quotation not available | 130 |
Halted because quotation is not available. |
Trading event variants
Variant | trading_event |
Description |
---|---|---|
None | 0 |
No additional information given. |
No cancel | 1 |
Order entry and modification are not allowed. |
Change trading session | 2 |
A change of trading session occurred. Daily statistics are reset. |
Implied matching on | 3 |
Implied matching is available. |
Implied matching off | 4 |
Implied matching is not available. |
Snapshots
As trading status can carry across UTC days, the historical API includes a snapshot of the last status record for each active instrument at UTC midnight.
Corporate actions
Corporate actions includes coverage from 215+ exchanges worldwide, 300,000+ listed and delisted securities from 100,000+ companies, categorized as 60+ event types. The dataset focuses on crucial events affecting global securities such as dividends, takeovers, mergers & acquisitions and rights issues.
See alsoReference data enums for a lookup table of possible enumeration field values.
Fields
- Timestamps are strings in ISO 8601 format, expressed in UTC
- Dates are strings in YYYY-MM-DD ISO 8601 format, expressed in the local time of the listing
exchange
- Enums are strings, with each value corresponding to a predefined set of options listed in the associated lookup table
Field |
Type |
Description |
---|---|---|
ts_record |
Timestamp | The timestamp (UTC) the record last changed. |
event_unique_id |
String | Unique corporate actions record identifier. Can be used to deduplicate records for the same event. |
event_id |
String | Event identifier unique at the event level. |
listing_id |
String | Unique listing numerical ID. Concatenation of a sequence number and the listing_group_id . The sequence number will usually be 1 unless additional listings exists for the same security in the same market, usually as a result of secondary trading currencies. |
listing_group_id |
String | Groups all listings for the same security on a specific exchange, often in different trading currencies. |
security_id |
String | Security level numerical ID. Can be used to link all multiple listings together. |
issuer_id |
String | Issuer level numerical ID. Can be used to link all securities of a company together. |
event_action |
Enum | Record action status code. See ACTION enum. |
event |
Enum | Event type. The event_id where applicable links all payments rows of an event together to show all the payment options. Can be used as a short event name. See EVENT enum. |
event_subtype |
Enum or null | Event subtype. This is only used for a limited number of events where the event data supplied falls into distinct sub-groupings. See EVENTSUBTYPE enum. |
event_date_label |
String | The main calendar date name for the event. |
event_date |
Date | The primary date associated with the event, often marking when the event is scheduled to occur or take effect. |
event_created_date |
Date | The date on which the event was officially created or recorded in the system. |
ex_date |
Date or null | The ex-dividend date (ex-date), marking the first date on which the security trades without the entitlement to the upcoming dividend, distribution, or other corporate action benefit. Where the payment_type of a multiple payment event is flagged as a (B)oth, this ex-date field will contain the ex-date of the cash component. The ex_date2 field in the event_info section will carry the stock component ex-date. |
effective_date |
Date or null | The date on which the event becomes effective or is executed, signifying when the changes or actions are officially recognized. |
record_date |
Date or null | The date on which a company reviews its records to determine the eligible shareholders entitled to receive dividends or participate in the event. The record date is one business day after the ex-date. |
record_date_id |
Date or null | Record date ID. This ID links all events for the same security that share the same record date. |
related_event |
Enum or null | Related event type. See EVENT enum. |
related_event_id |
Date or null | Direct link to another event. |
global_status |
Enum | Global status code. Indicates the global listing activity status of a security. See GLOBSTATUS enum. |
listing_status |
Enum | Listing status code. Indicates the listing activity status at market level. See LISTSTAT enum. |
listing_source |
Enum | Indicates if the listing level data in the record is (M)ain or (S)econdary. See LISTSOURCE enum. |
listing_date |
Date or null | The date when the security is officially listed on the exchange and becomes available for trading. |
delisting_date |
Date or null | The date when the security is officially removed from the exchange and ceases to be traded. |
issuer_name |
String | The issuer name. |
security_type |
Enum | The security type. See SECTYPE enum. |
security_description |
String | The security description. |
primary_exchange |
Enum or null | Exchange code for the primary security. Empty if unknown. See EXCHANGE enum. |
exchange |
Enum | Exchange code for the listing. Equivalent to the MIC but more stable as MIC might not be available in a timely fashion. Also note that the MIC can change but the exchange will remain the same. See EXCHANGE enum. |
operating_mic |
Enum or null | Market Identifier Code (MIC) as an ISO 10383 string. See EXCHANGE enum. |
symbol |
String or null | The query input symbol which matched the record. |
nasdaq_symbol |
String or null | Nasdaq Integrated Platform Suffix convention symbol. |
local_code |
String or null | Local code. Usually unique at market level but there are exceptions to this rule. Either an alpha string, or a number. |
isin |
String or null | ISIN global level identifier as an ISO 6166 string. |
us_code |
String or null | US domestic CUSIP. |
bbg_comp_id |
String or null | Bloomberg composite global ID. |
bbg_comp_ticker |
String or null | Bloomberg composite ticker. |
figi |
String or null | Bloomberg FIGI, that is exchange level ID. |
figi_ticker |
String or null | Bloomberg exchange level ticker. |
listing_country |
Enum or null | Listing country as two letter ISO 3166-1 alpha-2 string. See CNTRY enum. |
register_country |
Enum or null | Register country as two letter ISO 3166-1 alpha-2 string. See CNTRY enum. |
trading_currency |
Enum or null | Trading currency as an ISO 4217 string. See CUREN enum. |
multi_currency |
Boolean | True if there is currently more than one listing in the market, otherwise false. |
segment_mic_name |
String or null | Market Segment Name. Used when no Segment MIC is available (Not the ISO 10383 MICSEG lookup name). |
segment_mic |
Enum or null | Market Identifier Code (MIC) as an ISO 10383 string. See MICSEG enum. |
mand_volu_flag |
Enum | Indicates mandatory and/or voluntary event participation requirement. With a few event types the flag change in the course of the corporate action lifecycle. See MANDVOLU enum. |
rd_priority |
Number or null | The priority order number sequence where populated is necessary to correctly calculate resultant cash and stock outcomes. |
lot_size |
Number or null | Lot Size. Indicates the minimum number of shares that can be acquired in one transaction. |
par_value |
Number or null | Par value amount. |
par_value_currency |
Enum or null | Par value currency as an ISO 4217 string. See CUREN enum. |
payment_date |
Date or null | The date on which the dividend or payment is made to eligible shareholders. Where the payment_type of a multiple payment event is flagged as a (B)oth, this payment date field will contain the payment date of the cash component. |
duebills_redemption_date |
Date or null | Due bills redemption date. |
from_date |
Date or null | The earliest date from which a specific corporate action or event is valid, active, or can be exercised. This date marks the beginning of the relevant event or process, such as when shareholders can start participating in a buyback, conversion, or rights issue. Applicable to a wide range of events. |
to_date |
Date or null | The final date by which the specific corporate action or event is valid, active, or must be completed. This date marks the conclusion of the relevant event or process, after which the associated rights, entitlements, or obligations may expire. Applicable to a wide range of events. |
registration_date |
Date or null | Registration date. |
start_date |
Date or null | The date on which the specific corporate action or event begins or becomes effective. This marks the commencement of the event's active period, such as the start of a buyback program, the beginning of a class action period, or the initiation of an odd-lot offer. Applicable to events like Class Actions (CLSAC ), Certificate of Exchange (CTX ), Buyback (BB ), Odd-Lot Offer (ODDLT ), and Financial Transaction Tax (FTT ). |
end_date |
Date or null | The final date by which the corporate action or event is valid, active, or must be completed. This marks the conclusion of the event's active period, such as the end of a buyback program, the closing of a class action period, or the deadline for participating in an odd-lot offer. Applicable to events like Class Actions (CLSAC ), Certificate of Exchange (CTX ), Buyback (BB ), Odd-Lot Offer (ODDLT ), and Financial Transaction Tax (FTT ). |
open_date |
Date or null | The date when the corporate action or event opens for participation or becomes available to stakeholders. This marks the beginning of the active period during which actions like tender offers, purchase offers, or redemptions can be initiated. Applicable to events like Takeovers (TKOVR ), Purchase Offers (PO ), and Redemptions (REDEM ). |
close_date |
Date or null | The final date by which participation in the corporate action or event must be completed. This marks the end of the active period for actions like tender offers, purchase offers, or redemptions. Applicable to events like Takeovers (TKOVR ), Purchase Offers (PO ), and Redemptions (REDEM ). |
start_subscription_date |
Date or null | The date when the subscription period for the event begins. |
end_subscription_date |
Date or null | The date when the subscription period for the event ends. |
option_election_date |
Date or null | The deadline by which participants must choose or elect an option related to the event. |
withdrawal_rights_from_date |
Date or null | The date from which withdrawal rights become effective, allowing participants to retract their election or participation. |
withdrawal_rights_to_date |
Date or null | The final date by which participants can exercise their withdrawal rights, retracting their election or participation. |
notification_date |
Date or null | The date on which the event notification is issued or made public. |
financial_year_end_date |
Date or null | The closing date of the company's financial year. |
exp_completion_date |
Date or null | The anticipated date when the event or related transaction is expected to be completed. |
payment_type |
Enum or null | Payment type. See PAYTYPE enum. |
option_id |
String or null | Option number of the event where applicable - options are ORs. |
serial_id |
String or null | Serial number of the event where applicable - serials are ANDs. |
default_option_flag |
Boolean or null | Flag indicating the benefit the shareholder would receive by default in case of several options being offered to them. The default is not always announced. |
rate_currency |
Enum or null | Payment currency as an ISO 4217 string. See CUREN enum. |
ratio_old |
Number or null | Ratio Denominator is the existing holding. |
ratio_new |
Number or null | Ratio Numerator is the new holding (for FSPLT , DIV and BON events includes the existing holding). |
fraction |
Enum or null | Describes how fractions are handled in settlement calculations. See FRACTIONS enum. |
outturn_style |
Enum or null | Style of outturn security. See OUTTURNSTYLE enum. |
outturn_security_type |
Enum or null | Security asset type. See SECTYPE enum. |
outturn_security_id |
String or null | Outturn security. |
outturn_isin |
String or null | Outturn ISIN. |
outturn_us_code |
String or null | Outturn CUSIP. |
outturn_local_code |
String or null | Outturn local code. |
outturn_bbg_comp_id |
String or null | Outturn Bloomberg composite ID. |
outturn_bbg_comp_ticker |
String or null | Outturn Bloomberg composite ticker. |
outturn_figi |
String or null | Outturn FIGI - Bloomberg exchange level ID. |
outturn_figi_ticker |
String or null | Outturn FIGI Ticker - Bloomberg exchange level ticker. |
min_offer_qty |
Number or null | The quantity range within which the shareholder can offer from their total holding in the event. |
max_offer_qty |
Number or null | The quantity range within which the shareholder can offer from their total holding in the event. |
min_qualify_qty |
Number or null | If the quantity held by shareholder is within this range then they qualify for taking part in the event. |
max_qualify_qty |
Number or null | If the quantity held by shareholder is within this range then they qualify for taking part in the event. |
min_accept_qty |
Number or null | The total quantity the company will accept from all the shareholders tendering their shares in the event for the event to be binding on the offeror. |
max_accept_qty |
Number or null | The total quantity the company will accept from all the shareholders tendering their shares in the event for the event to be binding on the offeror. |
tender_strike_price |
Number or null | If the event is via a tender process it is the cut off price at which all the bids are accepted. |
tender_price_step |
Number or null | If the event is via a tender then there is a price step in which one can put in the bids. E.g. If the price step specified is 10p then one has to make bids in steps of 10p i.e. GBP 1.10, GBP 1.20, GBP 1.30. |
option_expiry_time |
String or null | Option expiry time. |
option_expiry_tz |
String or null | Option expiry time zone. |
withdrawal_rights_flag |
Boolean or null | Withdrawal rights flag. |
withdrawal_rights_expiry_time |
String or null | Withdrawal rights expiry time. |
withdrawal_rights_expiry_tz |
String or null | Withdrawal rights expiry time zone. |
expiry_time |
String or null | Expiry time. |
expiry_tz |
String or null | Expiry time zone. |
date_info |
JSON | Event specific date information. |
rate_info |
JSON | Event specific payment rate information. |
event_info |
JSON | Additional event specific information. |
ts_created |
Timestamp | The timestamp (UTC) the record was added by Databento. |
Identifiers
Identifiers for listing, security and issuer are grouped at the beginning of each record, which enables
clearer comparisons of where a single security is associated with many individual listings across
different exchanges. There is one primary_exchange
for a security, and it may then be listed
on multiple secondary exchange
s.
Dynamic fields
The following dynamically-sized fields provide additional supplementary information as key-value pairs:
date_info
. Date specific information related to the eventrate_info
. Rate specific information related to the eventevent_info
. Additional supplementary event information
InfoThe content of these dynamic fields is contingent on the type of
event
and itsevent_subtype
, allowing for flexible and detailed data representation.
Adjustment factors
Adjustment factors covers worldwide corporate actions capital events, spanning multiple currencies for the same event. Each record includes all necessary fields to identify the country, security, event, and adjustment factor.
See alsoReference data enums for a lookup table of possible enumeration field values.
Fields
- Timestamps are strings in ISO 8601 format, expressed in UTC
- Dates are strings in YYYY-MM-DD ISO 8601 format, expressed in the local time of the listing
exchange
- Enums are strings, with each value corresponding to a predefined set of options listed in the associated lookup table
Field |
Type |
Description |
---|---|---|
security_id |
String | Security level numerical ID. Can be used to link all multiple listings together. |
event_id |
String | Event identifier unique at the event level. Links to the corporate actions event_id . |
event |
Enum | Event type. See EVENT enum. |
issuer_name |
String | The issuer name (sourced from corporate action). |
security_type |
Enum | The security type. See SECTYPE enum. |
primary_exchange |
Enum | Exchange code for the primary security. See EXCHANGE enum. |
exchange |
Enum or null | Exchange code for the listing. Equivalent to the MIC but more stable as MIC might not be available in a timely fashion. Also note that the MIC can change but the exchange will remain the same. See EXCHANGE enum. |
operating_mic |
Enum | Market Identifier Code (MIC) as an ISO 10383 string. See EXCHANGE enum. |
symbol |
String or null | The query input symbol which matched the record. |
nasdaq_symbol |
String or null | Nasdaq Integrated Platform Suffix convention symbol. |
local_code |
String or null | Local Code. Usually unique at market level but there are exceptions to this rule. Either an alpha string, or a number. |
local_code_resulting |
String or null | Resultant local code when applicable/known. |
isin |
String or null | ISIN global level identifier as an ISO 6166 string (sourced from corporate action). |
isin_resulting |
String | Resultant ISIN when applicable/known (sourced from corporate action). |
us_code |
String or null | US domestic CUSIP (sourced from corporate action). |
status |
String | Adjustment status. Can be (A)pply, (R)escind, (P)ending. |
ex_date |
Date | Date from which the event is effective. |
factor |
Number | Adjustment factor to apply. |
close |
Number or null | Closing price on the ex_date . |
currency |
Enum or null | Currency for the closing price as an ISO 4217 string. See CUREN enum. |
sentiment |
Number | Market sentiment - the market's reaction to the event. Simply the previous close divided by today's open. Only correct if factor calculation requires previous close. |
reason |
Number | Reason/type of event, used to distinguish between different event types. See Adjustment factors dataset guide. |
gross_dividend |
Number or null | The amount of the dividend before any taxes or fees are deducted. This value represents the total dividend declared by the company. |
dividend_currency |
String or null | The currency in which the dividend is paid as an ISO 4217 string. See CUREN enum. |
frequency |
String or null | The frequency at which the dividend is paid. See FREQ enum lookup table. |
option |
Number | The choice or option number associated with the event, often used when shareholders are given multiple options for how they would like to receive the dividend or other corporate action benefit (either cash, or script). See option field description. |
detail |
String | A human-readable description of the event. |
ts_created |
Timestamp | The timestamp (UTC) the record was added by Databento. |
Security master
Security master provides up-to-date (latest) or point-in-time (PIT) static information on securities across international markets for 860,000+ listed and delisted securities. This provides a means for resolving securities attributes, identification, symbology and informational challenges efficiently. Some common use cases for the security master include research, backtesting, compliance and report generation, risk management, and keeping portfolios current.
See alsoReference data enums for a lookup table of possible enumeration field values.
Fields
- Timestamps are strings in ISO 8601 format, expressed in UTC
- Dates are strings in YYYY-MM-DD ISO 8601 format, expressed in the local time of the listing
exchange
- Enums are strings, with each value corresponding to a predefined set of options listed in the associated lookup table
Field |
Type |
Description |
---|---|---|
ts_record |
Timestamp | The timestamp (UTC) the record last changed. |
ts_effective |
Timestamp | The timestamp (UTC) the record details are effective from. |
listing_id |
String | Unique listing numerical ID. Concatenation of a sequence number and the listing_group_id . The sequence number will usually be 1 unless additional listings exists for the same security in the same market, usually as a result of secondary trading currencies. |
listing_group_id |
String | Groups all listings for the same security on a specific exchange, often in different trading currencies. |
security_id |
String | Security level numerical ID. Can be used to link all multiple listings together. |
issuer_id |
String | Issuer level numerical ID. Can be used to link all securities of a company together. |
listing_status |
Enum | Listing status code. Indicates the listing activity status at market level. See LISTSTAT enum. |
listing_source |
Enum | Indicates if the listing level data in the record is (M)ain or (S)econdary. See LISTSOURCE enum. |
listing_created_date |
Date | Listing creation date. |
listing_date |
Date or null | Listing date. |
delisting_date |
Date or null | Delisting date. |
issuer_name |
String | Issuer name. |
security_type |
Enum | The security type. See SECTYPE enum. |
security_description |
String | The security description. |
primary_exchange |
Enum or null | Exchange code for the primary security. Empty if unknown. See EXCHANGE enum. |
exchange |
Enum | Exchange code for the listing. Equivalent to the MIC but more stable as MIC might not be available in a timely fashion. Also note that the MIC can change but the exchange will remain the same. See EXCHANGE enum. |
operating_mic |
Enum or null | Market Identifier Code (MIC) as an ISO 10383 string. See EXCHANGE enum. |
symbol |
String or null | The query input symbol which matched the record. |
nasdaq_symbol |
String or null | Nasdaq Integrated Platform Suffix convention symbol. |
local_code |
String or null | Local code, usually unique at market level but there are exceptions to this rule. Either an alpha string, or a number. |
isin |
String or null | ISIN global level identifier as an ISO 6166 string. |
us_code |
String or null | US domestic CUSIP. |
bbg_comp_id |
String or null | Bloomberg composite global ID. |
bbg_comp_ticker |
String or null | Bloomberg composite ticker. |
figi |
String or null | Bloomberg FIGI, that is exchange level ID. |
figi_ticker |
String or null | Bloomberg exchange level ticker. |
fisn |
String or null | Financial Instrument Short Name. |
lei |
String or null | Legal Entity Identifier. |
sic |
String or null | Standard Industrial Classification Code. |
cik |
String or null | Central Index Key. |
gics |
String or null | Global Industry Standard Classification. |
naics |
String or null | North American Industrial Classification System. |
cic |
String or null | Complementary Identification Code. |
cfi |
String or null | Classification of Financial Instruments as an ISO 10962 string. |
incorporation_country |
Enum or null | Country of incorporation code of the issuer as two letter ISO 3166-1 alpha-2 string. See CNTRY enum. |
listing_country |
Enum or null | Listing country as two letter ISO 3166-1 alpha-2 string. See CNTRY enum. |
register_country |
Enum or null | Register country as two letter ISO 3166-1 alpha-2 string. See CNTRY enum. |
trading_currency |
Enum or null | Trading currency as an ISO 4217 string. See CUREN enum. |
multi_currency |
Boolean | True if there is currently more than one listing in the market, otherwise false. |
segment_mic_name |
String or null | Market Segment Name. Not the MICSEG lookup name but used when no segment MIC is available. |
segment_mic |
Enum or null | Market Identifier Code (MIC) as an ISO 10383 string. See MICSEG enum. |
structure |
Enum or null | Security structure code. See STRUCTCD enum. |
lot_size |
Number or null | Lot Size. Indicates the minimum number of shares that can be acquired in one transaction. |
par_value |
Number or null | Par value amount. |
par_value_currency |
Enum or null | Par value currency as an ISO 4217 string. See CUREN enum. |
voting |
Enum or null | Voting or non-voting rights. See VOTING enum. |
vote_per_sec |
Number or null | Number of votes per security. |
shares_outstanding |
String or null | Shares outstanding. |
shares_outstanding_date |
String or null | Effective date for shares_outstanding . |
ts_created |
Timestamp | The timestamp (UTC) the record was added to database. |
Identifiers
Identifiers for listing, security and issuer are grouped at the beginning of each record, which enables
clearer comparisons of where a single security is associated with many individual listings across
different exchanges. There is one primary_exchange
for a security, and it may then be listed
on multiple secondary exchange
s.