{"record":{"id":"6d6f1f3b7c7e3758","repo":"OpenBB-finance/OpenBB","slug":"symbol-is-required-for-intrinio","errorCode":null,"errorMessage":"Symbol is required for Intrinio.","messagePattern":"Symbol is required for Intrinio\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/company_filings.py","lineNumber":55,"sourceCode":"    end_date: dateType | None = Field(\n        default=None,\n        description=QUERY_DESCRIPTIONS[\"end_date\"],\n    )\n    limit: int | None = Field(\n        default=None,\n        description=QUERY_DESCRIPTIONS[\"limit\"],\n    )\n    thea_enabled: bool | None = Field(\n        default=None,\n        description=\"Return filings that have been read by Intrinio's Thea NLP.\",\n    )\n\n    @field_validator(\"symbol\", mode=\"before\", check_fields=False)\n    @classmethod\n    def _validate_symbol(cls, v):\n        \"\"\"Validate symbol.\"\"\"\n        if not v:\n            raise ValueError(\"Symbol is required for Intrinio.\")\n        return v\n\n\nclass IntrinioCompanyFilingsData(CompanyFilingsData):\n    \"\"\"Intrinio Company Filings Data.\"\"\"\n\n    id: str = Field(description=\"Intrinio ID of the filing.\")\n    period_end_date: dateType | None = Field(\n        default=None,\n        description=\"Ending date of the fiscal period for the filing.\",\n    )\n    accepted_date: datetime | None = Field(\n        default=None, description=\"Accepted date of the filing.\"\n    )\n    sec_unique_id: str = Field(description=\"SEC unique ID of the filing.\")\n    filing_url: str | None = Field(default=None, description=\"URL to the filing page.\")\n    instance_url: str | None = Field(\n        default=None,","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/company_filings.py#L37-L73","documentation":"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.","triggerScenarios":"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).","commonSituations":"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.","solutions":["Always pass a concrete symbol: obb.equity.filings(provider='intrinio', symbol='AAPL').","Sanitize ticker lists upstream - filter out empty/None before looping.","If you need market-wide filings, use a provider that supports no-symbol queries or iterate symbols explicitly."],"exampleFix":"# before\nobb.equity.filings(provider='intrinio')  # ValueError: Symbol is required for Intrinio.\n# after\nobb.equity.filings(provider='intrinio', symbol='AAPL')\n\n# batch: skip blanks\nfor sym in filter(None, map(str.strip, symbols)):\n    obb.equity.filings(provider='intrinio', symbol=sym)","handlingStrategy":"validation","validationCode":"symbols = [s.strip().upper() for s in symbols if s and s.strip()]\nif not symbols:\n    raise ValueError('symbol list empty after cleaning')\nfor sym in symbols:\n    obb.equity.filings(provider='intrinio', symbol=sym)","typeGuard":"def is_valid_symbol(sym: object) -> bool:\n    return isinstance(sym, str) and bool(sym.strip())","tryCatchPattern":"try:\n    res = obb.equity.filings(provider='intrinio', symbol=symbol)\nexcept ValueError as e:\n    if 'Symbol is required' in str(e):\n        symbol = prompt_for_symbol()  # or skip iteration\n    raise","preventionTips":["Filter empty/None tickers from lists before looping","Remember Intrinio filings are per-symbol - always pass one","Centralize symbol sanitization (strip/upper) in one helper"],"tags":["intrinio","required-field","pydantic","valueerror"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}