0.40.0 - 2025-07-29
Enhancements
- Added
OhlcvEodvariant toRType - Added documentation to more enums and record structs
- Aligned string representation of
RTypewith Rust
Breaking changes
- Switched to
std::bytefor 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
DiskandS3variants fromDeliveryenum
0.39.0 - 2025-07-15
Breaking changes
- Renamed the following Venue, Dataset, and Publishers:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
Bug fixes
- Fixed potential corrupted records when upgrading DBN versions in live clients
- Removed unused
Intradayvariant fromDatasetConditionenum
0.38.2 - 2025-07-01
Enhancements
- Added
LogPlatformInfofunction 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
clientinfo 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_schemafield toDatasetRangestruct - Changed historical
TimeseriesGetRange()andTimeseriesGetRangeToFile()methods to use aPOSTrequest 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
nulllast_modified_dateinMetadataGetDatasetConditionresponse - Fixed default
ShouldLogimplementation
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
ConsoleLogReceiveroutput - Added
iomanipcompatibility: fill, precision, and width topretty::Px(formerlyFixPx) - Added new
pretty::Tshelper type for human-readable formatting ofUnixNanos
Breaking changes
- Live client instances can only be created through the
LiveBuilderclass - Changed
HeartbeatInterval()getters onLiveBlockingandLiveThreadedto return anstd::optional - Added new optional
ShouldLogvirtual method toILogReceiverto filter the levels of log messages that will be sent to the receiver
Deprecations
- Deprecated
FixPxin favor ofpretty::Pxwhich has consistent naming with the API and the Python and Rust client libraries
Bug fixes
- Ensure
CPPHTTPLIB_OPENSSL_SUPPORTis defined at all locations wherecpp-httplibis included
0.37.0 - 2025-06-03
Breaking changes
- Changed the type of the
output_dirparameter inHistoricalClient::BatchDownload()to astd::filesystem::pathand the return type tostd::filesystem::path - Changed the type of the
file_pathparameter inHistoricalClient::TimeseriesGetRangeToFile()to astd::filesystem::path - Changed the type of the
file_pathparameter in theDbnFileStore,InFileStream, andOutFileStreamconstructors to astd::filesystem::path - Made
stype_inandschemaoptionals inMetadatato align with howMetadatais represented in other languages and removed the booleanhas_mixed_stype_inandhas_mixed_schemafields
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
UpgradeToV3variant toVersionUpgradePolicyenum - Version 1 and 2 structs can be converted to version 3 structs with templated
Upgrademethod - Metadata will now always be encoded with a length divisible by 8 bytes for better alignment
- Added
is_lastfield 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
InstrumentDefMsgwith newleg_fields to support multi-leg strategy definitions. - Expanded
raw_instrument_idto 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_typefields which will be normalized in the statistics schema - Removed
md_security_trading_statusbetter served by the status schema - Updated
assetto 11 bytes andkAssetCstrLento match
- Updated
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield.kUndefStatQuantityhas been updated to match - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- 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::StatMsgrecord with an expanded 64-bitquantityfield - Added
kDbnVersionconstants to each version namespace:v1,v2, andv3 - Added
kUndefStatQuantityconstants 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
SystemCodeandErrorCodeenums to indicate types of system and error messages - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Introduced
kAssetCstrLenconstant containing the size ofassetfield inInstrumentDefMsg
Breaking changes
- Increased the size of
assetfield inv3::InstrumentDefMsgfrom 7 to 11. Thev3::InstrumentDefMsgmessage size remains 520 bytes. - Set minimum CMake version to 3.24
- Changed type of
codefield inSystemMsgtoSystemCode - Changed type of
codefield inErrorMsgtoErrorCode
Bug fixes
- Changed
TriStateto a regular enum to handle unexpected values - Fixed
ccachesupport - Changed to explicitly only support being built as a static library
0.30.0 - 2025-02-11
Enhancements
- Added
Resubscribe()methods toLiveBlockingandLiveThreadedto make it easier to resume a live session after losing the connection to the live gateway - Added
Subscriptions()getter methods toLiveBlockingandLiveThreadedfor getting all active subscriptions - Added
CommoditySpotInstrumentClassvariant
0.28.0 - 2025-01-21
Breaking changes
- Updated enumerations for unreleased datasets and publishers.
Enhancements
- Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUS,XNYS.TRADES.EQUS
Bug fixes
- Changed historical metadata methods with
symbolsparameter to use aPOSTrequest to allow for requesting supported maximum of 2000 symbols
0.27.0 - 2025-01-07
Breaking changes
- Converted the
UserDefinedInstrumentenum class to an enum to safely allow handling invalid data and adding future variants - Updated the value of the
kMaxRecordLenconstant for the changes toInstrumentDefMsgin version 3
Enhancements
- Added
v3namespace in preparation for future DBN version 3 release. DBN version 2 remains the current and default version - Added
v3::InstrumentDefMsgrecord 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
Packagingenum andpackagingfield that's no longer supported by the API - Renamed
VersionUpgradePolicy::UpgradetoUpgradeToV2in 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
Packagingenum andpackagingfield onBatchJob. These will be removed in a future version. All files from a batch job can be downloaded with theBatchDownloadmethod on the historical client
0.23.0 - 2024-09-25
Enhancements
- Added new
Cmbp1Msg - Added new consolidated publisher values for
XNAS.BASICandDBEQ.MAX
Breaking changes
- Changed the layout of
CbboMsgto better matchBboMsg - Renamed
Schema::CbbotoSchema::Cmbp1
Deprecations
- Deprecated
Packing::Tarand 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::Nasdaqvariant toSType::NasdaqSymbol - Renamed
SType::Cmsvariant toSType::CmsSymbol
Bug fixes
- Added missing
ToStringandFromStringbranches forSType::NasdaqSymbolandSType::CmsSymbol - Removed
has_header_vvariable 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
TsSymbolMapto support historical symbology where mappings change between days - Added
DbnEncoderclass for encoding DBN data - Added blocking API similar to
LiveBlockingtoDbnFileStorewith newGetMetadataandNextRecordmethods - Added
BboMsgrecord struct for futurebbo-1mandbbo-1sschemas - Added
PitSymbolmap constructor fromMetadataand adate::year_month_day - Added
Metadata::CreateSymbolMapandMetadata::CreateSymbolMapForDatemethods for creating symbology maps from historical metadata - Added blocking API similar to
LiveBlockingtoDbnFileStore - Added
SymbologyResolution::CreateSymbolMapmethod for creating a symbology map from a symbology resolution response - Added
InFileStreamandOutFileStreamhelper classes for reading and writing binary output respectively
Breaking changes
- Added new dependency on Howard Hinnant's date library
- Added
ILogReceiver*parameter to allDbnDecoderconstructors and oneDbnFileStoreconstructor - Removed type
StrMappingInterval.MappingIntervalis now also used inSymbologyResolution. - Changed
Bbo1sMsgandBbo1mMsgto be aliases forBboMsg - Changed type of
start_dateandend_dateinMappingIntervaltodate::year_month_day - Added
stype_inandstype_outfields toSymbologyResolutionto support creating aTsSymbolMap
0.19.0 - 2024-06-04
Enhancements
- Added configurable
heartbeat_intervalparameter for live clients that determines the timeout before heartbeatSystemMsgrecords will be sent. It can be configured via theSetHeartbeatIntervalmethod of theLiveBuilder - Added
SetAddressmethod toLiveBuilderfor configuring a custom gateway address without using the constructor directly - Added new
UncrossingPriceStatTypevariant - Added new publisher values for
XNAS.BASIC - Added
SetDataset(Dataset)overload toLiveBuilder - Added new off-market publisher values for
IFEU.IMPACTandNDEX.IMPACT
Breaking changes
- Added
heartbeat_intervalparameter to theLiveconstructors - Removed
start_dateandend_datefields fromDatasetRangestruct in favor ofstartandend - Removed live
Subscribemethod overloads withuse_snapshotparameter in favor of separateSubscribeWithSnapshotmethod
Bug fixes
- Fixed overloading of live
Subscribemethods - Fixed live subscribing with default-constructed
UnixNanos - Fixed descriptions for
FINNandFINYpublishers
0.18.1 - 2024-05-22
Enhancements
- Added live
Subscribefunction overload withuse_snapshotparameter - Added
GetIfmethod toRecordthat allowsifchaining for handling multiple record types - Added record type checking to
Record::Getmethod to catch programming errors and prevent reading invalid data - Added
ToStringforRecord
Bug fixes
- Added missing symbol chunking for live
Subscribeoverloads withconst std::string&startparameter
0.18.0 - 2024-05-14
Breaking changes
- Changed
FlagSetto 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_tor calling theRaw()method
- Changed format of
display_factorandprice_ratioto a fixed-precision decimal forInstrumentDefMsgandInstrumentDefMsgV1to match existing values and DBN crate - Changed format of
unit_of_measure_qtyto a fixed-precision decimal forInstrumentDefMsgV1to matchInstrumentDefMsg
0.17.0 - 2024-04-01
Enhancements
- Added
StatusMsgrecord, andStatusAction,StatusReason,TradingEvent, andTriStateenums - Added
CbboMsgrecord and correspondingConsolidatedBidAskPairstructure - Added new enum values for
SchemaandRTypecorresponding to new schemascbbo,cbbo-1s,cbbo-1m,tcbbo,bbo-1s,bbo-1m - Changed format
unit_of_measure_qtyto a fixed-precision decimal - Added logic to skip
find_packagecall ifnlohmann_jsonandhttplibtargets 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.NLSandXNYS.TRADESrespectively)
Deprecations
- Deprecated dataset values
FINN.NLSandFINY.TRADES
0.16.0 - 2024-03-01
Enhancements
- Added new publisher values for consolidated DBEQ.MAX
- Added constructor to
WithTsOutthat updateslengthto 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_policytoUpgradeso by default the primary record types can always be used - Renamed
dummyfield inImbalanceMsgandStatMsgtoreserved
Bug fixes
- Fixed handling of
ts_outwhen decoding DBNv1 and upgrading to version 2 - Fixed missing logic to upgrade
ErrorMsgV1andSystemMsgV1when decoding DBN withVersionUpgradePolicy::Upgrade - Added missing
StatType::Vwapvariant used in the ICE datasets - Added missing
ToStringandoperator<<handling forStatType::ClosePriceandStatType::NetChange - Fixed potential for invalid reads when decoding C strings in
DbnDecoder
0.15.0 - 2024-01-16
Breaking changes
- Increased size of
SystemMsgandErrorMsgto provide better messages from Live gateway- Increased length of
errandmsgfields for more detailed messages - Added
is_lastfield toErrorMsgto indicate the last error in a chain - Added
codefield toSystemMsgandErrorMsg, although currently unused - Added new
is_lastparameter 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
ErrorMsgV1andSystemMsgV1
- 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_lenfield toMetadatato indicate the length of fixed symbol strings - Added
stype_inandstype_outfields toSymbolMappingMsgto provide more context with live symbology updates - Added
IndexTsmethods to every record type which returns the primary timestamp - Added
VersionUpgradePolicyenum to allow specifying how to handle decoding records from prior DBN versions - Added
InstrumentDefMsgV2andSymbolMappingMsgV2type aliases - Added
kDbnVersionconstant for current DBN version - Added
kSymbolCstrLen,kSymbolCstrLenV1, andkSymbolCstrLenV2constants 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
kMaxRecordLenconstant for the length of the largest record type - Added ability to convert
FlagSetto underlying representation
Breaking changes
- The old
InstrumentDefMsgis nowInstrumentDefMsgV1incompat.hpp - The old
SymbolMappingMsgis nowSymbolMappingMsgV1incompat.hpp - Converted the following enum classes to enums to allow safely adding new variants:
SecurityUpdateActionandSType - Renamed
dummytoreservedinInstrumentDefMsg - Removed
reserved2,reserved3,reserved4, andreserved5fromInstrumentDefMsg - Moved position of
strike_pricewithinInstrumentDefMsg - Removed deprecated
SecurityUpdateAction::Invalidvariant
0.13.0 - 2023-09-21
Enhancements
- Added
pretty_pxoption forBatchSubmitJob, which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for CSV and JSON text encodings) - Added
pretty_tsoption forBatchSubmitJob, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption toBatchSubmitJob, which appends the raw symbol to every record (available for CSV and JSON text encodings) reducing the need to look at thesymbology.jsonfile - Added
split_symbolsoption forBatchSubmitJob, which will split files by raw symbol - Added
encodingoption toBatchSubmitJobto allow requesting non-DBN encoded data through the client - Added
map_symbols,pretty_px, andpretty_tstoBatchJobresponse - Added
ARCX.PILLAR.ARCXpublisher - Added
ClosePriceandNetChangeStatTypes used in theOPRA.PILLARdataset
Breaking changes
- Remove
default_valueparameter fromHistorical::SymbologyResolve
0.11.0 - 2023-08-10
Enhancements
- Added
raw_instrument_idto definition schema - Added
operator==andoperator!=implementations forDatasetConditionDetailandDatasetRange
Breaking changes
- Changed
MetadataListPublishersto return avector<PublisherDetail> MetadataListFields:- Changed return type to
vector<FieldDetail> - Made
encodingandschemaparameters required - Removed
datasetparameter
- Changed return type to
MetadataListUnitPrices:- Changed return type to
vector<UnitPricesForMode> - Made
datasetparameter required - Removed
modeandschemaparameters
- Changed return type to
Bug fixes
- Fixed installation of
nlohmann_jsonwhen using bundled version - Added missing
operator!=implementations forMetadata,MappingInterval, andSymbolMapping
0.10.0 - 2023-07-20
Enhancements
- Added preliminary support for Windows
- Added
LiveThreaded::BlockForStopto make it easier to wait for one or more records before closing the session - Changed
TimeseriesGetRangeto request a Zstd-compressed result for more efficient data transfer - Switched
BatchSubmitJobto use form data to avoid query param length limit - Switched
SymbologyResolveto use POST request with form data to avoid query param length limit
Breaking changes
- Changed size-related fields and
limitparameters to usestd::uint64_tfor 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-lengthchararrays - Added
RTypegetter toRecord
Bug fixes
- Added batching for live subscriptions to avoid hitting max message length
- Fixed bug in Zstd decompression
- Fixed
Historical::BatchDownloadtruncating file before writing each chunk
0.9.0 - 2023-06-13
Enhancements
- Added
Reconnectmethods toLiveBlockingandLiveThreaded - Added optional
exception_callbackargument toLiveThreaded::Startto improve error handling options - Added batch download support data files (
condition.jsonandsymbology.json) - Added support for logging warnings from Historical API
- Relaxed 10 minute minimum request time range restriction
Breaking changes
- Changed
use_ts_outdefault tofalse
Bug fixes
- Fixed missing definition for
operator==forImbalanceMsg
0.7.0 - 2023-04-28
Enhancements
- Added initial support for live data with
LiveBlockingandLiveThreadedclients - Added support for statistics schema
- Added
SystemMsgandErrorMsgrecords for use in live data - Added
strike_price,strike_price_currency, andinstrument_classtoInstrumentDefMsg - Added
FixedPxhelper class for formatting fixed prices - Added configurable log receiver
ILogReceiver - Added
instrument_class,strike_price, andstrike_price_currencyto definition schema - Added additional
conditionvariants forDatasetConditionDetail(degraded, pending, missing) - Added additional member
last_modified_datetoDatasetConditionDetail - Added
has_mixed_schema,has_mixed_stype_in, andts_outtoMetadatato support live data - Added optional
compressionparameter toBatchSubmitJob
Breaking changes
- Removed
relatedandrelated_security_idfromInstrumentDefMsg - Renamed
BatchJob.costtocost_usdand value now expressed as US dollars - Renamed
SType::ProductIdtoSType::InstrumentIdandSType::NativetoSType::RawSymbol - Renamed
RecordHeader::product_idtoinstrument_id - Renamed
InstrumentDefMsg::symboltoraw_symbol - Renamed
SymbolMapping::native_symboltoraw_symbol - Changed
expirationandactiontype toUnixNanos - Changed some fields to enums in
InstrumentDefMsg
Deprecations
- Deprecated
SType::Smartto split intoSType::ParentandSType::Continuous
Bug fixes
- Fixed parsing of
BatchSubmitJobresponse - Fixed invalid read in
DbnDecoder - Fixed memory leak in
TryCreateDir
0.5.0 - 2023-03-13
Enhancements
- Added
Historical::MetadataGetDatasetRange
Breaking changes
- Changed
MetadataGetDatasetConditionto returnvector<DatasetConditionDetail> - Removed
MetadataListCompressions(redundant with docs) - Removed
MetadataListEncodings(redundant with docs) - Removed optional
startandendparams fromMetadataListSchemas(redundant) - Renamed
FileBentotoDbnFileStore
0.4.0 - 2023-03-02
Enhancements
- Added live gateway resolution
- Added
SymbolMappingMsgandErrorMsgrecords - Added
ActionandSideenums - Added
available_start_dateandavailable_end_datetoDatasetConditionInfo - Made
start_dateandend_dateoptional forHistorical::MetadataGetDatasetCondition - Improved API for
flagsrecord fields - Added
PKGBUILDto demonstrate installation - Disabled unit testing by default
Breaking changes
- Removed
is_full_universeandis_examplefields fromBatchJob - Refactored rtypes
- Introduced separate rtypes for each OHLCV schema
- Renamed DBZ to DBN
- Renamed
DbzParsertoDbnDecoder
- Renamed
- Renamed
TimeseriesStreamtoTimeseriesGetRange - Changed
kAllSymbolsrepresentation
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
Flagenum
Breaking changes
- Standardized getter method names to pascal case
- Renamed
is_full_booktois_full_universe - Renamed
TickMsgtoMboMsg - Changed
flagsfields to unsigned
Bug fixes
- Fixed cancellation in
Historical::TimeseriesStream - Fixed race condition in
Historical::TimeseriesStreamexception 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_idfrom the response ofbatch.list_jobs()andbatch.submit_job() - Upgraded
databento-dbnto 0.40.0- Removed
hdproperty from records in Python. Header fields are accessible directly from the record - Removed ability to directly instantiate most enums from an
intin Python and coercion fromintin__eq__. They can still be instantitated with thefrom_intclass method. WriteSide.from_int(66)instead ofSide(66)andSide.BID == Side.from_int(66)instead ofSide.BID == 66. Affected enums:SideActionInstrumentClassMatchAlgorithmUserDefinedInstrumentSecurityUpdateActionSTypeSchemaEncodingCompressionTriState
- Removed string coercion in
__init__and__eq__forRType,SystemCode, andErrorCodeenums in Python. It can still be instantiated from astrwith thefrom_strclass method. WriteRType.from_str("mbo")instead ofRType("mbo")andRType.TRADES == RType.from_str("trades")instead ofRType.TRADES == "trades"
- Removed
Enhancements
- Added
END_OF_INTERVALvariant toSystemCodeenum
0.61.0 - 2025-08-12
Breaking changes
- Modified the
statesparameter inbatch.list_jobs()
Enhancements
- Added
JobStateenum - Added export of
SystemCodeandErrorCodefromdatabento_dbnto the rootdatabentopackage - Added
F_PUBLISHER_SPECIFICflag toRecordFlagsenum
Bug fixes
- Bumped the minimum version requirement for
requeststo 0.27.0
0.60.0 - 2025-08-05
Enhancements
- Added
parquet_schemaoption toDBNStore.to_parquet()for overriding the pyarrow schema - Upgraded
databento-dbnto 0.39.0- Added
side()andunpaired_side()methods toImbalanceMsgthat convert the fields of the same name to theSideenum - Added
pretty_auction_timeproperty in Python forImbalanceMsg - Added
actionandts_in_deltagetters toBboMsg - Added
ts_recvgetter toStatusMsg - Added missing floating-point price getters to
InstrumentDefMsgrecord 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_timefield inImbalanceMsgto be formatted as a timestamp - Fixed a regression where some enum constructors no longer raised a
DBNErrorin Python
- Added
Bug fixes
- Removed unused
S3andDiskvariants fromDeliveryenum
0.59.0 - 2025-07-15
Enhancements
- Upgraded
databento-dbnto 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:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
0.58.0 - 2025-07-08
Enhancements
- Changed the
tzparameter inDBNStore.to_df()to acceptdatetime.tzinfoinstead ofpytz.BaseTzInfoexplicitly - Modified the dependency specification for
databento_dbnto allow for compatible patch versions - Upgraded
databento-dbnto 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-dbnto 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_outwith first records in DBNDecoder
Bug fixes
- Fixed an issue where DBN records from the Live client where not having their
ts_outpopulated
0.57.0 - 2025-06-10
Enhancements
- Upgraded
databento-dbnto 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
DataFrameobjects returned byDBNStore.to_df()when acountwas specified
Deprecations
- Deprecated
intandpd.Timestamptypes forstart_dateandend_dateparameters 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_infofields. The following subfields were renamed:decl_currencyrenamed todeclared_currencydecl_gross_amountrenamed todeclared_gross_amountf_x_raterenamed tofx_rateiss_new_namerenamed toissuer_new_nameiss_old_namerenamed toissuer_old_namenew_bbg_company_idrenamed tonew_bbg_comp_idnew_bbg_company_tkrenamed tonew_bbg_comp_tickernew_bbg_exh_idrenamed tonew_figinew_bbg_exh_tkrenamed tonew_figi_tickernew_min_tra_qtyrenamed tonew_min_trading_qtynew_mktsg_idrenamed tonew_market_segment_idnew_reg_s144_arenamed tonew_reg_s144anew_unit_sec_idrenamed tonew_unit_security_idofferee_iss_idrenamed toofferee_issuer_idofferor_iss_idrenamed toofferor_issuer_idold_bbg_company_idrenamed toold_bbg_comp_idold_bbg_company_tkrenamed toold_bbg_comp_tickerold_bbg_exh_idrenamed toold_figiold_bbg_exh_tkrenamed toold_figi_tickerold_min_tra_qtyrenamed toold_min_trading_qtyold_mktsg_idrenamed toold_market_segment_idold_reg_s144_arenamed toold_reg_s144aold_unit_sec_idrenamed toold_unit_security_idpp_sec_idrenamed topp_security_idpoolfactorrenamed topool_factorpre_offer_q_tyrenamed topre_offer_qtyqual_st_cap_gainsrenamed toqual_short_term_cap_gainsredem_percentagerenamed toredemption_percentagest_cap_gainsrenamed toshort_term_cap_gainssec_new_namerenamed tosecurity_new_namesec_old_namerenamed tosecurity_old_namesection199_a_foreign_tax_paidrenamed tosection199a_foreign_tax_paidsection199_a_inc_divrenamed tosection199a_inc_divsection199_a_st_cap_gainrenamed tosection199a_short_term_cap_gaintra_isinrenamed totrading_isintra_sec_idrenamed totrading_security_idus_deposit_receiptateto_currencyrenamed tousd_rate_to_currencycashbakrenamed tocash_backcompanyulsory_acq_daterenamed tocompulsory_acq_datefrankdivrenamed tofranked_divlead_plntiff_deadline_daterenamed tolead_plaintiff_deadline_datemaxpricerenamed tomax_priceminpricerenamed tomin_priceredem_premiumrenamed toredemption_premiumredem_pricerenamed toredemption_priceunit_frankdivrenamed tounfranked_div
Enhancements
- Upgraded
databento-dbnto 0.35.1
0.55.0 - 2025-05-29
Enhancements
- Added
exchangesparameter toReference.corporate_actions.get_range(...) - Added
is_lastfield to live subscription requests which will be used to improve the handling of split subscription requests - Upgraded
databento-dbnto 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
JSONDecodeErrorwould not be caught when usingsimplejsonwithrequests(credit: @xuanqing94)
0.53.0 - 2025-04-29
Enhancements
- Upgraded
databento-dbnto 0.33.1- Added
SystemCodeandErrorCodeenums 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
SystemMsgrecords were logged as gateway heartbeats
0.52.0 - 2025-04-15
Enhancements
- Added new optional
idfield toSubscriptionRequestclass which will be used for improved error messages - Upgraded
databento-dbnto 0.32.0- Fixed
RTypevariant names in Python to matchSchema - Added missing Python type declarations for
RTypevariants - Fixed issue with Python
_hidden_fieldsdefinition that causedKeyError: _reserved1_00withCMBP1Msgand 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_dbnto the rootdatabentopackage:ActionInstrumentClassMatchAlgorithmRTypeSecurityUpdateActionSideStatUpdateActionTriStateUserDefinedInstrumentVersionUpgradePolicy
- Added export of the following constants from
databento_dbnto the rootdatabentopackage:DBN_VERSIONFIXED_PRICE_SCALEUNDEF_ORDER_SIZEUNDEF_PRICEUNDEF_STAT_QUANTITYUNDEF_TIMESTAMP
- Added export of
BidAskPairandConsolidatedBidAskPairfromdatabento_dbnto the rootdatabentopackage - Upgraded
databento-dbnto 0.29.0- Added
COMMODITY_SPOTInstrumentClassvariant
- Added
- Improved handling of
datetimeanddateobjects instartandendparameters
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_zipparameter 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
StatusActionenum fromdatabento_dbnto the rootdatabentopackage - Added export of
StatusReasonenum fromdatabento_dbnto the rootdatabentopackage - Added export of
TradingEventenum fromdatabento_dbnto the rootdatabentopackage - Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUS,XNYS.TRADES.EQUS - Removed upper bound for supported
pythonversions; the constraint is now^3.9 - Upgraded
databento-dbnto 0.27.0- Fixed export of
InstrumentDefMsgV3to Python
- Fixed export of
Bug fixes
- Fixed an issue where sending a
KeyboardInterruptduring iteration of theLiveclient 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
packagingparameter fromHistorical.batch.submit_job. Job files can be downloaded individually or as zip files after the job completes - Upgraded
databento-dbnto 0.24.0- Added handling for
UNDEF_TIMESTAMPinpretty_timestamp getters for Python. They now returnNonein 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-dbnto 0.23.1- Fixed
pretty_activationgetter indatabento_dbnreturningexpirationinstead - Fixed some
pretty_getters indatabento_dbndidn't correctly handleUNDEF_PRICE
- Fixed
Deprecations
- Deprecated
packagingparameter forHistorical.batch.submit_jobwhich 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
PriceTypeenum for validation ofprice_typeparameter inDBNStore.to_df - Upgraded
databento-dbnto 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
modeparameter toDBNStore.to_csvto control the file writing mode - Added
modeparameter toDBNStore.to_jsonto control the file writing mode - Added
modeparameter toDBNStore.to_parquetto control the file writing mode - Added
compressionparameter toDBNStore.to_filewhich controls the output compression format - Added new consolidated publisher values for
XNAS.BASICandDBEQ.MAX - Changed
DBNStoreto be more tolerant of truncated DBN streams
Breaking changes
- Changed default write mode for
DBNStore.to_csvto overwrite ("w") - Changed default write mode for
DBNStore.to_jsonto overwrite ("w") - Changed default write mode for
DBNStore.to_parquetto overwrite ("w")
0.41.0 - 2024-09-03
Enhancements
- Added
databento.read_dbnalias - Added
modeparameter toDBNStore.to_fileto control the file writing mode
Breaking changes
- Changed default write mode for
DBNStore.to_fileto overwrite ("w")
Deprecations
- Deprecated
databento.from_dbnand will be removed in a future release, usedatabento.read_dbninstead
0.39.3 - 2024-08-20
Enhancements
- Added new publisher values for
XCIS.BBOTRADESandXNYS.BBOTRADES
Bug fixes
- Fixed an issue receiving multiple DBN v1
ErrorMsgin theLiveclient would cause anInvalidStateerror - Fixed an issue where creating
Liveclients in multiple threads could cause aRuntimeErrorupon 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
Referencedata client withcorporate_actions.get_range(...)method - Added
ReconnectPolicyenumeration - Added
reconnect_policyparameter to theLiveclient to specify client reconnection behavior - Added
Live.add_reconnect_callbackmethod for specifying a callback to handle client reconnections - Added platform information to the user agent reported by the
HistoricalandLiveclients - Upgraded
databento-dbnto 0.19.1 - Added
BBOMsg,CBBOMsg, andStatusMsgexports to the rootdatabentopackage
Breaking changes
- Calling
Live.stopwill now clear all user streams and callbacks - Renamed
SessiontoLiveSessionin thedatabento.live.sessionmodule
0.36.0 - 2024-06-11
Enhancements
- Upgraded
databento-dbnto 0.18.1
Bug fixes
- Fixed an issue where
heartbeat_interval_swas not being sent to the gateway - Fixed an issue where a truncated DBN stream could be written by the
Liveclient in the event of an ungraceful disconnect
Breaking changes
- Output streams of the
Liveclient added withLive.add_streamwill now upgrade to the latest DBN version before being written
0.35.0 - 2024-06-04
Enhancements
- Added optional
heartbeat_interval_sparameter toLiveclient for configuring the interval at which the gateway will send heartbeat records - Upgraded
databento-dbnto 0.18.0 - Added new off-market publisher values for
IFEU.IMPACTandNDEX.IMPACT
Breaking changes
- Renamed
CbboMsgtoCBBOMsg - Renamed
use_snapshotparameter inLive.subscribefunction tosnapshot - All Python exceptions raised by
databento-dbnhave been changed to use theDBNErrortype
0.34.0 - 2024-05-14
Enhancements
- Added
pip-system-certsdependency for Windows platforms to prevent a connection issue inrequestswhen behind a proxy - Iteration of the
Liveclient will now automatically callLive.stopwhen the iterator is destroyed, such as when a for loop is escaped with an exception orbreakstatement
Bug fixes
- Fixed an issue where
batch.downloadandbatch.download_asyncwould fail if requested files already existed in the output directory - Fixed an issue where
batch.download,batch.download_async, andtimeseries.get_rangecould use a lot of memory while streaming data - Fixed an issue where reusing a
Liveclient with an open output stream would drop DBN records when received at the same time as theMetadataheader
Deprecations
- The
start_dateandend_datekeys in the response fromHistorical.metadata.get_dataset_rangewill be removed in a future release. Use the newstartandendkeys instead, which include time resolution
0.33.0 - 2024-04-16
Enhancements
- The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now automatically retry the download if a rate limit (HTTP 429) error is received - The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now retry failed downloads automatically - The
Historical.batch.downloadandHistorical.batch.download_asyncmethods will now download files concurrently - The
output_dirparameter forHistorical.batch.downloadandHistorical.batch.download_asyncis now optional and will default to the current working directory if unspecified - Added
pip-system-certsdependency for Windows platforms to prevent a connection issue inrequestswhen behind a VPN
Breaking changes
- The
enable_partial_downloadsparameter forHistorical.batch.downloadandHistorical.batch.download_asynchas been removed, partial files will always be resumed which was the default behavior - The parameters for
Historical.batch.downloadandHistorical.batch.download_asynchave been reordered becauseoutput_diris now optional,job_idnow comes first
0.32.0 - 2024-04-04
Enhancements
- Improved exception messages when multiple
ErrorMsgare received by theLiveclient - Upgraded
databento-dbnto 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.NLSandXNYS.TRADESrespectively)
Deprecations
- Deprecated dataset values
FINN.NLSandFINY.TRADES
0.30.0 - 2024-02-22
Enhancements
- Changed how
SymbolMappingMsgobjects are ingested byInstrumentMapto single source the timestamp parsing from thedatabento-dbnpackage
Bug fixes
- Fixed an issue where setting a timezone in
DBNStore.to_dfcould cause invalid symbol mappings
Breaking changes
- Changed
Live.add_streamto use the exclusive write mode when handling file paths so existing files won't be overwritten
0.29.0 - 2024-02-13
Enhancements
- Added
tzparameter toDBNStore.to_dfwhich 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_closeandLive.wait_for_closewill now callLive.stopwhen a timeout is reached instead ofLive.terminateto close the stream more gracefully
0.28.0 - 2024-02-01
Enhancements
- Substantially increased iteration queue size
- Added methods
DBNQueue.enableandDBNQueue.disablefor controlling queue consumption - Added method
DBNQueue.is_enabledto signal the queue can accept records - Added method
DBNQueue.is_fullto signal the queue has reached capacity - Added enabled checks to
DBNQueue.putandDBNQueue.put_nowait
Breaking changes
- Iterating a
Liveclient after the streaming session has started will now raise aValueError. CallingLive.startis not necessary when iterating theLiveclient - Moved constant
databento.live.client.DEFAULT_QUEUE_SIZEtodatabento.live.session.DBN_QUEUE_CAPACITY - Removed
maxsizeparameter fromDBNQueueconstructor.DBNQueuenow subclassesSimpleQueueinstead - Removed property
DBNQueue.enabled, useDBNQueue.is_enabledinstead - Removed method
DBNQueue.is_half_full, useDBNQueue.is_fullinstead
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_idproperty which will contain the numerical session ID once a live session has been authenticated - Upgraded
databento-dbnto 0.15.1
Breaking changes
- Renamed
DatabentoLiveProtocol.startedtoDatabentoLiveProtocol.is_startedwhich 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.startwas called
0.25.0 - 2024-01-09
Breaking changes
- Removed deprecated
pretty_pxparameter forDBNStore.to_df;price_typecan be used instead
Bug fixes
- Fixed an issue where the
Liveclient 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.downloadwas slow - Fixed an issue where
Historical.timeseries.get_rangewas slow - Fixed an issue where reading a DBN file with non-empty metadata symbol mappings and mixed
STypewould 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
DBNStoreand withDBNStore.replay - When iterating a
Liveclient and records dispatched to callbacks
Enhancements
- Added support for Python 3.12
- Improved the performance for stream writes in the
Liveclient - Upgraded
databento-dbnto 0.14.2 - Added
databento.common.typesmodule to hold common type annotations
Bug fixes
- Fixed an issue where specifying an OHLCV schema in
DBNStore.to_ndarrayorDBNStore.to_dfwould not properly filter records by their interval - Fixed an issue where
DBNStore.to_ndarrayandDBNStore.to_dfwith a non-zero count could get stuck in a loop if the DBN data did not contain any records
Breaking Changes
DBNStoreiteration andDBNStore.replaywill upgrade DBN version 1 messages to version 2Liveclient iteration and callbacks upgrade DBN version 1 messages to version 2- Moved
DBNRecord,RecordCallback, andExceptionCallbacktypes to themdatabento.common.typesmodule - Moved
AUTH_TIMEOUT_SECONDSandCONNECT_TIMEOUT_SECONDSconstants from thedatabento.livemodule todatabento.live.session - Moved
INT64_NULLfrom thedatabento.common.dbnstoremodule todatabento.common.constants - Moved
SCHEMA_STRUCT_MAPfrom thedatabento.common.datamodule todatabento.common.constants - Removed
schemaparameter fromDataFrameIteratorconstructor,struct_typeis to be used instead - Removed
NON_SCHEMA_RECORD_TYPESconstant as it is no longer used - Removed
DERIV_SCHEMASconstant as it is no longer used - Removed
SCHEMA_COLUMNSconstant as it is no longer used - Removed
SCHEMA_DTYPES_MAPconstant as it is no longer used - Removed empty
databento.common.datamodule
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_closeandLive.wait_for_closewould 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_csvfunction to thedatabentomodule for usingsymbology.jsonfiles to map a symbol column onto a CSV file - Added
map_symbols_jsonfunction to thedatabentomodule for usingsymbology.jsonfiles 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_dfwithpretty_ts=Truewas very slow
0.22.0 - 2023-10-23
Enhancements
- Added
price_typeargument forDBNStore.to_dfto specify if price fields should befixed,floatordecimal.Decimal - Added
py.typedmarker file - Upgraded
databento-dbnto 0.13.0
Breaking Changes
- Changed outputs of
DBNStore.to_csvandDBNStore.to_jsonto match the encoding formats from the Databento API
Deprecations
- Deprecated
pretty_pxargument forDBNStore.to_dfto be removed in a future release; the defaultpretty_px=Trueis now equivalent toprice_type="float"andpretty_px=Falseis now equivalent toprice_type="fixed"
0.21.0 - 2023-10-11
Enhancements
- Added
map_symbolssupport for DBN data generated by theLiveclient - Added support for file paths in
Live.add_stream - Added new publisher values in preparation for DBEQ.PLUS
- Upgraded
databento-dbnto 0.11.1
Bug fixes
- Fixed an issue where
DBNStore.from_bytesdid not rewind seekable buffers - Fixed an issue where the
DBNStorewould not map symbols with input symbology ofSType.INSTRUMENT_ID - Fixed an issue with
DBNStore.request_symbologywhen the DBN metadata's start date and end date were the same - Fixed an issue where closed streams were not removed from a
Liveclient 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.ARCXpublisher - Added
pretty_pxoption 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_tsoption forbatch.submit_job, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption forbatch.submit_job, which appends a symbol field to each text-encoded record (available for CSV and JSON text encodings) - Added
split_symbolsoption forbatch.submit_job, which will split files by raw symbol - Upgraded
databento-dbnto 0.10.2
Bug fixes
- Fixed an issue where no disconnection exception were raised when iterating the
Liveclient. - Fixed an issue where calling
DBNStore.to_df,DBNStore.to_json, orDBNStore.to_csvwithmap_symbols=Truewould cause aTypeError
Breaking changes
- Removed
default_valueparameter fromHistorical.symbology.resolve - Swapped the ordering for the
pretty_pxandpretty_tsboolean parameters
0.19.0 - 2023-08-25
This release includes improvements to handling large DBN data and adds support for future datasets.
Enhancements
- Added
countparameter toDBNStore.to_dfandDBNStore.to_ndarrayto help process large files incrementally - Improved memory usage of
DBNStore.to_csvandDBNStore.to_json - Added the
Publisher,Venue, andDatasetenums - Replace null prices with
NaNwhenpretty_px=TrueinDBNStore.to_df() - Upgraded
databento-dbnto 0.8.3
Bug fixes
- Fixed issue where exception messages were displaying JSON encoded data
- Fixed typo in
BATY.PITCH.BATYpublisher - Reduced floating error when converting prices to floats with
pretty_px=True
Breaking changes
DBNStore.to_dfnow 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-dbnto 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 theschemaandencodingparameters - 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 thedatasetparameter - Removed
metadata.list_unit_prices(...)modeandschemaparameters - Removed
metadata.list_fields(...)datasetparameter
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
rtypefield 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_mapproperty toLiveclient - Added
optional_symbols_list_to_listparsing function - Changed
Live.add_callbackandLive.add_streamto 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-dbnto 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
ImportErrorobserved in Python 3.8
Breaking changes
- Removed
Encoding,Compression,Schema, andSTypeenums as they are now exposed bydatabento-dbn - Renamed
funcparameter torecord_callbackforLive.add_callbackandLive.add_stream - Removed
optional_symbols_list_to_stringparsing function
0.14.0 - 2023-06-14
Enhancements
- Added
DatabentoLiveProtocolclass - Added
metadataproperty toLive - Added support for emitting warnings in API response headers
- Added support for reusing a
Liveclient to reconnect - Relaxed 10 minute minimum request time range restriction
- Upgraded
aiohttpto 3.8.3 - Upgraded
numpyto 1.23.5 - Upgraded
pandasto 1.5.3 - Upgraded
requeststo 2.28.1 - Upgraded
zstandardto 0.21.0
Breaking changes
- Removed support for Python 3.7
- Renamed
symboltoraw_symbolin definition schema when converting to a DataFrame - Changed iteration of
Liveto no longer yield DBN metadata - Changed
Livecallbacks to no longer yield DBN metadata
Bug fixes
- Fixed optional
endparameter forbatch.submit_job(...)
0.13.0 - 2023-06-02
Enhancements
- Added support for
statisticsschema - Added batch download support data files (
condition.jsonandsymbology.json) - Renamed
booklevelMBP field tolevelsfor brevity and consistent naming - Upgraded
databento-dbnto 0.6.0
Breaking changes
- Changed
flagsfield to an unsigned int - Changed default of
ts_outtoFalseforLiveclient - Changed
instrument_classDataFrame representation to be consistent with otherchartypes - Removed
open_interest_qtyandcleared_volumefields that were always unset from definition schema - Removed sunset
timeseries.streammethod - Removed support for legacy stypes
0.12.0 - 2023-05-01
Enhancements
- Added
Liveclient for connecting to Databento's live service - Added
degraded,pendingandmissingcondition variants forbatch.get_dataset_condition - Added
last_modified_datefield tobatch.get_dataset_conditionresponse - Upgraded
DBNStoreto support mixed schema types to support live data - Upgraded
databento-dbnto 0.5.0
Breaking changes
- Changed iteration
DBNStoreto return record types fromdatabento-dbninstead of numpy arrays - Renamed the
costfield tocost_usdforbatch.submit_jobandbatch.list_jobs(value now expressed as US dollars) - Renamed
product_idfield toinstrument_id - Renamed
symbolfield in definitions toraw_symbol - Removed
dtypeproperty fromDBNStore - Removed
record_sizeproperty fromDBNStore - Removed
badcondition variant frombatch.get_dataset_condition - Removed unused
LiveGatewayenum - Removed
STATISTICSfromSchemaenum - Removed
STATUSfromSchemaenum - Removed
GATEWAY_ERRORfromSchemaenum - Removed
SYMBOL_MAPPINGfromSchemaenum
Deprecations
- Deprecated
SType.PRODUCT_IDtoSType.INSTRUMENT_ID - Deprecated
SType.NATIVEtoSType.RAW_SYMBOL - Deprecated
SType.SMARTtoSType.PARENTandSType.CONTINUOUS
0.10.0 - 2023-04-07
Enhancements
- Added support for
imbalanceschema - Added
instrument_class,strike_price, andstrike_price_currencyto definition schema - Changed parsing of
endandend_dateparams throughout the API - Improved exception messages for server and client timeouts
- Upgraded
databento-dbnto 0.4.3
Breaking changes
- Renamed
Bentoclass toDBNStore - Removed
metadata.list_compressions(redundant with docs) - Removed
metadata.list_encodings(redundant with docs) - Removed optional
startandendparams frommetadata.list_schemas(redundant) - Removed
relatedandrelated_security_idfrom 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.streamtotimeseries.get_range - Renamed
timeseries.stream_asynctotimeseries.get_range_async - Changed
.to_df(...)pretty_tsdefault argument toTrue - Changed
.to_df(...)pretty_pxdefault argument toTrue - Changed
.to_df(...)map_symbolsdefault 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_rangeresponse, under thedate_info,event_info, andrate_infofields. The following subfields were renamed:decl_currencyrenamed todeclared_currencydecl_gross_amountrenamed todeclared_gross_amountf_x_raterenamed tofx_rateiss_new_namerenamed toissuer_new_nameiss_old_namerenamed toissuer_old_namenew_bbg_company_idrenamed tonew_bbg_comp_idnew_bbg_company_tkrenamed tonew_bbg_comp_tickernew_bbg_exh_idrenamed tonew_figinew_bbg_exh_tkrenamed tonew_figi_tickernew_min_tra_qtyrenamed tonew_min_trading_qtynew_mktsg_idrenamed tonew_market_segment_idnew_reg_s144_arenamed tonew_reg_s144anew_unit_sec_idrenamed tonew_unit_security_idofferee_iss_idrenamed toofferee_issuer_idofferor_iss_idrenamed toofferor_issuer_idold_bbg_company_idrenamed toold_bbg_comp_idold_bbg_company_tkrenamed toold_bbg_comp_tickerold_bbg_exh_idrenamed toold_figiold_bbg_exh_tkrenamed toold_figi_tickerold_min_tra_qtyrenamed toold_min_trading_qtyold_mktsg_idrenamed toold_market_segment_idold_reg_s144_arenamed toold_reg_s144aold_unit_sec_idrenamed toold_unit_security_idpp_sec_idrenamed topp_security_idpoolfactorrenamed topool_factorpre_offer_q_tyrenamed topre_offer_qtyqual_st_cap_gainsrenamed toqual_short_term_cap_gainsredem_percentagerenamed toredemption_percentagest_cap_gainsrenamed toshort_term_cap_gainssec_new_namerenamed tosecurity_new_namesec_old_namerenamed tosecurity_old_namesection199_a_foreign_tax_paidrenamed tosection199a_foreign_tax_paidsection199_a_inc_divrenamed tosection199a_inc_divsection199_a_st_cap_gainrenamed tosection199a_short_term_cap_gaintra_isinrenamed totrading_isintra_sec_idrenamed totrading_security_idus_deposit_receiptateto_currencyrenamed tousd_rate_to_currencycashbakrenamed tocash_backcompanyulsory_acq_daterenamed tocompulsory_acq_datefrankdivrenamed tofranked_divlead_plntiff_deadline_daterenamed tolead_plaintiff_deadline_datemaxpricerenamed tomax_priceminpricerenamed tomin_priceredem_premiumrenamed toredemption_premiumredem_pricerenamed toredemption_priceunit_frankdivrenamed 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
startandendkeys to the response from/metadata.get_dataset_rangeto provide time resolution and an exclusive end time
Deprecations
- The
start_dateandend_datekeys in the response from/metadata.get_dataset_rangewill be removed in a future release. Use the newstartandendkeys instead, which include time resolution
0.24.0 - 2024-03-06
Deprecations
- The forward-fill behavior of
endparameters with unspecified months, days, hours, minutes, or seconds will be removed. To ensure consistent time ranges between old and new behavior: specify an explicitendas 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.IMPACTandNDEX.IMPACTdatasets, does not yet include ourmbo,mbp-10,mbp-1, andtbboschemas
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.BASICdataset
0.16.0 - 2023-09-26
Breaking changes
- Symbology mappings no longer include unresolved symbols, this change affects DBN metadata and
/symbology.resolveresponses - Changed batch job
symbology.csvschema (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_pxoption for/timeseries.get_rangeand/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_tsoption for/timeseries.get_rangeand/batch.submit_job, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption for/timeseries.get_rangeand/batch.submit_job, which appends a symbol field to each text-encoded record (available for CSV and JSON text encodings) - Added
split_symbolsoption 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.PILLARdataset, 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_jobto now require form-encoded data - Changed
/metadata.list_publishersresponse to an ordered list of publisher details objects - Changed
/metadata.list_fieldsresponse to an ordered list of field detail objects for a particular schema and encoding - Changed
/metadata.list_fieldsto now require theschemaandencodingquery parameters - Changed
/metadata.list_unit_pricesresponse to a list of unit prices for each feed mode and data schema - Changed
/metadata.list_unit_pricesto now require thedatasetquery parameter - Removed
/metadata.list_unit_pricesmodeandschemaquery parameters - Removed
/metadata.list_fielddatasetquery 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
hdobject (consistency with howlevelsare 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
rtypefield/column to MBP schemas that was previously excluded - Added
depthfield/column to MBP schemas that was previously excluded - Renamed JSON fields
bid_oq_*andask_oq_*tobid_ct_*andask_ct_*respectively - Renamed
security_grouptogroupfor thedefinitionschema
0.10.0 - 2023-07-06
Enhancements
- Added warnings header for API responses
- Added POST request support for
timeseries.get_rangeandsymbology.resolveendpoints - Improved behavioral consistency of query params
start,end,start_dateandend_dateacross the API (exclusive end) - Relaxed 10 minute minimum request time range restriction
- Added
rtypeto encoded CSV and JSON
Deprecations
- Deprecated
symbologysection in themetadata.jsonfor batch downloads (will be removed in a future version after July 3rd)
Bug fixes
- Fixed handling of certain errors involving invalid
parentorcontinuoussymbols (no longer a HTTP 500 error)
0.8.0 - 2023-05-01
Enhancements
- Added additional field
last_modified_dateto/metadata.get_dataset_conditionresponse - Added
degraded,pendingandmissingcondition variants for/metadata.get_dataset_condition - Added
last_modified_datefield tobatch.get_dataset_conditionresponse
Breaking changes
- Renamed
product_idfield toinstrument_id - Renamed
symbolfield in definitions toraw_symbol - Renamed the
costfield tocost_usdfor/batch.submit_joband/batch.list_jobs(value now expressed as US dollars) - Removed
badcondition variant frombatch.get_dataset_condition
Deprecations
- Deprecated stype
product_idin favor ofinstrument_id - Deprecated stype
nativein favor ofraw_symbol - Deprecated stype
smartin favor of separateparentandcontinuousstypes
0.7.0 - 2023-04-07
Breaking changes
- Removed
/metadata.list_compressionsendpoint (redundant with docs) - Removed
/metadata.list_encodingsendpoint (redundant with docs) - Removed optional
startandendparams from/metadata.list_schemasendpoint (redundant) - Changed parsing of
endandend_dateparams 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
SystemMsgrecords - 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
SystemMsgrecords - Added a new optional
is_lastfield to subscription requests to indicate the request is part of a larger subscription - Began setting
codefield in DBN version 2+ErrorMsgandSystemMsgrecords - Added slow reader warnings in the form of
SystemMsgrecords
0.5.0 - 2024-05-25
Enhancements
- Added support for optional
snapshotfield in subscription control message to request a snapshot of stateful schemas like MBO - Added support for optional
heartbeat_interval_sfield in authentication control message to configure the interval when heartbeat messages will be sent - Added support for optional
idfield in subscription control message
0.3.0 - 2023-10-20
Enhancements
- When a subscription has symbols that fail to resolve, a separate
ErrorMsgrecord will be sent for each symbol - Added
pretty_pxsession parameter which formats prices to the correct scale using the fixed-precision scalar 1e-9 (available for JSON encoding) - Added
pretty_tssession 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 keyhdin JSON encoding to match structure definitions - Added
channel_idto MBO schema - Changed to always include
rtypeto differentiate between schemas, makingdetailssession parameter redundant - Rename
security_groupin definitions schema togroupto match struct definitions - All 64-bit integers are now serialized as strings to avoid loss of precision
- Moved header fields (
Deprecations
- Deprecated
detailssession parameter
0.33.0 - 2025-08-19
Enhancements
- Upgraded DBN version to 0.40.0:
- Added
DbnVersionnew type
- Added
Breaking changes
- Removed
bill_idfield fromBatchJobstruct - Breaking changes from DBN:
- Marked
ErrorCodeandSystemCodenon-exhaustive to allow adding future variants without a breaking change - Added
EndOfIntervalvariant toSystemCodeto 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 toImbalanceMsgthat convert the fields of the same name to theSideenum - Added
pretty_auction_timeproperty in Python forImbalanceMsg - Added
Defaultimplementation forStatUpdateAction - Added warnings to the floating-point getter methods' docstrings
- Added
actionandts_in_deltagetters toBboMsg - Added
ts_recvgetter toStatusMsg - Added missing floating-point price getters to
InstrumentDefMsgrecord types from all DBN versions - Added more floating-point price getters to
ImbalanceMsg - Added floating-point price getter to
StatMsgandv1::StatMsg
- Added
Breaking changes
- Breaking changes from DBN:
- Changed
SystemMsg::code()andErrorMsg::code()methods to return aResultinstead of anOptionto be consistent with other enum conversion methods - Changed
auction_timefield inImbalanceMsgto be formatted as a timestamp
- Changed
Bug fixes
- Removed unused
S3andDiskvariants fromDeliveryenum
0.29.0 - 2025-07-15
Breaking changes
- Upgraded DBN version to 0.37.0:
- Renamed the following Venue, Dataset, and Publishers:
XEERtoXEEEXEER.EOBItoXEEE.EOBIXEER.EOBI.XEERtoXEEE.EOBI.XEEEXEER.EOBI.XOFFtoXEEE.EOBI.XOFF
- Renamed
CMBP1constant toCMBP_1for consistency withMBP_1andMBP_10
- Renamed the following Venue, Dataset, and Publishers:
Bug fixes
- Removed
Intradayvariant fromDatasetConditionenum
0.28.0 - 2025-07-01
Enhancements
- Added operating system info to the user agent to aid troubleshooting
- Standardized
clientinfo 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_policyparameters fortimseries().get_range()andtimeseries().get_range_to_file(): use theHistoricalclient 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
rustlswithout pulling in OpenSSL.reqwestwith 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_durationtoOption<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:
AsyncDecodeRecordRefandAsyncDecodeRecord - 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::connectandLiveClient::connect_with_addrmethods in favor of using the builder so additional optional parameters can be added without a breaking change
Bug fixes
- Fixed bug with deserializing
nullsplit_durationin 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
VersionUpgradePolicyintimeseries().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_lastfield 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
Fromtrait - Implemented conversion from
RecordReftoIoSlicefor 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
InstrumentDefMsgwith newleg_fields to support multi-leg strategy definitions. - Expanded
assetto 11 bytes andASSET_CSTR_LENto match - Expanded
raw_instrument_idto 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_typefields which will be normalized in the statistics schema - Removed
md_security_trading_statusbetter served by the status schema
- Updated
- Statistics schema:
- Updated
StatMsghas an expanded 64-bitquantityfield. Like other 64-bit integer fields, its value will now be quoted in JSON - The previous
StatMsghas been moved tov2::StatMsgorStatMsgV2
- Updated
- Changed the default
VersionUpgradePolicytoUpgradeToV3 - Updated the minimum supported
tokioversion 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::StatMsgrecord with an expanded 64-bitquantityfield - Added
with_compression_levelmethods toDynWriter,AsyncDynWriter, andAsyncDynBufWriter - Added
DBN_VERSIONconstants to each version module:v1,v2, andv3 - Added
UNDEF_STAT_QUANTITYconstants to each version module - Added statistics compatibility trait
StatRecfor generalizing across different versions of the statistics record - Added
AsRef<[u8]>implementations forRecordEnumandRecordRefEnum - Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
- Added a
Breaking changes
- From DBN:
- Made
Recorda 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
SystemCodeandErrorCodeenums to indicate types of system and error messages - Added
code()methods toSystemMsgandErrorMsgto retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Added
ASSET_CSTR_LENconstants for the size ofassetfield inInstrumentDefMsgin different DBN versions - Added
encode_record_with_sym()method toAsyncJsonEncoderwhich encodes a record along with its text symbol to match the sync encoder
- Added
Breaking changes
- Breaking changes from DBN:
- Added
codeparameter toSystemCode::new()andErrorMsg::new() - Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like function invocation - Increased the size of
assetfield inv3::InstrumentDefMsgfrom 7 to 11. TheInstrumentDefMsgV3message size remains 520 bytes.
- Added
0.23.0 - 2025-04-15
Enhancements
- Added
subscriptionstoLiveClientDebugimplementation - Upgraded DBN version to 0.32.0:
- Added
SystemCodeandErrorCodeenums to indicate types of system and error messages - Added
code()methods toSystemMsgandErrorMsgto retrieve the enum value if one exists and equivalent properties in Python - Converting a
v1::SystemMsgto av2::SystemMsgnow sets tocodeto the heartbeat value - Added
OrdandPartialOrdimplementations for all enums andFlagSetto allow for use in ordered containers likeBTreeMap - Added
decode_records()method toAsyncDbnDecoderandAsyncDbnRecordDecoderwhich is similar to the sync decoder methods of the same name - Upgraded
pyo3version to 0.24.1 - Upgraded
timeversion to 0.3.41
- Added
Breaking changes
- Added new
idfield to liveSubscription, which will be used for improved error messages - Added new
idparameter tolive::protocol::SubRequest::new()method - Breaking changes from DBN:
- Added
codeparameter toSystemCode::new()andErrorMsg::new() - Updated the
rtype_dispatchandschema_dispatchmacro invocations to look more like function invocation - Removed deprecated
datasetmodule. The top-levelDatasetenum and itsconstas_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>forDateRangeandDateTimeRangeto make it simpler to request a single full day's worth of data - Added conversions between
DateRangeandDateTimeRange - Added conversions from
timeseries::GetRangeParams,timeseries::GetRangeToFileParams, anddbn::Metadatatosymbology::ResolveParams - Upgraded DBN version to 0.30.0:
- Added support for mapping symbols from instrument definitions to
PitSymbolMapwith a newon_instrument_def()method - Added instrument definition compatibility trait
InstrumentDefRecfor generalizing across different versions of the instrument definition record - Added
OrdandPartialOrdimplementations for all enums andFlagSetto allow for use in ordered containers likeBTreeMap - Added
decode_records()method toAsyncDbnDecoderandAsyncDbnRecordDecoderwhich is similar to the sync decoder methods of the same name - Removed deprecated
datasetmodule. The top-levelDatasetenum and itsconstas_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
SkipBytesandAsyncSkipBytestraits which are a subset of theSeekandAsyncSeektraits 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 toLiveClientfor getting all active subscriptions - Added
shutdown()method tolive::Protocolto 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 selfrather than an owned value toselfnow that clients can be reused through thereconnect()method - Changed
LiveClient::subscribe()to take aSubscriptionparameter rather than a&Subscriptionbecause it will now store theSubscriptionstruct internally - Upgraded DBN version to 0.28.0:
- Added
CommoditySpotInstrumentClassvariant and madeInstrumentClassnon-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
EQUSfor consolidated US equities - Added new dataset
EQUS.MINIand new publishersEQUS.MINI.EQUSandXNYS.TRADES.EQUS
Bug fixes
- Changed historical metadata methods with
symbolsparameter to use aPOSTrequest to allow for requesting supported maximum of 2000 symbols
0.18.0 - 2025-01-08
Enhancements
- Upgraded DBN version to 0.26.0:
- Added
v3namespace in preparation for future DBN version 3 release. DBN version 2 remains the current and default version - Added
v3::InstrumentDefMsgrecord 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:
MergeDecoderandMergeRecordDecoderstructs - Metadata:
MergeDecoderstruct andMetadata::merge()method - In the CLI: specify more than one input file to initiate a merge
- Decoding streams:
- Eliminated
unsafeinFromimplementations for record structs from different versions
- Added
0.17.0 - 2024-12-17
Enhancements
- Upgraded DBN version to 0.25.0:
- Added
v1andv2namespaces 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 onMetadataBuilderto accept animpl ToStringso nowDatasetand&strcan 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
thiserrorversion to 2.0
Breaking changes
- Removed deprecated
Packagingenum andpackagingfield that's no longer supported by the API - As part of the DBN version upgrade:
VersionUpgradePolicy::Upgradewas 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
thiserrorversion to 2.0
Deprecations
- Deprecated
Packagingenum andpackagingfield onSubmitJobParamsandBatchJob. 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
NoneActionvariant that will be gradually rolled out to historical and liveGLBX.MDP3data - Added consistent escaping of non-printable and non-ASCII values when text encoding
c_charfields - Implemented
DefaultforActionandSide - Implemented missing
Serializefor (withserdefeature 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:
ApiKeySymbols::to_chunked_api_string()live::protocolmodule containing implementations of the raw API messages
- Changed from
logcrate totracingfor better diagnostics
0.11.0 - 2024-06-04
Enhancements
- Added configurable
heartbeat_intervalparameter for live client that determines the timeout before heartbeatSystemMsgrecords will be sent. It can be configured via theheartbeat_intervalandheartbeat_interval_smethods of thelive::ClientBuilder - Added
addrfunction tolive::ClientBuilderfor configuring a custom gateway address without usingLiveClient::connect_with_addrdirectly - Upgraded DBN version to 0.18.1
Breaking changes
- Added
heartbeat_intervalparameter toLiveClient::connectandLiveClient::connect_with_addr - Removed deprecated
start_dateandend_datefields fromDatasetRangestruct
0.10.0 - 2024-05-22
Enhancements
- Added
use_snapshotattribute toSubscription, defaults to false - Upgraded reqwest version to 0.12
Breaking changes
- Upgraded DBN version to 0.18.0
- Changed type of
flagsinMboMsg,TradeMsg,Mbp1Msg,Mbp10Msg, andCbboMsgfromu8to a newFlagSettype with predicate methods for the various bit flags as well as setters. Theu8value can still be obtained by calling theraw()method- Improved
Debugformatting
- Improved
- Switched
DecodeStreamfromstreaming_iteratorcrate tofallible_streaming_iteratorto allow better notification of errors - Changed default value for
stype_inandstype_outinSymbolMappingMsgtou8::MAXto match C++ client and to reflect an unknown value. This also changes the value of these fields when upgrading aSymbolMappingMsgV1to DBNv2
- Changed type of
0.9.0 - 2024-05-14
Enhancements
- Added
startandendfields to theDatasetRangestruct which are instances ofOffsetDateTimeand provide time resolution and an exclusive end - Upgraded DBN version to 0.17.1
Deprecations
- The
start_dateandend_datefields of theDatasetRangestruct 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
VolatilityandDeltaStatTypevariants
Breaking changes
- Removed previously-deprecated
live::SymbolMap. Please usedatabento::dbn::PitSymbolMapinstead
0.7.0 - 2024-03-01
Enhancements
- Document cancellation safety of
LiveClientmethods - Document
live::Subscription::startis based onts_event - Allow constructing a
DateRangeandDateTimeRangewith anendbased on atime::Duration - Implemented
DebugforLiveClient,live::ClientBuilder,HistoricalClient,historical::ClientBuilder,BatchClient,MetadataClient,SymbologyClient, andTimeseriesClient - Derived
Cloneforlive::ClientBuilderandhistorical::ClientBuilder - Added
ApiKeytype for safely derivingDebugfor types containing an API key
Breaking changes
- Changed default
upgrade_policyinLiveBuilderandGetRangeParamstoUpgradeso by default the primary record types can always be used - Simplified
DateRangeandDateTimeRangeby removingFwdFillvariant that didn't work correctly - Upgraded DBN version to 0.16.0
- Updated
StatusMsgin preparation for status schema release - Fixed handling of
ts_outwhen upgrading DBNv1 records to version 2 - Fixed handling of
ErrorMsgV1andSystemMsgV1inrtypedispatch 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
SystemMsgandErrorMsgrecords - Improved
Debugimplementations for records andRecordRef - Improved panic messages for
RecordRef::get
- Added support for larger
- Upgraded
typed-builderto 0.18
Bug fixes
- Fixed documentation for
endinDateRange::ClosedandDateTimeRange::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_recordanddecode_record_ref, anddbn::decode::AsyncRecordDecoder::decodeanddecode_refcancel safe. This makes them safe to use within atokio::select!statement - Improved error reporting for
HistoricalClientwhen 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_mapmethod to theResolutionstruct returned bysymbology::resolvethat returns aTsSymbolMap - Added
PartialEqandEqimplementations for parameter builder classes - Added
upgrade_policysetter to theLiveClientbuilder and a getter to theLiveClient - Added
upgrade_policyoptional setter to thetimeseries::GetRangeParamsbuilder
Breaking changes
- Upgraded
dbnto 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::InstrumentDefMsgtodbn::compat::InstrumentDefMsgV1and added a newdbn::InstrumentDefMsgwith a longerraw_symbolfield - Renamed
dbn::SymbolMappingMsgtodbn::compat::SymbolMappingMsgV1and added a newdbn::SymbolMappingMsgwith longer symbol fields and newstype_inandstype_outfields - Added
symbol_cstr_lenfield todbn::Metadata
- Renamed
- Made
Errornon-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_policyparameter toLiveClient::connectandconnect_with_addr. The builder provides a more stable API since new parameters are usually introduced as optional
Deprecations
- Deprecated
live::SymbolMapin favor ofdatabento::dbn::PitSymbolMap
0.4.0 - 2023-09-21
Enhancements
- Added
pretty_pxoption 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_tsoption forbatch::submit_job, which formats timestamps as ISO 8601 strings (available for CSV and JSON text encodings) - Added
map_symbolsoption 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.jsonfile - Added
split_symbolsoption forbatch::submit_job, which will split files by raw symbol - Added
encodingoption tobatch::submit_jobto allow requesting non-DBN encoded data through the client - Added
map_symbols,pretty_px, andpretty_tstoBatchJobresponse
0.2.0 - 2023-08-10
Breaking changes
- Changed
metadata::list_publishersto return aVec<PublisherDetail> metadata::list_fields:- Changed return type to
Vec<FieldDetail> - Made
encodingandschemaparameters required - Removed
datasetparameter
- Changed return type to
metadata::list_unit_prices:- Changed return type to
Vec<UnitPricesForMode> - Made
datasetparameter required - Removed
modeandschemaparameters
- Changed return type to
2025-09-23
Bug fixes
- Fixed missing
ts_refin CME Globex settlement price statistics prior to 2015 - Fixed a symbology issue in the
XCIS.TRADESBBOdataset 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
activationandexpirationfrom 2015-11-22 to 2017-05-21 - Fixed incorrect price levels in the MBP-10 schema for products with reduced
market_depthand implied books on MDP2 CME Globex data - Fixed missing
ts_refin 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
SettlPriceTypenormalization 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
ContractSymbolforraw_symbolwhen available.ContractSymbolprovides more human-readable symbols than theStrategySymbolfallback. - 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
sequenceto match other schemas instead of tag 83-RptSeq - Fixed scaling of
strike_pricefor metal options for CME Globex MDP 3.0 - Added truncated digit
of
strike_pricefor MDP 3.0 2-Year T-Note options (OZT) for CME Globex MDP 3.0.strike_pricenow includes the full strike price - Fixed scaling of
unit_of_measure_qtyin 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_flagsto 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_refwhen 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.IMPACTandNDEX.IMPACTdatasets, does not yet include ourmbo,mbp-10,mbp-1, andtbboschemas
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.BASICdataset, does not include live data for themboschema
Breaking changes
- Changed
XNAS.ITCHCross Trade messages when no cross occurred to have a price ofUNDEF_PRICEinstead 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.PILLARdataset, does not yet include live data for thembp-1schema, or Global Trading Hours (GTH)
2023-07-23
- Updated CSV encoding:
- Reordered columns in every schema to better reflect relative importance
- Added
channel_idto MBO schema - Always include
rtypeto differentiate between schemas - Rename
security_groupin definitions schema togroupto match struct definitions
- Updated JSON encoding:
- Moved header fields (
rtype,publisher_id,instrument_id, andts_event) to - Added
channel_idto MBO schema - Changed to always include
rtypeto differentiate between schemas nested object under the keyhdin JSON encoding to match structure definitions - Rename
security_groupin definitions schema togroupto 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.