openapi: 3.0.3
info:
title: Financial Modeling Prep API
description: >-
Financial Modeling Prep (FMP) provides real-time and historical financial
data through more than 100 REST endpoints served from the stable base
https://financialmodelingprep.com/stable. Coverage includes company financial
statements (income statement, balance sheet, cash flow), real-time and
historical quotes for stocks, forex, crypto, and commodities, SEC filings,
analyst estimates, company fundamentals (profile, key metrics, ratios), and
macroeconomic indicators. All requests are authenticated with an API key
passed as the `apikey` query parameter. Responses default to JSON and most
endpoints also support CSV via the `datatype` parameter. This document models
a representative subset of the stable endpoints; see the FMP developer docs
for the full catalog. FMP also exposes a real-time WebSocket surface, modeled
separately in asyncapi/financialmodelingprep-asyncapi.yml.
version: 'stable'
contact:
name: Financial Modeling Prep
url: https://site.financialmodelingprep.com
termsOfService: https://site.financialmodelingprep.com/terms-of-service
servers:
- url: https://financialmodelingprep.com/stable
description: FMP stable REST base
- url: https://financialmodelingprep.com/api/v3
description: FMP legacy v3 REST base
security:
- apiKeyQuery: []
tags:
- name: Financial Statements
description: Income statement, balance sheet, and cash-flow statement data.
- name: Quotes and Prices
description: Real-time quotes and historical end-of-day prices.
- name: SEC Filings
description: Latest and searchable SEC filings for public companies.
- name: Fundamentals
description: Company profile plus derived key metrics and ratios.
- name: Analyst Estimates
description: Consensus estimates, price targets, and rating grades.
- name: Economic Data
description: Macroeconomic indicators, treasury rates, and economic calendar.
paths:
/income-statement:
get:
operationId: getIncomeStatement
tags:
- Financial Statements
summary: Income statement
description: >-
Returns annual or quarterly income statements for a company, identified
by ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of income statement periods.
content:
application/json:
schema:
type: array
items:
type: object
/balance-sheet-statement:
get:
operationId: getBalanceSheetStatement
tags:
- Financial Statements
summary: Balance sheet statement
description: >-
Returns annual or quarterly balance sheet statements for a company,
identified by ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of balance sheet periods.
content:
application/json:
schema:
type: array
items:
type: object
/cash-flow-statement:
get:
operationId: getCashFlowStatement
tags:
- Financial Statements
summary: Cash flow statement
description: >-
Returns annual or quarterly cash-flow statements for a company,
identified by ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of cash-flow statement periods.
content:
application/json:
schema:
type: array
items:
type: object
/quote:
get:
operationId: getQuote
tags:
- Quotes and Prices
summary: Full quote
description: >-
Returns a real-time full quote for a stock, ETF, index, forex pair,
crypto pair, or commodity, identified by symbol.
parameters:
- $ref: '#/components/parameters/symbol'
responses:
'200':
description: The current quote for the symbol.
content:
application/json:
schema:
type: array
items:
type: object
/historical-price-eod/full:
get:
operationId: getHistoricalPriceEodFull
tags:
- Quotes and Prices
summary: Historical end-of-day prices
description: >-
Returns historical daily (end-of-day) open/high/low/close and volume for
a symbol, optionally bounded by a from/to date range. Up to 30 years of
history is available.
parameters:
- $ref: '#/components/parameters/symbol'
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
responses:
'200':
description: Historical end-of-day price bars.
content:
application/json:
schema:
type: array
items:
type: object
/sec-filings-search/symbol:
get:
operationId: getSecFilingsBySymbol
tags:
- SEC Filings
summary: SEC filings by symbol
description: >-
Searches SEC filings for a company by ticker symbol within a date range,
returning filing metadata and links to the source EDGAR documents.
parameters:
- $ref: '#/components/parameters/symbol'
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of matching SEC filings.
content:
application/json:
schema:
type: array
items:
type: object
/sec-filings-search/cik:
get:
operationId: getSecFilingsByCik
tags:
- SEC Filings
summary: SEC filings by CIK
description: >-
Searches SEC filings for a company by its SEC Central Index Key (CIK)
within a date range.
parameters:
- name: cik
in: query
required: true
description: SEC Central Index Key, e.g. 0000320193 for Apple.
schema:
type: string
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of matching SEC filings.
content:
application/json:
schema:
type: array
items:
type: object
/financials-latest:
get:
operationId: getLatestFinancialFilings
tags:
- SEC Filings
summary: Latest SEC filings
description: >-
Returns the most recent SEC filings submitted across public companies,
for real-time monitoring of new disclosures.
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: The latest filings feed.
content:
application/json:
schema:
type: array
items:
type: object
/profile:
get:
operationId: getCompanyProfile
tags:
- Fundamentals
summary: Company profile
description: >-
Returns a company profile - sector, industry, description, market cap,
exchange, executives, and identifiers - for a ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
responses:
'200':
description: The company profile.
content:
application/json:
schema:
type: array
items:
type: object
/key-metrics:
get:
operationId: getKeyMetrics
tags:
- Fundamentals
summary: Key metrics
description: >-
Returns per-period key financial metrics (per-share values, margins,
returns, and other derived measures) for a ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of key-metric periods.
content:
application/json:
schema:
type: array
items:
type: object
/ratios:
get:
operationId: getFinancialRatios
tags:
- Fundamentals
summary: Financial ratios
description: >-
Returns per-period financial ratios (liquidity, profitability, leverage,
and valuation) for a ticker symbol.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of ratio periods.
content:
application/json:
schema:
type: array
items:
type: object
/analyst-estimates:
get:
operationId: getAnalystEstimates
tags:
- Analyst Estimates
summary: Analyst estimates
description: >-
Returns consensus analyst estimates - projected revenue, EPS, EBITDA,
and net income - for a ticker symbol, by annual or quarterly period.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of analyst estimate periods.
content:
application/json:
schema:
type: array
items:
type: object
/financial-estimates:
get:
operationId: getFinancialEstimates
tags:
- Analyst Estimates
summary: Financial estimates
description: >-
Returns forward-looking financial estimates for a ticker symbol as
forecast by analysts.
parameters:
- $ref: '#/components/parameters/symbol'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: A list of financial estimate periods.
content:
application/json:
schema:
type: array
items:
type: object
/economic-indicators:
get:
operationId: getEconomicIndicators
tags:
- Economic Data
summary: Economic indicators
description: >-
Returns time-series values for a named macroeconomic indicator such as
GDP, CPI, or unemployment rate.
parameters:
- name: name
in: query
required: true
description: Indicator name, e.g. GDP, CPI, unemploymentRate.
schema:
type: string
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
responses:
'200':
description: A macroeconomic indicator time series.
content:
application/json:
schema:
type: array
items:
type: object
/treasury-rates:
get:
operationId: getTreasuryRates
tags:
- Economic Data
summary: Treasury rates
description: >-
Returns U.S. treasury rates across standard maturities for a date range.
parameters:
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
responses:
'200':
description: Treasury rates by maturity.
content:
application/json:
schema:
type: array
items:
type: object
/economic-calendar:
get:
operationId: getEconomicCalendar
tags:
- Economic Data
summary: Economic calendar
description: >-
Returns scheduled macroeconomic events and releases within a date range.
parameters:
- name: from
in: query
required: false
description: Start date (YYYY-MM-DD).
schema:
type: string
format: date
- name: to
in: query
required: false
description: End date (YYYY-MM-DD).
schema:
type: string
format: date
responses:
'200':
description: A list of economic calendar events.
content:
application/json:
schema:
type: array
items:
type: object
components:
parameters:
symbol:
name: symbol
in: query
required: true
description: Ticker symbol, e.g. AAPL. Some endpoints accept forex (EURUSD) or crypto (BTCUSD) symbols.
schema:
type: string
period:
name: period
in: query
required: false
description: Reporting period.
schema:
type: string
enum:
- annual
- quarter
default: annual
limit:
name: limit
in: query
required: false
description: Maximum number of records to return.
schema:
type: integer
default: 100
page:
name: page
in: query
required: false
description: Zero-based page number for paginated results.
schema:
type: integer
default: 0
securitySchemes:
apiKeyQuery:
type: apiKey
in: query
name: apikey
description: >-
FMP API key passed as the `apikey` query parameter on every request,
e.g. ?apikey=YOUR_API_KEY. Obtain a key from the FMP dashboard.