{"record":{"id":"d2e0c0125e6733be","repo":"OpenBB-finance/OpenBB","slug":"no-data-returned-for-the-given-symbols","errorCode":null,"errorMessage":"No data returned for the given symbols.","messagePattern":"No data returned for the given symbols\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/fmp/openbb_fmp/models/analyst_estimates.py","lineNumber":114,"sourceCode":"            \"\"\"Get data for one symbol.\"\"\"\n            url = (\n                \"https://financialmodelingprep.com/stable/analyst-estimates?\"\n                + f\"symbol={symbol}&period={query.period}\"\n                + f\"&page={query.page if query.page else 0}&limit={query.limit if query.limit else 1000}\"\n                + f\"&apikey={api_key}\"\n            )\n            result = await amake_request(\n                url, response_callback=response_callback, **kwargs\n            )\n            if not result or len(result) == 0:\n                warnings.warn(f\"Symbol Error: No data found for {symbol}\")\n            if result:\n                results.extend(result)\n\n        await asyncio.gather(*[get_one(symbol) for symbol in symbols])\n\n        if not results:\n            raise EmptyDataError(\"No data returned for the given symbols.\")\n\n        return sorted(results, key=lambda x: (x[\"date\"], x[\"symbol\"]), reverse=False)\n\n    @staticmethod\n    def transform_data(\n        query: FMPAnalystEstimatesQueryParams, data: list[dict], **kwargs: Any\n    ) -> list[FMPAnalystEstimatesData]:\n        \"\"\"Return the transformed data.\"\"\"\n        return [FMPAnalystEstimatesData.model_validate(d) for d in data]\n","sourceCodeStart":96,"sourceCodeEnd":124,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/fmp/openbb_fmp/models/analyst_estimates.py#L96-L124","documentation":"FMP analyst estimates fetcher warns 'Symbol Error: No data found for {symbol}' per failing symbol, and if after gathering all requests `results` is still empty, raises EmptyDataError('No data returned for the given symbols.'). Estimates only exist for covered companies; the aggregate error means zero symbols had data.","triggerScenarios":"Requesting estimates for tickers FMP does not cover (OTC, foreign-only listings, recently delisted); wrong API tier so endpoints return empty arrays; valid symbols but period/type combination with no estimates.","commonSituations":"Free-tier FMP keys that exclude or limit estimates data; batch jobs over micro-cap universes; symbol typos that FMP silently resolves to nothing.","solutions":["Check the preceding warnings to see which symbols returned no data","Test one liquid ticker (AAPL) to confirm the endpoint and API key work","Verify your FMP subscription includes analyst estimates","Catch EmptyDataError and skip these symbols in batch pipelines"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"symbols = [s.strip() for s in query.symbol.split(\",\") if s.strip()]\nassert symbols, \"symbol list empty\"\n# optional: probe coverage with a single liquid ticker first\nprobe = await amake_request(f\".../analyst-estimates/AAPL?...\")\nassert probe, \"FMP key may lack estimates access\"","typeGuard":null,"tryCatchPattern":"import warnings\nfrom openbb_core.provider.abstract.errors import EmptyDataError\n\nwith warnings.catch_warnings(record=True) as w:\n    warnings.simplefilter(\"always\")\n    try:\n        results = await FMPAnalystEstimatesFetcher.transform_query(...)\n    except EmptyDataError:\n        results = []\n        failed = [str(x.message) for x in w]  # per-symbol 'Symbol Error' lines","preventionTips":["Verify the FMP API key tier includes analyst estimates","Watch the per-symbol warnings to distinguish coverage gaps from auth issues","Skip uncovered symbols in batch pipelines instead of retrying"],"tags":["openbb","fmp","empty-data","analyst-estimates","api-key"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}