P-Invertor API
Use the dashboard and predictor data directly in another app—without screen scraping.
GET/api/pages/index
Every figure on the Overview tab's market cards, for either market and any of the three period toggles — indices, FX and commodities, capital and fund flows, sector scores, breadth, timing signals, VIX, fear & greed, and bonds.
market:USorHK(default:US)period:5,20, or60days (default:5) — the 5 Days / 20 Days / 60 Days toggle. Any other value returns422.include_raw: set tofalsefor the smaller, normalized response only
The response's as_of field is the snapshot timestamp — use it to tell fresh data from cached. This endpoint only ever reads the published snapshot; to make it produce newer numbers, queue a refresh (below).
GET/api/market-trends/{view}
The Overview tab's five research sub-tabs. Each name below is the {view} value, so all five share one URL shape.
signals— the 60-second scan: anomalies, trending up/cooling, sector heat, headline metrics, source health. Also available as /api/market-trends/overview.emerging— opportunity discovery across filings, search, reading, and communitiesexplore— normalized multi-metric comparison series, including the preset metric setsniches— tracked verticals as composite z-scores, with their component evidenceanomalies— the full statistical-outlier register (|z| ≥ 2), latest first
Every response carries status and latest_metric_date. A status other than ok/cached means the trend pipeline has not published recently — check latest_metric_date before treating the numbers as current. Any other {view} returns 404.
Refreshing Overview data
The read endpoints above always serve the last published snapshot; they never scrape on demand. To produce newer data, queue a refresh — one call re-runs everything on the Overview tab: the market snapshot behind the 5/20/60-day toggles, and all five trend sub-tabs.
- POST/api/refresh-data — queues the refresh. Send your key in
X-API-Key. Returns{"status": "queued"}; it does not wait for completion. - GET/api/refresh-data/status — poll progress. No key required.
activeistruewhile a run is in flight; when it flips tofalse, re-read the endpoints above and confirmas_of/latest_metric_datehas moved.
Private personal-data API
For your own analysis applications only. Send the private key in X-API-Key; never place it in browser code.
- GET/api/v1/stocks/{symbol}/quote — delayed price with source and freshness
- GET/api/v1/stocks/{symbol}/filings — US SEC filing timeline
- GET/api/v1/stocks/{symbol}/financials — US SEC XBRL financial facts
- GET/api/v1/stocks/{symbol}/news — Finnhub company news
- POST/api/v1/data-refresh then GET/api/v1/jobs/{job_id} — refresh and poll a job
- POST/api/v1/data-refresh/active — hourly refresh of watchlist, open positions, and research pins
- GET/PUT/api/v1/tracked-symbols — read or replace explicit research pins
- GET/POST/api/v1/portfolio — personal transaction-led portfolio
GET/api/pages/predictor/{symbol}
Returns a stock’s current technical figures and, by default, the chart-ready OHLCV and indicator series.
period:1d,1w,1m,3m,6m,12m,2y,3y, or5yinterval:daily,weekly, ormonthlyinclude_series: set tofalsefor current card figures only
Integration notes
CORS_ALLOW_ORIGINS to a comma-separated allowlist on the API deployment.
Predictor snapshots use the built-in default profile. Personal browser-only profiles, peer lists, custom signals, and interactive backtest inputs are not shared because they are user-specific.
For the interactive schema and every available endpoint, open API documentation.