Repository navigation
v2.0.0
Major Changes
-
49cda76: ## Breaking Changes
API Migration: v3/v4 → Stable API
This is a complete API migration. The SDK now uses FMP's new stable API instead of the legacy v3/v4 endpoints.
- Base URL changed from
https://financialmodelingprep.com/apitohttps://financialmodelingprep.com/stable - All endpoint paths have been updated to match the stable API specification
- Path parameters converted to query parameters (e.g.,
/v3/profile/AAPL→/profile?symbol=AAPL)
If you were customizing the
baseUrlin your config, you'll need to update it.Endpoint Changes
All endpoints have been migrated. Examples of changes:
Resource Old Endpoint New Endpoint Company v3/profile/{symbol}profile?symbol=Company v3/quote/{symbol}quote?symbol=Company v3/searchsearch-symbol,search-nameAnalyst v3/analyst-estimatesanalyst-estimatesAnalyst v4/price-targetprice-targetAnalyst v3/gradegradesBulk v4/profile/allprofile-bulkBulk v4/dcfdcf-bulkFinancials v3/income-statement/{symbol}income-statement?symbol=Market v3/historical-price-full/{symbol}historical-price-eod/full?symbol=Method Signature Changes
CompanyResource.search()is now deprecated, usesearchSymbol()orsearchName()CompanyResource.getDelistedCompanies(limit?)now takes(page, limit)parametersBulkResource.getAllProfiles()now takes optionalpartparameter for paginationBulkResource.getAllETFHoldings()now takes optionalpartparameter for paginationCommoditiesResource.getHistoricalPrices()now returnsHistoricalPrice[]instead of{ historical: HistoricalPrice[] }
Type Changes
DCFValuation and LeveredDCF
- Renamed
'Stock Price'property tostockPrice
Quote type - Nullable fields
The following fields are now nullable to accurately reflect the API response:
marketCap:number→number | nullpriceAvg50:number→number | nullpriceAvg200:number→number | nulleps:number→number | nullpe:number→number | nullearningsAnnouncement:string→string | nullsharesOutstanding:number→number | null
EarningsSurprise type
actualEarningResult:number→number | nullestimatedEarning:number→number | null
New Features
NewsResource
getAvailableTranscriptSymbols()- Get symbols with available earnings call transcriptssearchPressReleases(query, limit)- Search press releasessearchStockNews(query, limit)- Search stock newssearchCryptoNews(query, limit)- Search crypto newssearchForexNews(query, limit)- Search forex news
InsiderResource
getHolderPerformanceSummary(cik, date)- 13F portfolio holdings performancegetIndustryPerformanceSummary(cik, date)- 13F industry portfolio holdings performance
AnalystResource
getGradesSummary(symbol)- Analyst grades summary
ValuationResource
getCustomLeveredDCF(symbol)- Custom levered DCF valuation
CompanyResource
searchSymbol(query, limit, exchange)- Search by symbolsearchName(query, limit, exchange)- Search by company namegetBatchAftermarketTrades(symbols)- Batch aftermarket tradesgetETFList()- List of all ETFsgetMutualFundList()- List of all mutual funds
New Types
PortfolioHoldingsSummary- 13F portfolio holdings summaryIndustryPortfolioHoldingsSummary- 13F industry portfolio holdings summaryFundListItem- ETF/Mutual fund list itemQuoteShort- Simplified quote dataAftermarketTrade- Aftermarket trade dataAftermarketQuote- Aftermarket quote dataPriceChange- Stock price change data
Migration Guide
- Update base URL (if customizing): Change from
/apito/stable - Update search calls: Replace
.search()with.searchSymbol()or.searchName() - Handle nullable fields: Add null checks for Quote fields that are now nullable
- Update DCF access: Change
result['Stock Price']toresult.stockPrice - Update commodity historical: Handle direct array return instead of
{ historical: [] }
- Base URL changed from