OpenBB-finance/OpenBB · error · OpenBBError
Error fetching data from Intrinio: {response.status} -> {res
Error message
Error fetching data from Intrinio: {response.status} -> {response.text} What it means
The first-page HTTP guard in the Intrinio filings fetcher: after GET {base}/companies/{symbol}/filings, any non-200 status raises OpenBBError embedding the status code and response body. Typical statuses are 401/403 (bad or under-privileged API key), 404 (unknown symbol), 429 (rate limit).
Source
Thrown at openbb_platform/providers/intrinio/openbb_intrinio/models/company_filings.py:131
from openbb_core.provider.utils.helpers import (
get_async_requests_session,
get_querystring,
)
api_key = credentials.get("intrinio_api_key") if credentials else ""
base_url = "https://api-v2.intrinio.com/companies"
query_str = get_querystring(
query.model_dump(by_alias=True), ["symbol", "limit", "page_size"]
)
url = f"{base_url}/{query.symbol}/filings?{query_str}&page_size={query.limit or 10000}&api_key={api_key}"
results: list = []
metadata: dict = {}
session = await get_async_requests_session()
async with await session.get(url) as response:
if response.status != 200:
raise OpenBBError(
f"Error fetching data from Intrinio: {response.status} -> {response.text}"
)
result = await response.json()
if filings := result.get("filings", []):
results.extend(filings)
metadata = result.get("company", {})
while next_page := result.get("next_page"):
url += f"&next_page={next_page}"
async with await session.get(url) as next_response:
if response.status != 200:
raise OpenBBError(
f"Error fetching data from Intrinio: {response.status} -> {response.text}"
)
result = await next_response.json()
if filings := result.get("filings", []):
results.extend(filings)View on GitHub (pinned to 3e071fcc2c)
Solutions
- Check the status in the message: 401/403 -> fix credentials (obb.user.credentials.intrinio_api_key); 404 -> verify the symbol exists on Intrinio; 429 -> slow down / add backoff.
- Confirm the key is loaded: python -c "from openbb import obb; print(bool(obb.user.credentials.intrinio_api_key))".
- For batch jobs, add exponential backoff on 429 and cache responses.
- Retry once after fixing credentials - the error includes response.text for diagnosis.
Example fix
# before
obb.user.credentials.intrinio_api_key = 'WRONG_KEY'
obb.equity.filings(provider='intrinio', symbol='AAPL')
# after
obb.user.credentials.intrinio_api_key = os.environ['INTRINIO_API_KEY'] # valid key
obb.equity.filings(provider='intrinio', symbol='AAPL')
# batch backoff for 429
import time
for attempt in range(5):
try:
res = obb.equity.filings(provider='intrinio', symbol=sym); break
except Exception as e:
if '429' in str(e): time.sleep(2 ** attempt); continue
raise Defensive patterns
Strategy: retry
Validate before calling
from openbb import obb
import os
# Ensure credentials exist before the call
if not (os.getenv('INTRINIO_API_KEY') or obb.user.credentials.intrinio_api_key):
raise RuntimeError('Intrinio API key not configured - fix before fetching') Try / catch
import time
from openbb_core.app.model.abstract.error import OpenBBError
for attempt in range(5):
try:
res = obb.equity.filings(provider='intrinio', symbol=sym)
break
except OpenBBError as e:
msg = str(e)
if ' 429 ' in msg and attempt < 4:
time.sleep(2 ** attempt); continue
if ' 401 ' in msg or ' 403 ' in msg:
raise CredentialsError('Intrinio rejected the API key') from e
if ' 404 ' in msg:
skip_symbol(sym); break
raise Prevention
- Set INTRINIO_API_KEY via obb.user.credentials, verify before batch runs
- Backoff on 429; never retry 401/403 without changing the key
- Log status+body from the message for fast triage
When it happens
Trigger: Calling obb.equity.filings(provider='intrinio', symbol=...) with a missing/expired Intrinio API key (401/403), a delisted or mistyped symbol (404), or exceeding Intrinio's per-minute call limits (429). The response body text is appended verbatim, so the exact cause is in the message.
Common situations: Env var INTRINIO_API_KEY not set in the session; free-tier keys hitting paid endpoints; rate limits during batch backfills; symbols from other markets (e.g. OTC tickers) Intrinio doesn't cover.
Related errors
- Unsupported file format. Please use .json or .env files.
- FRED API Error -> Status Code: {response['error_code']} -> {
- Unauthorized Intrinio request -> {result.get('message')}
- Unauthorized Intrinio request -> {message}
- Unauthorized Intrinio request -> {message}
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/3a688c577872d1b5.
Report an issue: GitHub.