NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4096 most downloaded on PyPI
Official Python client library for Databento
Last release 12 days ago
22 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
112 releases · first in 2021
One column per quarter.
Added new venue, dataset, and publishers for Databento Core Indices
Live no longer waits for records on a thread pool executor,databento-dbn to 0.70.0Live could drop a recordAdded UNSUBSCRIBE_ACK to the SystemCode enum for acknowledging unsubscribe requests
UNSUBSCRIBE_ACK to the SystemCode enum for acknowledging unsubscribe requestsdatabento-dbn to 0.69.0
InstrumentMap.clear() didn't clear the LRU cache for InstrumentMap.resolve() (credit: @Tomperez98)Added support for the short parameter of batch.list_jobs . When set to True , the response will contain only the id , state , and ts_received fields f
short parameter of batch.list_jobs. When setTrue, the response will contain only the id, state, andts_received fields for each jobdatabento-dbn to 0.68.0Added support for listing_id , issuer_id , and security_id as stype_in values for the security master and corporate actions reference data endpoints,
listing_id, issuer_id, and security_id as stype_insecurity_id for the adjustment factors endpointdataset parameter to MetadataHttpAPI.list_fields(). If notdatabento-dbn to 0.67.0:
side(), action() and rtype(), by no longer copying the description whenAdded CorporateActionsHttpAPI.list_events() and list_enums() for fetching documentation on supported corporate action event types and enum values
CorporateActionsHttpAPI.list_events() and list_enums() for fetching
documentation on supported corporate action event types and enum valuesREPLAY_DATA_AGED_OUT variant to ErrorCode enumallocate_isins parameter to AdjustmentFactorsHttpAPI.get_range(),
CorporateActionsHttpAPI.get_range(), SecurityMasterHttpAPI.get_range(),
and SecurityMasterHttpAPI.get_last() to control whether new ISINs are
allocated for plans that are ISIN-limiteddatabento-dbn to 0.65.0:
finish() method to the Python Transcoder and a context manager
to call this method on exit. This will ensure compressed output contains the
end-of-frame blockLive client's monitor task would not get recreated
for the new session after a reconnectionAdded a loop parameter to the Live client to provide user level control of which event loop the client's connection uses
loop parameter to the Live client to provide user level control
of which event loop the client's connection usesLive class will no longer create a background thread and event loop
upon importdatabento-dbn to 0.63.0:
VersionUpgradePolicy: the enum is now
has a value property, a from_int, and comparison against integersUpgraded databento-dbn to 0.62.0:
databento-dbn to 0.62.0:
StatType variants MwcbLevel1, MwcbLevel2, and MwcbLevel3StatType variants AuctionCollarReferencePrice, AuctionCollarUpperPrice,
and AuctionCollarLowerPricesize field to 0 in MboMsg, TradeMsg, Mbp1Msg, Mbp10Msg,
BboMsg, Cmbp1Msg, and CbboMsgUpgraded databento-dbn to 0.61.0:
databento-dbn to 0.61.0:
MatchAlgorithm variant AllocationLive client would throw a TypeError when connecting
using uvloopdatabento-dbn to 0.61.0:
MatchAlgorithm variant AllocationLive client would throw a TypeError when connecting
using uvloopCGIF to MAINCGIF.TITANIUM to MAIN.CGIFCGIF.TITANIUM.CGIF to MAIN.CGIF.MAINAdded new venues, datasets, and publishers for US Equities Securities Information Processors
batch.download method to use the API's batch.download endpoint for
downloading a batch job as a ZIP archivebatch.get_job_details to access the full details of a batch jobdatabento-dbn to 0.59.0:
ts_out decoding and serializationLive.start() and Live.terminate() which would
call methods from the client's event loop in the main threadAdded time-based backpressure to the live client: pauses reading records from the live gateway when the internal queue spans more than 1 second of dat
ts_index
(ts_recv when present, otherwise ts_event)databento-dbn to 0.58.0:
bid_px_00, pretty_ask_px_03, etc.) to the
Python MBP1Msg, MBP10Msg, BBOMsg, CMBP1Msg, and CBBOMsg record classes
for parity with the DataFrame layoutINDEX InstrumentClass variantStatType variants INDICATIVE_CLOSE_PRICE and VENUE_SPECIFIC_PRICE_1Added new publisher values for Cboe Titanium Cboe Global Indices Feed
YEAR to SplitDuration enum to support yearly historical batch job submissiondatabento-dbn to 0.56.0:
DBNDecoder.decode() performance with pre-allocated output buffersDBNDecoder.write_and_decode() to combine write and decode in a single callAdded new publisher values for OPRA MEMX MX2 Options and IEX Options
databento-dbn to 0.55.0:
DBNDecoderUpgraded databento-dbn to 0.53.0:
databento-dbn to 0.53.0:
ts_out a permanent field on all Python record types, replacing the
dynamic __dict__ attribute. ts_out returns an int (UNDEF_TIMESTAMP when
not set)__dict__ from all Python record classes, eliminating a separate
per-instance allocationUpgraded databento-dbn to 0.52.1:
databento-dbn to 0.52.1:
__index__ to all int-representable and char-backed Python enums, enabling
use with int(), hex(), and as sequence indicespyo3 0.28 regression in #[pyclass(dict)] deallocation. Downgraded
pyo3 to 0.27.2dict from BidAskPair and ConsolidatedBidAskPair Python
classesrecord_size() is a method, not a propertypublisher_id, instrument_id, price, size) and added @setter stubs
for enum fields (e.g. action, side)Changed SlowReaderBehavior.SKIP to send "skip" instead of "drop" to the gateway
SlowReaderBehavior.SKIP to send "skip" instead of "drop" to the gatewaydatabento-dbn to 0.52.0:
SYMBOL_CSTR_LEN constant and versioned variants (SYMBOL_CSTR_LEN_V1,
SYMBOL_CSTR_LEN_V2, SYMBOL_CSTR_LEN_V3) to Python, including in each versioned
module (v1, v2, v3) as SYMBOL_CSTR_LENv1, v2, and v3 submodule imports to databento_dbn.__init__ so they are
accessible as attributes (e.g. databento_dbn.v1)Upgraded databento-dbn to 0.51.0:
databento-dbn to 0.51.0:
code when upgrading version 1 ErrorMsg to newer versionsUpgraded databento-dbn to 0.50.0:
databento-dbn to 0.50.0:
SkippedRecordsAfterSlowReading to the ErrorCode enum for gateway errors originating
from slow client catch-up.Added slow_reader_behavior field to AuthenticationRequest message
slow_reader_behavior field to AuthenticationRequest messageSlowReaderBehavior enumcompression parameter to the Live client constructorcompression property to the Live clientcompression field to AuthenticationRequestdatabento-dbn to 0.49.0:
DBNDecoder and new optional compression parameterAdded new off-market publisher for Cboe Futures Exchange (XCBF_PITCH_XOFF)
XCBF_PITCH_XOFF)databento-dbn to 0.48.0:
__repr__ implementation of all records in Python to be more PythonicStatType variants to be used by XCBF.PITCH dataset:
UPPER_PRICE_LIMITLOWER_PRICE_LIMITBLOCK_VOLUMEVENUE_SPECIFIC_VOLUME_1OCEA_MEMOIR_OCEA)SystemMsg records to the debug levelUpgraded databento-dbn to 0.46.0
databento-dbn to 0.46.0
DBNRecord union type to Python which includes all record typesRecord class from Python type stubs to match code: the record classes don't
share a base class. Use DBNRecord instead.DBNRecord union type from databento.common.types, use databento_dbn.DBNRecord insteadFix use of Self in GatewayControl.parse()
Self in GatewayControl.parse()Improved the performance of DBNStore.to_df() symbol mapping
DBNStore.to_df() symbol mappingThis release adds support for Python 3.14.
This release adds support for Python 3.14.
databento-dbn to 0.45.0
Added a property Live.subscription_requests which returns a list of tuples containing every SubscriptionRequest for the live session
Live.subscription_requests which returns a list of tuples containing every SubscriptionRequest for the live sessionLive.subscribe() to int, the value of the subscription ID, which can be used to index into the Live.subscription_requests propertyLive client
BentoErrorXCBF.PITCH)map_symbols parameter for Historical.batch.submit_job() now defaults to True for JSON and CSV encodingsAdded a property Live.session_id which returns the streaming session ID when the client is connected
Live.session_id which returns the streaming session ID when the client is connectedLive.add_stream() which do not define an exception handler will now emit a warning if an exception is raised while executing the callbackLive.add_callback() which do not define an exception handler will now emit a warning if an exception is raised while executing the callbackdatabento-dbn to 0.44.0
code when upgrading version 1 SystemMsg to newer versionsLive.add_stream() will now close properly when the streaming session is closedDeprecated mode parameter in metadata.get_cost, which will be removed in a future release
mode parameter in metadata.get_cost, which will be removed in a future releaseCBBOMsg and BBOMsg from databento_dbn to the root databento packagedatabento-dbn to 0.43.0
F_PUBLISHER_SPECIFIC constant to PythonUnset variant for SystemCode and ErrorCodeUpgraded databento-dbn to 0.42.0
databento-dbn to 0.42.0
ts_index and pretty_ts_index properties for records in Python which provides the timestamp that is most appropriate for indexingchannel_id to allow Nonestart parameter in Live.subscribe()databento-dbn to 0.42.0:
ts_index and pretty_ts_index properties for records in Python which provides the timestamp that is most appropriate for indexingchannel_id to allow NoneSystemMsg records in the Live client to debugSystemMsg records with the code SystemCode.SLOW_READER_WARNING to warningstart parameter in Live.subscribe()Upgraded databento-dbn to 0.41.0
databento-dbn to 0.41.0Live.stop() would not clean up the client state once the socket is closedThis release delivers a number of breaking changes to the Python interface for DBN records to provide a cleaner and more consistent API.
This release delivers a number of breaking changes to the Python interface for DBN records to provide a cleaner and more consistent API.
bill_id from the response of batch.list_jobs() and batch.submit_job()databento-dbn to 0.40.0
hd property from records in Python. Header fields are accessible
directly from the recordint in Python and coercion
from int in __eq__. They can still be instantitated with the from_int class method.
Write Side.from_int(66) instead of Side(66) and Side.BID == Side.from_int(66)
instead of Side.BID == 66. Affected enums:
SideActionInstrumentClassMatchAlgorithmUserDefinedInstrumentSecurityUpdateActionSTypeSchemaEncodingCompressionTriState__init__ and __eq__ for RType, SystemCode, and
ErrorCode enums in Python. It can still be instantiated from a str with the
from_str class method. Write RType.from_str("mbo") instead of RType("mbo")
and RType.TRADES == RType.from_str("trades") instead of RType.TRADES == "trades"END_OF_INTERVAL variant to SystemCode enumModified the states parameter in batch.list_jobs()
states parameter in batch.list_jobs()JobState enumSystemCode and ErrorCode from databento_dbn to the root databento packageF_PUBLISHER_SPECIFIC flag to RecordFlags enumrequests to 0.27.0Added parquet_schema option to DBNStore.to_parquet() for overriding the pyarrow schema.
parquet_schema option to DBNStore.to_parquet() for overriding the pyarrow schema.databento-dbn to 0.39.0
side() and unpaired_side() methods to ImbalanceMsg that convert the fields
of the same name to the Side enumpretty_auction_time property in Python for ImbalanceMsgaction and ts_in_delta getters to BboMsgts_recv getter to StatusMsgInstrumentDefMsg record types from all
DBN versionsImbalanceMsgStatMsg__init__ type signaturesauction_time field in ImbalanceMsg to be formatted as a timestampDBNError in
PythonS3 and Disk variants from Delivery enumUpgraded databento-dbn to 0.37.1
databento-dbn to 0.37.1
DbnFsm::write_all(), which is used by DBNDecoder.write()XEER to XEEEXEER.EOBI to XEEE.EOBIXEER.EOBI.XEER to XEEE.EOBI.XEEEXEER.EOBI.XOFF to XEEE.EOBI.XOFFChanged the tz parameter in DBNStore.to_df() to accept datetime.tzinfo instead of pytz.BaseTzInfo explicitly
tz parameter in DBNStore.to_df() to accept datetime.tzinfo instead of pytz.BaseTzInfo explicitlydatabento_dbn to allow for compatible patch versionsdatabento-dbn to 0.36.2
DBNDecoder.decode() wouldn't always decode all available data on the first callChanged the following Venue, Publisher, and Dataset descriptions:
databento-dbn to 0.36.1
ts_out with first records in DBNDecoderts_out populatedDeprecated int and pd.Timestamp types for start_date and end_date parameters which will be removed in a future release
databento-dbn to 0.36.0
InstrumentDefMsgDataFrame objects returned by DBNStore.to_df() when a count was specifiedint and pd.Timestamp types for start_date and end_date parameters which will be removed in a future releaseUpdated the names of several subfields in the Reference.corporate_actions.get_range(...) response, under the date_info, event_info, and rate_info fiel
Reference.corporate_actions.get_range(...) response,
under the date_info, event_info, and rate_info fields. The following subfields were renamed:
decl_currency renamed to declared_currencydecl_gross_amount renamed to declared_gross_amountf_x_rate renamed to fx_rateiss_new_name renamed to issuer_new_nameiss_old_name renamed to issuer_old_namenew_bbg_company_id renamed to new_bbg_comp_idnew_bbg_company_tk renamed to new_bbg_comp_tickernew_bbg_exh_id renamed to new_figinew_bbg_exh_tk renamed to new_figi_tickernew_min_tra_qty renamed to new_min_trading_qtynew_mktsg_id renamed to new_market_segment_idnew_reg_s144_a renamed to new_reg_s144anew_unit_sec_id renamed to new_unit_security_idofferee_iss_id renamed to offeree_issuer_idofferor_iss_id renamed to offeror_issuer_idold_bbg_company_id renamed to old_bbg_comp_idold_bbg_company_tk renamed to old_bbg_comp_tickerold_bbg_exh_id renamed to old_figiold_bbg_exh_tk renamed to old_figi_tickerold_min_tra_qty renamed to old_min_trading_qtyold_mktsg_id renamed to old_market_segment_idold_reg_s144_a renamed to old_reg_s144aold_unit_sec_id renamed to old_unit_security_idpp_sec_id renamed to pp_security_idpoolfactor renamed to pool_factorpre_offer_q_ty renamed to pre_offer_qtyqual_st_cap_gains renamed to qual_short_term_cap_gainsredem_percentage renamed to redemption_percentagest_cap_gains renamed to short_term_cap_gainssec_new_name renamed to security_new_namesec_old_name renamed to security_old_namesection199_a_foreign_tax_paid renamed to section199a_foreign_tax_paidsection199_a_inc_div renamed to section199a_inc_divsection199_a_st_cap_gain renamed to section199a_short_term_cap_gaintra_isin renamed to trading_isintra_sec_id renamed to trading_security_idus_deposit_receiptateto_currency renamed to usd_rate_to_currencycashbak renamed to cash_backcompanyulsory_acq_date renamed to compulsory_acq_datefrankdiv renamed to franked_divlead_plntiff_deadline_date renamed to lead_plaintiff_deadline_datemaxprice renamed to max_priceminprice renamed to min_priceredem_premium renamed to redemption_premiumredem_price renamed to redemption_priceunit_frankdiv renamed to unfranked_divdatabento-dbn to 0.35.1Fixed decoding of DBN versions 1 and 2 statistics in DBNStore.to_df()
DBNStore.to_df()Added exchanges parameter to Reference.corporate_actions.get_range(...)
exchanges parameter to Reference.corporate_actions.get_range(...)is_last field to live subscription requests which will be used to improve
the handling of split subscription requestsdatabento-dbn to 0.35.0
DBNDecoderJSONDecodeError would not be caught when using simplejson with requests (credit: @xuanqing94)Added new off-market publishers for Eurex, and European Energy Exchange (EEX)
databento-dbn to 0.34.0Upgraded databento-dbn to 0.33.1
databento-dbn to 0.33.1
SystemCode and ErrorCode enums to indicate types of system and error messagescode() methods to SystemMsg and ErrorMsg to retrieve the enum value if one exists and equivalent properties in PythonSystemMsg records were logged as gateway heartbeatsAdded new optional id field to SubcriptionRequest class which will be used for improved error messages
id field to SubcriptionRequest class which will be used for improved error messagesdatabento-dbn to 0.32.0
RType variant names in Python to match SchemaRType variants_hidden_fields definition that caused KeyError: _reserved1_00
with CMBP1Msg and other records with ConsolidatedBidAskPairUpgraded databento-dbn to 0.31.0
databento-dbn to 0.31.0
SystemMsg.is_heartbeat() method that was previously annotated as a propertyAdded new venues, datasets, and publishers for ICE Futures US, ICE Futures Europe (Financial products), Eurex, and European Energy Exchange (EEX)
databento_dbn to the root databento package:
ActionInstrumentClassMatchAlgorithmRTypeSecurityUpdateActionSideStatUpdateActionTriStateUserDefinedInstrumentVersionUpgradePolicydatabento_dbn to the root databento package:
DBN_VERSIONFIXED_PRICE_SCALEUNDEF_ORDER_SIZEUNDEF_PRICEUNDEF_STAT_QUANTITYUNDEF_TIMESTAMPBidAskPair and ConsolidatedBidAskPair from databento_dbn to the root databento packagedatabento-dbn to 0.29.0
COMMODITY_SPOT InstrumentClass variantdatetime and date objects in start and end parametersUpdated enumerations for unreleased datasets and publishers.
StatusAction enum from databento_dbn to the root databento packageStatusReason enum from databento_dbn to the root databento packageTradingEvent enum from databento_dbn to the root databento packageEQUS.MINI and new publishers EQUS.MINI.EQUS, XNYS.TRADES.EQUSpython versions; the constraint is now ^3.9databento-dbn to 0.27.0
InstrumentDefMsgV3 to PythonKeyboardInterrupt during iteration of the Live client could block execution waiting for the connection to closeUpgraded databento-dbn to 0.25.0
databento-dbn to 0.25.0
TBBOMsg, BBO1SMsg, BBO1MMsg, TCBBOMsg, CBBO1SMsg,
CBBO1MMsg in PythonCBBOMsg and BBOMsg in the root databento package in favor of aliased versions from databento-dbnRemoved deprecated packaging parameter from Historical.batch.submit_job. Job files can be downloaded individually or as zip files after the job comple…
packaging parameter from Historical.batch.submit_job. Job files can be downloaded individually or as zip files after the job completesdatabento-dbn to 0.24.0
UNDEF_TIMESTAMP in pretty_ timestamp getters for Python. They now return None in the case of UNDEF_TIMESTAMPDeprecated packaging parameter for Historical.batch.submit_job which will be removed in a future release
This release adds support for Python v3.13.
ASPN, ASMT, and ASPIdatabento-dbn to 0.23.1
pretty_activation getter in databento_dbn returning expiration insteadpretty_ getters in databento_dbn didn't correctly handle UNDEF_PRICEpackaging parameter for Historical.batch.submit_job which will be removed in a future releaseImproved exception messages emitted by the Live client to always include contents of any ErrorMsg sent by the gateway
Live client to always include contents of any ErrorMsg sent by the gatewayLive.stop would not close the connection within a reasonable timeRemoved deprecated databento.from_dbn; databento.read_dbn can be used instead
databento.from_dbn; databento.read_dbn can be used insteaddatabento-dbn to 0.23.0DBNStore.request_symbology could request the wrong end dateKeyword arguments to DBNStore.to_parquet will now allow where and schema to be specified
DBNStore.to_parquet will now allow where and schema to be specifiedLive clientThis release drops support for Python 3.8 which has reached end-of-life.
This release drops support for Python 3.8 which has reached end-of-life.
PriceType enum for validation of price_type parameter in DBNStore.to_dfdatabento-dbn to 0.22.1metadata.get_dataset_conditionAdded mode parameter to DBNStore.to_csv to control the file writing mode
mode parameter to DBNStore.to_csv to control the file writing modemode parameter to DBNStore.to_json to control the file writing modemode parameter to DBNStore.to_parquet to control the file writing modecompression parameter to DBNStore.to_file which controls the output compression formatXNAS.BASIC and DBEQ.MAXDBNStore to be more tolerant of truncated DBN streamsDBNStore.to_csv to overwrite ("w")DBNStore.to_json to overwrite ("w")DBNStore.to_parquet to overwrite ("w")Deprecated databento.from_dbn and will be removed in a future release, use databento.read_dbn instead
databento.read_dbn aliasmode parameter to DBNStore.to_file to control the file writing modeDBNStore.to_file to overwrite ("w")databento.from_dbn and will be removed in a future release, use databento.read_dbn insteadAdded adjustment_factors.get_range(...) method for Reference client
adjustment_factors.get_range(...) method for Reference clientsecurity_master.get_range(...) method for Reference clientsecurity_master.get_last(...) method for Reference clientdatabento-dbn to 0.20.1Added new publisher values for XCIS.BBOTRADES and XNYS.BBOTRADES
XCIS.BBOTRADES and XNYS.BBOTRADESErrorMsg in the Live client would cause an InvalidState errorLive clients in multiple threads could cause a RuntimeError upon initializationChanged corporate_actions.get_range(...) to stream compressed zstd data
corporate_actions.get_range(...) to stream compressed zstd dataFixed an issue where a symbol list which contained a None would produce a convoluted exception
None would produce a convoluted exceptionAdded new publisher value for DBEQ.SUMMARY
DBEQ.SUMMARYdatabento-dbn to 0.20.0This release adds a new feature to the Live client for automatically reconnecting when an unexpected disconnection occurs.
This release adds a new feature to the Live client for automatically reconnecting when an unexpected disconnection occurs.
Reference data client with corporate_actions.get_range(...) methodReconnectPolicy enumerationreconnect_policy parameter to the Live client to specify client reconnection behaviorLive.add_reconnect_callback method for specifying a callback to handle client reconnectionsHistorical and Live clientsdatabento-dbn to 0.19.1BBOMsg, CBBOMsg, and StatusMsg exports to the root databento packageLive.stop will now clear all user streams and callbacksSession to LiveSession in the databento.live.session moduleA disconnected Live client can now be reused with a different dataset
Live client can now be reused with a different datasetdatabento-dbn to 0.19.0Your coding agent can read these notes before it upgrades. Set up the MCP server →