Skip to content

Optional request parameters

The sync and async clients accept the same filters. The additions below are keyword-only and default to None. Existing argument order, positional calls, defaults, and return types are preserved. Unset additions are omitted before request validation, so existing endpoint defaults still apply: for example, market.search_by_cik("320193") still requests limit=50.

Pass False or 0 explicitly when needed; neither is treated as unset. Limits and pages are sent to FMP as requested. The SDK does not automatically paginate, deduplicate overlapping pages, widen date ranges, or repair calendar records.

from datetime import date

from fmp_data import FMPDataClient

with FMPDataClient.from_env() as client:
    holidays = client.market.get_holidays_by_exchange(
        "NYSE", from_date=date(2026, 1, 1), to_date=date(2026, 12, 31)
    )
    companies = client.market.search_by_cik("320193", limit=2)
    prices = client.company.get_intraday_prices(
        "AAPL",
        "5min",
        from_date=date(2026, 9, 10),
        to_date=date(2026, 9, 11),
        extended=False,
    )
    valuation = client.fundamental.get_custom_discounted_cash_flow(
        "MSFT", risk_free_rate=3.5, revenue_growth_pct=5.0
    )

Use await client.<group>.<method>(...) with AsyncFMPDataClient and the same arguments. Dates are datetime.date; timestamps are Unix seconds. Country and SIC codes are strings. FMP documents invalid as a string, so use "false" or "true" rather than a Python boolean. Country values follow FMP's vocabulary; the audit verified US and UK, while GB returned no rows.

Added controls

Provider documentation checked on 2026-09-13. Each row links to its source.

Client method New Python arguments FMP query keys
market.get_holidays_by_exchange from_date, to_date from, to
market.get_company_screener avg_volume_more_than, avg_volume_less_than avgVolumeMoreThan, avgVolumeLowerThan
market.get_market_hours timestamp timestamp
market.get_all_exchange_market_hours timestamp timestamp
market.get_all_shares_float page, limit page, limit
market.get_available_exchanges extended extended
market.search_by_cik limit limit
company.get_employee_count limit limit
company.get_historical_market_cap from_date, to_date, limit from, to, limit
company.get_symbol_changes invalid, limit invalid, limit
company.get_intraday_prices extended extended
company.get_earnings include_report_times includeReportTimes
economics.get_economic_indicators start_date, end_date from, to
economics.get_economic_calendar country country
fundamental.get_custom_discounted_cash_flow 18 custom DCF assumptions (below) Corresponding camelCase keys (below)
fundamental.get_custom_levered_dcf 18 custom DCF assumptions (below) Corresponding camelCase keys (below)
institutional.get_beneficial_ownership limit limit
intelligence.get_earnings_calendar page page
intelligence.get_dividends_calendar page page
intelligence.get_stock_splits_calendar page page
intelligence.get_esg_benchmark year year
intelligence.get_senate_trading page, limit page, limit
intelligence.get_house_disclosure page, limit page, limit
alternative.get_crypto_intraday start_date, end_date from, to
alternative.get_forex_intraday start_date, end_date from, to
alternative.get_commodity_intraday start_date, end_date from, to
sec.get_sic_codes industry_title, sic_code industryTitle, sicCode

Custom DCF assumptions

Both custom DCF methods expose all 18 assumptions as float | None. Values are forwarded without unit conversion; percentage fields use the units documented by FMP. Omitting an assumption leaves its selection to the provider.

Python argument FMP query key
revenue_growth_pct revenueGrowthPct
ebitda_pct ebitdaPct
depreciation_and_amortization_pct depreciationAndAmortizationPct
cash_and_short_term_investments_pct cashAndShortTermInvestmentsPct
receivables_pct receivablesPct
inventories_pct inventoriesPct
payable_pct payablePct
ebit_pct ebitPct
capital_expenditure_pct capitalExpenditurePct
operating_cash_flow_pct operatingCashFlowPct
selling_general_and_administrative_expenses_pct sellingGeneralAndAdministrativeExpensesPct
tax_rate taxRate
long_term_growth_rate longTermGrowthRate
cost_of_debt costOfDebt
cost_of_equity costOfEquity
market_risk_premium marketRiskPremium
beta beta
risk_free_rate riskFreeRate

Tool integrations

Existing LangChain and MCP catalog entries expose these optional controls with matching types and hints. The catalog inventory is unchanged: the screener, available-exchanges, and company earnings convenience methods remain SDK-only; applications can wrap their public methods explicitly. The intelligence earnings tool already exposed include_report_times.

market.search_exchange_variants(query) retains its public argument name, but now sends FMP's required symbol query key. For example, pass "MSFT" to search Microsoft's exchange variants. The old query=MSFT wire request returned Apple variants in the live audit.

Provider qualification

Exposing a filter is separate from verifying the returned dataset. The audit found overlapping calendar pages, an empty date-bounded GDP response despite an in-range row in the unbounded series, and unresolved SEC profile identifier behavior. NYSE 2027/2028 holiday and early-close records also have known provider-side defects. No calendar flags, provider payloads, or date boundaries are rewritten. An empty successful response does not establish completeness.

See issue #396 for the provider evidence and the closed connector scope. Correcting or completing these datasets is FMP's responsibility; this release does not qualify a trading-session calendar.