OpenBB-finance/OpenBB · error · ValueError

Symbol is required for Intrinio.

Error message

Symbol is required for Intrinio.

What it means

A Pydantic field_validator (mode='before') on the Intrinio company-filings query params: the Intrinio filings endpoint is per-symbol, so a falsy symbol ('', None) raises ValueError immediately at request-model construction, before any network call. This intentionally rejects the generic 'all filings' pattern other providers allow.

Source

Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/company_filings.py:55

    end_date: dateType | None = Field(
        default=None,
        description=QUERY_DESCRIPTIONS["end_date"],
    )
    limit: int | None = Field(
        default=None,
        description=QUERY_DESCRIPTIONS["limit"],
    )
    thea_enabled: bool | None = Field(
        default=None,
        description="Return filings that have been read by Intrinio's Thea NLP.",
    )

    @field_validator("symbol", mode="before", check_fields=False)
    @classmethod
    def _validate_symbol(cls, v):
        """Validate symbol."""
        if not v:
            raise ValueError("Symbol is required for Intrinio.")
        return v


class IntrinioCompanyFilingsData(CompanyFilingsData):
    """Intrinio Company Filings Data."""

    id: str = Field(description="Intrinio ID of the filing.")
    period_end_date: dateType | None = Field(
        default=None,
        description="Ending date of the fiscal period for the filing.",
    )
    accepted_date: datetime | None = Field(
        default=None, description="Accepted date of the filing."
    )
    sec_unique_id: str = Field(description="SEC unique ID of the filing.")
    filing_url: str | None = Field(default=None, description="URL to the filing page.")
    instance_url: str | None = Field(
        default=None,

View on GitHub (pinned to 3e071fcc2c)

Solutions

  1. Always pass a concrete symbol: obb.equity.filings(provider='intrinio', symbol='AAPL').
  2. Sanitize ticker lists upstream - filter out empty/None before looping.
  3. If you need market-wide filings, use a provider that supports no-symbol queries or iterate symbols explicitly.

Example fix

# before
obb.equity.filings(provider='intrinio')  # ValueError: Symbol is required for Intrinio.
# after
obb.equity.filings(provider='intrinio', symbol='AAPL')

# batch: skip blanks
for sym in filter(None, map(str.strip, symbols)):
    obb.equity.filings(provider='intrinio', symbol=sym)
Defensive patterns

Strategy: validation

Validate before calling

symbols = [s.strip().upper() for s in symbols if s and s.strip()]
if not symbols:
    raise ValueError('symbol list empty after cleaning')
for sym in symbols:
    obb.equity.filings(provider='intrinio', symbol=sym)

Type guard

def is_valid_symbol(sym: object) -> bool:
    return isinstance(sym, str) and bool(sym.strip())

Try / catch

try:
    res = obb.equity.filings(provider='intrinio', symbol=symbol)
except ValueError as e:
    if 'Symbol is required' in str(e):
        symbol = prompt_for_symbol()  # or skip iteration
    raise

Prevention

When it happens

Trigger: Calling obb.equity.filings(provider='intrinio') without a symbol, or with symbol='' / None (e.g. a loop where the symbol variable is empty for some tickers, or a default config that other providers tolerate).

Common situations: Porting code from providers that allow symbolless filings queries; batch scripts iterating a ticker list containing empty strings after cleaning; notebooks relying on a global symbol set elsewhere.

Related errors


AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14). Data as JSON: /api/errors/6d6f1f3b7c7e3758. Report an issue: GitHub.