0.40.0 - 2025-07-29
Enhancements
- Added
OhlcvEod
variant toRType
- Added documentation to more enums and record structs
- Aligned string representation of
RType
with Rust
Breaking changes
- Switched to
std::byte
for most padding fields in record structs. These fields are now initialized by default - Hidden padding fields now begin with
_
Bug fixes
- Added missing
IndexTs()
method tov1::InstrumentDefMsg
,v2::InstrumentDefMsg
, andv1::SymbolMappingMsg
- Fixed error in templated overload of
DbnDecoder::EncodeRecord()
- Removed unused
Disk
andS3
variants fromDelivery
enum
0.39.0 - 2025-07-15
Breaking changes
- Renamed the following Venue, Dataset, and Publishers:
XEER
toXEEE
XEER.EOBI
toXEEE.EOBI
XEER.EOBI.XEER
toXEEE.EOBI.XEEE
XEER.EOBI.XOFF
toXEEE.EOBI.XOFF
Bug fixes
- Fixed potential corrupted records when upgrading DBN versions in live clients
- Removed unused
Intraday
variant fromDatasetCondition
enum
0.38.2 - 2025-07-01
Enhancements
- Added
LogPlatformInfo
function which logs the client version, compiler, and operating system info to aid troubleshooting - Added compiler and operating system info to the user agent to aid troubleshooting
- Standardized
client
info sent by live clients to match historical - Added methods to the client builders to extend the user agents with a custom string
Bug fixes
- Fixed missing implementation for
LiveBuilder::SetBufferSize()
- Fixed checking of warnings from server in Historical API in
TimeseriesGetRange()
andTimeseriesGetRangeToFile()
0.38.1 - 2025-06-25
Enhancements
- Added
range_by_schema
field toDatasetRange
struct - Changed historical
TimeseriesGetRange()
andTimeseriesGetRangeToFile()
methods to use aPOST
request to allow for requesting supported maximum of 2000 symbols - Added logging around
Historical::BatchDownload
- Changed the following Venue, Publisher, and Dataset descriptions:
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
Bug fixes
- Fixed handling of
null
last_modified_date
inMetadataGetDatasetCondition
response - Fixed default
ShouldLog
implementation
0.38.0 - 2025-06-10
Enhancements
- Made the buffer size used by the live clients when reading from the TCP socket
configurable through the
LiveBuilder::SetBufferSize()
method - Added log level prefix to
ConsoleLogReceiver
output - Added
iomanip
compatibility: fill, precision, and width topretty::Px
(formerlyFixPx
) - Added new
pretty::Ts
helper type for human-readable formatting ofUnixNanos
Breaking changes
- Live client instances can only be created through the
LiveBuilder
class - Changed
HeartbeatInterval()
getters onLiveBlocking
andLiveThreaded
to return anstd::optional
- Added new optional
ShouldLog
virtual method toILogReceiver
to filter the levels of log messages that will be sent to the receiver
Deprecations
- Deprecated
FixPx
in favor ofpretty::Px
which has consistent naming with the API and the Python and Rust client libraries
Bug fixes
- Ensure
CPPHTTPLIB_OPENSSL_SUPPORT
is defined at all locations wherecpp-httplib
is included
0.37.0 - 2025-06-03
Breaking changes
- Changed the type of the
output_dir
parameter inHistoricalClient::BatchDownload()
to astd::filesystem::path
and the return type tostd::filesystem::path
- Changed the type of the
file_path
parameter inHistoricalClient::TimeseriesGetRangeToFile()
to astd::filesystem::path
- Changed the type of the
file_path
parameter in theDbnFileStore
,InFileStream
, andOutFileStream
constructors to astd::filesystem::path
- Made
stype_in
andschema
optionals inMetadata
to align with howMetadata
is represented in other languages and removed the booleanhas_mixed_stype_in
andhas_mixed_schema
fields
Bug fixes
- Fixed behavior where encoding metadata could lower the
version
0.36.0 - 2025-05-27
This version marks the release of DBN version 3 (DBNv3), which is the new default.
API methods and DbnDecoder
support decoding all versions of DBN, but now default to
upgrading data to version 3.
Enhancements
- Added
UpgradeToV3
variant toVersionUpgradePolicy
enum - Version 1 and 2 structs can be converted to version 3 structs with templated
Upgrade
method - Metadata will now always be encoded with a length divisible by 8 bytes for better alignment
- Added
is_last
field to live subscription requests which will be used to improve the handling of split subscription requests
Breaking changes
- Release of DBN version 3:
- Definition schema:
- Updated
InstrumentDefMsg
with newleg_
fields to support multi-leg strategy definitions. - Expanded
raw_instrument_id
to 64 bits to support more venues. Like other 64-bit integer fields, its value will now be quoted in JSON - Removed
trading_reference_date
,trading_reference_price
, andsettl_price_type
fields which will be normalized in the statistics schema - Removed
md_security_trading_status
better served by the status schema - Updated
asset
to 11 bytes andkAssetCstrLen
to match
- Updated
- Statistics schema:
- Updated
StatMsg
has an expanded 64-bitquantity
field.kUndefStatQuantity
has been updated to match - The previous
StatMsg
has been moved tov2::StatMsg
orStatMsgV2
- Updated
- Definition schema:
Bug fixes
- Fixed "Zstd error decompressing: Operation made no progress over multiple calls, due
to output buffer being full" error with
TimeseriesGetRange
- Fixed missing implementation of
HistoricalBuilder::SetLogReceiver
0.35.0 - 2025-05-13
Enhancements
- Added a
v3::StatMsg
record with an expanded 64-bitquantity
field - Added
kDbnVersion
constants to each version namespace:v1
,v2
, andv3
- Added
kUndefStatQuantity
constants to each version namespace - Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Increased live subscription symbol chunking size
0.34.0 - 2025-04-22
Enhancements
- Added
SystemCode
andErrorCode
enums to indicate types of system and error messages - Converting a
v1::SystemMsg
to av2::SystemMsg
now sets tocode
to the heartbeat value - Introduced
kAssetCstrLen
constant containing the size ofasset
field inInstrumentDefMsg
Breaking changes
- Increased the size of
asset
field inv3::InstrumentDefMsg
from 7 to 11. Thev3::InstrumentDefMsg
message size remains 520 bytes. - Set minimum CMake version to 3.24
- Changed type of
code
field inSystemMsg
toSystemCode
- Changed type of
code
field inErrorMsg
toErrorCode
Bug fixes
- Changed
TriState
to a regular enum to handle unexpected values - Fixed
ccache
support - Changed to explicitly only support being built as a static library
0.30.0 - 2025-02-11
Enhancements
- Added
Resubscribe()
methods toLiveBlocking
andLiveThreaded
to make it easier to resume a live session after losing the connection to the live gateway - Added
Subscriptions()
getter methods toLiveBlocking
andLiveThreaded
for getting all active subscriptions - Added
CommoditySpot
InstrumentClass
variant
0.28.0 - 2025-01-21
Breaking changes
- Updated enumerations for unreleased datasets and publishers.
Enhancements
- Added new dataset
EQUS.MINI
and new publishersEQUS.MINI.EQUS
,XNYS.TRADES.EQUS
Bug fixes
- Changed historical metadata methods with
symbols
parameter to use aPOST
request to allow for requesting supported maximum of 2000 symbols
0.27.0 - 2025-01-07
Breaking changes
- Converted the
UserDefinedInstrument
enum class to an enum to safely allow handling invalid data and adding future variants - Updated the value of the
kMaxRecordLen
constant for the changes toInstrumentDefMsg
in version 3
Enhancements
- Added
v3
namespace in preparation for future DBN version 3 release. DBN version 2 remains the current and default version - Added
v3::InstrumentDefMsg
record with new fields to support normalizing multi-leg strategy definitions- Removal of statistics-schema related fields
trading_reference_price
,trading_reference_date
, andsettl_price_type
- Removal of the status-schema related field
md_security_trading_status
- Removal of statistics-schema related fields
0.26.0 - 2024-12-17
Breaking changes
- Removed deprecated
Packaging
enum andpackaging
field that's no longer supported by the API - Renamed
VersionUpgradePolicy::Upgrade
toUpgradeToV2
in preparation for a future DBN version 3
Enhancements
- Created separate namespaces for each DBN version to create a consistent way to refer to record types from a particular DBN version regardless of whether the record changed between versions
0.25.0 - 2024-11-12
Enhancements
- Added new IntelligentCross venues
ASPN
,ASMT
, andASPI
Deprecations
- Deprecated
Packaging
enum andpackaging
field onBatchJob
. These will be removed in a future version. All files from a batch job can be downloaded with theBatchDownload
method on the historical client
0.23.0 - 2024-09-25
Enhancements
- Added new
Cmbp1Msg
- Added new consolidated publisher values for
XNAS.BASIC
andDBEQ.MAX
Breaking changes
- Changed the layout of
CbboMsg
to better matchBboMsg
- Renamed
Schema::Cbbo
toSchema::Cmbp1
Deprecations
- Deprecated
Packing::Tar
and renamed it toTarDeprecated
. This variant will be removed in a future version when it is no longer supported by the API
0.21.0 - 2024-07-30
Enhancements
- Added new publisher value for
DBEQ.SUMMARY
Breaking changes
- Renamed
SType::Nasdaq
variant toSType::NasdaqSymbol
- Renamed
SType::Cms
variant toSType::CmsSymbol
Bug fixes
- Added missing
ToString
andFromString
branches forSType::NasdaqSymbol
andSType::CmsSymbol
- Removed
has_header_v
variable template that broke C++11 compatibility
0.20.0 - 2024-07-09
This release adds support for encoding DBN within the C++ client.
It also improves historical symbology support with the new TsSymbolMap
class that
handles mapping historical records to a text symbol. To support this class, several types
for date fields were changed from strings or ints to date::year_month_day
.
Enhancements
- Added
TsSymbolMap
to support historical symbology where mappings change between days - Added
DbnEncoder
class for encoding DBN data - Added blocking API similar to
LiveBlocking
toDbnFileStore
with newGetMetadata
andNextRecord
methods - Added
BboMsg
record struct for futurebbo-1m
andbbo-1s
schemas - Added
PitSymbol
map constructor fromMetadata
and adate::year_month_day
- Added
Metadata::CreateSymbolMap
andMetadata::CreateSymbolMapForDate
methods for creating symbology maps from historical metadata - Added blocking API similar to
LiveBlocking
toDbnFileStore
- Added
SymbologyResolution::CreateSymbolMap
method for creating a symbology map from a symbology resolution response - Added
InFileStream
andOutFileStream
helper classes for reading and writing binary output respectively
Breaking changes
- Added new dependency on Howard Hinnant's date library
- Added
ILogReceiver*
parameter to allDbnDecoder
constructors and oneDbnFileStore
constructor - Removed type
StrMappingInterval
.MappingInterval
is now also used inSymbologyResolution
. - Changed
Bbo1sMsg
andBbo1mMsg
to be aliases forBboMsg
- Changed type of
start_date
andend_date
inMappingInterval
todate::year_month_day
- Added
stype_in
andstype_out
fields toSymbologyResolution
to support creating aTsSymbolMap
0.19.0 - 2024-06-04
Enhancements
- Added configurable
heartbeat_interval
parameter for live clients that determines the timeout before heartbeatSystemMsg
records will be sent. It can be configured via theSetHeartbeatInterval
method of theLiveBuilder
- Added
SetAddress
method toLiveBuilder
for configuring a custom gateway address without using the constructor directly - Added new
UncrossingPrice
StatType
variant - Added new publisher values for
XNAS.BASIC
- Added
SetDataset(Dataset)
overload toLiveBuilder
- Added new off-market publisher values for
IFEU.IMPACT
andNDEX.IMPACT
Breaking changes
- Added
heartbeat_interval
parameter to theLive
constructors - Removed
start_date
andend_date
fields fromDatasetRange
struct in favor ofstart
andend
- Removed live
Subscribe
method overloads withuse_snapshot
parameter in favor of separateSubscribeWithSnapshot
method
Bug fixes
- Fixed overloading of live
Subscribe
methods - Fixed live subscribing with default-constructed
UnixNanos
- Fixed descriptions for
FINN
andFINY
publishers
0.18.1 - 2024-05-22
Enhancements
- Added live
Subscribe
function overload withuse_snapshot
parameter - Added
GetIf
method toRecord
that allowsif
chaining for handling multiple record types - Added record type checking to
Record::Get
method to catch programming errors and prevent reading invalid data - Added
ToString
forRecord
Bug fixes
- Added missing symbol chunking for live
Subscribe
overloads withconst std::string&
start
parameter
0.18.0 - 2024-05-14
Breaking changes
- Changed
FlagSet
to be more class-like:- Added predicate methods and setters for each bit flag
- Improved string formatting
- Removed bitwise operators. Bitwise operations can be performed by first casting to a
std::uint8_t
or calling theRaw()
method
- Changed format of
display_factor
andprice_ratio
to a fixed-precision decimal forInstrumentDefMsg
andInstrumentDefMsgV1
to match existing values and DBN crate - Changed format of
unit_of_measure_qty
to a fixed-precision decimal forInstrumentDefMsgV1
to matchInstrumentDefMsg
0.17.0 - 2024-04-01
Enhancements
- Added
StatusMsg
record, andStatusAction
,StatusReason
,TradingEvent
, andTriState
enums - Added
CbboMsg
record and correspondingConsolidatedBidAskPair
structure - Added new enum values for
Schema
andRType
corresponding to new schemascbbo
,cbbo-1s
,cbbo-1m
,tcbbo
,bbo-1s
,bbo-1m
- Changed format
unit_of_measure_qty
to a fixed-precision decimal - Added logic to skip
find_package
call ifnlohmann_json
andhttplib
targets already exist (credit: Asen Kovachev) - Add specific instructions for installing dependencies on Ubuntu and macOS (credit: Camron Godbout)
Bug fixes
- Fixed out-of-order initialization in
DbnDecoder
(credit: Jakob Lövhall)
Breaking changes
- Renamed publishers from deprecated datasets to their respective sources (
XNAS.NLS
andXNYS.TRADES
respectively)
Deprecations
- Deprecated dataset values
FINN.NLS
andFINY.TRADES
0.16.0 - 2024-03-01
Enhancements
- Added new publisher values for consolidated DBEQ.MAX
- Added constructor to
WithTsOut
that updateslength
to the correct value to account for the extra 8 bytes - Upgraded default cpp-httplib version to 0.14.3 (last to still support OpenSSL 1.1)
- Upgraded default nlohmann_json version to 3.11.3
Breaking changes
- Changed default
upgrade_policy
toUpgrade
so by default the primary record types can always be used - Renamed
dummy
field inImbalanceMsg
andStatMsg
toreserved
Bug fixes
- Fixed handling of
ts_out
when decoding DBNv1 and upgrading to version 2 - Fixed missing logic to upgrade
ErrorMsgV1
andSystemMsgV1
when decoding DBN withVersionUpgradePolicy::Upgrade
- Added missing
StatType::Vwap
variant used in the ICE datasets - Added missing
ToString
andoperator<<
handling forStatType::ClosePrice
andStatType::NetChange
- Fixed potential for invalid reads when decoding C strings in
DbnDecoder
0.15.0 - 2024-01-16
Breaking changes
- Increased size of
SystemMsg
andErrorMsg
to provide better messages from Live gateway- Increased length of
err
andmsg
fields for more detailed messages - Added
is_last
field toErrorMsg
to indicate the last error in a chain - Added
code
field toSystemMsg
andErrorMsg
, although currently unused - Added new
is_last
parameter toErrorMsg::new
- Decoding these is backwards-compatible and records with longer messages won't be sent during the DBN version 2 migration period
- Renamed previous records to
ErrorMsgV1
andSystemMsgV1
- Increased length of
0.14.0 - 2023-11-23
This release adds support for DBN v2.
DBN v2 delivers improvements to the Metadata
header symbology, new stype_in
and stype_out
fields for SymbolMappingMsg
, and extends the symbol field length for SymbolMappingMsg
and
InstrumentDefMsg
. The entire change notes are available here.
Users who wish to convert DBN v1 files to v2 can use the dbn-cli
tool available in the databento-dbn crate.
On a future date, the Databento live and historical APIs will stop serving DBN v1.
This release is fully compatible with both DBN v1 and v2, and so the change should be seamless for most users.
Enhancements
- Added support for DBN encoding version 2 (DBNv2), affecting
SymbolMappingMsg
,InstrumentDefMsg
, andMetadata
- Version 1 structs can be converted to version 2 structs with the
ToV2()
method
- Version 1 structs can be converted to version 2 structs with the
- Added
symbol_cstr_len
field toMetadata
to indicate the length of fixed symbol strings - Added
stype_in
andstype_out
fields toSymbolMappingMsg
to provide more context with live symbology updates - Added
IndexTs
methods to every record type which returns the primary timestamp - Added
VersionUpgradePolicy
enum to allow specifying how to handle decoding records from prior DBN versions - Added
InstrumentDefMsgV2
andSymbolMappingMsgV2
type aliases - Added
kDbnVersion
constant for current DBN version - Added
kSymbolCstrLen
,kSymbolCstrLenV1
, andkSymbolCstrLenV2
constants for the length of fixed-length symbol strings in different DBN versions - Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
- Added new publisher values for consolidated DBEQ.BASIC and DBEQ.PLUS
- Added
kMaxRecordLen
constant for the length of the largest record type - Added ability to convert
FlagSet
to underlying representation
Breaking changes
- The old
InstrumentDefMsg
is nowInstrumentDefMsgV1
incompat.hpp
- The old
SymbolMappingMsg
is nowSymbolMappingMsgV1
incompat.hpp
- Converted the following enum classes to enums to allow safely adding new variants:
SecurityUpdateAction
andSType
- Renamed
dummy
toreserved
inInstrumentDefMsg
- Removed
reserved2
,reserved3
,reserved4
, andreserved5
fromInstrumentDefMsg
- Moved position of
strike_price
withinInstrumentDefMsg
- Removed deprecated
SecurityUpdateAction::Invalid
variant
0.13.0 - 2023-09-21
Enhancements
- Added
pretty_px
option forBatchSubmitJob
, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_ts
option forBatchSubmitJob
, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbols
option toBatchSubmitJob
, which appends the raw symbol to every record (available for CSV and JSON text encodings) reducing the need to look at thesymbology.json
file - Added
split_symbols
option forBatchSubmitJob
, which will split files by raw symbol - Added
encoding
option toBatchSubmitJob
to allow requesting non-DBN encoded data through the client - Added
map_symbols
,pretty_px
, andpretty_ts
toBatchJob
response - Added
ARCX.PILLAR.ARCX
publisher - Added
ClosePrice
andNetChange
StatType
s used in theOPRA.PILLAR
dataset
Breaking changes
- Remove
default_value
parameter fromHistorical::SymbologyResolve
0.11.0 - 2023-08-10
Enhancements
- Added
raw_instrument_id
to definition schema - Added
operator==
andoperator!=
implementations forDatasetConditionDetail
andDatasetRange
Breaking changes
- Changed
MetadataListPublishers
to return avector<PublisherDetail>
MetadataListFields
:- Changed return type to
vector<FieldDetail>
- Made
encoding
andschema
parameters required - Removed
dataset
parameter
- Changed return type to
MetadataListUnitPrices
:- Changed return type to
vector<UnitPricesForMode>
- Made
dataset
parameter required - Removed
mode
andschema
parameters
- Changed return type to
Bug fixes
- Fixed installation of
nlohmann_json
when using bundled version - Added missing
operator!=
implementations forMetadata
,MappingInterval
, andSymbolMapping
0.10.0 - 2023-07-20
Enhancements
- Added preliminary support for Windows
- Added
LiveThreaded::BlockForStop
to make it easier to wait for one or more records before closing the session - Changed
TimeseriesGetRange
to request a Zstd-compressed result for more efficient data transfer - Switched
BatchSubmitJob
to use form data to avoid query param length limit - Switched
SymbologyResolve
to use POST request with form data to avoid query param length limit
Breaking changes
- Changed size-related fields and
limit
parameters to usestd::uint64_t
for consistency across architectures
Bug fixes
- Remove usage of non-portable
__PRETTY_FUNCTION__
0.9.1 - 2023-07-11
Enhancements
- Added constants for dataset IDs for Databento Equity Basic and OPRA Pillar
- Added
const char*
getters to records for fixed-lengthchar
arrays - Added
RType
getter toRecord
Bug fixes
- Added batching for live subscriptions to avoid hitting max message length
- Fixed bug in Zstd decompression
- Fixed
Historical::BatchDownload
truncating file before writing each chunk
0.9.0 - 2023-06-13
Enhancements
- Added
Reconnect
methods toLiveBlocking
andLiveThreaded
- Added optional
exception_callback
argument toLiveThreaded::Start
to improve error handling options - Added batch download support data files (
condition.json
andsymbology.json
) - Added support for logging warnings from Historical API
- Relaxed 10 minute minimum request time range restriction
Breaking changes
- Changed
use_ts_out
default tofalse
Bug fixes
- Fixed missing definition for
operator==
forImbalanceMsg
0.7.0 - 2023-04-28
Enhancements
- Added initial support for live data with
LiveBlocking
andLiveThreaded
clients - Added support for statistics schema
- Added
SystemMsg
andErrorMsg
records for use in live data - Added
strike_price
,strike_price_currency
, andinstrument_class
toInstrumentDefMsg
- Added
FixedPx
helper class for formatting fixed prices - Added configurable log receiver
ILogReceiver
- Added
instrument_class
,strike_price
, andstrike_price_currency
to definition schema - Added additional
condition
variants forDatasetConditionDetail
(degraded, pending, missing) - Added additional member
last_modified_date
toDatasetConditionDetail
- Added
has_mixed_schema
,has_mixed_stype_in
, andts_out
toMetadata
to support live data - Added optional
compression
parameter toBatchSubmitJob
Breaking changes
- Removed
related
andrelated_security_id
fromInstrumentDefMsg
- Renamed
BatchJob.cost
tocost_usd
and value now expressed as US dollars - Renamed
SType::ProductId
toSType::InstrumentId
andSType::Native
toSType::RawSymbol
- Renamed
RecordHeader::product_id
toinstrument_id
- Renamed
InstrumentDefMsg::symbol
toraw_symbol
- Renamed
SymbolMapping::native_symbol
toraw_symbol
- Changed
expiration
andaction
type toUnixNanos
- Changed some fields to enums in
InstrumentDefMsg
Deprecations
- Deprecated
SType::Smart
to split intoSType::Parent
andSType::Continuous
Bug fixes
- Fixed parsing of
BatchSubmitJob
response - Fixed invalid read in
DbnDecoder
- Fixed memory leak in
TryCreateDir
0.5.0 - 2023-03-13
Enhancements
- Added
Historical::MetadataGetDatasetRange
Breaking changes
- Changed
MetadataGetDatasetCondition
to returnvector<DatasetConditionDetail>
- Removed
MetadataListCompressions
(redundant with docs) - Removed
MetadataListEncodings
(redundant with docs) - Removed optional
start
andend
params fromMetadataListSchemas
(redundant) - Renamed
FileBento
toDbnFileStore
0.4.0 - 2023-03-02
Enhancements
- Added live gateway resolution
- Added
SymbolMappingMsg
andErrorMsg
records - Added
Action
andSide
enums - Added
available_start_date
andavailable_end_date
toDatasetConditionInfo
- Made
start_date
andend_date
optional forHistorical::MetadataGetDatasetCondition
- Improved API for
flags
record fields - Added
PKGBUILD
to demonstrate installation - Disabled unit testing by default
Breaking changes
- Removed
is_full_universe
andis_example
fields fromBatchJob
- Refactored rtypes
- Introduced separate rtypes for each OHLCV schema
- Renamed DBZ to DBN
- Renamed
DbzParser
toDbnDecoder
- Renamed
- Renamed
TimeseriesStream
toTimeseriesGetRange
- Changed
kAllSymbols
representation
Bug fixes
- Fixed usage of as a system library
0.3.0 - 2023-01-06
Enhancements
- Added support for definition schema
- Added option for CMake to download gtest
- Updated
Flag
enum
Breaking changes
- Standardized getter method names to pascal case
- Renamed
is_full_book
tois_full_universe
- Renamed
TickMsg
toMboMsg
- Changed
flags
fields to unsigned
Bug fixes
- Fixed cancellation in
Historical::TimeseriesStream
- Fixed race condition in
Historical::TimeseriesStream
exception handling - Fixed gtest linker error on macOS
0.62.0 - 2025-08-19
This release delivers a number of breaking changes to the Python interface for DBN records to provide a cleaner and more consistent API.
Breaking changes
- Removed
bill_id
from the response ofbatch.list_jobs()
andbatch.submit_job()
- Upgraded
databento-dbn
to 0.40.0- Removed
hd
property from records in Python. Header fields are accessible directly from the record - Removed ability to directly instantiate most enums from an
int
in Python and coercion fromint
in__eq__
. They can still be instantitated with thefrom_int
class method. WriteSide.from_int(66)
instead ofSide(66)
andSide.BID == Side.from_int(66)
instead ofSide.BID == 66
. Affected enums:Side
Action
InstrumentClass
MatchAlgorithm
UserDefinedInstrument
SecurityUpdateAction
SType
Schema
Encoding
Compression
TriState
- Removed string coercion in
__init__
and__eq__
forRType
,SystemCode
, andErrorCode
enums in Python. It can still be instantiated from astr
with thefrom_str
class method. WriteRType.from_str("mbo")
instead ofRType("mbo")
andRType.TRADES == RType.from_str("trades")
instead ofRType.TRADES == "trades"
- Removed
Enhancements
- Added
END_OF_INTERVAL
variant toSystemCode
enum
0.61.0 - 2025-08-12
Breaking changes
- Modified the
states
parameter inbatch.list_jobs()
Enhancements
- Added
JobState
enum - Added export of
SystemCode
andErrorCode
fromdatabento_dbn
to the rootdatabento
package - Added
F_PUBLISHER_SPECIFIC
flag toRecordFlags
enum
Bug fixes
- Bumped the minimum version requirement for
requests
to 0.27.0
0.60.0 - 2025-08-05
Enhancements
- Added
parquet_schema
option toDBNStore.to_parquet()
for overriding the pyarrow schema - Upgraded
databento-dbn
to 0.39.0- Added
side()
andunpaired_side()
methods toImbalanceMsg
that convert the fields of the same name to theSide
enum - Added
pretty_auction_time
property in Python forImbalanceMsg
- Added
action
andts_in_delta
getters toBboMsg
- Added
ts_recv
getter toStatusMsg
- Added missing floating-point price getters to
InstrumentDefMsg
record types from all DBN versions - Added more floating-point price getters to
ImbalanceMsg
- Added floating-point price getter to
StatMsg
- Standardize Python
__init__
type signatures - Changed
auction_time
field inImbalanceMsg
to be formatted as a timestamp - Fixed a regression where some enum constructors no longer raised a
DBNError
in Python
- Added
Bug fixes
- Removed unused
S3
andDisk
variants fromDelivery
enum
0.59.0 - 2025-07-15
Enhancements
- Upgraded
databento-dbn
to 0.37.1- Fix buffer growth in
DbnFsm::write_all()
, which is used byDBNDecoder.write()
- Fix buffer growth in
Breaking changes
- Renamed the following Venue, Dataset, and Publishers:
XEER
toXEEE
XEER.EOBI
toXEEE.EOBI
XEER.EOBI.XEER
toXEEE.EOBI.XEEE
XEER.EOBI.XOFF
toXEEE.EOBI.XOFF
0.58.0 - 2025-07-08
Enhancements
- Changed the
tz
parameter inDBNStore.to_df()
to acceptdatetime.tzinfo
instead ofpytz.BaseTzInfo
explicitly - Modified the dependency specification for
databento_dbn
to allow for compatible patch versions - Upgraded
databento-dbn
to 0.36.2- Fixed change in behavior where Python
DBNDecoder.decode()
wouldn't always decode all available data on the first call
- Fixed change in behavior where Python
0.57.1 - 2025-06-17
Enhancements
- Changed the following Venue, Publisher, and Dataset descriptions:
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
- Upgraded
databento-dbn
to 0.36.1- Fixed setting of ts_out property of DbnFsm based on decoded metadata. This was preventing ts_out from being correctly decoded in the Python DBNDecoder
- Fixed decoding of
ts_out
with first records in DBNDecoder
Bug fixes
- Fixed an issue where DBN records from the Live client where not having their
ts_out
populated
0.57.0 - 2025-06-10
Enhancements
- Upgraded
databento-dbn
to 0.36.0- Added missing Python type stubs for several leg properties of
InstrumentDefMsg
- Added missing Python type stubs for several leg properties of
Bug fixes
- Fixed an issue where the zstandard frame size could limit the size of
DataFrame
objects returned byDBNStore.to_df()
when acount
was specified
Deprecations
- Deprecated
int
andpd.Timestamp
types forstart_date
andend_date
parameters which will be removed in a future release
0.56.0 - 2025-06-03
Breaking changes
- Updated the names of several subfields in the
Reference.corporate_actions.get_range(...)
response, under thedate_info
,event_info
, andrate_info
fields. The following subfields were renamed:decl_currency
renamed todeclared_currency
decl_gross_amount
renamed todeclared_gross_amount
f_x_rate
renamed tofx_rate
iss_new_name
renamed toissuer_new_name
iss_old_name
renamed toissuer_old_name
new_bbg_company_id
renamed tonew_bbg_comp_id
new_bbg_company_tk
renamed tonew_bbg_comp_ticker
new_bbg_exh_id
renamed tonew_figi
new_bbg_exh_tk
renamed tonew_figi_ticker
new_min_tra_qty
renamed tonew_min_trading_qty
new_mktsg_id
renamed tonew_market_segment_id
new_reg_s144_a
renamed tonew_reg_s144a
new_unit_sec_id
renamed tonew_unit_security_id
offeree_iss_id
renamed toofferee_issuer_id
offeror_iss_id
renamed toofferor_issuer_id
old_bbg_company_id
renamed toold_bbg_comp_id
old_bbg_company_tk
renamed toold_bbg_comp_ticker
old_bbg_exh_id
renamed toold_figi
old_bbg_exh_tk
renamed toold_figi_ticker
old_min_tra_qty
renamed toold_min_trading_qty
old_mktsg_id
renamed toold_market_segment_id
old_reg_s144_a
renamed toold_reg_s144a
old_unit_sec_id
renamed toold_unit_security_id
pp_sec_id
renamed topp_security_id
poolfactor
renamed topool_factor
pre_offer_q_ty
renamed topre_offer_qty
qual_st_cap_gains
renamed toqual_short_term_cap_gains
redem_percentage
renamed toredemption_percentage
st_cap_gains
renamed toshort_term_cap_gains
sec_new_name
renamed tosecurity_new_name
sec_old_name
renamed tosecurity_old_name
section199_a_foreign_tax_paid
renamed tosection199a_foreign_tax_paid
section199_a_inc_div
renamed tosection199a_inc_div
section199_a_st_cap_gain
renamed tosection199a_short_term_cap_gain
tra_isin
renamed totrading_isin
tra_sec_id
renamed totrading_security_id
us_deposit_receiptateto_currency
renamed tousd_rate_to_currency
cashbak
renamed tocash_back
companyulsory_acq_date
renamed tocompulsory_acq_date
frankdiv
renamed tofranked_div
lead_plntiff_deadline_date
renamed tolead_plaintiff_deadline_date
maxprice
renamed tomax_price
minprice
renamed tomin_price
redem_premium
renamed toredemption_premium
redem_price
renamed toredemption_price
unit_frankdiv
renamed tounfranked_div
Enhancements
- Upgraded
databento-dbn
to 0.35.1
0.55.0 - 2025-05-29
Enhancements
- Added
exchanges
parameter toReference.corporate_actions.get_range(...)
- Added
is_last
field to live subscription requests which will be used to improve the handling of split subscription requests - Upgraded
databento-dbn
to 0.35.0- This version delivers DBN version 3 (DBNv3), which is the new default
- Improved the performance of the Python
DBNDecoder
Bug fixes
- Fixed an issue where
JSONDecodeError
would not be caught when usingsimplejson
withrequests
(credit: @xuanqing94)
0.53.0 - 2025-04-29
Enhancements
- Upgraded
databento-dbn
to 0.33.1- Added
SystemCode
andErrorCode
enums to indicate types of system and error messages - Added
code()
methods to SystemMsg and ErrorMsg to retrieve the enum value if one exists and equivalent properties in Python
- Added
Bug fixes
- Fixed issue where all
SystemMsg
records were logged as gateway heartbeats
0.52.0 - 2025-04-15
Enhancements
- Added new optional
id
field toSubscriptionRequest
class which will be used for improved error messages - Upgraded
databento-dbn
to 0.32.0- Fixed
RType
variant names in Python to matchSchema
- Added missing Python type declarations for
RType
variants - Fixed issue with Python
_hidden_fields
definition that causedKeyError: _reserved1_00
withCMBP1Msg
and other records withConsolidatedBidAskPair
- Fixed
0.50.0 - 2025-03-18
Enhancements
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials, Eurex, and European Energy Exchange (EEX)
- Added export of the following enums from
databento_dbn
to the rootdatabento
package:Action
InstrumentClass
MatchAlgorithm
RType
SecurityUpdateAction
Side
StatUpdateAction
TriState
UserDefinedInstrument
VersionUpgradePolicy
- Added export of the following constants from
databento_dbn
to the rootdatabento
package:DBN_VERSION
FIXED_PRICE_SCALE
UNDEF_ORDER_SIZE
UNDEF_PRICE
UNDEF_STAT_QUANTITY
UNDEF_TIMESTAMP
- Added export of
BidAskPair
andConsolidatedBidAskPair
fromdatabento_dbn
to the rootdatabento
package - Upgraded
databento-dbn
to 0.29.0- Added
COMMODITY_SPOT
InstrumentClass
variant
- Added
- Improved handling of
datetime
anddate
objects instart
andend
parameters
0.49.0 - 2025-03-04
Enhancements
- Added new venues, datasets, and publishers for ICE Futures US and for ICE Futures Europe (Financial products)
- Added a
keep_zip
parameter toHistorical.batch.download()
. WhenTrue
, and downloading all files, the jobs contents will be saved as a ZIP file - Calling
Live.terminate()
will now attempt to write EOF before aborting the connection to help close the remote end
0.48.0 - 2025-01-21
Breaking changes
- Updated enumerations for unreleased datasets and publishers.
Enhancements
- Added export of
StatusAction
enum fromdatabento_dbn
to the rootdatabento
package - Added export of
StatusReason
enum fromdatabento_dbn
to the rootdatabento
package - Added export of
TradingEvent
enum fromdatabento_dbn
to the rootdatabento
package - Added new dataset
EQUS.MINI
and new publishersEQUS.MINI.EQUS
,XNYS.TRADES.EQUS
- Removed upper bound for supported
python
versions; the constraint is now^3.9
- Upgraded
databento-dbn
to 0.27.0- Fixed export of
InstrumentDefMsgV3
to Python
- Fixed export of
Bug fixes
- Fixed an issue where sending a
KeyboardInterrupt
during iteration of theLive
client could block execution waiting for the connection to close - Fixed an issue with submitting historical metadata requests for a large number of symbols.
0.46.0 - 2024-12-10
Enhancements
- Removed deprecated
packaging
parameter fromHistorical.batch.submit_job
. Job files can be downloaded individually or as zip files after the job completes - Upgraded
databento-dbn
to 0.24.0- Added handling for
UNDEF_TIMESTAMP
inpretty_
timestamp getters for Python. They now returnNone
in the case ofUNDEF_TIMESTAMP
- Added handling for
0.45.0 - 2024-11-12
This release adds support for Python v3.13.
Enhancements
- Added support for Python 3.13
- Added new IntelligentCross venues
ASPN
,ASMT
, andASPI
- Upgraded
databento-dbn
to 0.23.1- Fixed
pretty_activation
getter indatabento_dbn
returningexpiration
instead - Fixed some
pretty_
getters indatabento_dbn
didn't correctly handleUNDEF_PRICE
- Fixed
Deprecations
- Deprecated
packaging
parameter forHistorical.batch.submit_job
which will be removed in a future release
0.43.0 - 2024-10-09
This release drops support for Python 3.8 which has reached end-of-life.
Enhancements
- Added
PriceType
enum for validation ofprice_type
parameter inDBNStore.to_df
- Upgraded
databento-dbn
to 0.22.1
Bug fixes
- Fixed return type hint for
metadata.get_dataset_condition
Breaking changes
- Removed support for Python 3.8 due to end of life
0.42.0 - 2024-09-23
Enhancements
- Added
mode
parameter toDBNStore.to_csv
to control the file writing mode - Added
mode
parameter toDBNStore.to_json
to control the file writing mode - Added
mode
parameter toDBNStore.to_parquet
to control the file writing mode - Added
compression
parameter toDBNStore.to_file
which controls the output compression format - Added new consolidated publisher values for
XNAS.BASIC
andDBEQ.MAX
- Changed
DBNStore
to be more tolerant of truncated DBN streams
Breaking changes
- Changed default write mode for
DBNStore.to_csv
to overwrite ("w") - Changed default write mode for
DBNStore.to_json
to overwrite ("w") - Changed default write mode for
DBNStore.to_parquet
to overwrite ("w")
0.41.0 - 2024-09-03
Enhancements
- Added
databento.read_dbn
alias - Added
mode
parameter toDBNStore.to_file
to control the file writing mode
Breaking changes
- Changed default write mode for
DBNStore.to_file
to overwrite ("w")
Deprecations
- Deprecated
databento.from_dbn
and will be removed in a future release, usedatabento.read_dbn
instead
0.39.3 - 2024-08-20
Enhancements
- Added new publisher values for
XCIS.BBOTRADES
andXNYS.BBOTRADES
Bug fixes
- Fixed an issue receiving multiple DBN v1
ErrorMsg
in theLive
client would cause anInvalidState
error - Fixed an issue where creating
Live
clients in multiple threads could cause aRuntimeError
upon initialization
0.38.0 - 2024-07-23
This release adds a new feature to the Live
client for automatically reconnecting when an unexpected disconnection occurs.
Enhancements
- Added
Reference
data client withcorporate_actions.get_range(...)
method - Added
ReconnectPolicy
enumeration - Added
reconnect_policy
parameter to theLive
client to specify client reconnection behavior - Added
Live.add_reconnect_callback
method for specifying a callback to handle client reconnections - Added platform information to the user agent reported by the
Historical
andLive
clients - Upgraded
databento-dbn
to 0.19.1 - Added
BBOMsg
,CBBOMsg
, andStatusMsg
exports to the rootdatabento
package
Breaking changes
- Calling
Live.stop
will now clear all user streams and callbacks - Renamed
Session
toLiveSession
in thedatabento.live.session
module
0.36.0 - 2024-06-11
Enhancements
- Upgraded
databento-dbn
to 0.18.1
Bug fixes
- Fixed an issue where
heartbeat_interval_s
was not being sent to the gateway - Fixed an issue where a truncated DBN stream could be written by the
Live
client in the event of an ungraceful disconnect
Breaking changes
- Output streams of the
Live
client added withLive.add_stream
will now upgrade to the latest DBN version before being written
0.35.0 - 2024-06-04
Enhancements
- Added optional
heartbeat_interval_s
parameter toLive
client for configuring the interval at which the gateway will send heartbeat records - Upgraded
databento-dbn
to 0.18.0 - Added new off-market publisher values for
IFEU.IMPACT
andNDEX.IMPACT
Breaking changes
- Renamed
CbboMsg
toCBBOMsg
- Renamed
use_snapshot
parameter inLive.subscribe
function tosnapshot
- All Python exceptions raised by
databento-dbn
have been changed to use theDBNError
type
0.34.0 - 2024-05-14
Enhancements
- Added
pip-system-certs
dependency for Windows platforms to prevent a connection issue inrequests
when behind a proxy - Iteration of the
Live
client will now automatically callLive.stop
when the iterator is destroyed, such as when a for loop is escaped with an exception orbreak
statement
Bug fixes
- Fixed an issue where
batch.download
andbatch.download_async
would fail if requested files already existed in the output directory - Fixed an issue where
batch.download
,batch.download_async
, andtimeseries.get_range
could use a lot of memory while streaming data - Fixed an issue where reusing a
Live
client with an open output stream would drop DBN records when received at the same time as theMetadata
header
Deprecations
- The
start_date
andend_date
keys in the response fromHistorical.metadata.get_dataset_range
will be removed in a future release. Use the newstart
andend
keys instead, which include time resolution
0.33.0 - 2024-04-16
Enhancements
- The
Historical.batch.download
andHistorical.batch.download_async
methods will now automatically retry the download if a rate limit (HTTP 429) error is received - The
Historical.batch.download
andHistorical.batch.download_async
methods will now retry failed downloads automatically - The
Historical.batch.download
andHistorical.batch.download_async
methods will now download files concurrently - The
output_dir
parameter forHistorical.batch.download
andHistorical.batch.download_async
is now optional and will default to the current working directory if unspecified - Added
pip-system-certs
dependency for Windows platforms to prevent a connection issue inrequests
when behind a VPN
Breaking changes
- The
enable_partial_downloads
parameter forHistorical.batch.download
andHistorical.batch.download_async
has been removed, partial files will always be resumed which was the default behavior - The parameters for
Historical.batch.download
andHistorical.batch.download_async
have been reordered becauseoutput_dir
is now optional,job_id
now comes first
0.32.0 - 2024-04-04
Enhancements
- Improved exception messages when multiple
ErrorMsg
are received by theLive
client - Upgraded
databento-dbn
to 0.17.1
Bug fixes
- Removed live session ID parsing to
int
, that could cause a session to fail when nothing was wrong
Breaking changes
- Renamed publishers from deprecated datasets to their respective sources (
XNAS.NLS
andXNYS.TRADES
respectively)
Deprecations
- Deprecated dataset values
FINN.NLS
andFINY.TRADES
0.30.0 - 2024-02-22
Enhancements
- Changed how
SymbolMappingMsg
objects are ingested byInstrumentMap
to single source the timestamp parsing from thedatabento-dbn
package
Bug fixes
- Fixed an issue where setting a timezone in
DBNStore.to_df
could cause invalid symbol mappings
Breaking changes
- Changed
Live.add_stream
to use the exclusive write mode when handling file paths so existing files won't be overwritten
0.29.0 - 2024-02-13
Enhancements
- Added
tz
parameter toDBNStore.to_df
which will convert all timestamp fields from UTC to a specified timezone when used withpretty_ts
- Added new publisher values for consolidated DBEQ.MAX
Bug fixes
Live.block_for_close
andLive.wait_for_close
will now callLive.stop
when a timeout is reached instead ofLive.terminate
to close the stream more gracefully
0.28.0 - 2024-02-01
Enhancements
- Substantially increased iteration queue size
- Added methods
DBNQueue.enable
andDBNQueue.disable
for controlling queue consumption - Added method
DBNQueue.is_enabled
to signal the queue can accept records - Added method
DBNQueue.is_full
to signal the queue has reached capacity - Added enabled checks to
DBNQueue.put
andDBNQueue.put_nowait
Breaking changes
- Iterating a
Live
client after the streaming session has started will now raise aValueError
. CallingLive.start
is not necessary when iterating theLive
client - Moved constant
databento.live.client.DEFAULT_QUEUE_SIZE
todatabento.live.session.DBN_QUEUE_CAPACITY
- Removed
maxsize
parameter fromDBNQueue
constructor.DBNQueue
now subclassesSimpleQueue
instead - Removed property
DBNQueue.enabled
, useDBNQueue.is_enabled
instead - Removed method
DBNQueue.is_half_full
, useDBNQueue.is_full
instead
Bug fixes
- Fixed an issue where DBN records could be dropped while iterating
- Fixed an issue where async iteration would block the event loop
0.27.0 - 2024-01-23
Enhancements
- Added
Session.session_id
property which will contain the numerical session ID once a live session has been authenticated - Upgraded
databento-dbn
to 0.15.1
Breaking changes
- Renamed
DatabentoLiveProtocol.started
toDatabentoLiveProtocol.is_started
which now returns a bool instead of anasyncio.Event
Bug fixes
- Fixed an issue where an error message from the live gateway would not properly raise an exception if the connection closed before
Live.start
was called
0.25.0 - 2024-01-09
Breaking changes
- Removed deprecated
pretty_px
parameter forDBNStore.to_df
;price_type
can be used instead
Bug fixes
- Fixed an issue where the
Live
client would not raise an exception when reading an incompatible DBN version - Fixed an issue where sending lots of subscriptions could cause a
BufferError
- Fixed an issue where
Historical.batch.download
was slow - Fixed an issue where
Historical.timeseries.get_range
was slow - Fixed an issue where reading a DBN file with non-empty metadata symbol mappings and mixed
SType
would cause an error when mapping symbols (credit: Jakob Lövhall)
0.24.0 - 2023-11-23
This release adds support for DBN v2 as well as Python v3.12.
DBN v2 delivers improvements to the Metadata
header symbology, new stype_in
and stype_out
fields for SymbolMappingMsg
, and extends the symbol field length for SymbolMappingMsg
and InstrumentDefMsg
. The entire change notes are available here. Users who wish to convert DBN v1 files to v2 can use the dbn-cli
tool available in the databento-dbn create. On a future date, the Databento live and historical APIs will stop serving DBN v1.
This release of databento-python
is fully compatible with both DBN v1 and v2, so this upgrade should be seamless for most users.
In some cases, DBN v1 records will be converted to their v2 counterparts:
- When iterating a
DBNStore
and withDBNStore.replay
- When iterating a
Live
client and records dispatched to callbacks
Enhancements
- Added support for Python 3.12
- Improved the performance for stream writes in the
Live
client - Upgraded
databento-dbn
to 0.14.2 - Added
databento.common.types
module to hold common type annotations
Bug fixes
- Fixed an issue where specifying an OHLCV schema in
DBNStore.to_ndarray
orDBNStore.to_df
would not properly filter records by their interval - Fixed an issue where
DBNStore.to_ndarray
andDBNStore.to_df
with a non-zero count could get stuck in a loop if the DBN data did not contain any records
Breaking Changes
DBNStore
iteration andDBNStore.replay
will upgrade DBN version 1 messages to version 2Live
client iteration and callbacks upgrade DBN version 1 messages to version 2- Moved
DBNRecord
,RecordCallback
, andExceptionCallback
types to themdatabento.common.types
module - Moved
AUTH_TIMEOUT_SECONDS
andCONNECT_TIMEOUT_SECONDS
constants from thedatabento.live
module todatabento.live.session
- Moved
INT64_NULL
from thedatabento.common.dbnstore
module todatabento.common.constants
- Moved
SCHEMA_STRUCT_MAP
from thedatabento.common.data
module todatabento.common.constants
- Removed
schema
parameter fromDataFrameIterator
constructor,struct_type
is to be used instead - Removed
NON_SCHEMA_RECORD_TYPES
constant as it is no longer used - Removed
DERIV_SCHEMAS
constant as it is no longer used - Removed
SCHEMA_COLUMNS
constant as it is no longer used - Removed
SCHEMA_DTYPES_MAP
constant as it is no longer used - Removed empty
databento.common.data
module
0.23.1 - 2023-11-10
Enhancements
- Added new publishers for consolidated DBEQ.BASIC and DBEQ.PLUS
Bug fixes
- Fixed an issue where
Live.block_for_close
andLive.wait_for_close
would not flush streams if the timeout was reached - Fixed a performance regression when reading a historical DBN file into a numpy array
0.23.0 - 2023-10-26
Enhancements
- Added
map_symbols_csv
function to thedatabento
module for usingsymbology.json
files to map a symbol column onto a CSV file - Added
map_symbols_json
function to thedatabento
module for usingsymbology.json
files to add a symbol key to a file of JSON records - Added new publisher values in preparation for IFEU.IMPACT and NDEX.IMPACT datasets
Bug fixes
- Fixed issue where a large unreadable symbol subscription message could be sent
- Fixed an issue where
DBNStore.to_df
withpretty_ts=True
was very slow
0.22.0 - 2023-10-23
Enhancements
- Added
price_type
argument forDBNStore.to_df
to specify if price fields should befixed
,float
ordecimal.Decimal
- Added
py.typed
marker file - Upgraded
databento-dbn
to 0.13.0
Breaking Changes
- Changed outputs of
DBNStore.to_csv
andDBNStore.to_json
to match the encoding formats from the Databento API
Deprecations
- Deprecated
pretty_px
argument forDBNStore.to_df
to be removed in a future release; the defaultpretty_px=True
is now equivalent toprice_type="float"
andpretty_px=False
is now equivalent toprice_type="fixed"
0.21.0 - 2023-10-11
Enhancements
- Added
map_symbols
support for DBN data generated by theLive
client - Added support for file paths in
Live.add_stream
- Added new publisher values in preparation for DBEQ.PLUS
- Upgraded
databento-dbn
to 0.11.1
Bug fixes
- Fixed an issue where
DBNStore.from_bytes
did not rewind seekable buffers - Fixed an issue where the
DBNStore
would not map symbols with input symbology ofSType.INSTRUMENT_ID
- Fixed an issue with
DBNStore.request_symbology
when the DBN metadata's start date and end date were the same - Fixed an issue where closed streams were not removed from a
Live
client on shutdown
0.20.0 - 2023-09-21
This release includes batch customization options which improve data usability for CSV and JSON text encodings, as well as providing a way to split files by raw symbols.
Enhancements
- Added
ARCX.PILLAR.ARCX
publisher - Added
pretty_px
option forbatch.submit_job
, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_ts
option forbatch.submit_job
, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbols
option forbatch.submit_job
, which appends a symbol field to each text-encoded record (available for CSV and JSON text encodings) - Added
split_symbols
option forbatch.submit_job
, which will split files by raw symbol - Upgraded
databento-dbn
to 0.10.2
Bug fixes
- Fixed an issue where no disconnection exception were raised when iterating the
Live
client. - Fixed an issue where calling
DBNStore.to_df
,DBNStore.to_json
, orDBNStore.to_csv
withmap_symbols=True
would cause aTypeError
Breaking changes
- Removed
default_value
parameter fromHistorical.symbology.resolve
- Swapped the ordering for the
pretty_px
andpretty_ts
boolean parameters
0.19.0 - 2023-08-25
This release includes improvements to handling large DBN data and adds support for future datasets.
Enhancements
- Added
count
parameter toDBNStore.to_df
andDBNStore.to_ndarray
to help process large files incrementally - Improved memory usage of
DBNStore.to_csv
andDBNStore.to_json
- Added the
Publisher
,Venue
, andDataset
enums - Replace null prices with
NaN
whenpretty_px=True
inDBNStore.to_df()
- Upgraded
databento-dbn
to 0.8.3
Bug fixes
- Fixed issue where exception messages were displaying JSON encoded data
- Fixed typo in
BATY.PITCH.BATY
publisher - Reduced floating error when converting prices to floats with
pretty_px=True
Breaking changes
DBNStore.to_df
now always utf-8 decodes string fields
0.17.0 - 2023-08-10
This release includes improvements to the ergonomics of the clients metadata API, you can read more about the changes here.
Enhancements
- Upgraded
databento-dbn
to 0.8.2
Breaking changes
- Changed
metadata.list_publishers()
to return a list of publisher details objects - Changed
metadata.list_fields(...)
to return a list of field detail objects for a particular schema and encoding - Changed
metadata.list_fields(...)
to require theschema
andencoding
parameters - Changed
metadata.list_unit_prices(...)
to return a list of unit prices for each feed mode and data schema - Changed
metadata.list_unit_prices(...)
to require thedataset
parameter - Removed
metadata.list_unit_prices(...)
mode
andschema
parameters - Removed
metadata.list_fields(...)
dataset
parameter
0.16.0 - 2023-07-25
This release includes updates to the fields in text encodings (CSV and JSON), you can read more about the changes here.
Enhancements
- Added
rtype
field to all schemas that was previously excluded
Breaking changes
- Reordered fields of DataFrame and CSV encoded records to match historical API
0.15.0 - 2023-07-05
Enhancements
- Added
symbology_map
property toLive
client - Added
optional_symbols_list_to_list
parsing function - Changed
Live.add_callback
andLive.add_stream
to accept an exception callback - Changed
Live.__iter__()
andLive.__aiter__()
to send the session start message if the session is connected but not started - Upgraded
databento-dbn
to 0.7.1 - Removed exception chaining from exceptions emitted by the library
Bug fixes
- Fixed issue where a large unreadable symbol subscription message could be sent
- Fixed an
ImportError
observed in Python 3.8
Breaking changes
- Removed
Encoding
,Compression
,Schema
, andSType
enums as they are now exposed bydatabento-dbn
- Renamed
func
parameter torecord_callback
forLive.add_callback
andLive.add_stream
- Removed
optional_symbols_list_to_string
parsing function
0.14.0 - 2023-06-14
Enhancements
- Added
DatabentoLiveProtocol
class - Added
metadata
property toLive
- Added support for emitting warnings in API response headers
- Added support for reusing a
Live
client to reconnect - Relaxed 10 minute minimum request time range restriction
- Upgraded
aiohttp
to 3.8.3 - Upgraded
numpy
to 1.23.5 - Upgraded
pandas
to 1.5.3 - Upgraded
requests
to 2.28.1 - Upgraded
zstandard
to 0.21.0
Breaking changes
- Removed support for Python 3.7
- Renamed
symbol
toraw_symbol
in definition schema when converting to a DataFrame - Changed iteration of
Live
to no longer yield DBN metadata - Changed
Live
callbacks to no longer yield DBN metadata
Bug fixes
- Fixed optional
end
parameter forbatch.submit_job(...)
0.13.0 - 2023-06-02
Enhancements
- Added support for
statistics
schema - Added batch download support data files (
condition.json
andsymbology.json
) - Renamed
booklevel
MBP field tolevels
for brevity and consistent naming - Upgraded
databento-dbn
to 0.6.0
Breaking changes
- Changed
flags
field to an unsigned int - Changed default of
ts_out
toFalse
forLive
client - Changed
instrument_class
DataFrame representation to be consistent with otherchar
types - Removed
open_interest_qty
andcleared_volume
fields that were always unset from definition schema - Removed sunset
timeseries.stream
method - Removed support for legacy stypes
0.12.0 - 2023-05-01
Enhancements
- Added
Live
client for connecting to Databento's live service - Added
degraded
,pending
andmissing
condition variants forbatch.get_dataset_condition
- Added
last_modified_date
field tobatch.get_dataset_condition
response - Upgraded
DBNStore
to support mixed schema types to support live data - Upgraded
databento-dbn
to 0.5.0
Breaking changes
- Changed iteration
DBNStore
to return record types fromdatabento-dbn
instead of numpy arrays - Renamed the
cost
field tocost_usd
forbatch.submit_job
andbatch.list_jobs
(value now expressed as US dollars) - Renamed
product_id
field toinstrument_id
- Renamed
symbol
field in definitions toraw_symbol
- Removed
dtype
property fromDBNStore
- Removed
record_size
property fromDBNStore
- Removed
bad
condition variant frombatch.get_dataset_condition
- Removed unused
LiveGateway
enum - Removed
STATISTICS
fromSchema
enum - Removed
STATUS
fromSchema
enum - Removed
GATEWAY_ERROR
fromSchema
enum - Removed
SYMBOL_MAPPING
fromSchema
enum
Deprecations
- Deprecated
SType.PRODUCT_ID
toSType.INSTRUMENT_ID
- Deprecated
SType.NATIVE
toSType.RAW_SYMBOL
- Deprecated
SType.SMART
toSType.PARENT
andSType.CONTINUOUS
0.10.0 - 2023-04-07
Enhancements
- Added support for
imbalance
schema - Added
instrument_class
,strike_price
, andstrike_price_currency
to definition schema - Changed parsing of
end
andend_date
params throughout the API - Improved exception messages for server and client timeouts
- Upgraded
databento-dbn
to 0.4.3
Breaking changes
- Renamed
Bento
class toDBNStore
- Removed
metadata.list_compressions
(redundant with docs) - Removed
metadata.list_encodings
(redundant with docs) - Removed optional
start
andend
params frommetadata.list_schemas
(redundant) - Removed
related
andrelated_security_id
from definition schema
0.8.0 - 2023-03-03
Enhancements
- Added
batch.list_files(...)
method - Added
batch.download(...)
method - Added
batch.download_async(...)
method - Integrated DBN encoding 0.3.2
Breaking changes
- Dropped support for DBZ encoding
- Renamed
timeseries.stream
totimeseries.get_range
- Renamed
timeseries.stream_async
totimeseries.get_range_async
- Changed
.to_df(...)
pretty_ts
default argument toTrue
- Changed
.to_df(...)
pretty_px
default argument toTrue
- Changed
.to_df(...)
map_symbols
default argument toTrue
Deprecations
- Deprecated
timeseries.stream(...)
method - Deprecated
timeseries.stream_async(...)
method
0.34.0 - 2025-06-09
Breaking changes
- Updated the names of several subfields in the
/corporate_actions.get_range
response, under thedate_info
,event_info
, andrate_info
fields. The following subfields were renamed:decl_currency
renamed todeclared_currency
decl_gross_amount
renamed todeclared_gross_amount
f_x_rate
renamed tofx_rate
iss_new_name
renamed toissuer_new_name
iss_old_name
renamed toissuer_old_name
new_bbg_company_id
renamed tonew_bbg_comp_id
new_bbg_company_tk
renamed tonew_bbg_comp_ticker
new_bbg_exh_id
renamed tonew_figi
new_bbg_exh_tk
renamed tonew_figi_ticker
new_min_tra_qty
renamed tonew_min_trading_qty
new_mktsg_id
renamed tonew_market_segment_id
new_reg_s144_a
renamed tonew_reg_s144a
new_unit_sec_id
renamed tonew_unit_security_id
offeree_iss_id
renamed toofferee_issuer_id
offeror_iss_id
renamed toofferor_issuer_id
old_bbg_company_id
renamed toold_bbg_comp_id
old_bbg_company_tk
renamed toold_bbg_comp_ticker
old_bbg_exh_id
renamed toold_figi
old_bbg_exh_tk
renamed toold_figi_ticker
old_min_tra_qty
renamed toold_min_trading_qty
old_mktsg_id
renamed toold_market_segment_id
old_reg_s144_a
renamed toold_reg_s144a
old_unit_sec_id
renamed toold_unit_security_id
pp_sec_id
renamed topp_security_id
poolfactor
renamed topool_factor
pre_offer_q_ty
renamed topre_offer_qty
qual_st_cap_gains
renamed toqual_short_term_cap_gains
redem_percentage
renamed toredemption_percentage
st_cap_gains
renamed toshort_term_cap_gains
sec_new_name
renamed tosecurity_new_name
sec_old_name
renamed tosecurity_old_name
section199_a_foreign_tax_paid
renamed tosection199a_foreign_tax_paid
section199_a_inc_div
renamed tosection199a_inc_div
section199_a_st_cap_gain
renamed tosection199a_short_term_cap_gain
tra_isin
renamed totrading_isin
tra_sec_id
renamed totrading_security_id
us_deposit_receiptateto_currency
renamed tousd_rate_to_currency
cashbak
renamed tocash_back
companyulsory_acq_date
renamed tocompulsory_acq_date
frankdiv
renamed tofranked_div
lead_plntiff_deadline_date
renamed tolead_plaintiff_deadline_date
maxprice
renamed tomax_price
minprice
renamed tomin_price
redem_premium
renamed toredemption_premium
redem_price
renamed toredemption_price
unit_frankdiv
renamed tounfranked_div
0.30.0 - 2024-09-24
This release introduces the corporate actions and adjustment factors datasets for the reference data API, both with global coverage. The corporate actions dataset provides point-in-time (PIT) corporate action events, while the adjustment factors dataset provides end-of-day price adjustments for capital events, supporting multiple currencies for the same event. You can read more about the release here.
Enhancements
- Added
corporate_actions.get_range(...)
endpoint - Added
adjustment_factors.get_range(...)
endpoint
0.26.0 - 2024-05-14
Enhancements
- Added
start
andend
keys to the response from/metadata.get_dataset_range
to provide time resolution and an exclusive end time
Deprecations
- The
start_date
andend_date
keys in the response from/metadata.get_dataset_range
will be removed in a future release. Use the newstart
andend
keys instead, which include time resolution
0.24.0 - 2024-03-06
Deprecations
- The forward-fill behavior of
end
parameters with unspecified months, days, hours, minutes, or seconds will be removed. To ensure consistent time ranges between old and new behavior: specify an explicitend
as an ISO 8601 string up to seconds resolution, or a UNIX nanoseconds integer. See https://to.dbn.to/api-change-2024-03-27
0.20.0 - 2024-01-18
This release introduces live and historical ICE Europe Commodities iMpact (IFEU.IMPACT
) and ICE Endex iMpact (NDEX.IMPACT
) data.
The datasets cover European futures and options for all energy and commodities products, including all listed outrights, spreads,
and options combinations. You can read more about the release here.
Enhancements
- Added the
IFEU.IMPACT
andNDEX.IMPACT
datasets, does not yet include ourmbo
,mbp-10
,mbp-1
, andtbbo
schemas
0.17.0 - 2023-10-04
This release introduces the Databento Equities Basic dataset (DBEQ.BASIC
), our first bundle of live
and historical US equities data. The bundle includes five proprietary feeds—NYSE Chicago Integrated,
IEX TOPS, NYSE National Trades, NYSE National BBO, and MIAX Pearl Equities Depth of Market—that can
be licensed for distribution, display, and non-display applications at no cost.
You can read more about the release here.
Enhancements
- Added the
DBEQ.BASIC
dataset
0.16.0 - 2023-09-26
Breaking changes
- Symbology mappings no longer include unresolved symbols, this change affects DBN metadata and
/symbology.resolve
responses - Changed batch job
symbology.csv
schema (now a row per date)
Bug fixes
- Fixed symbology resolution on weekends (now uses mappings from previous Friday)
- Fixed consistent streaming of CSV header when no data is found for a request
0.15.0 - 2023-09-19
This release includes customization options which improve data usability for CSV and JSON text encodings, as well as providing a way to split files by raw symbols for batch jobs.
Enhancements
- Added
pretty_px
option for/timeseries.get_range
and/batch.submit_job
, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_ts
option for/timeseries.get_range
and/batch.submit_job
, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbols
option for/timeseries.get_range
and/batch.submit_job
, which appends a symbol field to each text-encoded record (available for CSV and JSON text encodings) - Added
split_symbols
option for/batch.submit_job
, which will split files by raw symbol
0.14.0 - 2023-08-29
This release introduces the OPRA (Options Price Reporting Authority) dataset (OPRA.PILLAR
) for
the historical and live APIs, covering all 16 national exchanges. This not only includes options on
single name equities, but also on indices, e.g., Cboe VIX options, SPX options, and certain
volatility benchmark indices like SPIKE and VSPKE. You can read more about the release here.
Enhancements
- Added the
OPRA.PILLAR
dataset, does not yet include Global Trading Hours (GTH)
0.12.0 - 2023-08-10
This release includes improvements to the ergonomics of our metadata API, you can read more about the changes here.
Note that the /timeseries.get_range
and /symbology.resolve
endpoints both accept POST
and GET
requests, with POST
being the primary and recommended method.
Breaking changes
- Changed
/batch.submit_job
to now require form-encoded data - Changed
/metadata.list_publishers
response to an ordered list of publisher details objects - Changed
/metadata.list_fields
response to an ordered list of field detail objects for a particular schema and encoding - Changed
/metadata.list_fields
to now require theschema
andencoding
query parameters - Changed
/metadata.list_unit_prices
response to a list of unit prices for each feed mode and data schema - Changed
/metadata.list_unit_prices
to now require thedataset
query parameter - Removed
/metadata.list_unit_prices
mode
andschema
query parameters - Removed
/metadata.list_field
dataset
query parameter
0.11.0 - 2023-07-25
This release includes updates to the fields in text encodings (CSV and JSON), you can read more about the changes here.
Breaking changes
- Changed CSV encoding column ordering for most schemas
- Changed JSON encoding to serialize header fields in nested
hd
object (consistency with howlevels
are serialized) - Changed JSON encoding to encode all 64-bit integers as strings to avoid loss of precision when converting to double-precision floating point
- Added
rtype
field/column to MBP schemas that was previously excluded - Added
depth
field/column to MBP schemas that was previously excluded - Renamed JSON fields
bid_oq_*
andask_oq_*
tobid_ct_*
andask_ct_*
respectively - Renamed
security_group
togroup
for thedefinition
schema
0.10.0 - 2023-07-06
Enhancements
- Added warnings header for API responses
- Added POST request support for
timeseries.get_range
andsymbology.resolve
endpoints - Improved behavioral consistency of query params
start
,end
,start_date
andend_date
across the API (exclusive end) - Relaxed 10 minute minimum request time range restriction
- Added
rtype
to encoded CSV and JSON
Deprecations
- Deprecated
symbology
section in themetadata.json
for batch downloads (will be removed in a future version after July 3rd)
Bug fixes
- Fixed handling of certain errors involving invalid
parent
orcontinuous
symbols (no longer a HTTP 500 error)
0.8.0 - 2023-05-01
Enhancements
- Added additional field
last_modified_date
to/metadata.get_dataset_condition
response - Added
degraded
,pending
andmissing
condition variants for/metadata.get_dataset_condition
- Added
last_modified_date
field tobatch.get_dataset_condition
response
Breaking changes
- Renamed
product_id
field toinstrument_id
- Renamed
symbol
field in definitions toraw_symbol
- Renamed the
cost
field tocost_usd
for/batch.submit_job
and/batch.list_jobs
(value now expressed as US dollars) - Removed
bad
condition variant frombatch.get_dataset_condition
Deprecations
- Deprecated stype
product_id
in favor ofinstrument_id
- Deprecated stype
native
in favor ofraw_symbol
- Deprecated stype
smart
in favor of separateparent
andcontinuous
stypes
0.7.0 - 2023-04-07
Breaking changes
- Removed
/metadata.list_compressions
endpoint (redundant with docs) - Removed
/metadata.list_encodings
endpoint (redundant with docs) - Removed optional
start
andend
params from/metadata.list_schemas
endpoint (redundant) - Changed parsing of
end
andend_date
params throughout the API
0.2.0 - 2021-12-10
- Added historical APIs for metadata, time series and symbology
- Added streaming and batch download support
- Added native product ID and symbol support
- Added sizing and pricing functionality
- Improved error handling, size limits and rate limits
- Improved consistency of field names between schemas
0.6.1 - 2025-06-29
Enhancements
- Added replay completed notification
SystemMsg
records - Added throttling to subscription handling so one client sending lots of subscriptions can't degrade other users' sessions
0.6.0 - 2025-05-24
Enhancements
- Added subscription acknowledgement
SystemMsg
records - Added a new optional
is_last
field to subscription requests to indicate the request is part of a larger subscription - Began setting
code
field in DBN version 2+ErrorMsg
andSystemMsg
records - Added slow reader warnings in the form of
SystemMsg
records
0.5.0 - 2024-05-25
Enhancements
- Added support for optional
snapshot
field in subscription control message to request a snapshot of stateful schemas like MBO - Added support for optional
heartbeat_interval_s
field in authentication control message to configure the interval when heartbeat messages will be sent - Added support for optional
id
field in subscription control message
0.3.0 - 2023-10-20
Enhancements
- When a subscription has symbols that fail to resolve, a separate
ErrorMsg
record will be sent for each symbol - Added
pretty_px
session parameter which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for JSON encoding) - Added
pretty_ts
session parameter which formats timestamps as ISO 8601 strings (available for JSON encoding)
0.2.0 - 2023-07-23
Breaking changes
- Updated JSON encoding:
- Moved header fields (
rtype
,publisher_id
,instrument_id
, andts_event
) to nested object under the keyhd
in JSON encoding to match structure definitions - Added
channel_id
to MBO schema - Changed to always include
rtype
to differentiate between schemas, makingdetails
session parameter redundant - Rename
security_group
in definitions schema togroup
to match struct definitions - All 64-bit integers are now serialized as strings to avoid loss of precision
- Moved header fields (
Deprecations
- Deprecated
details
session parameter
0.33.0 - 2025-08-19
Enhancements
- Upgraded DBN version to 0.40.0:
- Added
DbnVersion
new type
- Added
Breaking changes
- Removed
bill_id
field fromBatchJob
struct - Breaking changes from DBN:
- Marked
ErrorCode
andSystemCode
non-exhaustive to allow adding future variants without a breaking change - Added
EndOfInterval
variant toSystemCode
to notify when all OHLCV bars and subsampled BBO records have been published for a time interval
- Marked
0.31.0 - 2025-07-30
Enhancements
- Changed
timeseries.get_range_to_file()
to return a concrete type instead of an impl trait type - Upgraded DBN version to 0.39.0:
- Added
side()
andunpaired_side()
methods toImbalanceMsg
that convert the fields of the same name to theSide
enum - Added
pretty_auction_time
property in Python forImbalanceMsg
- Added
Default
implementation forStatUpdateAction
- Added warnings to the floating-point getter methods' docstrings
- Added
action
andts_in_delta
getters toBboMsg
- Added
ts_recv
getter toStatusMsg
- Added missing floating-point price getters to
InstrumentDefMsg
record types from all DBN versions - Added more floating-point price getters to
ImbalanceMsg
- Added floating-point price getter to
StatMsg
andv1::StatMsg
- Added
Breaking changes
- Breaking changes from DBN:
- Changed
SystemMsg::code()
andErrorMsg::code()
methods to return aResult
instead of anOption
to be consistent with other enum conversion methods - Changed
auction_time
field inImbalanceMsg
to be formatted as a timestamp
- Changed
Bug fixes
- Removed unused
S3
andDisk
variants fromDelivery
enum
0.29.0 - 2025-07-15
Breaking changes
- Upgraded DBN version to 0.37.0:
- Renamed the following Venue, Dataset, and Publishers:
XEER
toXEEE
XEER.EOBI
toXEEE.EOBI
XEER.EOBI.XEER
toXEEE.EOBI.XEEE
XEER.EOBI.XOFF
toXEEE.EOBI.XOFF
- Renamed
CMBP1
constant toCMBP_1
for consistency withMBP_1
andMBP_10
- Renamed the following Venue, Dataset, and Publishers:
Bug fixes
- Removed
Intraday
variant fromDatasetCondition
enum
0.28.0 - 2025-07-01
Enhancements
- Added operating system info to the user agent to aid troubleshooting
- Standardized
client
info sent by live clients to match historical - Added methods to the client builders to extend the user agents with a custom string
Deprecations
- Deprecated
Historical::with_url()
: use the builder to override the base URL - Deprecated the
upgrade_policy
parameters fortimseries().get_range()
andtimeseries().get_range_to_file()
: use theHistorical
client parameter instead
0.27.0 - 2025-06-10
Enhancements
- Made the buffer size used by the live client when reading from the TCP socket
configurable through the
LiveBuilder::buffer_size()
method - Added support for using
rustls
without pulling in OpenSSL.reqwest
with OpenSSL is still the default - Upgraded DBN version to 0.36.0:
- Added support for width, fill, and padding when formatting
pretty::Ts
- Added support for sign, precision, width, fill, and padding when formatting
pretty::Px
- Optimized pretty formatting of prices and timestamps
- Added support for width, fill, and padding when formatting
Breaking changes
- Changed type of
split_duration
toOption<SplitDuration>
to support setting no split duration - Breaking changes from DBN:
- Moved core async decoding and encoding functionality to new traits to
match the sync interface and present a standardized interface
- Decoding:
AsyncDecodeRecordRef
andAsyncDecodeRecord
- Encoding:
AsyncEncodeRecord
,AsyncEncodeRecordRef
, andAsyncEncodeRecordTextExt
- Decoding:
- Moved core async decoding and encoding functionality to new traits to
match the sync interface and present a standardized interface
Deprecations
- Deprecated
LiveClient::connect
andLiveClient::connect_with_addr
methods in favor of using the builder so additional optional parameters can be added without a breaking change
Bug fixes
- Fixed bug with deserializing
null
split_duration
in historicalbatch().list_jobs()
0.26.2 - 2025-06-03
Enhancements
- Improved performance of live client by removing redundant state
- Upgraded DBN version to 0.35.1
Bug fixes
- Fixed handling of
VersionUpgradePolicy
intimeseries().get_range()
andget_range_to_file()
- Bug fixes from DBN:
- Fixed behavior where encoding metadata could lower the
version
- Changed
DbnFsm::data()
to exclude all processed data - Fixed
Metadata::upgrade()
behavior withUpgradeToV2
- Fixed behavior where encoding metadata could lower the
0.26.0 - 2025-05-28
This version marks the release of DBN version 3 (DBNv3), which is the new default. API methods and decoders support decoding all versions of DBN, but now default to upgrading data to version 3.
Enhancements
- Added
From<DatasetRange>
conversion forDateTimeRange
- Added
is_last
field to live subscription requests which will be used to improve the handling of split subscription requests - Upgraded DBN version to 0.35.0:
- Version 1 and 2 structs can be converted to version 3 structs with the
From
trait - Implemented conversion from
RecordRef
toIoSlice
for use withWrite::write_vectored
- Version 1 and 2 structs can be converted to version 3 structs with the
Breaking changes
- Breaking changes from DBN:
- Definition schema:
- Updated
InstrumentDefMsg
with newleg_
fields to support multi-leg strategy definitions. - Expanded
asset
to 11 bytes andASSET_CSTR_LEN
to match - Expanded
raw_instrument_id
to 64 bits to support more venues. Like other 64-bit integer fields, its value will now be quoted in JSON - Removed
trading_reference_date
,trading_reference_price
, andsettl_price_type
fields which will be normalized in the statistics schema - Removed
md_security_trading_status
better served by the status schema
- Updated
- Statistics schema:
- Updated
StatMsg
has an expanded 64-bitquantity
field. Like other 64-bit integer fields, its value will now be quoted in JSON - The previous
StatMsg
has been moved tov2::StatMsg
orStatMsgV2
- Updated
- Changed the default
VersionUpgradePolicy
toUpgradeToV3
- Updated the minimum supported
tokio
version to 1.38, which was released one year ago
- Definition schema:
0.25.0 - 2025-05-13
Enhancements
- Increased live subscription symbol chunking size
- Upgraded DBN version to 0.34.0:
- Added a
v3::StatMsg
record with an expanded 64-bitquantity
field - Added
with_compression_level
methods toDynWriter
,AsyncDynWriter
, andAsyncDynBufWriter
- Added
DBN_VERSION
constants to each version module:v1
,v2
, andv3
- Added
UNDEF_STAT_QUANTITY
constants to each version module - Added statistics compatibility trait
StatRec
for generalizing across different versions of the statistics record - Added
AsRef<[u8]>
implementations forRecordEnum
andRecordRefEnum
- Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Added a
Breaking changes
- From DBN:
- Made
Record
a subtrait ofAsRef<[u8]>
as all records should be convertible to bytes
- Made
0.24.0 - 2025-04-22
Enhancements
- Upgraded DBN version to 0.33.0:
- Added
SystemCode
andErrorCode
enums to indicate types of system and error messages - Added
code()
methods toSystemMsg
andErrorMsg
to retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsg
to av2::SystemMsg
now sets tocode
to the heartbeat value - Added
ASSET_CSTR_LEN
constants for the size ofasset
field inInstrumentDefMsg
in different DBN versions - Added
encode_record_with_sym()
method toAsyncJsonEncoder
which encodes a record along with its text symbol to match the sync encoder
- Added
Breaking changes
- Breaking changes from DBN:
- Added
code
parameter toSystemCode::new()
andErrorMsg::new()
- Updated the
rtype_dispatch
andschema_dispatch
macro invocations to look more like function invocation - Increased the size of
asset
field inv3::InstrumentDefMsg
from 7 to 11. TheInstrumentDefMsgV3
message size remains 520 bytes.
- Added
0.23.0 - 2025-04-15
Enhancements
- Added
subscriptions
toLiveClient
Debug
implementation - Upgraded DBN version to 0.32.0:
- Added
SystemCode
andErrorCode
enums to indicate types of system and error messages - Added
code()
methods toSystemMsg
andErrorMsg
to retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsg
to av2::SystemMsg
now sets tocode
to the heartbeat value - Added
Ord
andPartialOrd
implementations for all enums andFlagSet
to allow for use in ordered containers likeBTreeMap
- Added
decode_records()
method toAsyncDbnDecoder
andAsyncDbnRecordDecoder
which is similar to the sync decoder methods of the same name - Upgraded
pyo3
version to 0.24.1 - Upgraded
time
version to 0.3.41
- Added
Breaking changes
- Added new
id
field to liveSubscription
, which will be used for improved error messages - Added new
id
parameter tolive::protocol::SubRequest::new()
method - Breaking changes from DBN:
- Added
code
parameter toSystemCode::new()
andErrorMsg::new()
- Updated the
rtype_dispatch
andschema_dispatch
macro invocations to look more like function invocation - Removed deprecated
dataset
module. The top-levelDataset
enum and itsconst
as_str()
method provide the same functionality for all datasets - Removed deprecated
SymbolIndex::get_for_rec_ref()
method
- Added
0.22.0 - 2025-04-01
Enhancements
- Added an implementation
From<Date>
forDateRange
andDateTimeRange
to make it simpler to request a single full day's worth of data - Added conversions between
DateRange
andDateTimeRange
- Added conversions from
timeseries::GetRangeParams
,timeseries::GetRangeToFileParams
, anddbn::Metadata
tosymbology::ResolveParams
- Upgraded DBN version to 0.30.0:
- Added support for mapping symbols from instrument definitions to
PitSymbolMap
with a newon_instrument_def()
method - Added instrument definition compatibility trait
InstrumentDefRec
for generalizing across different versions of the instrument definition record - Added
Ord
andPartialOrd
implementations for all enums andFlagSet
to allow for use in ordered containers likeBTreeMap
- Added
decode_records()
method toAsyncDbnDecoder
andAsyncDbnRecordDecoder
which is similar to the sync decoder methods of the same name - Removed deprecated
dataset
module. The top-levelDataset
enum and itsconst
as_str()
method provide the same functionality for all datasets - Removed deprecated
SymbolIndex::get_for_rec_ref()
method
- Added support for mapping symbols from instrument definitions to
0.21.0 - 2025-03-18
Enhancements
- Improved error when calling
LiveClient::next_record()
on an instance that hasn't been started - Improved error when calling
LiveClient::start()
on an instance that has already been started - Upgraded DBN version to 0.29.0:
- Added new venues, datasets, and publishers for ICE Futures US, ICE Europe Financials products, Eurex, and European Energy Exchange (EEX)
- Added new
SkipBytes
andAsyncSkipBytes
traits which are a subset of theSeek
andAsyncSeek
traits respectively, only supporting seeking forward from the current position - Deprecated
AsyncRecordDecoder::get_mut()
andAsyncDecoder::get_mut()
as modifying the inner reader after decoding any records could lead to a corrupted stream and decoding errors
0.20.0 - 2025-02-12
Enhancements
- Added
LiveClient::reconnect()
andLiveClient::resubscribe()
methods to make it easier to resume a live session after losing the connection to the live gateway - Added
subscriptions()
andsubscriptions_mut()
getters toLiveClient
for getting all active subscriptions - Added
shutdown()
method tolive::Protocol
to clean up the active session - Downgraded to tracing span level on
LiveClient::next_record()
to "debug" to reduce performance impact - Added
From<&[&str]>
andFrom<[str; N]>
implementations forSymbols
Breaking changes
- Changed
LiveClient::close()
to take&mut self
rather than an owned value toself
now that clients can be reused through thereconnect()
method - Changed
LiveClient::subscribe()
to take aSubscription
parameter rather than a&Subscription
because it will now store theSubscription
struct internally - Upgraded DBN version to 0.28.0:
- Added
CommoditySpot
InstrumentClass
variant and madeInstrumentClass
non-exhaustive to allow future additions without breaking changes
- Added
0.19.0 - 2025-01-21
Enhancements
- Upgraded DBN version to 0.27.0:
- Updated enumerations for unreleased US equities datasets and publishers
- Added new venue
EQUS
for consolidated US equities - Added new dataset
EQUS.MINI
and new publishersEQUS.MINI.EQUS
andXNYS.TRADES.EQUS
Bug fixes
- Changed historical metadata methods with
symbols
parameter to use aPOST
request to allow for requesting supported maximum of 2000 symbols
0.18.0 - 2025-01-08
Enhancements
- Upgraded DBN version to 0.26.0:
- Added
v3
namespace in preparation for future DBN version 3 release. DBN version 2 remains the current and default version - Added
v3::InstrumentDefMsg
record with new fields to support normalizing multi-leg strategy definitions- Removal of statistics-schema related fields
trading_reference_price
,trading_reference_date
, andsettl_price_type
- Removal of the status-schema related field
md_security_trading_status
- Removal of statistics-schema related fields
- Added initial support for merging DBN:
- Decoding streams:
MergeDecoder
andMergeRecordDecoder
structs - Metadata:
MergeDecoder
struct andMetadata::merge()
method - In the CLI: specify more than one input file to initiate a merge
- Decoding streams:
- Eliminated
unsafe
inFrom
implementations for record structs from different versions
- Added
0.17.0 - 2024-12-17
Enhancements
- Upgraded DBN version to 0.25.0:
- Added
v1
andv2
namespaces in DBN to allow unambiguously referring to the record types for a given DBN version regardless of whether the record type has changed - Changed
dataset()
method onMetadataBuilder
to accept animpl ToString
so nowDataset
and&str
can be passed directly - Changed async DBN decoding to return
Ok(None)
when an incomplete record remains in the stream. This matches the existing behavior of sync DBN decoding
- Added
- Upgraded
thiserror
version to 2.0
Breaking changes
- Removed deprecated
Packaging
enum andpackaging
field that's no longer supported by the API - As part of the DBN version upgrade:
VersionUpgradePolicy::Upgrade
was renamed toUpgradeToV2
- Changed async DBN decoding to return
Ok(None)
when an incomplete record remains in the stream
0.16.0 - 2024-11-12
Enhancements
- Upgraded DBN version to 0.23.1:
- Added floating-point getters for price fields
- Added new IntelligentCross venues
ASPN
,ASMT
, andASPI
- Upgraded
thiserror
version to 2.0
Deprecations
- Deprecated
Packaging
enum andpackaging
field onSubmitJobParams
andBatchJob
. These will be removed in a future version. All files from a batch job can be downloaded with thebatch().download()
method on the historical client
0.15.0 - 2024-10-22
Enhancements
- Upgraded DBN version to 0.23.0:
- Added new
None
Action
variant that will be gradually rolled out to historical and liveGLBX.MDP3
data - Added consistent escaping of non-printable and non-ASCII values when text encoding
c_char
fields - Implemented
Default
forAction
andSide
- Implemented missing
Serialize
for (withserde
feature enabled) forVenue
,Dataset
,Publisher
,Compression
,SType
,Schema
, andEncoding
- Added new
0.14.0 - 2024-10-01
Enhancements
- Made several previously internal functions public to allow advanced users more
customization and piecemeal usage of the live API:
ApiKey
Symbols::to_chunked_api_string()
live::protocol
module containing implementations of the raw API messages
- Changed from
log
crate totracing
for better diagnostics
0.11.0 - 2024-06-04
Enhancements
- Added configurable
heartbeat_interval
parameter for live client that determines the timeout before heartbeatSystemMsg
records will be sent. It can be configured via theheartbeat_interval
andheartbeat_interval_s
methods of thelive::ClientBuilder
- Added
addr
function tolive::ClientBuilder
for configuring a custom gateway address without usingLiveClient::connect_with_addr
directly - Upgraded DBN version to 0.18.1
Breaking changes
- Added
heartbeat_interval
parameter toLiveClient::connect
andLiveClient::connect_with_addr
- Removed deprecated
start_date
andend_date
fields fromDatasetRange
struct
0.10.0 - 2024-05-22
Enhancements
- Added
use_snapshot
attribute toSubscription
, defaults to false - Upgraded reqwest version to 0.12
Breaking changes
- Upgraded DBN version to 0.18.0
- Changed type of
flags
inMboMsg
,TradeMsg
,Mbp1Msg
,Mbp10Msg
, andCbboMsg
fromu8
to a newFlagSet
type with predicate methods for the various bit flags as well as setters. Theu8
value can still be obtained by calling theraw()
method- Improved
Debug
formatting
- Improved
- Switched
DecodeStream
fromstreaming_iterator
crate tofallible_streaming_iterator
to allow better notification of errors - Changed default value for
stype_in
andstype_out
inSymbolMappingMsg
tou8::MAX
to match C++ client and to reflect an unknown value. This also changes the value of these fields when upgrading aSymbolMappingMsgV1
to DBNv2
- Changed type of
0.9.0 - 2024-05-14
Enhancements
- Added
start
andend
fields to theDatasetRange
struct which are instances ofOffsetDateTime
and provide time resolution and an exclusive end - Upgraded DBN version to 0.17.1
Deprecations
- The
start_date
andend_date
fields of theDatasetRange
struct are deprecated and will be removed in a future release
0.8.0 - 2024-04-01
Enhancements
- Upgraded DBN version to 0.17.0
- Added new record types and schema variants for consolidated BBO and subsampled BBO
- Added
Volatility
andDelta
StatType
variants
Breaking changes
- Removed previously-deprecated
live::SymbolMap
. Please usedatabento::dbn::PitSymbolMap
instead
0.7.0 - 2024-03-01
Enhancements
- Document cancellation safety of
LiveClient
methods - Document
live::Subscription::start
is based onts_event
- Allow constructing a
DateRange
andDateTimeRange
with anend
based on atime::Duration
- Implemented
Debug
forLiveClient
,live::ClientBuilder
,HistoricalClient
,historical::ClientBuilder
,BatchClient
,MetadataClient
,SymbologyClient
, andTimeseriesClient
- Derived
Clone
forlive::ClientBuilder
andhistorical::ClientBuilder
- Added
ApiKey
type for safely derivingDebug
for types containing an API key
Breaking changes
- Changed default
upgrade_policy
inLiveBuilder
andGetRangeParams
toUpgrade
so by default the primary record types can always be used - Simplified
DateRange
andDateTimeRange
by removingFwdFill
variant that didn't work correctly - Upgraded DBN version to 0.16.0
- Updated
StatusMsg
in preparation for status schema release - Fixed handling of
ts_out
when upgrading DBNv1 records to version 2 - Fixed handling of
ErrorMsgV1
andSystemMsgV1
inrtype
dispatch macros
- Updated
0.6.0 - 2024-01-16
Enhancements
- Relaxed version requirements for
tokio
,tokio-util
, andthiserror
Breaking changes
- Upgraded DBN version to 0.15.0
- Added support for larger
SystemMsg
andErrorMsg
records - Improved
Debug
implementations for records andRecordRef
- Improved panic messages for
RecordRef::get
- Added support for larger
- Upgraded
typed-builder
to 0.18
Bug fixes
- Fixed documentation for
end
inDateRange::Closed
andDateTimeRange::Closed
0.5.0 - 2023-11-23
This release adds support for DBN v2.
DBN v2 delivers improvements to the Metadata
header symbology, new stype_in
and stype_out
fields for SymbolMappingMsg
, and extends the symbol field length for SymbolMappingMsg
and
InstrumentDefMsg
. The entire change notes are available here.
Users who wish to convert DBN v1 files to v2 can use the dbn-cli
tool available in the databento-dbn crate.
On a future date, the Databento live and historical APIs will stop serving DBN v1.
This release is fully compatible with both DBN v1 and v2, and so should be seamless for most users.
Enhancements
- Made
LiveClient::next_record
,dbn::decode::AsyncDbnDecoder::decode_record
anddecode_record_ref
, anddbn::decode::AsyncRecordDecoder::decode
anddecode_ref
cancel safe. This makes them safe to use within atokio::select!
statement - Improved error reporting for
HistoricalClient
when receiving an error from Databento's API - Improved error messages around API keys
- Improved performance of CSV and JSON encoding
- Added support for emitting warnings from historical API response headers, such as for future deprecations
- Added
symbol_map
method to theResolution
struct returned bysymbology::resolve
that returns aTsSymbolMap
- Added
PartialEq
andEq
implementations for parameter builder classes - Added
upgrade_policy
setter to theLiveClient
builder and a getter to theLiveClient
- Added
upgrade_policy
optional setter to thetimeseries::GetRangeParams
builder
Breaking changes
- Upgraded
dbn
to 0.14.2. There are several breaking changes in this release as we begin migrating to DBN encoding version 2 (DBNv2) in order to support the ICE exchange:- Renamed
dbn::InstrumentDefMsg
todbn::compat::InstrumentDefMsgV1
and added a newdbn::InstrumentDefMsg
with a longerraw_symbol
field - Renamed
dbn::SymbolMappingMsg
todbn::compat::SymbolMappingMsgV1
and added a newdbn::SymbolMappingMsg
with longer symbol fields and newstype_in
andstype_out
fields - Added
symbol_cstr_len
field todbn::Metadata
- Renamed
- Made
Error
non-exhaustive, meaning it no longer be exhaustively matched against, and new variants can be added in the future without a breaking change - Added an
upgrade_policy
parameter toLiveClient::connect
andconnect_with_addr
. The builder provides a more stable API since new parameters are usually introduced as optional
Deprecations
- Deprecated
live::SymbolMap
in favor ofdatabento::dbn::PitSymbolMap
0.4.0 - 2023-09-21
Enhancements
- Added
pretty_px
option forbatch::submit_job
, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_ts
option forbatch::submit_job
, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbols
option tobatch::submit_job
, which appends the raw symbol to every record (available for CSV and JSON text encodings) reducing the need to look at thesymbology.json
file - Added
split_symbols
option forbatch::submit_job
, which will split files by raw symbol - Added
encoding
option tobatch::submit_job
to allow requesting non-DBN encoded data through the client - Added
map_symbols
,pretty_px
, andpretty_ts
toBatchJob
response
0.2.0 - 2023-08-10
Breaking changes
- Changed
metadata::list_publishers
to return aVec<PublisherDetail>
metadata::list_fields
:- Changed return type to
Vec<FieldDetail>
- Made
encoding
andschema
parameters required - Removed
dataset
parameter
- Changed return type to
metadata::list_unit_prices
:- Changed return type to
Vec<UnitPricesForMode>
- Made
dataset
parameter required - Removed
mode
andschema
parameters
- Changed return type to
2025-09-23
Bug fixes
- Fixed missing
ts_ref
in CME Globex settlement price statistics prior to 2015 - Fixed a symbology issue in the
XCIS.TRADESBBO
dataset starting on 2025-02-21.
2025-08-26
Enhancements
- Added preliminary end-of-day statistics to EQUS.SUMMARY. More details available on the dataset supplement.
2025-08-05
Enhancements
- Added historical data for delisted market types in ICE datasets, including EUA futures when they traded on IFEU prior to 2021
Bug fixes
2025-07-25
The latest regeneration of CME Globex data prior to May 2017 includes several data quality fixes and improvements.
Enhancements
Bug fixes
- Fixed incorrect
activation
andexpiration
from 2015-11-22 to 2017-05-21 - Fixed incorrect price levels in the MBP-10 schema for products with reduced
market_depth
and implied books on MDP2 CME Globex data - Fixed missing
ts_ref
in CME Globex data from 2015-11-20 to 2017-05-21 - Fixed empty CME Globex data for 2010-09-13, 2010-11-17, 2012-07-19, and 2017-03-13
- Fixed out-of-order statistics records in pre-2017 CME Globex data
- Fixed missing
SettlPriceType
normalization in MDP2 CME Globex data
2025-06-17
This release introduces live and historical ICE Futures US iMpact (IFUS.IMPACT
) and ICE Europe Financials iMpact (IFLL.IMPACT
) data.
The datasets cover US futures and options for all softs, metals, and financial products, as well
as European equity and interest rate derivatives.
You can read more about the release here.
Enhancements
- Changed the following Venue, Publisher, and Dataset descriptions:
- "ICE Futures Europe (Financials)" renamed to "ICE Europe Financials"
- "ICE Futures Europe (Commodities)" renamed to "ICE Europe Commodities"
2025-06-10
Enhancements
- Extended OPRA Pillar history back to 2013. You can read more about the release here.
2025-05-07
Enhancements
- Extended US equities coverage to Cboe EDGX Depth, Cboe EDGA Depth, Cboe BZX Depth, and Cboe BYX Depth. You can read more about the release here.
- Added normalization for the official opening and closing cross prices in Nasdaq data
2025-04-05
Enhancements
- Added support for open interest and volume-based continuous symbology in the live API
2025-03-13
Enhancements
- Extended US equities coverage to MEMX Memoir Depth. You can read more about the release here.
2025-02-01
Enhancements
- Added the Databento US Equities Mini dataset, which provides cost-effective real-time US equities data. You can read more about this release here.
2024-12-02
This release features several normalization and data quality improvements to ICE Europe Commodities and ICE Endex.
Enhancements
- Improved ICE normalization to use
ContractSymbol
forraw_symbol
when available.ContractSymbol
provides more human-readable symbols than theStrategySymbol
fallback. - Updated ICE normalization to normalize off-market trades under a separate publisher
Bug fixes
- Fixed an issue with ICE Europe Commodities and ICE Endex where System Priced leg trades were counted towards OHLCV bars
2024-10-22
Bug fixes
- Fixed an issue where several Fridays in 2020 had no data for ICE Europe Commodities and ICE Endex
2024-10-24
Enhancements
- Added adjustment factors to our reference data API. You can read about this release here.
2024-06-18
Bug fixes
- Changed normalization for CME Globex MDP 3.0 statistics to use tag 34-MsgSeqNum for
sequence
to match other schemas instead of tag 83-RptSeq - Fixed scaling of
strike_price
for metal options for CME Globex MDP 3.0 - Added truncated digit
of
strike_price
for MDP 3.0 2-Year T-Note options (OZT) for CME Globex MDP 3.0.strike_price
now includes the full strike price - Fixed scaling of
unit_of_measure_qty
in older CME Globex MDP 3.0. Previously, the newer 9-digit precision scaling was erroneously applied to pre-late 2018 data when CME used 7-digit precision - Changed
stat_flags
to always be 0 when it is unused or there is no source field to normalize to it
2024-05-07
Bug fixes
- Changed normalization for ICE Europe Commodities iMpact and ICE Endex iMpact to no longer set
ts_ref
when a valuation date time or trading date isn't specified - Added missing normalization to statistics schema for Option Open Interest Message and Option Settlement Price Message in ICE Europe Commodities iMpact and ICE Endex iMpact
2024-01-18
This release introduces live and historical ICE Europe Commodities iMpact (IFEU.IMPACT
) and ICE Endex iMpact (NDEX.IMPACT
) data.
The datasets cover European futures and options for all energy and commodities products, including all listed outrights, spreads,
and options combinations. You can read more about the release here.
Enhancements
- Added the
IFEU.IMPACT
andNDEX.IMPACT
datasets, does not yet include ourmbo
,mbp-10
,mbp-1
, andtbbo
schemas
2023-11-17
Enhancements
This release adds support for Nasdaq TotalView-ITCH (XNAS.ITCH
) live data.
This includes detailed information on every order in the book, captured and distributed from our Equinix NY4 colo, offering more insights into Nasdaq market activity than data sourced from the SIPs.
You can read more about this release here.
2023-10-04
This release introduces the Databento Equities Basic dataset (DBEQ.BASIC
), our first bundle of live
and historical US equities data. The bundle includes five proprietary feeds—NYSE Chicago Integrated,
IEX TOPS, NYSE National Trades, NYSE National BBO, and MIAX Pearl Equities Depth of Market—that can
be licensed for distribution, display, and non-display applications at no cost.
You can read more about the release here.
Enhancements
- Added the
DBEQ.BASIC
dataset, does not include live data for thembo
schema
Breaking changes
- Changed
XNAS.ITCH
Cross Trade messages when no cross occurred to have a price ofUNDEF_PRICE
instead of the previous price of 0
2023-08-29
This release introduces the OPRA (Options Price Reporting Authority) dataset (OPRA.PILLAR
) for
the historical and live APIs, covering all 16 national exchanges. This not only includes options on
single name equities, but also on indices, e.g., Cboe VIX options, SPX options, and certain
volatility benchmark indices like SPIKE and VSPKE. You can read more about the release here.
Enhancements
- Added the
OPRA.PILLAR
dataset, does not yet include live data for thembp-1
schema, or Global Trading Hours (GTH)
2023-07-23
- Updated CSV encoding:
- Reordered columns in every schema to better reflect relative importance
- Added
channel_id
to MBO schema - Always include
rtype
to differentiate between schemas - Rename
security_group
in definitions schema togroup
to match struct definitions
- Updated JSON encoding:
- Moved header fields (
rtype
,publisher_id
,instrument_id
, andts_event
) to - Added
channel_id
to MBO schema - Changed to always include
rtype
to differentiate between schemas nested object under the keyhd
in JSON encoding to match structure definitions - Rename
security_group
in definitions schema togroup
to match struct definitions - All 64-bit integers are now serialized as strings to avoid loss of precision
- Moved header fields (
2023-03-07
- Fixed an issue causing duplicate add order snapshots on CME Globex MDP 3.0.