OpenBB-finance/OpenBB · error · ValueError
Adjustment can only be applied to daily ('1d') interval.
Error message
Adjustment can only be applied to daily ('1d') interval. What it means
A Pydantic model_validator ValueError on FMPEquityHistoricalQueryParams: FMP only serves adjusted prices (adjustment='splits_only' is a no-op baseline) on the daily interval. If you request any other adjustment ('split', 'dividend', 'all') together with an intraday interval (anything other than '1d'), validation fails before any request is made.
Source
Thrown at openbb_platform/providers/fmp/openbb_fmp/models/equity_historical.py:48
}
interval: Literal["1m", "5m", "15m", "30m", "1h", "4h", "1d"] = Field(
default="1d", description=QUERY_DESCRIPTIONS.get("interval", "")
)
adjustment: Literal["splits_only", "splits_and_dividends", "unadjusted"] = Field(
default="splits_only",
description="Type of adjustment for historical prices. Only applies to daily data.",
)
@model_validator(mode="before")
@classmethod
def _validate_params(cls, values: dict) -> dict:
"""Validate query parameters."""
interval = values.get("interval", "1d")
adjustment = values.get("adjustment", "splits_only")
if adjustment != "splits_only" and interval != "1d":
raise ValueError("Adjustment can only be applied to daily ('1d') interval.")
return values
class FMPEquityHistoricalData(EquityHistoricalData):
"""FMP Equity Historical Price Data."""
__alias_dict__ = {
"open": "adjOpen",
"high": "adjHigh",
"low": "adjLow",
"close": "adjClose",
}
change: float | None = Field(
default=None,
description="Change in the price from the previous close.",
)
change_percent: float | None = Field(View on GitHub (pinned to 3e071fcc2c)
Solutions
- Drop the adjustment parameter for intraday requests (intraday data is unadjusted anyway)
- Or switch interval to '1d' if you truly need adjusted prices
- Catch the pydantic ValidationError client-side and report 'adjustment requires daily interval' to the caller
Example fix
# before res = obb.equity.price.historical(symbol='AAPL', provider='fmp', interval='1h', adjustment='all') # ValueError # after res = obb.equity.price.historical(symbol='AAPL', provider='fmp', interval='1h') # unadjusted intraday # or res = obb.equity.price.historical(symbol='AAPL', provider='fmp', interval='1d', adjustment='all')
Defensive patterns
Strategy: validation
Validate before calling
interval, adjustment = '1h', 'all'
if adjustment and adjustment != 'splits_only' and interval != '1d':
adjustment = None # or raise, per your UX
# FMP only supports adjustment on daily bars Type guard
def fmp_historical_params_ok(interval: str, adjustment: str | None) -> bool:
return adjustment in (None, 'splits_only') or interval == '1d' Try / catch
from pydantic import ValidationError
try:
res = obb.equity.price.historical(symbol=s, provider='fmp', interval=i, adjustment=a)
except ValidationError:
if a not in (None, 'splits_only') and i != '1d':
res = obb.equity.price.historical(symbol=s, provider='fmp', interval=i) # drop adjustment
else:
raise Prevention
- Strip adjustment from parameter dicts when switching to intraday intervals
- Keep provider-specific parameter rule tables (interval x adjustment) in one place
- Remember adjustment='splits_only' is the safe default and never trips this validator
When it happens
Trigger: Calling obb.equity.price.historical(symbol=X, provider='fmp', interval='1m'|'1h'|..., adjustment='split') etc. The defaults (interval='1d', adjustment='splits_only') never trigger it; only a non-default adjustment paired with a non-daily interval does.
Common situations: Reusing query params built for daily data on an intraday call, UI defaults that always pass adjustment='all', or porting code from a provider (e.g. Yahoo) where intraday dividend/split adjustment was accepted.
Related errors
- Date range cannot exceed 90 days.
- Industry must be one of {', '.join(industries)}
- At least one extension type must be selected.
- Incorrect email or password
- Charting is not installed. Please install `openbb-charting`.
AI-assisted analysis of OpenBB-finance/OpenBB@3e071fcc2c (2026-08-14).
Data as JSON: /api/errors/c44e64b9ab78b2b9.
Report an issue: GitHub.