Platform · Data layer

Where the data comes from,how it moves, and whathappens when it breaks.

100+ live data feeds across 20+ named upstream sources. No synthetic data, no black boxes.

  • 7Primary sources, 9 feeds, deduped
  • 522Tables, unified schema
  • 222M+Rows, indexed
  • nightlyRefresh, + minute streams

Data sources

Data you can trust.

Every number traces back to a named, auditable source. Parsed, normalized, queryable, cited.

FMP, the foundation

Global exchange coverage, funds, FX, crypto, statements, estimates and segments, over REST and WebSocket.

Market tapeAsset classes stay separate.Equities, ETFs, funds, indexes, FX, crypto and commodities, each with its type, exchange and cadence.
Company layerStatements, estimates, profiles.Income statement, balance sheet, cash flow, ratios, DCF, ratings and price targets.
Fund layerLook through the wrapper.Holdings, country allocation, sector weights, asset mix, expense and AUM.
Segment layerRevenue by product and geography.Reported segment names stay intact, so each slice can be queried on its own.
Event layerCalendar and ownership feeds land as rows.Earnings, dividends, transcripts, 13F, insider and congressional filings, with dates and source URLs.

SEC EDGAR, and the supporting cast

Direct EDGAR ingestion about 30 seconds behind publication; every feed on its own cadence, with its own freshness badge.

SEC EDGARInsider & Congress STOCK ActForm 4 + House & Senate PTRs, clusteredPLTR Schultz K · CEO · +$892KNVDA Hartwell C · House · calls $500K~30s lag · 5y backfill
SEC EDGAR13F whale positioningHedge fund positions + ETF holdings flowScion opened BABA · 1.2% AUMTiger trimmed META · −18%quarterly · 70 funds · 183k pos
SEC EDGAR8-K material eventsMaterial events for the Russell 3000 + tracked tickersOKTA 8-K · breach disclosureWMT 8-K · CFO departure3×/day sync
USPTOPatent filingsGrants + applications tagged to issuer via PatentsViewAAPL 42 grants · AR/VR clusterLLY GLP-1 oral formulationweekly upstream · 03:00 UTC sync
GreenhouseHiring & layoffsGreenhouse ATS boards + NY-state WARN digestsNVDA ML eng · +48 reqsWARN NY · weekly digestdaily
FREDMacro & Fed policyFed Funds, CPI, UNRATE, T10Y2Y, M2 + 38 moreSOFR 5.33% · unchanged10Y yield 4.58% · +6 bps40+ series · daily 04:35 UTC
How it moves
  1. UpstreamREST · WS · EDGAR · flat files
  2. Sync job288 cron entries · try/finally log
  3. Postgres522 tables · ticker FK spine
  4. DataEnvelopedata · data_as_of · sync_status
  5. Every surfaceterminal · Vexa · API · AI cites

How deep each feed actually goes.

Tickers, history and refresh cadence per source, checked against the live ledger.

SourceUniverseTickersHistoryRefresh
FMP market data + fundamentalsConfigured equity/ETF core + multi-asset upstream11,636 registry · 10,639 quoted core5 yr bars · varies by assetREST + WS + 2-min poll
SEC EDGAR Form 4All US filers6,8675 yr backfill · filings to 0023~30s lag
SEC EDGAR 8-KRussell 3000 + watchlist5,151since Sep 20153×/day sync
13F whale positionsManager-side, position-mapped78 funds · 284k pos17 qtrquarterly
Congress STOCK Act PTRsUS House + Senate members540 tracked · 292 with trades12 yr4×/day sync
USPTO patentsS&P 500 issuers with mapped assignees97 issuers12 mo windowweekly upstream · daily sync
Greenhouse ATS + WARN layoffsCurated public-company boards + NY WARN64 issuers · 2,338 WARN cos7 yrdaily
FINRA short volumeAll US-listed equities14,786since Sep 2025daily
FRED macroUS macro, rates & credit95 seriessince 1966daily 04:35 UTC

Counts from each source's most recent successful run in data_sync_log; the full registry runs 100+ sync jobs across 20+ upstreams.

Every row is queryable, citable, joinable.

Each source lands in a normalized SQL table with stable columns, a ticker foreign key, and a link back to the upstream filing.

A row from insider_trades, fetched over the MCP server:

Full schema docs: /docs →

get_insider_trades {"symbol": "PLTR"} · MCP
# DataEnvelope[InsiderTrade]  --  one of 24 rows
{
  "data": [{
    "id": "sec_4_a1b2c3d4",
    "ticker": "PLTR",
    "insider_name": "Schultz Karen",
    "insider_role": "CEO",
    "transaction_type": "P",  # open-market buy
    "transaction_date": "2026-05-22",
    "shares": 42000,
    "price": 21.24,
    "value_usd": 892080,
    "cluster_id": "clust_8e7f",  # 3-insider, 48hr
    "cluster_score": 0.92,
    "is_10b5_1": false,
    "filing_url": "https://www.sec.gov/…"
  }, …],
  "meta": {
    "data_as_of": "2026-05-24T07:32:47Z",
    "sync_status": "healthy",
    "source": "sec_edgar_form4"
  }
}
SAME ENVELOPE OVER RESTGET /api/v1/convexity-score/PLTR → data + metaMCP server →

Cost

What it would cost a la carte.

Public list prices for the closest paid vendor of each feed, per seat, per year.

Bloomberg TerminalInsider, 13F, macro, quotes, bundled$31,98092× Convexity
LSEG WorkspaceQuotes, fundamentals, news$22,00063× Convexity
FMP UltimateMulti-asset quotes, fundamentals, holdings$1,8005.2× Convexity
Quiver QuantitativeCongressional, lobbying, alt-data API$7502.2× Convexity
Unusual WhalesOptions flow, dark pool, insider$6001.7× Convexity
Convexity ProAll feeds bundled · AI on top$348a year

Bloomberg single-terminal list rate as widely reported after the 2025 increase, retrieved 2026-07-22; LSEG Workspace from a typical single-user quote; other vendor sites retrieved 2026-07-08. Not a feature-parity claim: the data layer underneath costs an order of magnitude less built than licensed.

Every row knows when it landed.

Every dataset writes a sync_log row on each refresh, and every freshness badge reads it. When an upstream breaks, the run logs failed, the badge flips, and the surface keeps its last good rows with their date.

DATA_SYNC_LOG · LEDGER snapshot 2026-10-21 · live in-app
data_sync_logreal rows, snapshot 2026-10-21 · the live table backs every freshness badge in-app
SourceLast runRowsStatus
quotes_sync2m ago+5,194partial
fred_sync44m ago+664success ✓
patent_sync2h ago+43success ✓
politician_sync3h ago+4,854success ✓
sec_edgar_form43h ago+0success ✓
finra_short_volume17h ago+110,768success ✓
ats_jobs18h ago+11,002partial
institutional_holders22h ago+0success ✓
A +0 success is a poll that found nothing new; a failed run keeps its layer on last-good data with the date showing. Figures on this page generated from the live log, snapshot .

See it running.

The same tables power the signal feed and the AI agent, and both cite. Uptime is published on the public status page.

Free plan, no card required. Founder pricing is locked for life.