Linking Financial Modeling Prep as a source

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Learn more
PostHog Wizard hedgehog

Alpha release

This source is currently in alpha. The interface and available tables may change.

The Financial Modeling Prep connector syncs market and company financial data – company profiles, financial statements, and historical prices – into PostHog, so you can analyze financial data alongside your product data.

Prerequisites

You need a Financial Modeling Prep account with an API key. Free-tier keys are heavily rate-limited, so keep your list of symbols focused.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

When linking Financial Modeling Prep, you'll need:

  • API key – find it in your Financial Modeling Prep dashboard.
  • Symbols – a comma-separated list of tickers to sync, for example AAPL, MSFT, GOOGL. The symbol-keyed tables are fetched once per ticker you list, so keep the list focused.

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

Configuration

OptionTypeRequired
API keypasswordYes
SymbolstextYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
stock_list

Every tradable symbol Financial Modeling Prep tracks, with its exchange and name.

Full refresh——
company_profiles

Company profile: sector, industry, market cap, description, and contact details for each symbol.

Full refresh——
income_statements

Annual income statements (revenue, expenses, net income) per symbol and fiscal period.

Full refresh——
balance_sheet_statements

Annual balance sheets (assets, liabilities, equity) per symbol and fiscal period.

Full refresh——
cash_flow_statements

Annual cash flow statements (operating, investing, financing) per symbol and fiscal period.

Full refresh——
key_metrics

Headline financial metrics per symbol and fiscal period: market cap, enterprise value, returns and yields.

Full refresh——
ratios

Valuation, profitability, liquidity and leverage ratios per symbol and fiscal period.

Full refresh——
key_metrics_ttm

Trailing twelve-month key metrics per symbol. One always-current row per symbol, replaced on every sync.

Full refresh——
ratios_ttm

Trailing twelve-month financial ratios per symbol. One always-current row per symbol, replaced on every sync.

Full refresh——
dividends

Dividend history for each symbol you sync, including the amount, yield and the record, payment and declaration dates.

Full refresh——
earnings

Reported earnings per symbol: actual against estimated earnings per share and revenue for each announcement.

Full refresh——
historical_prices

End-of-day OHLCV price history per symbol, filtered server-side by trading date.

Incremental, Full refreshdate—
earnings_calendar

Scheduled and historical earnings announcements across the market, filtered by date.

Incremental, Full refreshdate—
dividends_calendar

Dividend events across the market (ex-date, payment, amount), filtered by date.

Incremental, Full refreshdate—
available_exchanges

Every stock exchange Financial Modeling Prep supports, resolving the exchange codes carried on stock_list and company_profiles.

Full refresh——
available_sectors

Every sector classification Financial Modeling Prep assigns, resolving the sector values on company_profiles.

Full refresh——
available_industries

Every industry classification Financial Modeling Prep assigns, resolving the industry values on company_profiles.

Full refresh——
splits

Stock split history per symbol. Needed to compare historical_prices across a split.

Full refresh——
market_capitalization

Current market capitalization per symbol: one always-current row, replaced on every sync.

Full refresh——
historical_market_capitalization

Daily market capitalization history per symbol, the standard size dimension for equity analysis.

Incremental, Full refreshdate—
institutional_positions_summary

Institutional 13F holdings summarized per symbol and calendar quarter: how many institutions hold the symbol, the shares and value they hold, and how both moved since the previous quarter.

Full refresh——

Troubleshooting

  • If your API key is invalid or has been revoked, generate a new key in your Financial Modeling Prep dashboard, then reconnect.
  • If your plan does not grant access to a table, upgrade your plan or deselect the affected tables, then reconnect.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Still have questions?

Was this page useful?