findata-aggregator

source health · market data · accounts · signals · API docs

Source Health

Data typeProviderStatusCalls todayPriority
Auto-refreshes every 60s. No account needed — this uses only the global API key held by the dashboard server.

Symbol Lookup

Index structure

Nightly snapshot of major indices: % from 52-week high and ATH, breadth (advance/decline, % above SMA50/200), and a MarketCap-proxy concentration read. Cache only — never walks 500 tickers live. SPX uses the seeded S&P 500 list; SXXP is the Europe starter list, not official Stoxx 600. Concentration is a cap proxy, not licensed index weights.

Top movers

From GET /movers for composition indices (SPX / SXXP).

Gainers

#Symbol1d %

Losers

#Symbol1d %

History

% from ATH and, for composition indices, % advancing — from prior nightly snapshots.

Live Squawk Feed

Real-time-ish headlines from FinancialJuice's WebSocket stream (server-side, always-on ingestion — see server/src/financialJuiceStream.js). Free tier: news and economic-calendar events delayed by ~10 minutes. This panel reads the resulting cache, it never opens its own connection.

Economic Calendar

WhenEventCountryActualForecastPreviousImportance

My Alert Rules

Get notified when a squawk headline matches a keyword, category, and/or minimum importance. Requires login (My Account tab). At least one filter is required per rule.

LabelKeywordCategoryMin importanceEnabled

Triggered Alerts

Log in

Email and password. New accounts are created on the Admin tab (master key required).

Advanced: log in with an account API key

Log in above to manage your watchlist, entitlements, and dashboard layout.

Buy / Hold / Sell Signals

Not financial advice. Heuristic decision-support only, computed from cached fundamentals, news sentiment, social sentiment, and price momentum. Requires login (My Account tab).

Data Explorer

Browse what's actually cached in Postgres, rendered nicely instead of as raw database tables. Read-only — nothing here ever triggers a live provider call or creates new instrument rows, it only shows you what's already been fetched. Master key only (Admin-tier).

Price History

to
DateOpenHighLowCloseAdj. CloseVolumeSource

Fundamentals

Derived ratios (by fiscal period)

Metric

Raw fields (by fiscal period)

Field

News & Squawk Feed

Alt-Data

Screener & Movers

Nightly batch-job output — never triggers a live scan, this only reads whatever the last screener/movers run already computed.

Workbench — files in, files out

This is the human-facing door on the same API everything else uses. Pull history for one or many tickers, pick the columns that actually exist in our providers, download Excel / CSV / JSON / Parquet — or drop in a file of your own, map its columns, and optionally join it onto a pull by date. Master-key tier, no account login required. Does not write imported files into the database.

1. What to pull

Commas, spaces, or newlines. ETFs like SPY/QQQ work with asset class left on equity.

2. Columns we actually have

Loading catalog…

3. Import a file (optional)

CSV, JSON, Parquet, or Excel (.xlsx). Map the date column — and a ticker column, or assign one symbol — then join onto the pull or just inspect it.

Drop a file here, or click to choose. Max 15 MB.

4. Preview / download

Admin

Master-key-only room: mint accounts, inspect quota/cache, and manage the rolling Parquet snapshots the scheduler writes every 30 minutes on weekdays. Nothing here is visible to an account key — same auth tier as Data Explorer.

Create Account (insider-only)

This form re-enters the master API key (AGGREGATOR_API_KEY from .env) as a deliberate second check — even though this dashboard's server already holds that key internally, creating an account still requires whoever is sitting at this screen to type it in correctly. If the key is wrong, the account is not created — node-api rejects it exactly like a direct POST /accounts call with a bad key would. This keeps the number of accounts limited to people who actually know the master key, not just anyone who can open this Admin tab.

Provider Quota / Usage

ProviderWindowUsedLimit

Cache Stats

TableRowsOldestNewest

Full-data watchlist

These tickers get a scheduled full-data.parquet — the wide file other apps should download. Pick how often; the job checks every 15 minutes and gathers one due symbol at a time (writes only full_data, not the extra modality folders). An empty list means nothing is scheduled. External app: GET /admin/exports/full-data for the list, then GET /admin/exports/full-data/AAPL/download for each ready file. Master key, same as every other admin route.

Symbol Cadence Last file Size Status

All exported files

Everything currently under EXPORT_DATA_DIR (Hive folders: modality / date / file). The old universe dump (every modality for the whole screener list, 4×/day) is off unless you set ENABLE_EXPORT_UNIVERSE_SNAPSHOT=true — use Run export now for a one-off if you temporarily need those extra files. Click a column header to sort. Delete is permanent; there is still no automatic retention policy.

Manual only — uses the full (paid) waterfall for one ticker: last SEC 10-K/10-Q filings + FMP ratio history, 8-year paginated news, and social if available. Returns immediately (HTTP 202) and keeps a step log — the old sync POST died as a proxy 504 before AAPL finished. The wide file is symbol/<TICKER>/full_data/…/full-data.parquet. Manual gather still writes every sibling folder (eod_price_history, news, …) plus full_data. Scheduled watchlist runs write full_data only. Several minutes is normal.

Session & System Info

Snapshot of the current browser session and this dashboard server — paste this when reporting a bug.


    

Compile Report

A raw dump of every cached row this aggregator holds — for one symbol (every modality: price, fundamentals, news, alt-data, predictions, sentiment, screener/movers) or for one squawk theme (category/keyword/importance across the squawk feed + economic calendar). Every row, every column, verbatim, capped to a safe payload size below. Built to paste straight into an agent's context to look for gaps/optimization opportunities across the pipeline.


    

Quick Endpoint Tests

One button per documented endpoint, pre-filled with a working example. Buttons marked (fill in) only populate the Manual API Tester below and require you to fill in a sensitive field yourself (e.g. the master key) before pressing Send — everything else sends immediately and jumps you to the result.

Manual API Tester

Send any request through this dashboard's proxy with full control over auth headers. Useful for reproducing an issue exactly, or pressing a button above to pre-fill this. Set DEBUG_EXPOSE_KEYS=true in .env and optional DEBUG_ACCOUNT_KEY / DEBUG_DASHBOARD_KEY in .env or .env.providers to auto-fill the key fields below on tab open.


    

Client Request Log

Every request this browser tab has made through the dashboard proxy (most recent last). Click a row to expand its full request payload and response body. Copy this whole log when something looks wrong.

TimeMethodPathStatusmsError