Skip to content

Services and Enums

Bloomberg service definitions and request parameters.

Enum definitions (Service, Operation, ExtractorHint, Format, OutputMode) are generated from defs/bloomberg.toml into _services_gen.py. This module re-exports them and provides the hand-written :class:RequestParams dataclass.

Example::

from xbbg import Service, Operation, RequestParams

params = RequestParams( service=Service.REFDATA, operation=Operation.REFERENCE_DATA, securities=[“AAPL US Equity”], fields=[“PX_LAST”], )

@dataclass
class RequestParams()

Validated request parameters for the Bloomberg API.

This dataclass holds all possible parameters for Bloomberg requests. Not all parameters are used for all request types - the Python layer validates that required parameters are present for each operation.

The Rust layer handles default extractor resolution via RequestParams::with_defaults(), so Python only passes an explicit extractor when the caller overrides it.

Attributes:

  • service - Bloomberg service URI (e.g., "//blp/refdata").
  • operation - Request operation name (e.g., "ReferenceDataRequest").
  • request_operation - Actual Bloomberg operation name when using Operation.RAW_REQUEST as the low-level escape hatch.
  • securities - List of security identifiers (for multi-security requests).
  • security - Single security identifier (for intraday requests).
  • fields - List of field names to retrieve.
  • overrides - List of (field, value) tuples for field overrides.
  • elements - List of (name, value) tuples for generic request elements (BQL, bsrch).
  • start_date - Start date for historical requests. Accepts ISO 8601 / YYYYMMDD string, "today", datetime.date, datetime.datetime, or pd.Timestamp.
  • end_date - End date for historical requests. Same accepted shapes as start_date.
  • start_datetime - Start datetime for intraday requests. Accepts ISO 8601 string (with or without tz), datetime.datetime (naive or tz-aware), or pd.Timestamp. Naive values use request_tz.
  • end_datetime - End datetime for intraday requests. Same accepted shapes as start_datetime.
  • request_tz - How naive intraday datetimes are interpreted before the API call (UTC, local, exchange, NY/LN/…, reference ticker, or IANA).
  • output_tz - Relabel Arrow time to this zone (same instants; handled in Rust).
  • event_type - Event type for intraday bars (TRADE, BID, ASK, etc.).
  • event_types - Event types for intraday ticks (TRADE, BID, ASK, etc.).
  • interval - Bar interval in minutes for intraday bars.
  • options - Additional Bloomberg options as (key, value) tuples.
  • field_types - Manual type overrides for fields (for issue 168).
  • output - Output format (arrow or json).
  • extractor - Override the auto-detected extractor hint. When None the Rust layer picks the correct extractor for the operation.
  • format - Output format (LONG, LONG_TYPED, LONG_WITH_METADATA).
  • include_security_errors - When True for ReferenceData requests, include __SECURITY_ERROR__ rows for securities that failed.
  • validate_fields - Optional per-request override for field validation. True forces strict validation, False disables it, and None (default) follows engine configuration.

def __post_init__() -> None

Convert enums to strings and set defaults.

def validate() -> None

Validate parameters for the given operation.

Raises:

  • BlpValidationError - If required parameters are missing or invalid.

def to_dict() -> dict[str, object]

Convert to dictionary for passing to Rust.

Only non-None values are included. When extractor is None the key is omitted so the Rust layer can apply its own default via RequestParams::with_defaults().

Returns:

Dictionary suitable for Rust consumption.